1

주제: 사이드바 시스템

http://forum.tattertools.com/ko/viewtopic.php?id=1097
의 내용을 이쪽에서 제대로 진행시키겠습니다.

사이드바의 기본 기능성은 다음과 같습니다.
http://by.tistory.com/attach/300/1174125280.png
1. 패널 추가
배너, 광고, 커스텀 패널등을 기존의 스킨편집-치환자 추가 방식이 아닌 관리자 화면의 설정에서 할 수 있어야 한다.
2. 패널 삭제
추가된 것을 다시 제거하는 것도 포함하여 기존의 "최근 댓글"등을 쉽게 On/Off 할 수 있어야 한다.
3. 패널 위치 이동
추가된 것, 기본 패널(카테고리, 최근 댓글등)의 순서를 쉽게 조정할 수 있게 한다.
여러개의 사이드바를 지원하고 이들간의 이동은 옵셔널로 고려한다.


추가되는 패널은 다음 그림과 같은 확장성도 고려하겠습니다. 하나의 타이틀에 하나의 항목이 붙을 수도 있지만 여러개가 붙는 경우도 있고 태터툴즈 로고같이 독립적인 항목도 있습니다.
http://by.tistory.com/attach/300/1264830174.png

부가 요구사항을 정의합니다.
4. 기존 스킨의 호환성
다른 모든 변화를 포함하여 가능하면 기존 1.0용 스킨이 정상적으로 보여질 수 있어야 합니다.
더불의 스킨 디자이너가 기존의 스킨을 사이드바 시스템을 사용할 수 있는 형태로 변환하는 작업이 가능하면 쉬워야 합니다.
기본 패널은 안되더라도 추가패널은 모험심이 있는 사용자가 어느정도의 용기로 사이드바 치환자를 넣음으로서 사용할 수 있도록 지원합니다.(옵셔널)

5. 디자이너의 커스터마이제이션 요소
기본패널의 모양은 기존의 치환자 시스템을 이용하여 스킨 디자이너가 원하는 모양을 취할 수 있도록 합니다.
더불어 스킨이 처음 적용되었을때 기본 패널들의 위치(order 포함)와 모양을 지정할 수 있도록 합니다.
그리고 사용자는 위치를 쉽게 변경할 수 있어야 합니다.(모양은 스킨 편집하면 됩니다. 1,2,3번 기능만 고려합니다.)

제한사항(Constraint)
6. 치환자 수정 자제
1.0의 치환자를 삭제 혹은 변환은 자제합니다. 치환자를 추가하는 경우 기능을 더 쓸 수 있도록 해주는 방향으로 합니다.

7. 디폴트 설정
초기상태가 공백이 아니라 기본적인 것은 갖추어져 있는 상태여야 합니다.
사이드바 시스템의 경우 스킨을 새로 적용한 시점에서 사이드바에 아무것도 없는 것이 아니라 기본패널들은 적절한 위치에 보여야 사용자들이 해메지 않습니다.


~~~~~~~~~~~~~~
PS. 현재 사이드바 티켓을 찾지 못하고 있습니다. 혹시 번호 아시는분~~ 포럼의 관계글은 모두 해당 티켓과 연결시켜야 되겠습니다.
사이드바 시스템을 티스토리의 적용까지 제가 맏게 되어 현재 sandbox의 기능을 다듬는데 직접 참여하게 되었습니다. ㅠ.ㅠ
티켓 찾아지는데로 추가될 치환자를 정리하겠습니다.

2

답글: 사이드바 시스템

사이드바 관련 티켓은 아마 존재하지 않을 것입니다.;;;

작업은 제가 했는데 그 당시 제가 trac에 권한이 없었던 관계로..
(교주님께 말해서 얼마전에 받았.. -_-)

3

답글: 사이드바 시스템

http://forum.tattertools.com/ko/viewtopic.php?id=1129

이건 사이드바 관련 마지막으로 작성한 글입니다.

4

답글: 사이드바 시스템

http://dev.tattertools.com/ticket/197

티켓 등록되었습니다.

5

답글: 사이드바 시스템

1, 2는 구현이 되어있고요.

3.
순서 관련된 부분은 교주님께서 작업해두셨던 부분을 커밋해두면 제가 수정하기로 했었는데 현재 부재중이신 관계로 뒤로 밀려있고요.;
그 아래 확장성 관련된 부분은 하나의 타이틀에 여러 항목이 붙는 경우(어떤 경우가 있는지 아직 이해가 안되어있는 상태입니다만..)를 제외하고는 고려가 되어있습니다.
(다른 내용이지만.. 태터툴즈 로고의 경우는 사이드바로 만들면 안되겠죠.)

4.
현재는 하위호환성이 보장이 됩니다.(기존 [##_category_##] 등등의 치환자를 그대로 사용이 가능합니다.)
기존의 다른 것들과 동일한 방식이기에 스킨 디자이너가 작업하는데 문제는 없을거라 생각합니다.(스킨 디자이너 본인들께서도 그렇게 생각하는지는 모르겠지만;; )
현재의 사이드바용 플러그인에는 치환자가 존재하지 않기 때문에 이 부분은 불가능합니다.
(물론 tag 요소를 추가하면 그 문제는 해결이 되지만 현재의 플러그인 시스템에서는 한개의 플러그인에서 사이드바는 disable시키고 일반 치환자는 enable시킬 방법이 없습니다. 동일한 기능을 하는 플러그인을 치환자를 사용하도록 제작하여 따로 배포하는 쪽이 좋을거라 생각합니다.)

5. 이건 잘 이해가 안되서 조금 더 생각을...;;;;

6. 위에서도 언급되었지만 수정 및 삭제된 부분이 없습니다.

7. 일반 스킨과 사이드바 스킨의 차이점을 일반 사용자들이 제대로 이해하지 못하는 결과를 낳지 않을까 우려됩니다.
(일반 스킨을 사용하던 사용자가 사이드바 스킨으로 변경했을 경우 일반 사용자는 사이드바에 있는 것의 내용을 변경하기 위해 스킨을 편집하려하는 사태가 벌어질 수도 있다는 의미입니다. 일반 사용자의 입장에서 봤을 때 사이드바 스킨이라는 것이 무엇인지 알거라 기대하는 것은 무리가 아닐까요?)

6

답글: 사이드바 시스템

3.
제목이 "각종 검색"이고
N사 G사 D사 검색 플러그인이 덕지덕지 붙은 케이스를 보시면 될 것 같습니다.
(더불어 태터툴즈나 티스토리, 혹은 호스팅 주체의 배너를 쉽게 넣고 빼고 하는 시나리오를 생각중입니다.)

4.
현재 sandbox의 경우 이 문제가 걸리더군요. 동일 내용을 두가지 치환자로 표시가능하다 보니 동시에 출력될때 문제가 있습니다. 단일화 시키는 쪽으로 생각중입니다. 즉 과거의 치환자죠.

5와 같이 해서..
가령 "태그목록"이나 "최신댓글"에 대해 li로 할것인지 table할 것인지를 스킨에서 마음대로 할 수 있었는데 현재 시스템에서는 패널모드와 동시에 이런 부분을 지정할 수 없는 문제가 있습니다.
기존 태그를 보완할 생각입니다.


7. 좋은 지적이군요.
"기존처럼 수정해도 될 수 있도록 해야 겠습니다."라는 조건을 더 걸어보죠. 관리자의 설정을 통한 변경과 스킨파일을 직접 수정하는 방법 모두 가능토록 고민은 하고 있습니다.

7

답글: 사이드바 시스템

gendoh 작성:

http://forum.tattertools.com/ko/viewtopic.php?id=1097
의 내용을 이쪽에서 제대로 진행시키겠습니다.

사이드바의 기본 기능성은 다음과 같습니다.
http://by.tistory.com/attach/300/1174125280.png
1. 패널 추가
배너, 광고, 커스텀 패널등을 기존의 스킨편집-치환자 추가 방식이 아닌 관리자 화면의 설정에서 할 수 있어야 한다.
2. 패널 삭제
추가된 것을 다시 제거하는 것도 포함하여 기존의 "최근 댓글"등을 쉽게 On/Off 할 수 있어야 한다.
3. 패널 위치 이동
추가된 것, 기본 패널(카테고리, 최근 댓글등)의 순서를 쉽게 조정할 수 있게 한다.
여러개의 사이드바를 지원하고 이들간의 이동은 옵셔널로 고려한다.


추가되는 패널은 다음 그림과 같은 확장성도 고려하겠습니다. 하나의 타이틀에 하나의 항목이 붙을 수도 있지만 여러개가 붙는 경우도 있고 태터툴즈 로고같이 독립적인 항목도 있습니다.
http://by.tistory.com/attach/300/1264830174.png

부가 요구사항을 정의합니다.
4. 기존 스킨의 호환성
다른 모든 변화를 포함하여 가능하면 기존 1.0용 스킨이 정상적으로 보여질 수 있어야 합니다.
더불의 스킨 디자이너가 기존의 스킨을 사이드바 시스템을 사용할 수 있는 형태로 변환하는 작업이 가능하면 쉬워야 합니다.
기본 패널은 안되더라도 추가패널은 모험심이 있는 사용자가 어느정도의 용기로 사이드바 치환자를 넣음으로서 사용할 수 있도록 지원합니다.(옵셔널)

5. 디자이너의 커스터마이제이션 요소
기본패널의 모양은 기존의 치환자 시스템을 이용하여 스킨 디자이너가 원하는 모양을 취할 수 있도록 합니다.
더불어 스킨이 처음 적용되었을때 기본 패널들의 위치(order 포함)와 모양을 지정할 수 있도록 합니다.
그리고 사용자는 위치를 쉽게 변경할 수 있어야 합니다.(모양은 스킨 편집하면 됩니다. 1,2,3번 기능만 고려합니다.)

제한사항(Constraint)
6. 치환자 수정 자제
1.0의 치환자를 삭제 혹은 변환은 자제합니다. 치환자를 추가하는 경우 기능을 더 쓸 수 있도록 해주는 방향으로 합니다.

7. 디폴트 설정
초기상태가 공백이 아니라 기본적인 것은 갖추어져 있는 상태여야 합니다.
사이드바 시스템의 경우 스킨을 새로 적용한 시점에서 사이드바에 아무것도 없는 것이 아니라 기본패널들은 적절한 위치에 보여야 사용자들이 해메지 않습니다.


~~~~~~~~~~~~~~
PS. 현재 사이드바 티켓을 찾지 못하고 있습니다. 혹시 번호 아시는분~~ 포럼의 관계글은 모두 해당 티켓과 연결시켜야 되겠습니다.
사이드바 시스템을 티스토리의 적용까지 제가 맏게 되어 현재 sandbox의 기능을 다듬는데 직접 참여하게 되었습니다. ㅠ.ㅠ
티켓 찾아지는데로 추가될 치환자를 정리하겠습니다.

사이드바 시스템을 재구성하였습니다. 이와 관련해서,

1. 이 문제는 해결 되었다고 봅니다.
2. 이 문제도 뭐 문제는 없다고 봅니다.
3. 단일 사이드바만 고려되어 설계되었습니다. 구현 뒤에 이 티켓을 봐서 미처 복수 사이드바 경우를 고려하지 못했습니다.
한 모듈에 복수 컨텐츠가 포함될 수도 있는 문제는 [##_sidebar_contents_##]를 가공해서 뿌려주는 방식으로 해결할 수도 있지 않을까요?
4. 기존 스킨 호환성이 확보 되었습니다.
5. 기존 방식에서 스킨 태그나 치환자로 구현되던 기능의 자유도가 계승되었습니다.
6. 1.0 방식의 치환자는 전혀 수정되지 않았습니다.
7. 스킨에 선언된 사이드바 모튤은 초기 로드 상태에서도 로딩되어 표시됩니다.

8

답글: 사이드바 시스템

graphittie 작성:

사이드바 시스템을 재구성하였습니다. 이와 관련해서,

1. 이 문제는 해결 되었다고 봅니다.
2. 이 문제도 뭐 문제는 없다고 봅니다.
3. 단일 사이드바만 고려되어 설계되었습니다. 구현 뒤에 이 티켓을 봐서 미처 복수 사이드바 경우를 고려하지 못했습니다.
한 모듈에 복수 컨텐츠가 포함될 수도 있는 문제는 [##_sidebar_contents_##]를 가공해서 뿌려주는 방식으로 해결할 수도 있지 않을까요?
4. 기존 스킨 호환성이 확보 되었습니다.
5. 기존 방식에서 스킨 태그나 치환자로 구현되던 기능의 자유도가 계승되었습니다.
6. 1.0 방식의 치환자는 전혀 수정되지 않았습니다.
7. 스킨에 선언된 사이드바 모튤은 초기 로드 상태에서도 로딩되어 표시됩니다.

흐흐 수고하셨습니다. smile

atom feed 기능 추가는 하긴 했는데, 부가 필드들에 대한 스펙을 못찾아서 영 어설프네요. 일단은 보강해서 내일 커밋하겠습니다 smile

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'

9

답글: 사이드바 시스템

베타 1에 사이드바가 잠시 짤려 나갈겁니다 smile

요건이 많아서 베타 2로 스륵-

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'

10

답글: 사이드바 시스템

베타 2에서 구현된 사이드바 기능에 대한 설명입니다. 기본 폼 구조는 제가, 폼 구조의 완성과  AJAX 기능 입히기은 gendoh님이 작업하셨습니다.

1. 패널 추가
패널(내부 상으로는 '모듈'이라 표현되고 있으나 곧 적절한 한글로 대체될 것입니다. 여기서는 이하 패널로 통칭하기로 하겠습니다.)은 '스킨 내부에 선언된 것(이하 스킨 패널로 통일)'과 '플러그인으로 제작된 것(이하 플러그인 패널로 통일)'입니다. 스킨 패널은 기존 스킨에서 사이드바 부분에 통상적으로 들어가던 것들이라 보시면 되겠습니다. 이 둘의 결정적인 차이는 중복가능여부입니다. 스킨 패널은 중복포함될 수 없지만 플러그인 패널은  DB가 허락하는 한 중복포함이 가능하죠.

2. 패널 삭제
플러그인 패널은 인스턴스 생성이라 삭제하면 그냥 사라지지만, 스킨 패널은 고유 요소이기 때문에 사이드바에서 삭제시 '사용가능한 스킨 모듈' 리스트에 나타나게 됩니다. 반대의 경우는 사이드바에 나타나고 '사용가능 스킨 모듈' 리스트에서 사라지겠죠.

3. 패널 위치 이동
드래그앤 드랍으로 자유롭게 등록된 사이드바 패널의 위치를 변경하실 수 있습니다. 상하 조절은 물론, 사이드바 간의 위치 이동도 가능합니다.

4. 기존 스킨의 호환성 / 5. 디자이너의 커스터마이제이션 요소
일단 현재로서 기존 스킨과의 호환성은 100%입니다만, 이후 보강될 상하위 레거시 보정 기능의 진행에 따라 변화가 있을 수 있습니다. 어쨌든 현재는 1.1에서 1.0.x 스킨을 바로 사용할 수 있으며, 1.1용 스킨을 1.0.x에서 사용할 수도 있습니다.

1.0.x 스킨에 사이드바 기능을 사용하시려면  <s_sidebar_xxx[n]> 형태의 새 스킨 태그를 사용하셔야 합니다. 사용법은 아주 간단하며 예제는  베타2에 포함된 tistory 스킨에 포함되어 있습니다.

6. 치환자 수정 자제
1.0 스킨 태그/치환자 구조에 추가가 되었을 뿐, 변경은 하지 않았습니다. 이를 통해 하위 호환성이 보장됩니다.

7. 디폴트 설정
스킨 초기 로딩 시에는 스킨 패널이 기본으로 보이게 됩니다. 이 상태는 1.0.x에서 보는 것과 동일한 형태입니다.

이상입니다. 아마도 이번 1.1에서 가장 큰 변화라고 한다면 이미지 리샘플링, 키로그 부활, 사이드바 기능이 아닌가 합니다. 특히 이 사이드바 기능은 전세계적으로도 유례가 없는 편리한 기능으로 탄생시키기 위해 여러분들께서 노력중이십니다.(특히 gendoh사마) 많은 관심을 부탁드립니다.

graphittie (2006-10-04 10:41:55)에 의해 마지막으로 수정

11

답글: 사이드바 시스템

두 분 모두 수고 많으셨습니다. 호환성 부분 한번 테스트 해봐야겠네요^^

lunamoth (2006-10-04 13:08:42)에 의해 마지막으로 수정