-
Notifications
You must be signed in to change notification settings - Fork 52
PluginDBHandle
achimnol edited this page Oct 9, 2012
·
3 revisions
환경 설정 값들이나 저장을 위해 지원되는 컴포넌트들이 플러그인의 데이터를 저장하기에 충분하지 않은 경우, 텍스트큐브는 플러그인이 사용할 수 있는 전용의 테이블을 단수 또는 복수개를 만들 수 있도록 API를 지원합니다.
플러그인이 사용하는 테이블을 만들기 위해서는 storage 섹션을 추가해야 합니다. 텍스트큐브의 플러그인 중 하나인 '팀블로그 설정' 플러그인을 예로 들어 보겠습니다.
... <title xml:lang="ko">팀블로그 설정</title> <handler>getTeamBlogSettings</handler> </method> </viewMethods> </adminMenu> </binding> <storage> <table> <name>TeamUserSettings</name> <fields> <field> <name>userid</name> <attribute>int</attribute> <length>11</length> <isnull>0</isnull> <default>1</default> </field> <field> <name>style</name> <attribute>varchar</attribute> <length>255</length> <isnull>1</isnull> <default></default> </field> <field> <name>image</name> <attribute>varchar</attribute> <length>32</length> <isnull>1</isnull> <default></default> </field> <field> <name>profile</name> <attribute>text</attribute> <isnull>1</isnull> <default></default> </field> <field> <name>updated</name> <attribute>int</attribute> <length>11</length> <isnull>0</isnull> <default>0</default> </field> </fields> <key>userid</key> </table> </storage> </plugin>
storage 섹션은 어떤 종류의 테이블을 플러그인이 사용하는지 알려주는 역할을 합니다. 가장 위부터 차례대로 보겠습니다.
-
<name>TeamUserSettings</name>: 플러그인이 사용하는 테이블의 이름입니다. 이 이름에 텍스트큐브의 기본 prefix (설치시 기본 값은 tc_ 입니다) 가 붙은 테이블이 최종적으로 생성됩니다. -
<fields>: 필드들을 정의합니다. 주의하셔야 할 점은, 필드를 정의할 때 따로 정의하지 않더라도 블로그들을 구분하기 위한 필드인 blogid 라는 필드가 자동으로 생성됩니다. 따라서 블로그를 구분하기 위하여 별도의 필드를 만드시지 않아도 됩니다.-
<field>: 필드 하나의 시작입니다. -
<name>updated</name>: 테이블의 필드의 이름입니다. 영소문자가 가능합니다. 대문자를 사용할 경우, 일부 DBMS에서 오류 메세지가 나올 수 있습니다. -
<attribute>int</attribute>: 필드의 속성입니다. 여기서는 integer를 지정했습니다. 이 이외에도 일반적인 DBMS들이 지원하는 속성을 사용할 수 있습니다. tinyint, varchar, text 이외에도 다양한 속성들이 있습니다. 자세한 부분은 사용하거나 지원할 DBMS의 매뉴얼을 참고하세요. -
<length>11</length>: 필드의 길이입니다. -
<isnull>0</isnull>: 필드에 null값을 허용할 것인지의 여부를 결정합니다. -
<default>0</default>: 기본 값을 지정합니다. </field>
-
위와 같이 xml에 사용할 테이블의 속성을 명기하면, 이후 플러그인이 테이블을 필요로 할 경우 해당되는 테이블이 자동으로 생성됩니다. 생성된 테이블은 관리자 메뉴의 '플러그인'-'플러그인 테이블 관리' 에서 사용 내역을 보거나 삭제할 수 있습니다.