Skip to content
achimnol edited this page Oct 9, 2012 · 4 revisions

텍스트큐브는 복수개의 사이드바를 표시할 수 있습니다. 플러그인은 사이드바에 들어갈 수 있는 위젯을 생성할 수 있고, 스킨에 기본으로 내장한 위젯들과 함께 동작하도록 할 수 있습니다. 사용자들은 관리자 화면에서 스킨에 내장된 위젯들과 플러그인이 만든 위젯들을 복수개의 사이드바 중 원하는 위치에 드래그 앤 드랍으로 끌어서 재배치 할 수 있습니다.

기본 개념

텍스트큐브의 플러그인 위젯들은 크게 사이드바 위젯, 텍스트큐브 센터 위젯, 표지 위젯으로 나눌 수 있습니다. 일반적인 플러그인의 출력과 플러그인 위젯의 크게 다른 점이 있습니다. 플러그인이 생성한 위젯들은 드래그앤 드랍 (끌어놓기)를 지원합니다. 또한 플러그인 위젯의 경우 고유한 영역과 함께 플러그인 환경 설정 이외의 위젯 설정 값을 소유할 수 있다는 차이점이 있습니다.

예제: Hello World

그럼 다시 Hello World를 출력하는 사이드바 위젯의 예제를 보겠습니다.

  • index.xml
    <?xml version="1.0" encoding="utf-8"?>
    <plugin version="1.0">
      <title xml:lang="ko">안녕 세상아! (사이드바 예제)</title>
      <link>http://www.example.com/</link>
      <version>1.0</version>
      <description xml:lang="ko">여기저기에 Hello world!를 출력해보는 예제 플러그인입니다.</description>
      <license>GPL</license>
      <author xml:lang="ko" link="http://www.example.com">슈퍼맨</author>
      <safety changeData="no" exposeData="no" accessLocal="no" accessRemote="no" accessRaw="no" />
      <requirements>
        <textcube>1.5</textcube>
      </requirements>
      <binding>
         <sidebar title="HelloWorld" handler="Helloworld_Show" />
      </binding>
    </plugin>
    <binding><sidebar>가 들어간 것을 볼 수 있습니다. <sidebar>는 사이드바 위젯을 생성합니다. <sidebar>에는 반드시 title과 handler가 지정되어 있어야 합니다.
    • title: 사이드바 위젯의 이름입니다. 호환성을 위하여 반드시 영대소문자 및 숫자만을 사용하시기 바랍니다. (경우에 따라서는 관계없습니다.)
    • handler: 사이드바 위젯을 실제로 출력해주는 함수를 사이드바 위젯의 핸들러로 지정합니다.

환경 설정 패널 추가하기

사이드바 위젯도 다른 플러그인과 마찬가지로 환경설정 패널을 사용할 수 있습니다. 환경설정 패널의 설명은 이 문서를 참고하세요.

파라미터 사용

사이드바 위젯, 표지 위젯과 센터 위젯은 환경 설정 패널에서 지정할 수 있는 환경 변수와는 별도로 파라미터를 가질 수 있습니다.
위에 기술한 Hello world! 플러그인의 'Hello World!' 메세제를 위젯의 파라미터를 사용하여 변경할 수 있도록 해 보겠습니다.

  • index.xml
    <?xml version="1.0" encoding="utf-8"?>
    <plugin version="1.0">
      <title xml:lang="ko">안녕 세상아! (사이드바 파라미터 예제)</title>
      <link>http://www.example.com/</link>
      <version>1.0</version>
      <description xml:lang="ko">여기저기에 Hello world!를 출력해보는 예제 플러그인입니다.</description>
      <license>GPL</license>
      <author xml:lang="ko" link="http://www.example.com">슈퍼맨</author>
      <safety changeData="no" exposeData="no" accessLocal="no" accessRemote="no" accessRaw="no" />
      <requirements>
        <textcube>1.5</textcube>
      </requirements>
      <binding>
         <sidebar title="HelloWorld" handler="Helloworld_Show">
            <params>
               <param>
                   <title xml:lang="ko">출력 메세지</title>
                   <name>message</name>
                   <type>string</type>
               </param>
            </params>
         </sidebar>
      </binding>
    </plugin>
    위의 예를 보면 <sidebar> 부분이 한 줄로 완결되지 않고 영역으로 정의된 것을 볼 수 있습니다. <params> 안에 <param>이 정의되어 있는 것을 볼 수 있습니다. <params> 안에 <param>들을 여러개 집어 넣어 복수개의 파라미터가 지정이 가능합니다.
    <param>의 경우
    • title: 파라미터의 설명입니다. 위젯 파라미터 창에서 보여집니다.
    • name: 파라미터의 변수명입니다.
    • type: 파라미터의 종류입니다. 가능한 값으로는
      • textarea
      • string
      • int
        등이 있습니다.

그럼 이제 이 값을 받아 실행할 index.php 를 살펴봅시다. 사이드바 위젯의 핸들러는 실행되는 시점에 위에서 정의한 파라미터를 모두 인자로 받아옵니다.

  • index.php
    <?php
    function Helloworld_Show($parameters)
    {
        if (isset($parameters['message']))
            return $parameters['message'];
        else
            return 'Hello World!';
    }
    ?>
    파라미터에 값이 있는지 체크해서 있는 경우 그 값을 사이드바에 출력해 주고, 없는 경우에는 'Hello World!'를 사이드바 위젯에 출력해 줍니다.

  • (당연한 이야기이지만) 플러그인 하나가 서로 다른 역할을 하는 복수개의 다른 종류의 사이드바 위젯을 만들 수 있습니다. 또한, 하나의 플러그인이 사이드바,센터,표지 위젯뿐만 아니라 listener 이벤트 동작, tag 이벤트 동작에 대한 기술을 모두 담고 있을 수도 있습니다.
  • 파라미터의 경우 플러그인 환경 설정까지 가지 않더라도 사이드바의 끌어넣기 인터페이스에서 바로 버튼을 눌러 쉽게 값을 입력할 수 있는 장점이 있습니다. 간단한 환경 설정 값의 경우, 파라미터 기능을 이용하는 것이 훨씬 직관적입니다.
Clone this wiki locally