More Related Content
Similar to 2011 XE Camp 모듈제작가이드 (20)
2011 XE Camp 모듈제작가이드
- 11. XE설치디렉토리/modules/memo/
conf memo.class.php
lang memo.controller.php
queries memo.model.php
rulesets memo.view.php
schemas
skins
tpl
- 18. ./conf/module.xml
module
grants/
permissions/
actions/
menus/
/module
http://code.google.com/p/xe-core/wiki/module_xml
- 27. memo.view.php
classMemoViewextendsmemo
{
functioninit()
{
$template_path=sprintf(%sskins/%s/,$this-module_path,
$this-module_info-skin);
if(!is_dir($template_path)||!$this-module_info-skin){
$this-module_info-skin=‘xe_default';
$template_path=sprintf(%sskins/%s/,$this-module_path,
$this-module_info-skin);
}
$this-setTemplatePath($template_path);
}
}
- 28. memo.view.php
classMemoViewextendsmemo
{
…⋯
functiondispMemoWrite()
{
if(!Context::get('is_logged'))
returnnewObject(-1,'msg_invalid_request');
$logged_info=Context::get('logged_info');
$this-setTemplateFile('memo_write');
}
}
- 34. ./rulesets/insertMemo.xml
rulesetversion=1.5.0
customrules/
fields
fieldname=contentrequired=true/
/fields
/ruleset
http://code.google.com/p/xe-core/wiki/ValidateFormInput
- 39. 메모등록!!
Context
memo.controller.php
procMemoInsert()
ModuleHandler
insertMemo.xml(xmlquery)
memo
- 41. 메모등록!!
Context
memo.controller.php
procMemoInsert()
ModuleHandler
insertMemo.xml(xmlquery)
memo
- 43. 메모등록!!
Context
memo.controller.php
procMemoInsert()
ModuleHandler
insertMemo.xml(xmlquery)
memo
- 44. memo.controller.php
ClassmemoControllerextendsmemo
{
functionprocMemoInsert()
{
if(!Context::get('is_logged'))returnnewObject(-1,'msg_invalid_request');
$logged_info=Context::get('logged_info');
$vars=Context::getRequestVars();
$args-memoSrl=getNextSequence();
$args-memberSrl=$logged_info-member_srl;
$args-content=htmlspecialchars($vars-content);
$output=executeQuery('memo.insertMemo',$args);
if(!$output-toBool())returnnewObject(-1,'msg_error');
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))){
$returnUrl=Context::get('success_return_url')?
Context::get('success_return_url'):
getNotEncodedUrl('','module','memo','act','dispMemoList');
$this-setRedirectUrl($returnUrl);
return;
}
return$output;
}
- 52. memo.model.php
classmemoModelextendsmemo
{
functiongetMemoList($member_srl,$page=1)
{
$args-memberSrl=$member_srl;
$args-page=$page;
$output=executeQuery('memo.getMemoList',$args);
if(!$output-toBool())returnnewObject(-1,'msg_error');
return$output;
}
- 55. memo.view.php
classmemoViewextendsmemo
{
…⋯
functiondispMemoList()
{
if(!Context::get('is_logged'))returnnewObject(-1,'msg_invalid_request');
$logged_info=Context::get('logged_info');
$oMemoModel=getModel('memo');
$output=$oMemoModel-getMemoList(
$logged_info-member_srl,Context::get('page'));
Context::set('memo_list',$output-data);
Context::set('total_count',$output-total_count);
Context::set('total_page',$output-total_page);
Context::set('page',$output-page);
Context::set('page_navigation',$output-page_navigation);
$this-setTemplateFile('memo_list');
}
- 56. memo.view.php
classmemoViewextendsmemo
{
…⋯
functiondispMemoList()
{
if(!Context::get('is_logged'))returnnewObject(-1,'msg_invalid_request');
$logged_info=Context::get('logged_info');
$oMemoModel=getModel('memo');
$output=$oMemoModel-getMemoList(
$logged_info-member_srl,Context::get('page'));
Context::set('memo_list',$output-data);
Context::set('total_count',$output-total_count);
Context::set('total_page',$output-total_page);
Context::set('page',$output-page);
Context::set('page_navigation',$output-page_navigation);
$this-setTemplateFile('memo_list');
}
- 58. memo_list.html
tbody
trloop=$memo_list=$key,$value
td{$value-memo_srl}/td
td
ahref={getUrl('','module','memo',
'act','dispMemoView','memo_srl',$value-memo_srl)}
{$value-content}/a/td
td{date('Y-m-dH:i:s',strtotime($value-regdate))}/td
td{date('Y-m-dH:i:s',strtotime($value-last_update))}/td
td
ahref={getUrl('','module','memo',
'act','procMemoDelete','memo_srl',$value-memo_srl)}
Delete/a/td
/tr
/tbody
- 61. memo.view.php
classmemoViewextendsmemo
{
…⋯
functiondispMemoView()
{
$memo_srl=Context::get('memo_srl');
$oMemoModel=getModel('memo');
$output=$oMemoModel-getMemo($memo_srl);
Context::set('memo',$output-data);
$this-setTemplateFile('memo_view');
}
- 65. memo.class.php ./conf/info.xml
memo.view.php
./conf/module.xml
memo.model.php
./ruleset/insertMemo.xml
memo.controller.php
./queries/insertMemo.xml
./skins/xe_default/*.html