가장 간단한 모듈을 제작해보도록 하겠습니다.
가장 기본적인 모듈이라함은 아무런 기능도 없지만 관리자모드에서 모듈로 인식하는 수준의 모듈입니다.
1. 모듈이름 작명
2. 폴더생성
3. conf/info.xml 작성
4. conf/module.xml 작성
1. 모듈이름 작명
기존의 모듈과 겹치지 않는 적당한 모듈이름을 먼저 정합니다.
우선은 testmodule 이라는 이름으로 제작해보겠습니다.
2. 폴더생성
./modules 폴더에 testmodule이라는 폴더를 생성합니다.
이 testmodule이라는 폴더내에 여러가지 작동에 필요한 화일들이 들어갈 장소입니다.
이 폴더내에 conf라는 폴더를 하나 더 생성합니다.
./modules/testmodule/conf 폴더 생성
이 conf 폴더에 두개의 화일만 만들어주면 됩니다.
3. conf/info.xml 작성
<module version="0.2"> <title xml:lang="ko">테스트모듈</title> <description xml:lang="ko">모듈제작테스트용입니다.</description> <version>0.1.1</version> <date>2010-12-22</date> <category>system</category> <author email_address="soonj@nate.com" link="http://wildgreen.co.kr/"> <name xml:lang="ko">카르마</name> </author> </module>
한글 이름은 뭐든 상관없습니다.
<module 로 시작해서 </module>로 끝나는 XML 화일입니다.
자신의 이름을 붙여서 "카르마모듈"등의 방식으로 사용해도 상관없습니다.
세번째 줄의 description에는 간단한 설명을 입력해줍니다.
저장할때 주의사항은 한글 엔코딩입니다.
기본적으로 XE는 UTF8을 사용합니다. 따라서 UTF8(BOM없음)으로 저장해야합니다.
에디터마다 다르기때문에 잘 살펴보시기 바랍니다. 첨부된 이미지는 Notepad++ 입니다
.
무심코 ANSI로 저장하면 화면이 몽땅 깨집니다.
4. conf/module.xml 작성
conf/module.xml
<?xml version="1.0" encoding="utf-8"?> <module> <actions> <action name="dispTestmoduleAdminContent" type="view" standalone="true" admin_index="true" /> </actions> </module>
disp + 모듈이름 + (Admin) + 액션네임
proc + 모듈이름 + (Admin) + 액션네임
첫단어인 disp와 proc는 소문자
모듈이름과 Admin 및 액션네임은 대문자로 시작해야합니다.
예를 들어서
dispTestmoduleViewContent
또는
dispTestmoduleAdminViewContent
등으로 하면 됩니다.
이중 모듈이름 뒤에 Admin이 있으면 관리자모드로 동작하고 없으면 일반사용자 모드로 작동합니다.
액션네임은 다른 기능의 이름과 중복만 되지 않으면 됩니다. 하지만 가능하면 이해하기 쉽게 작명하는 것이 좋습니다.
나중에 제작자 본인도 기능을 헛갈리게 되면 낭패가 아닐 수 없습니다.
이제 관리자화면을 보면 좌측하단에 자신이 작명한 "테스트모듈" 이 나타나있을겁니다.
물론 클릭하면 에러가 나옵니다.
Fatal error: Call to a member function setLayoutPath() on a non-object in/home2/http/htdocs/csaea/xe/classes/module/ModuleHandler.class.php on line 288
클릭했을때 동작할 내용이 하나도 없으니까요.