메뉴 건너뛰기

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
번호 분류 제목 날짜 조회 수
4 애드온 및 모듈 제작 이미지프로세스 모듈 사용법 1 file 2019.03.25 4953
3 애드온 및 모듈 제작 초간단 애드온 제작법 2 file 2011.03.25 32495
» 애드온 및 모듈 제작 모듈제작강좌 2 : Hellow World file 2011.01.15 6980
1 애드온 및 모듈 제작 모듈제작강좌 1 : 모듈 등록 file 2010.12.30 13758
계속 검색
Board Pagination Prev 1 Next
/ 1
위로