-
Notifications
You must be signed in to change notification settings - Fork 55
PluginAdmin
achimnol edited this page Oct 9, 2012
·
4 revisions
텍스트큐브의 관리자 화면은 메인 메뉴와 서브 메뉴로 구성되어 있습니다. 플러그인에서 관리자 화면에 새로운 메뉴를 만들 수가 있습니다. 다른 플러그인의 경우 잘 정의된 패널 API등을 제공하지만, 관리자 화면에 직접 한 섹션을 만드는 경우 그에 더하여 사용자가 직접 관리자 화면의 해당 섹션에 출력되는 모든 출력 부분을 만들어야 합니다.
관리자 메뉴를 만들기 위해서는 binding에 adminMenu 섹션을 추가해야 합니다. 텍스트큐브의 기본 플러그인인 방문자 기록 플러그인의 일부를 예제로 들겠습니다.
-
index.xml
<binding> <adminMenu> <viewMethods> <method> <topMenu>center</topMenu> <contentMenuOrder>3</contentMenuOrder> <title xml:lang="en">Visitors</title> <handler>PN_Visitor_Default</handler> <params> <param> <name>date</name> <type>int</type> <mandatory>0</mandatory> </param> </params> </method> </viewMethods> </adminMenu> </binding>
viewMethods에서는 관리자 섹션의 기본 사항을 제어합니다. Image(PluginAdmin:menusample1.png, right ,nolink)
-
topMenu
: 관리자 플러그인이 만들 섹션이 위치할 상위메뉴를 지정합니다. 가능한 상위 메뉴로는 ( center / entry / link / skin / plugin / setting / (control - 전체 관리자만 사용가능) ) 이 있습니다. -
contentMenuOrder
: 하위 메뉴에서의 위치를 지정합니다. 왼쪽부터의 순서입니다. 같은 순서를 사용하는 플러그인이 있을 경우에는 알파벳 정렬 순으로 플러그인이 배열됩니다. -
title
: 섹션의 이름을 결정합니다. 옆의 스크린샷에서 미투데이 친구들, 방문자 기록 등으로 표시되는 부분입니다. -
handler
: 해당 섹션의 링크로 이동했을 때 호출될 함수이름입니다. 이 함수의 리턴값은 화면에 실제로 뿌려주는 html 코드입니다.
관리자 플러그인의 특성상 메뉴가 호출될 때 여러 인자를 필요로 하는 경우가 있습니다. 예를 들면 위에서는 특정한 날짜의 방문자수를 보고 싶을 경우 관리자 패널에 날짜값을 보내주어야 합니다. 텍스트큐브는 PHP의 버전에 따라 보안상 발생할 수 있는 문제를 방지하기 위하여 모든 GET/POST/REQUEST에 대하여 input validation을 실시하기 때문에 단순하게 넘길 경우 플러그인이 아무 값도 받지 못합니다. input validation을 통과하기 위한 값을 지정하기 위하여 params가 필요합니다.
-
name
: 넘어가는 값의 변수명입니다. GET!['date']를 받고 싶은 경우 name에 date를 지정하면 됩니다. -
type
: validation을 실시하기 위한 타입을 지정합니다. any, bit, bool, number, int, id, url, string, list, timestamp, period, ip, domain, email, language, filename, directory, path, file이 가능합니다. -
mandatory
: 필수적으로 이 값이 넘어와야 하는지를 지정합니다. true인 경우 반드시 이 변수가 넘어와야 동작하고, false인 경우 넘어오지 않으면 무시합니다. -
default
: 아무 값도 넘어오지 않았을 때의 기본 값을 지정합니다.
-
- 관리자 화면의 메뉴를 디자인하기 위해서 CSS파일을 사용할 수 있습니다. 플러그인 디렉토리에 plugin-main.css 를 넣는 경우 관리자 섹션을 여는 시점에서 텍스트큐브가 그 CSS 파일을 불러옵니다. 인터넷 익스플로러 7을 위한 workaround를 필요로 하는 경우 plugin-main.ie7.css를 추가적으로 넣는 경우 그 CSS파일도 불러옵니다.
- Source | Wiki Front | Main | Notice