51

(148 답글들, 스킨 및 플러그인에 작성)

아 그리고 caption 에서 CDATA 섹션 처리 안하셧습니다.

52

(148 답글들, 스킨 및 플러그인에 작성)

실수시네요 ㅎㅎ 힌트는 뒷부분.....

53

(148 답글들, 스킨 및 플러그인에 작성)

ㅠㅠ 제가 지금.... 따른쪽 일을 하고 있어서리... ㅠㅠ 크
어느 분이 해주실분 안계신가요?

54

(148 답글들, 스킨 및 플러그인에 작성)

네 아주 쉬운 방법이 있습니다 ^^;; 플러그인을 껏다가 키면 기본값으로 돌아 간답니다 ㅎㅎ
이거는 플러그인 자체의 동작 방식때문입니다. 즉 설정값은 플러그인이 활성화 될때까지만 유효합니다. ^^;;

55

(148 답글들, 스킨 및 플러그인에 작성)

^^ ㅎㅎ 다행이네요
크기부분은 그리 어렵지 않으니 ^^ 다음 분이 ~~ 해주시겠죠^^
( 또다른 업무가 할당되서리 ㅎㅎ;;)

ps1. 오우 부럽습니다.
ps2. 흠 다국어가 필요한 title legend caption등등을 element로 빼고.. 네임 스페이스를 받는 방법으로 가면 될것 같긴하네요 위의 description과
        같이요..

56

(148 답글들, 스킨 및 플러그인에 작성)

흠 제쪽에서 제현이 안되는 군요 ㅠㅠ
혹시 [sql 이 utf8 이 아닌 부분] 이부분이 아닐런지 생각도 드는데... 어찌 확인해 볼 방도가...

57

(148 답글들, 스킨 및 플러그인에 작성)

흠 확인해서 처리 하였습니다. 참조값 문제 엿네요

58

(148 답글들, 스킨 및 플러그인에 작성)

오우 디자인 봣습니다.. 역시 깔끔하네요 ^^ ㅎㅎ
그리고 파커님 플러그인에서 사용되는 것 봤습니다.^^
감동입니다. ㅎㅎ

59

(148 답글들, 스킨 및 플러그인에 작성)

어라 제가 할때는 잘가져오는데용.....

60

(148 답글들, 스킨 및 플러그인에 작성)

잘 부탁드립니다..
아 그리고 기본 설정 스킨점 제작해주실분~~~ /style/configStyle.css 입니다.... 제가 디자인하건 otL 대략 절망
http://dev.tattertools.com/attachment/wiki/sihwp/img/tt2.JPG?format=raw

61

(148 답글들, 스킨 및 플러그인에 작성)

일단 커밋을 하겠습니다. 다른 부분에는 영향을 안미치니 ^^
검증 부탁드립니다....

62

(148 답글들, 스킨 및 플러그인에 작성)

참고로 configStyle.css 정의

/*그룹 스타일*/
#config_data fieldset{
}
/*그룹 제목 스타일*/
#config_data fieldset legend{
}
/*하나의 필드 항목*/
#config_data fieldset div.field {
}
/*하나의 필드 제목*/
#config_data fieldset div.field label.fieldtitle  {
}
/*하나의 필드 설명*/
#config_data fieldset div.field div.fieldcaption  {
}

/*하나의 필드 컨트롤들 이외에 컨트롤들은 id로 접근 가능*/
#config_data fieldset div.field span.fieldcontrol .textcontrol  {
}
#config_data fieldset div.field span.fieldcontrol .selectcontrol  {
}
#config_data fieldset div.field span.fieldcontrol .textareacontrol  {
}
#config_data fieldset div.field span.fieldcontrol .checkboxcontrol  {
}
#config_data fieldset div.field span.fieldcontrol .radiocontrol  {
}

63

(148 답글들, 스킨 및 플러그인에 작성)

일단 daybreaker님 이전에 나왔던 항목들은 모두 충족시켰습니다. javascript만 빼고 ^^;;

1. manifest 스키마
  1. <binding> 아래 <config> 항목추가
  2. <config>
    attribute : dataValHandler : 디비에 저장 되기 전에 값을 검증 할 수 있는 핸들러를 받습니다. 예제는 tattertoolsbirthday를 참조
    child element : fieldset
  3. <fieldset> 설정값을 그룹핑 할 수 있습니다. html code => <fieldset ></~ 로 변경됨
    attribute : legend
    child element : field
  4. field : 실제로 받을 설정값에 대한 정의입니다. type에 따라 <input <select <textarea 로 변경 됩니다.
    attribute : type : 가능한 type 'textare' 'text' 'select' 'checkbox' 'radio' ==> 이에 따라 각 컨트롤로 변경됩니다.
                   title , titledirection : 각 설정항목의 제목입니다. titledirection ="bk" 이면 컨트롤 뒤에 제목이 나옵니다. 아니면 앞에
                   size, rows, cols ==> 일반 적으로 html과 같은 의미입니다...( 타입에 따라 적용이 되는 경우 안되는 경우가 있습니다...)
                   value : 각 컨트롤의 기본값입니다... 단 이 값이 실제 플러그인 구현부의 기본값에 영향을 미치지 않습니다..동기화는 각자 알아서
                              단 type="textarea" 인경우 기본값은 <field><![CDATA[ 기본값]]> <caption>..   으로 접근 됩니다. 
                   child element : caption , op
  5. caption  : 말그대로 캡션 <div class="fieldcaption" >...</div > 로 변경됩니다.
  6. op : field type 이 radio ,select , checkbox 인 경우 필요합니다.
            radio 일때는 <input type='radio ~
            select 일때는 <option ~
            checkbox 일때는 <input type='checkbox~~ 로 변경 됩니다.

     attribute : value : html과 의미가 같습니다.
                     checked : "checked" 이면 체크 됩니다. ^^;;
                     name: field type ="checkbox" 일 때 쓰입니다. 이 이름은 유일 해야하면 나중에 설정값에서 array[name]=value 로 접근 합니다..
  * 항목  제한 조건
    1. field 와  op의 name 항목은 유일해야 합니다. ==> id값으로 쓰임

2. 설정 값 사용 시
  각 플러그인 구현이나 dataValHandling 시 설정 값에 접근 할수 있습니다.
 

 /* $plugin/index.php 에서 */
   function myplugin(~ {
       /**************필수*****************/
       global $configVal;   //xml 데이터 입니다.
       $myconfig = fetchConfigVal( $configVal ); //xml 데이터를 쓰기 편한 array형식으로 변환해줍니다.
       /**************필수*****************/

       // yourConfigName : 위에서 플러그인 사용자가 미리 정해놓은  fied name 이나 op name
       $myconfig[  'yourConfigName' ] .... // 사용자가 저장한 값에 접근 하여 사용
   }
   ......

birthday 예제

   <binding>
    <tag name="TattertoolsBirthday" handler="TattertoolsBirthday_TattertoolsBirthday" />
    <config dataValHandler = "TattertoolsBirthdayDataSet" >
        <fieldset legend="기념일를 넣어주세요" >
            <field title="월" name="month" type="select"  titledirection="bk" >
                <caption> 월입니다.. 월 </caption>
                <op value="1">1</op>
                <op value="2" >2</op>
                <op value="3" checked="checked">3</op>
                <op value="4">4</op>
                <op value="5">5</op>
                <op value="6" >6</op>
                <op value="7">7</op>
                <op value="8">8</op>
                <op value="9">9</op>
                <op value="10">10</op>
                <op value="11">11</op>
                <op value="12">12</op>
            </field>            
            <field title="일" name="day" type="text"  size ="3" titledirection="bk"  value="13">
                <caption > 날짜는 숫자로만 넣어주삼</caption>
            </field>
        </fieldset>
        <fieldset legend="예제1" >
            <field title="셋팅1" name="t1" type="text" size="3" />
            <field title="셋팅2" name="t2" rows="2"  type="textarea" value ="처음>>값" />
            <field title="선택" name="t6" type="radio"  >
                <op value="1">1</op>
                <op value="2" checked="checked">2</op>
                <op value="3">3</op>
                <op value="4">4</op>
            </field>            
        </fieldset>
        <fieldset legend="예제2" >
            <field title="선택" name="t3" type="select"  >
                <op value="1">1</op>
                <op value="2" checked="true">2</op>
                <op value="3">3</op>
                <op value="4">4</op>
            </field>
            <field title="체크박스" name="t4" type="checkbox"  >
                <op name="c1" value="1">가나다라</op>
                <op name="c2" value="2" checked="checked">일이삼사</op>
                <op name="c3" value="3">오륙칠팔</op>
                <op name="c4" value="4">가나다라2</op>
                <op name="c5" value="5" checked="checked">일이삼사2</op>
            </field>
        </fieldset>
    </config>
  </binding>
   요런 설정이면 플러그인 구현에서 아래와 같이 제공 됩니다.... 

array(11) {
  ["month"]=>string(1) "7"
  ["day"]=> string(2) "12"
  ["t1"]=> string(5) "sdfsd"
  ["t2"]=> string(6) "sdfsdf"
  ["t6"]=> string(1) "2"
  ["t3"]=>  string(1) "3"
  ["c1"]=>  string(0) ""
  ["c2"]=>  string(1) "2"
  ["c3"]=>  string(0) ""
  ["c4"]=>  string(1) "4"
  ["c5"]=>  string(1) "5"
}

3. 디스플레이
설정 창 화면은 따로 플러그인 제작자가 신경 안쓰면 기본 style을 사용합니다.
만약 스킨을 따로 먹이고 싶으시면 플러그인 폴더에 configStyle.css 파일을 넣어 주시면 되겠습니다... css 구조는 역시 birthday.....참조하시길...


이정도면 될가요... 추가적인 기능 이외에 의견 받고 오케이면 커밋하겠습니다.

64

(148 답글들, 스킨 및 플러그인에 작성)

수정 사항입니다.
-- 클라이언트 --
1. CSS 는 index.xml처럼 configStyle.css 가 동일 플러그인 폴더에 있는경우 그것을 씁니다. 없으면 걍 기본 /style/configStyle.css 를 씁니다.
2. 자바스크립트 부분은 ...  일단 보류 입니다.. 나중에 넣어도 크게 문제가 되지 않다 싶을 때 적용시키는 것이 낳을 듯합니다.
    적용시켜도 크게 문제가 되지 않을 지는 ^^ 제가 아닌 다른 분이 판단해주시고 작업해주시면 될듯합니다..
    ps... 치환자보다는 위의 경우처럼  기본 파일을 받고 삽입해주는게 더 낳을 듯
3. xhtml 트랜지셔날을 따릅니다.
4. 모든 control은 id로 접근 합니다.....

-- 서버코드 --
5. 설정값 접근이 1depth 로 바꼈습니다. array[이름]= 값
   단 checkbox의 경우 이름 접근이 fied이름이 아니라 op 의 이름으로 접근 합니다..
6. manifest 스키마 변경 -- 완료되면 .... 알려드릴게용

""field 종류에 날짜와 시간 형식의 데이터가 들어갔으면 좋겠습니다."" 요거는 ^^ 다른 분이 해주시겠죠 ^^
조금 지지 부진하게 늘어지는 느낌이라 일단 위의 수정 사항까지만 진행하겠습니다. ^^
너무 오래 끌면 좋을게 없다는게^^ 경험상 ..

65

(148 답글들, 스킨 및 플러그인에 작성)

답답하긴 하지만  논의가 많이 되는것이 좋습니다. ^^ 원래 구글톡에서 graphittie 님하고 좀더 논의를 하고 들어가려고 햇는데 연락이 안되더군요 ^^;;

또 얻는 것도 쏠쏠찮습니다... 내공이라고 하죠 ㅎㅎ
방금 설정 화면에서
  <p>
    <a href="http://validator.w3.org/check?uri=referer"><img
        src="http://www.w3.org/Icons/valid-xhtml10"
        alt="Valid XHTML 1.0 Transitional" height="31" width="88" /></a>
  </p>
요거 따놨습니다.. ㅋㅋ

일단 오늘은 늦었으니 저는 이만 퇴근을 ㅎㅎ

아 이건 다른 문제점인데.....
현재 구조는 플러그인 제작자가 설정값을 모두 알고 있다는 전제하에 짜여지고 있어서 걱정됩니다.
''' 꼭 피해가려고 생각하는 사용자 '''는 분명 예측 가능한 설정값도 다루고 싶어할 듯합니다...
예를 들어 random photo viewer처럼 사용자의 글분류를 인수로 받는 경우 플러그인 제작당시에는 모르지만
예측 가능한 데이터를 다루고 싶어 할때는 방법이 없지요 ... 언제 이부분에 대한 논의도 하지요 ㅎㅎ

66

(148 답글들, 스킨 및 플러그인에 작성)

graphittie 작성:

저와는 반대의 마인드를 가지고 계시는 것 같군요. 전 관리자 화면에 위의 기능을 활용하게 하려고 일부러 자바스크립트 파일을 추가했는데 말이죠. 어쨌든 반대하시는 이유에 대해서는 나름 납득되었습니다.

^^;; 처음에 제시했던 부분이 가장 비용 대비 효과가 좋은 듯 했습니다....
ㅎㅎ 플러그인 개발자가 javascript로 화면을 제어하는 경우보다... html로 직접 접근하는 것이 낳지 않을 가요?
데이터도 직접 $_POST데이터 그대로 전달해주고... 자신이 원하는 포맷으로 저장하고....

67

(148 답글들, 스킨 및 플러그인에 작성)

graphittie 작성:

총체적으로 자바스크립트까지 염두에 두고 id를 생각하고 있습니다. class가 추가 된다고 나쁠 것은 없겠지요. 제가 제시한 1번 항목과도 관련이 있을 수 있습니다. name을 가공하는 것보다는 그 가공된 값을 id로 지정하는 편이 어떨까 합니다.

name은 중복될수 있고.... id는 유일해야하는 것으로 알고 있습니다.... radio 와 checkbox의 경우 field 항목의 name 하나로 접근되고 있습니다. 이런 경우
id를 사용하려면 가공이 들어가야할듯합니다....

68

(148 답글들, 스킨 및 플러그인에 작성)

graphittie 작성:
ghost_ghost 작성:

자바스크립트를 사용하면 이런 부분이 보장이 안되는듯 합니다.

이해가 잘 안 됩니다. 참고로 전 비전공자입니다. 좀 자세하게 설명 부탁드리겠습니다.:|

자바스크립트는 html를 모두 제어 할 수 있습니다.
즉 저희쪽에서 스키마를 만들 필요가 없는 것입니다..

 <script type="text/javascript">
   var someObject = document.createElement("원하는 html 엘리먼트");
   someObject.id = "someid";
    someObject.style.....="스타일"
   document.addChild..(someObject) ;
 </script>

와 같이 HTML 을 작성하는 것과 같은 효과를 가지게 됩니다...
이 부분이 왜 문제가 되느냐고 하시면.... 처음 논의되었던 부분으로 논점이 돌아가는 듯합니다....^^;;

69

(148 답글들, 스킨 및 플러그인에 작성)

기본 스타일로 가도록 하는 것도 방법이지만 여러 방법을 사용할 수 있다면 더 좋은 것이 아닐런지요. 애초 컨셉이 자유로운 레이아웃이었으니까요.

이부분은 처음 제시 되었던 방법이 가장 자유스러운 듯한데요 ^^;;; 처음에 말씀하셧던 부분도 통일된 인터페이스 였던것으로 알고 그에 따라 작업하고 있었습니다. 자바스크립트를 사용하면 이런 부분이 보장이 안되는듯 합니다.

70

(148 답글들, 스킨 및 플러그인에 작성)

1. 번 부분 수정 입니다. 
fieldset name attribute 삭제
fieldname 재계산 안함 입니다.....

ㅠㅠ  원래의도는 fieldset 별로 field name을 중복시킬수 있게 할 의도 였는데...
fieldset의 의미가 없으므로 name 이 유일하게 정해지도록 변경하겠습니다...

71

(148 답글들, 스킨 및 플러그인에 작성)

ㅠㅠ 그래서 dataValHandler를 추가 시킨건데....

지금 2.3.4.5.7. 번 작업 하고 있습니다.. ㅠㅠ http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd 요거 보면서....

엄청 삽질 해놨더라구요 ㅎㅎ

4. 7. 번 관련해서는 작업 끝내고 스키마 알려드릴게용
7. caption 위치 조정 할 필요 없죵 ? 3개면... 복잡하니... ㅋㅋ CSS로 해결해주세용 아싸리 div 로 처리해버리겠습니다...

72

(148 답글들, 스킨 및 플러그인에 작성)

1. name부분은 값에 접근 할때 필요하므로 그냥 가는 것이 날것 같습니다. 의도는 필드셋마다
2. id 보다는 class가 어떨지...
3. 제가 약간 착각 한게 있어서 ㅠㅠ 관련부분  다시 작성중입니다.
4. ??
5. 맞는 것 같습니다. 작업 중입니다.
7. 스키마 논의때 없었던듯한데...

6. 번에서 약간 이견이 있는데...
자바스크립트를 허용하면 처음 나왔던 방안(사용자가 html을 작성) 과 거의 틀리지 않은 상황이 될듯합니다....이에 대한 대안이 필요할듯 합니다.

73

(148 답글들, 스킨 및 플러그인에 작성)

추가 사항:
설정 플러그인 구현 및 검증 에서 설정값 접근 하는 법입니다.

  function myplugin(...){
    globl $configVal;
    $myConfig = fetchConfigVal( $configVal);
    //요렇게 하면 $myConfig에 앞에 글처럼 설정이 저장된 array가 뛰쳐나옵니다......
    ......

  }

74

(148 답글들, 스킨 및 플러그인에 작성)

크흑 IE 쪽 만 살펴보다가 다른부분은 못 건드렸군요 ㅎㅎ
아예 크기 부분을 사용자가 수정 할 수 잇게 하는 것이 낳겠습니다.
그리고 비활성화시 문제점은 수정하겠습니다.

75

(148 답글들, 스킨 및 플러그인에 작성)

일단 완성본 올렸습니다.
r742 입니다...
위의 문제점은 각 control 접근시 getElementsByName 을 사용하여 해결하였습니다.
제가 테스트해본 바로 FF 와 IE 모두 이상 없이 작동합니다.( 테스트 부탁드립니다. ^^;; )
이제 /style/configStyle.css  디자인만 남았는데.... 누구 해주실분 없으신가요.... 디자인은 제가 범접할수 없는 ..... 쪽이라