메뉴 건너뛰기

Karma's Place

로그인하지 않고 댓글을 달 수 있습니다. 하지만 본사이트의 취지에 맞지않는 댓글은 예고없이 삭제될 수 있습니다.
애드온 및 모듈 제작
2011.01.15 21:50

모듈제작강좌 2 : Hellow World

조회 수 6980 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 게시글 수정 내역 댓글로 가기 인쇄 첨부

1. ./modules/testmodule/testmodule.class.php 만들기

 

클라스의 기본적인 이름은 모듈이름 extends ModuleObject { 로 시작합니다.

따라서 testmodule의 경우  class testmodule extends ModuleObject 이 되어야합니다.

./modules/testmodule/testmodule.class.php
01.<?php
02.class testmodule extends ModuleObject {
03. 
04.function moduleInstall() {
05.return new Object();
06.}
07.function checkUpdate() {
08.return false;
09.}
10.function moduleUpdate() {
11.return new Object(0,'success_updated');
12.}
13.function recompileCache() {
14.}
15.}
16.?>

 

2. ./modules/testmodule/testmodule.admin.view.php 만들기

앞서 conf/module.xml에서 만들어서 함수를 다시 살펴보겠습니다.

<?xml version="1.0" encoding="utf-8"?>
<module>
<actions>
    <action name="dispTestmoduleAdminContent" type="view" standalone="true" admin_index="true" />
</actions>
</module>

위 내용에서 <action name="dispTestmoduleAdminContent" type="view" standalone="true" admin_index="true" />
의 내용중 dispTestmoduleAdminContent의 이름이 disp + Testmodule + Admin + Content로 구성되어있습니다.

즉 view 액션으로 작동하고 Admin 모듈에서 작동하는 Testmodule 함수라는 것을 알 수 있습니다.

 

type="view"로 명시해서 view action이라는 점을 명확히 했고

standalone="true" 즉, 독립적으로 동작하는 메인함수중의 하나라는 것이고

admin_index="true" 는 admin 모듈로 아무 변수없이 실행하면 동작되는 함수라는 뜻입니다.

 

그렇다면 이 함수가 동작할 화일을 만들어보겠습니다.

 

모듈의 기본 구성은 앞서 만든 testmodule.class.php와

testmodule.view.php

testmodule.model.php

testmodule.controller.php

testmodule.admin.view.php

testmodule.admin.model.php

testmodule.admin.controller.php

의 여섯종류의 기본화일이 있습니다. 물론 아래 admin이 들어있는 3개의 화일을 관리자항목으로 동작하고

위의 3종은 일반모드에서  동작합니다.


 

 testmodule.class.php의 경우 모듈이름 extends ModuleObject 였지만

그외의 모듈은 모듈이름 +(Admin) + action extends 모듈이름이 됩니다.

 testmodule.admin.view.php의 경우

class testmoduleAdminView extends testmodule 가 되고

testmodule.controller.php의 경우

class testmoduleController extends testmodule 이 됩니다.

 

1.<?
2.class testmoduleAdminView extends testmodule {
3. 
4.function dispTestmoduleAdminContent() {
5.}
6.}
7.?>

 가장 기본적인 함수를 하나 만들었습니다.

아직 아무짓도 하지 않는 함수입니다.

관리자화면에서 클릭을 해보면 에러는 없어졌지만 역시 아무것도 표시되지 않습니다. 

noindex1.png

 


 이 아무짓도 하지 않는 모듈이 화면에 "Hello World"라고 표시하게 만들어봅시다.

일반적으로 php의 경우

1.echo "Hello World";
하면 화면에 Hello World라고 표시됩니다.

그렇다면 하나밖에 없는 기본함수 중간에 echo "Hello World";를 넣어보겠습니다.

1.<?
2.class testmoduleAdminView extends testmodule {
3. 
4.function dispTestmoduleAdminContent() {
5.echo "Hello";
6.}
7.}
8.?>

 

이크!!!~~~

표시가되기는 되었습니다만...

에러가  잔뜩 나오고 화면은 깨지네요.

 hello1.png

 

 XE는 php 구문을 직접 사용하는 것이 아니고 템플레이트(Template)를 사용합니다.

템플레이트는 일종의 패턴을 의미하는 것으로 일정한 구문을 가지는 프로그램의 패턴입니다.

 

$this->setTemplatePath($this->module_path.'tpl'); 방식으로 템플레이트의 위치를 지정하고

 $this->setTemplateFile($template_filename); 로 템플레이트 화일을 지정해줍니다.
 

01.<?
02.class testmoduleAdminView extends testmodule {
03. 
04.function dispTestmoduleAdminContent() {
05.$this->setTemplatePath($this->module_path.'tpl');
06.$template_filename "index";
07.$this->setTemplateFile($template_filename);
08.}
09.}
10.?>

즉 ./modules/testmodule/tpl 폴더의 index.html 화일을 사용하겠다는 의미입니다.

 

noindex2.png

 "./index.html" templlate file이 없다고 아우성이네요.

 

3. Template file 생성

 tpl1.png

 이제 드디어 두개의 php화일과 두개의 폴더가 만들어졌습니다.

conf 폴더에 있는 두개의 XML화일까지 하면 총 4개의 화일이 사용됩니다.

 

4. index.html 생성

당초 목적이 "Hello World"를 표시하는 것이었으니

다음처럼 만들어볼까요? 

1.Hello World
2.<?php
3.echo "Hello World";
4.?>

hello2.png
 

Hello World가 두번이나 표시되었네요.

 

다시 정리를 해보자면 PHP구문도 일부 사용이 가능하기는 하지만 그냥 구문없이 글을 쓰면 됩니다.

 

이상으로 세상에서 가장 간단한 모듈을 하나  만들어봤습니다.

다음번에는 뭔가 기능이 들어있는 모듈을 만들어보기로 하겠습니다.

?

List of Articles
번호 분류 제목 날짜 조회 수
33 서버 인터넷 Kibana : 새로운 헬게이트가 열리다 file 2018.12.27 263
32 기타등등 apache와 nobody file 2018.12.25 743
31 기타등등 LetsEncrypt file 2018.12.25 214
30 기타등등 아마추어의 서버운영 2018.12.22 174
29 기타등등 빌어먹을 X국놈들... file 2016.06.02 147
28 기타등등 스마트폰과 모바일인터넷 1 file 2011.05.16 9876
27 기타등등 다시 전자우편을 만지작거리면서... 7 2003.09.29 3042
26 Rhymix & XE 인기검색어 출력 위젯 수정법 2014.04.03 465
25 Rhymix & XE ISX(통합검색 확장모듈) 사용 설명서 file 2014.04.03 419
24 Rhymix & XE 비회원에게 다른 메뉴보이게하기 2012.03.15 21932
23 Rhymix & XE 이미지프로세스 모듈의 설정 및 사용방법(new version) file 2012.02.08 15843
22 Rhymix & XE 이미지 포맷 변환테스트 27 file 2012.02.01 19582
21 Rhymix & XE 모바일에서의 통합검색기능 6 file 2011.05.17 21280
20 기타등등 malware에 의한 해킹 사이트 대처 순서 2011.04.01 24039
19 Rhymix & XE reCaptcha를 이용한 새로운 캡차애드온 file 2011.04.01 21867
18 애드온 및 모듈 제작 초간단 애드온 제작법 2 file 2011.03.25 32495
17 Rhymix & XE XE 속도 개선을 위한 위젯 수정법 1 2011.03.15 50095
16 Rhymix & XE 한국우편번호 확장모듈 file 2011.03.10 23703
15 기타등등 윈도우즈에서 ImageMgick을 이용한 imageprocess 사용 2 file 2011.03.10 24086
» 애드온 및 모듈 제작 모듈제작강좌 2 : Hellow World file 2011.01.15 6980
계속 검색
Board Pagination Prev 1 2 3 Next
/ 3
위로