참고사이트 - http://www.slideshare.net/flyskykr/xe-34832050, http://www.xeschool.com/xe/xenote_module_book_about
모듈명 : myboard (다국어지원과 관련한 내용은 기술하지 않습니다.)
모듈 설정 파일
1. 정보파일 (XE설치폴더/modules/myboard/conf/info.xml)
모듈의 정보파일을 작성하여 XE core가 인식할 수 있도록 합니다.
<?xml version="1.0" encoding="UTF-8"?>
<module version="0.2">
<title xml:lang="ko">나만의 게시판</title>
<description xml:lang="ko">문서 모듈을 사용한 나만의 게시판 모듈입니다.</description>
<version>1.0</version>
<date>2017-02-10</date>
<category>service</category>
<author email_address="" link="opencocktail@tistory.com">
<name xml:lang="ko">블렌더</name>
</author>
</module>
2. 모듈파일 (XE설치폴더/modules/myboard/conf/module.xml)
<grant> 요소는 모듈에 대한 사용 허가 권한에 대한 내용으로 생성된 각 모듈별 [권한관리 > 권한설정] 에서 확인할 수 있고 <grant> 요소 내 default, target 속성에 들어갈 수 있는 값은 guest/member/manager/root 입니다.
<action> 요소는 type 속성을 지정하여 해당 파일별로 호출할 수 있는 함수명을 정의하였습니다. standalone 속성은 반드시 mid 파라미터를 가지고 실행을 해야 하는 경우에 false로 세팅을 해야 하며, 이 속성을 사용을 하지 않으면 보안에 문제가 생길 수 있습니다.
<?xml version="1.0" encoding="utf-8"?>
<module>
<grants>
<grant name="list" default="guest">
<title xml:lang="ko">목록</title>
</grant>
<grant name="view" default="guest">
<title xml:lang="ko">열람</title>
</grant>
<grant name="write" default="guest">
<title xml:lang="ko">작성</title>
</grant>
<grant name="delete" default="guest">
<title xml:lang="ko">삭제</title>
</grant>
</grants>
<permissions>
<permission action="dispMyboardAdminContentList" target="manager" />
<permission action="dispMyboardAdminInsertContent" target="manager" />
<permission action="dispMyboardAdminDeleteContent" target="manager" />
<permission action="dispMyboardAdminGrantInfo" target="manager" />
<permission action="dispMyboardAdminSkinInfo" target="manager" />
<permission action="procMyboardAdminInsertContent" target="manager" />
<permission action="procMyboardAdminDeleteContent" target="manager" />
</permissions>
<actions>
<action name="dispMyboardDocumentList" type="view" index="true" />
<action name="dispMyboardViewDocument" type="view" />
<action name="dispMyboardInsertDocument" type="view" />
<action name="dispMyboardDeleteDocument" type="view" />
<action name="procMyBoardInsertDocument" type="controller" />
<action name="procMyBoardDeleteDocument" type="controller" />
<action name="dispMyboardAdminContentList" type="view" standalone="true" admin_index="true" />
<action name="dispMyboardAdminInsertContent" type="view" standalone="true" />
<action name="dispMyboardAdminDeleteContent" type="view" standalone="true" />
<action name="dispMyboardAdminGrantInfo" type="view" standalone="true" />
<action name="dispMyboardAdminSkinInfo" type="view" standalone="true" />
<action name="procMyboardAdminInsertContent" type="controller" standalone="true" />
<action name="procMyboardAdminDeleteContent" type="controller" standalone="true" />
</actions>
</module>
3. 기본클래스 (XE설치폴더/modules/myboard/myboard.class.php)
모듈의 설치/업데이트/삭제 기능이 구현된 기본 클래스입니다. 클래스 선언 후 필요에 따라 추가적으로 구현을 해 주시면 됩니다.
<?php
class myboard extends ModuleObject {
/**
* @brief 설치시 추가 작업이 필요할시 구현
**/
function moduleInstall() {
return new Object();
}
/**
* @brief 설치가 이상이 없는지 체크하는 method
**/
function checkUpdate() {
return false;
}
/**
* @brief 업데이트 실행
**/
function moduleUpdate() {
return new Object(0, 'success_updated');
}
function moduleUninstall() {
return new Object();
}
/**
* @brief 캐시 파일 재생성
**/
function recompileCache() {
}
}
?>
파일의 마지막에서 PHP 블록의 닫기 태그를 생략할 수 있으며, 때로는 유용합니다. include나 require를 사용할 경우, 원하지 않은 공백이 파일 마지막에 들어가지 않게 함으로써, 나중에 추가 응답 헤더를 추가할 수 있습니다. 또한 출력 버퍼링을 사용할 경우에도 포함한 파일들에 의해서 각 파트의 마지막에 원하지 않은 공백을 피할 수 있으므로 도움이 됩니다.
위의 파일 3개를 경로에 맞추어 올리면 관리자 페이지 내의 설치된 모듈에서 확인이 가능해집니다.
'XE 1.11.x' 카테고리의 다른 글
XML쿼리 사용할 때 유의할 점 (0) | 2017.02.28 |
---|---|
XE url 요청 프로세스 (0) | 2017.02.28 |
CafeXE 모듈 수정해 보기 (0) | 2017.02.22 |
XE 디버깅 설정 (0) | 2017.02.17 |
XE 템플릿 문법 (0) | 2017.02.09 |