Skip to content
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에 사용할 테이블의 속성을 명기하면, 이후 플러그인이 테이블을 필요로 할 경우 해당되는 테이블이 자동으로 생성됩니다. 생성된 테이블은 관리자 메뉴의 '플러그인'-'플러그인 테이블 관리' 에서 사용 내역을 보거나 삭제할 수 있습니다.

Clone this wiki locally