-
Notifications
You must be signed in to change notification settings - Fork 55
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에 사용할 테이블의 속성을 명기하면, 이후 플러그인이 테이블을 필요로 할 경우 해당되는 테이블이 자동으로 생성됩니다. 생성된 테이블은 관리자 메뉴의 '플러그인'-'플러그인 테이블 관리' 에서 사용 내역을 보거나 삭제할 수 있습니다.
- Source | Wiki Front | Main | Notice