|
|
|
04. 관리자의 견적서폼 목록 부분 구현하기 (current)
|
sol |
2010.11.12 13:41:56 |
|
|
|
Restore
<div class="eArea xe_content xe_dr_index"><ul class="toc"><li class="toc3"><a href="#h1250839898862">form.admin.view.php에 formAdminView class 작성</a></li><li class="toc3"><a href="#h1250839908033">formAdminView::init() 생성자</a></li><li class="toc3"><a href="#h1250838405713">formAdminView::dispFormAdminList() : 견적서폼 목록</a></li><li class="toc3"><a href="#h1250838330707">formModel::getFormList()</a></li><li class="toc3"><a href="#h1250838496423">form/queries/getFormList.xml</a></li><li class="toc3"><a href="#h1250838568309">form/tpl/list.html</a></li></ul></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250839898862">form.admin.view.php에 formAdminView class 작성</h3></div><div class="eArea xe_content xe_dr_txt"><p>module.xml에서 정의한 view 부분 중 'dispFormAdmin~'으로 시작하는 관리자 뷰 action과 생성자 init를 form class를 상속받는 formAdminView class에 member method로 작성합니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p> class formAdminView extends form {<br> /**<br> * @brief 초기화<br> **/<br> function init() {}<br> /**<br> * @brief 견적서(mid) 목록<br> **/<br> function dispFormAdminList(){}<br> /**<br> * @brief 견적서(mid) 추가 폼<br> **/<br> function dispFormAdminInsert(){}<br> /**<br> * @brief 확장 변수 설정<br> **/<br> function dispFormAdminExtraVars() {}<br>}<br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250839908033">formAdminView::init() 생성자</h3></div><div class="eArea xe_content xe_dr_txt"><p>init()는 XE_ROOT/classes/module/ModuleObject.class.php에서 보면 action이 들어오게 될때 act 값으로 action의 타입(model, view, controller)를 찾아 해당 class를 생성후 init()를 실행해 줍니다. 따라서 init()에서는 필요한 값을 미리 설정해 주면 차후 구현하기 편합니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p> /**<br> * @brief 초기화<br> **/<br> function init() {<br><br> // module_srl이 있으면 미리 체크하여 존재하는 모듈이면 module_info 세팅<br> $module_srl = Context::get('module_srl');<br> if(!$module_srl && $this->module_srl) {<br> $module_srl = $this->module_srl;<br> Context::set('module_srl', $module_srl);<br> }<br><br> // module model 객체 생성 <br> $oModuleModel = &getModel('module');<br><br> // module_srl이 넘어오면 해당 모듈의 정보(브라우져 타이틀, 관리자, 레이아웃 등 xe_modules table의 값과 정보)를 미리 구해 놓음<br> if($module_srl) {<br> $module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);<br> $this->module_info = $module_info;<br> Context::set('module_info',$module_info);<br> }<br><br> // tpl인 관리자 템플릿으로 경로 설정<br> // 템플릿 경로를 미리 셋팅 하면 action member method에서 따로 지정할 필요가 없음.<br> $template_path = sprintf("%stpl/",$this->module_path);<br> $this->setTemplatePath($template_path);<br> }<br><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838405713">formAdminView::dispFormAdminList() : 견적서폼 목록</h3></div><div class="eArea xe_content xe_dr_txt"><p>form 모델 객체에서 견적서 폼 목록을 받아 tpl/list.html 템플릿에 전달합니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p> /** <br> * @brief 견적서(mid) 목록<br> **/ <br> function dispFormAdminList(){<br> $page = Context::get('page'); <br> if(!$page) $page = 1;<br> $args->page = $page;<br> <br> // form model에서 목록을 가져옴<br> $oFormModel = &getModel('form'); <br> <b>$</b><b>output </b>= $oFormModel->getFormList($args);<br> <br> // 템플릿에 전해주기 위해 set함<br> Context::set('<b>form_list</b>', $output->data); <br> Context::set('<b>page_navigation</b>', $output->page_navigation); <br> <br> // tpl/list.html 로 지정<br> $this->setTemplateFile('+
'+
'list');<br> } <br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838330707">formModel::getFormList()</h3></div><div class="eArea xe_content xe_dr_txt"><p>form.model.php의 formModel class에 getFormList() member method를 작성합니다.<br><br></p><p> class formModel extends module {<br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> function getFormList($args){</span></span><br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> $output = executeQueryArray('form.getFormList', $args);</span></span><br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> return $output;</span></span><br> }<br> }<br><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838496423">form/queries/getFormList.xml</h3></div><div class="eArea xe_content xe_dr_txt"><p><span style="background-color: rgb(225, 225, 225);">executeQueryArray('form.getFormList', $args);</span> 에서<br>Query ID "form.getFormList" Query는<span style="font-weight: bold;"> form/queries/getFormList.xml</span> 입니다.</p><p><query id="getFormList" action="select"><br> <tables><br> <table name="modules" /><br> </tables><br> <columns><br> <column name="*" /><br> </columns><br> <conditions><br> <condition operation="equal" column="module" default="form" /><br> </conditions><br> <navigation><br> <index var="sort_index" default="module_srl" order="desc" /><br> <list_count var="list_count" default="20" /><br> <page_count var="page_count" default="10" /><br> <page var="page" default="1" /><br> </navigation><br></query></p><p>select * from xe_modules where module='+
'form' 의 쿼리에 페이징을 위한 정보가 선언되어 있습니다.</p><p> formModel::getFormList($args) 에서 $args->page 값이 <page <span style="font-weight: bold;">var="page"</span> default="1" /> 를 통해 page 값이 셋팅됩니다. 마찬가지로 $args->list_count 값이 설정된다면 목록의 한 페이지에 설정된 값만큼 견적서폼이 나열됩니다.<br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838568309">form/tpl/list.html</h3></div><div class="eArea xe_content xe_dr_txt"><p>formModel::getFormList()에서 값을 받아 템플릿에 전달 위해 설정하고 tpl/list.html 로 지정 하였습니다.</p><p>Context::set(<span style="font-weight: bold;">'form_list'</span>, $output->data); <br>Context::set(<span style="font-weight: bold;">'page_navigation'</span>, $output->page_navigation); </p><p>$this->setTemplateFile(<span style="font-weight: bold;">'list'</span>);</p></div><div class="eArea xe_content xe_dr_txt"><p>실제 템플릿(form/tpl/list.html) 에서는 아래와 같이 구현하였습니다.<br></p><p> 13 <tbody> <br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> 14 <!--@foreach(</span></span><span style="font-weight: bold;"><span style="background-color: rgb(225, 225, 225);">$form_list</span></span><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> as $no => $val)--></span></span><br> 15 <tr class="row{$cycle_idx}"><br> 16 <td>{$no}</td><br> 17 <td class="wide"><a href="<span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{getUrl('','mid',$val->mid)}</span></span>" title="<span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{htmlspecialchars($lang->cmd_view)}</span></span>"><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{$val->browser_title}</span></span></a></td><br> 18 <td class="nowrap"><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{zdate($val->regdate,"Y-m-d")}</span></span></td><br> 19 <td class="nowrap"><br> 20 <a href="<span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{getUrl('act','dispFormAdminInsert','module_srl',$val->module_srl<span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">)</span></span></span></span><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">}</span></span>" class="buttonSet buttonSetting"><span>{$lang->cmd_setup}</span></a><br> 21 </td><br> 22 </tr><br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> 23 <!--@end--></span></span><br> 24 </tbody><br><br></p></div>
|
sol |
2009.08.22 06:24:50 |
|
|
|
Restore
<div class="eArea xe_content xe_dr_index"><ul class="toc"><li class="toc3"><a href="#h1250839898862">form.admin.view.php에 formAdminView class 작성</a></li><li class="toc3"><a href="#h1250839908033">formAdminView::init() 생성자</a></li><li class="toc3"><a href="#h1250838405713">formAdminView::dispFormAdminList() : 견적서폼 목록</a></li><li class="toc3"><a href="#h1250838330707">formModel::getFormList()</a></li><li class="toc3"><a href="#h1250838496423">form/queries/getFormList.xml</a></li><li class="toc3"><a href="#h1250838568309">form/tpl/list.html</a></li></ul></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250839898862">form.admin.view.php에 formAdminView class 작성</h3></div><div class="eArea xe_content xe_dr_txt"><p>module.xml에서 정의한 view 부분 중 'dispFormAdmin~'으로 시작하는 관리자 뷰 action과 생성자 init를 form class를 상속받는 formAdminView class에 member method로 작성합니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p> class formAdminView extends form {<br> /**<br> * @brief 초기화<br> **/<br> function init() {}<br> /**<br> * @brief 견적서(mid) 목록<br> **/<br> function dispFormAdminList(){}<br> /**<br> * @brief 견적서(mid) 추가 폼<br> **/<br> function dispFormAdminInsert(){}<br> /**<br> * @brief 확장 변수 설정<br> **/<br> function dispFormAdminExtraVars() {}<br>}<br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250839908033">formAdminView::init() 생성자</h3></div><div class="eArea xe_content xe_dr_txt"><p>init()는 XE_ROOT/classes/module/ModuleObject.class.php에서 보면 action이 들어오게 될때 act 값으로 action의 타입(model, view, controller)를 찾아 해당 class를 생성후 init()를 실행해 줍니다. 따라서 init()에서는 필요한 값을 미리 설정해 주면 차후 구현하기 편합니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p> /**<br> * @brief 초기화<br> **/<br> function init() {<br><br> // module_srl이 있으면 미리 체크하여 존재하는 모듈이면 module_info 세팅<br> $module_srl = Context::get('module_srl');<br> if(!$module_srl && $this->module_srl) {<br> $module_srl = $this->module_srl;<br> Context::set('module_srl', $module_srl);<br> }<br><br> // module model 객체 생성 <br> $oModuleModel = &getModel('module');<br><br> // module_srl이 넘어오면 해당 모듈의 정보(브라우져 타이틀, 관리자, 레이아웃 등 xe_modules table의 값과 정보)를 미리 구해 놓음<br> if($module_srl) {<br> $module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);<br> $this->module_info = $module_info;<br> Context::set('module_info',$module_info);<br> }<br><br> // tpl인 관리자 템플릿으로 경로 설정<br> // 템플릿 경로를 미리 셋팅 하면 action member method에서 따로 지정할 필요가 없음.<br> $template_path = sprintf("%stpl/",$this->module_path);<br> $this->setTemplatePath($template_path);<br> }<br><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838405713">formAdminView::dispFormAdminList() : 견적서폼 목록</h3></div><div class="eArea xe_content xe_dr_txt"><p>생성된 견적서 폼 목록을 받아 템플릿에 전달합니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p> /** <br> * @brief 견적서(mid) 목록<br> **/ <br> function dispFormAdminList(){<br> $page = Context::get('page'); <br> if(!$page) $page = 1;<br> $args->page = $page;<br> <br> // form model에서 목록을 가져옴<br> $oFormModel = &getModel('form'); <br> $output = $oFormModel->getFormList($args);<br> <br> // 템플릿에 전해주기 위해 set함<br> Context::set('form_list', $output->data); <br> Context::set('page_navigation', $output->page_navigation); <br> <br> // tpl/list.html 로 지정<br> $this->setTemplateFile('list');<br> } <br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838330707">formModel::getFormList()</h3></div><div class="eArea xe_content xe_dr_txt"><p>form.model.php의 formModel class에 getFormList() member method를 작성합니다.<br><br></p><p> class formModel extends module {<br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> function getFormList($args){</span></span><br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> $output = executeQueryArray('form.getFormList', $args);</span></span><br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> return $output;</span></span><br> }<br> }<br><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838496423">form/queries/getFormList.xml</h3></div><div class="eArea xe_content xe_dr_txt"><p><span style="background-color: rgb(225, 225, 225);">executeQueryArray('form.getFormList', $args);</span> 에서<br>Query ID "form.getFormList" Query는<span style="font-weight: bold;"> form/queries/getFormList.xml</span> 입니다.</p><p><query id="getFormList" action="select"><br> <tables><br> <table name="modules" /><br> </tables><br> <columns><br> <column name="*" /><br> </columns><br> <conditions><br> <condition operation="equal" column="module" default="form" /><br> </conditions><br> <navigation><br> <index var="sort_index" default="module_srl" order="desc" /><br> <list_count var="list_count" default="20" /><br> <page_count var="page_count" default="10" /><br> <page var="page" default="1" /><br> </navigation><br></query></p><p>select * from xe_modules where module='form' 의 쿼리에 페이징을 위한 정보가 선언되어 있습니다.</p><p> formModel::getFormList($args) 에서 $args->page 값이 <page <span style="font-weight: bold;">var="page"</span> default="1" /> 를 통해 page 값이 셋팅됩니다. 마찬가지로 $args->list_count 값이 설정된다면 목록의 한 페이지에 설정된 값만큼 견적서가 나열될 것 입니다.<br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838568309">form/tpl/list.html</h3></div><div class="eArea xe_content xe_dr_txt"><p>formModel::getFormList()에서 값을 받아 템플릿에 전달 위해 설정하고 tpl/list.html 로 지정 하였습니다.</p><p>Context::set(<span style="font-weight: bold;">'form_list'+
'+
'</span>, $output->data); <br>Context::set(<span style="font-weight: bold;">'page_navigation'</span>, $output->page_navigation); </p><p>$this->setTemplateFile(<span style="font-weight: bold;">'list'</span>);</p></div><div class="eArea xe_content xe_dr_txt"><p>실제 템플릿(form/tpl/list.html) 에서는 아래와 같이 구현하였습니다.<br></p><p> 13 <tbody> <br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> 14 <!--@foreach(</span></span><span style="font-weight: bold;"><span style="background-color: rgb(225, 225, 225);">$form_list</span></span><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> as $no => $val)--></span></span><br> 15 <tr class="row{$cycle_idx}"><br> 16 <td>{$no}</td><br> 17 <td class="wide"><a href="<span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{getUrl('','+
'mid'+
',$val->mid)}</span></span>" title="<span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{htmlspecialchars($lang->cmd_view)}</span></span>"><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{$val->browser_title}</span></span></a></td><br> 18 <td class="nowrap"><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{zdate($val->regdate,"Y-m-d")}</span></span></td><br> 19 <td class="nowrap"><br> 20 <a href="<span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{getUrl('act','dispFormAdminInsert','module_srl',$val->module_srl<span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">)</span></span></span></span><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">}</span></span>" class="buttonSet buttonSetting"><span>{$lang->cmd_setup}</span></a><br> 21 </td><br> 22 </tr><br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> 23 <!--@end--></span></span><br> 24 </tbody><br><br></p></div>
|
sol |
2009.08.22 06:21:34 |
|
|
|
Restore
<div class="eArea xe_content xe_dr_index"><ul class="toc"><li class="toc3"><a href="#h1250839898862">form.admin.view.php에 formAdminView class 작성</a></li><li class="toc3"><a href="#h1250839908033">formAdminView::init() 생성자</a></li><li class="toc3"><a href="#h1250838405713">formAdminView::dispFormAdminList() : 견적서폼 목록</a></li><li class="toc3"><a href="#h1250838330707">formModel::getFormList()</a></li><li class="toc3"><a href="#h1250838496423">form/queries/getFormList.xml</a></li><li class="toc3"><a href="#h1250838568309">form/tpl/list.html</a></li></ul></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250839898862">form.admin.view.php에 formAdminView class 작성</h3></div><div class="eArea xe_content xe_dr_txt"><p>module.xml에서 정의한 view 부분 중 'dispFormAdmin~'으로 시작하는 관리자 뷰 action과 생성자 init를 form class를 상속받는 formAdminView class에 member method로 작성합니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p> class formAdminView extends form {<br> /**<br> * @brief 초기화<br> **/<br> function init() {}<br> /**<br> * @brief 견적서(mid) 목록<br> **/<br> function dispFormAdminList(){}<br> /**<br> * @brief 견적서(mid) 추가 폼<br> **/<br> function dispFormAdminInsert(){}<br> /**<br> * @brief 확장 변수 설정<br> **/<br> function dispFormAdminExtraVars() {}<br>}<br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250839908033">formAdminView::init() 생성자</h3></div><div class="eArea xe_content xe_dr_txt"><p>init()는 XE_ROOT/classes/module/ModuleObject.class.php에서 보면 action이 들어오게 될때 act 값으로 action의 타입(model, view, controller)를 찾아 해당 class를 생성후 init()를 실행해 줍니다. 따라서 init()에서는 필요한 값을 미리 설정해 주면 차후 구현하기 편합니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p> /**<br> * @brief 초기화<br> **/<br> function init() {<br><br> // module_srl이 있으면 미리 체크하여 존재하는 모듈이면 module_info 세팅<br> $module_srl = Context::get('module_srl');<br> if(!$module_srl && $this->module_srl) {<br> $module_srl = $this->module_srl;<br> Context::set('module_srl', $module_srl);<br> }<br><br> // module model 객체 생성 <br> $oModuleModel = &getModel('module');<br><br> // module_srl이 넘어오면 해당 모듈의 정보(브라우져 타이틀, 관리자, 레이아웃 등 xe_modules table의 값과 정보)를 미리 구해 놓음<br> if($module_srl) {<br> $module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);<br> $this->module_info = $module_info;<br> Context::set('module_info',$module_info);<br> }<br><br> // tpl인 관리자 템플릿으로 경로 설정<br> // 템플릿 경로를 미리 셋팅 하면 action member method에서 따로 지정할 필요가 없음.<br> $template_path = sprintf("%stpl/",$this->module_path);<br> $this->setTemplatePath($template_path);<br> }<br><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838405713">formAdminView::dispFormAdminList() : 견적서폼 목록</h3></div><div class="eArea xe_content xe_dr_txt"><p>생성된 견적서 폼 목록을 받아 템플릿에 전달합니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p> /** <br> * @brief 견적서(mid) 목록<br> **/ <br> function dispFormAdminList(){<br> $page = Context::get('page'); <br> if(!$page) $page = 1;<br> $args->page = $page;<br> <br> // form model에서 목록을 가져옴<br> $oFormModel = &getModel('form'); <br> $output = $oFormModel->getFormList($args);<br> <br> // 템플릿에 전해주기 위해 set함<br> Context::set('form_list', $output->data); <br> Context::set('page_navigation', $output->page_navigation); <br> <br> // tpl/list.html 로 지정<br> $this->setTemplateFile('list');<br> } <br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838330707">formModel::getFormList()</h3></div><div class="eArea xe_content xe_dr_txt"><p>form.model.php의 formModel class에 getFormList() member method를 작성합니다.<br><br></p><p> class formModel extends module {<br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> function getFormList($args){</span></span><br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> $output = executeQueryArray('form.getFormList', $args);</span></span><br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> return $output;</span></span><br> }<br> }<br><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838496423">form/queries/getFormList.xml</h3></div><div class="eArea xe_content xe_dr_txt"><p><span style="background-color: rgb(225, 225, 225);">executeQueryArray('form.getFormList', $args);</span> 에서<br>Query ID "form.getFormList" Query는<span style="font-weight: bold;"> form/queries/getFormList.xml</span> 입니다.</p><p><query id="getFormList" action="select"><br> <tables><br> <table name="modules" /><br> </tables><br> <columns><br> <column name="*" /><br> </columns><br> <conditions><br> <condition operation="equal" column="module" default="form" /><br> </conditions><br> <navigation><br> <index var="sort_index" default="module_srl" order="desc" /><br> <list_count var="list_count" default="20" /><br> <page_count var="page_count" default="10" /><br> <page var="page" default="1" /><br> </navigation><br></query></p><p>select * from xe_modules where module='form' 의 쿼리에 페이징을 위한 정보가 선언되어 있습니다.</p><p> formModel::getFormList($args) 에서 $args->page 값이 <page <span style="font-weight: bold;">var="page"</span> default="1" /> 를 통해 page 값이 셋팅됩니다. 마찬가지로 $args->list_count 값이 설정된다면 목록의 한 페이지에 설정된 값만큼 견적서가 나열될 것 입니다.<br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838568309">form/tpl/list.html</h3></div><div class="eArea xe_content xe_dr_txt"><p>formModel::getFormList()에서 값을 받아 템플릿에 전달 위해 설정하고 tpl/list.html 로 지정 하였습니다.</p><p>Context::set(<span style="font-weight: bold;">'form_list'+
'+
'</span>, $output->data); <br>Context::set(<span style="font-weight: bold;">'page_navigation'</span>, $output->page_navigation); </p><p>$this->setTemplateFile(<span style="font-weight: bold;">'list'</span>);</p></div><div class="eArea xe_content xe_dr_txt"><p>실제 템플릿(form/tpl/list.html) 에서는 아래와 같이 구현하였습니다.<br></p><p> 13 <tbody> <br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> 14 <!--@foreach(</span></span><span style="font-weight: bold;"><span style="background-color: rgb(225, 225, 225);">$form_list</span></span><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> as $no => $val)--></span></span><br> 15 <tr class="row{$cycle_idx}"><br> 16 <td>{$no}</td><br> 17 <td class="wide"><a href="<span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{getUrl('','+
'mid'+
',$val->mid)}</span></span>" title="<span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{htmlspecialchars($lang->cmd_view)}</span></span>"><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{$val->browser_title}</span></span></a></td><br> 18 <td class="nowrap"><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{zdate($val->regdate,"Y-m-d")}</span></span></td><br> 19 <td class="nowrap"><br> 20 <a href="<span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{getUrl('act','dispFormAdminInsert','module_srl',$val->module_srl<span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">)</span></span></span></span><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">}</span></span>" class="buttonSet buttonSetting"><span>{$lang->cmd_setup}</span></a><br> 21 </td><br> 22 </tr><br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> 23 <!--@end--></span></span><br> 24 </tbody><br><br></p></div>
|
sol |
2009.08.21 16:44:17 |
|
|
|
Restore
<div class="eArea xe_content xe_dr_index"><ul class="toc"><li class="toc3"><a href="#h1250839898862">form.admin.view.php에 formAdminView class 작성</a></li><li class="toc3"><a href="#h1250839908033">formAdminView::init() 생성자</a></li><li class="toc3"><a href="#h1250838405713">formAdminView::dispFormAdminList() : 견적서폼 목록</a></li><li class="toc3"><a href="#h1250838330707">formModel::getFormList()</a></li><li class="toc3"><a href="#h1250838496423">form/queries/getFormList.xml</a></li><li class="toc3"><a href="#h1250838568309">form/tpl/list.html</a></li></ul></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250839898862">form.admin.view.php에 formAdminView class 작성</h3></div><div class="eArea xe_content xe_dr_txt"><p>module.xml에서 정의한 view 부분 중 'dispFormAdmin~'으로 시작하는 관리자 뷰 action과 생성자 init를 form class를 상속받는 formAdminView class에 member method로 작성합니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p> class formAdminView extends form {<br> /**<br> * @brief 초기화<br> **/<br> function init() {}<br> /**<br> * @brief 견적서(mid) 목록<br> **/<br> function dispFormAdminList(){}<br> /**<br> * @brief 견적서(mid) 추가 폼<br> **/<br> function dispFormAdminInsert(){}<br> /**<br> * @brief 확장 변수 설정<br> **/<br> function dispFormAdminExtraVars() {}<br>}<br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250839908033">formAdminView::init() 생성자</h3></div><div class="eArea xe_content xe_dr_txt"><p>init()는 XE_ROOT/classes/module/ModuleObject.class.php에서 보면 action이 들어오게 될때 act 값으로 action의 타입(model, view, controller)를 찾아 해당 class를 생성후 init()를 실행해 줍니다. 따라서 init()에서는 필요한 값을 미리 설정해 주면 차후 구현하기 편합니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p> /**<br> * @brief 초기화<br> **/<br> function init() {<br><br> // module_srl이 있으면 미리 체크하여 존재하는 모듈이면 module_info 세팅<br> $module_srl = Context::get('module_srl');<br> if(!$module_srl && $this->module_srl) {<br> $module_srl = $this->module_srl;<br> Context::set('module_srl', $module_srl);<br> }<br><br> // module model 객체 생성 <br> $oModuleModel = &getModel('module');<br><br> // module_srl이 넘어오면 해당 모듈의 정보(브라우져 타이틀, 관리자, 레이아웃 등 xe_modules table의 값과 정보)를 미리 구해 놓음<br> if($module_srl) {<br> $module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);<br> $this->module_info = $module_info;<br> Context::set('module_info',$module_info);<br> }<br><br> // tpl인 관리자 템플릿으로 경로 설정<br> // 템플릿 경로를 미리 셋팅 하면 action member method에서 따로 지정할 필요가 없음.<br> $template_path = sprintf("%stpl/",$this->module_path);<br> $this->setTemplatePath($template_path);<br> }<br><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838405713">formAdminView::dispFormAdminList() : 견적서폼 목록</h3></div><div class="eArea xe_content xe_dr_txt"><p>생성된 견적서 폼 목록을 받아 템플릿에 전달합니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p> /** <br> * @brief 견적서(mid) 목록<br> **/ <br> function dispFormAdminList(){<br> $page = Context::get('page'); <br> if(!$page) $page = 1;<br> $args->page = $page;<br> <br> // form model에서 목록을 가져옴<br> $oFormModel = &getModel('form'); <br> $output = $oFormModel->getFormList($args);<br> <br> // 템플릿에 전해주기 위해 set함<br> Context::set('form_list', $output->data); <br> Context::set('page_navigation', $output->page_navigation); <br> <br> // tpl/list.html 로 지정<br> $this->setTemplateFile('list');<br> } <br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838330707">formModel::getFormList()</h3></div><div class="eArea xe_content xe_dr_txt"><p>form.model.php의 formModel class에 getFormList() member method를 작성합니다.<br><br></p><p> class formModel extends module {<br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> function getFormList($args){</span></span><br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> $output = executeQueryArray('form.getFormList', $args);</span></span><br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> return $output;</span></span><br> }<br> }<br><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838496423">form/queries/getFormList.xml</h3></div><div class="eArea xe_content xe_dr_txt"><p><span style="background-color: rgb(225, 225, 225);">executeQueryArray('form.getFormList', $args);</span> 에서<br>Query ID "form.getFormList" Query는<span style="font-weight: bold;"> form/queries/getFormList.xml</span> 입니다.</p><p><query id="getFormList" action="select"><br> <tables><br> <table name="modules" /><br> </tables><br> <columns><br> <column name="*" /><br> </columns><br> <conditions><br> <condition operation="equal" column="module" default="form" /><br> </conditions><br> <navigation><br> <index var="sort_index" default="module_srl" order="desc" /><br> <list_count var="list_count" default="20" /><br> <page_count var="page_count" default="10" /><br> <page var="page" default="1" /><br> </navigation><br></query></p><p>select * from xe_modules where module='form' 의 쿼리에 페이징을 위한 정보가 선언되어 있습니다.</p><p> formModel::getFormList($args) 에서 $args->page 값이 <page <span style="font-weight: bold;">var="page"</span> default="1" /> 를 통해 page 값이 셋팅됩니다. 마찬가지로 $args->list_count 값이 설정된다면 목록의 한 페이지에 설정된 값만큼 견적서가 나열될 것 입니다.<br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838568309">form/tpl/list.html</h3></div><div class="eArea xe_content xe_dr_txt"><p>formModel::getFormList()에서 값을 받아 템플릿에 전달 위해 설정하고 tpl/list.html 로 지정 하였습니다.</p><p>Context::set(<span style="font-weight: bold;">'form_list'+
'+
'</span>, $output->data); <br>Context::set(<span style="font-weight: bold;">'page_navigation'</span>, $output->page_navigation); </p><p>$this->setTemplateFile(<span style="font-weight: bold;">'list'</span>);</p></div><div class="eArea xe_content xe_dr_txt"><p>실제 템플릿(form/tpl/list.html) 에서는 아래와 같이 구현하였습니다.<br></p><p> 13 <tbody> <br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> 14 <!--@foreach(</span></span><span style="font-weight: bold;"><span style="background-color: rgb(225, 225, 225);">$form_list</span></span><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> as $no => $val)--></span></span><br> 15 <tr class="row{$cycle_idx}"><br> 16 <td>{$no}</td><br> 17 <td class="wide"><a href="<span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{getUrl('','+
'mid'+
',$val->mid)}</span></span>" title="<span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{htmlspecialchars($lang->cmd_view)}</span></span>"><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{$val->browser_title}</span></span></a></td><br> 18 <td class="nowrap"><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{zdate($val->regdate,"Y-m-d")}</span></span></td><br> 19 <td class="nowrap"><br> 20 <a href="<span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{getUrl('act','dispFormAdminInsert','module_srl',$val->module_srl<span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">)</span></span></span></span><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">}</span></span>" class="buttonSet buttonSetting"><span>{$lang->cmd_setup}</span></a><br> 21 </td><br> 22 </tr><br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> 23 <!--@end--></span></span><br> 24 </tbody><br><br></p></div>
|
sol |
2009.08.21 16:31:20 |
|
|
|
Restore
<div class="eArea xe_content xe_dr_txt"><p>관리자 페이지의 form 모듈 부분입니다. tpl 디렉토리의 관리자용 템플릿과 form.admin.view.php, form.admin.model.php, form.admin.controller.php 를 구현할 것입니다.<br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250835809144">form.admin.view.php</h3></div><div class="eArea xe_content xe_dr_txt"><p>module.xml에서 정의한 view 부분 중 'dispFormAdmin~'으로 시작하는 관리자 뷰 action과 생성자 init를 form class를 상속받는 formAdminView class에 member method로 작성합니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p> class formAdminView extends form {<br> /**<br> * @brief 초기화<br> **/<br> function init() {}<br> /**<br> * @brief 견적서(mid) 목록<br> **/<br> function dispFormAdminList(){}<br> /**<br> * @brief 견적서(mid) 추가 폼<br> **/<br> function dispFormAdminInsert(){}<br> /**<br> * @brief 확장 변수 설정<br> **/<br> function dispFormAdminExtraVars() {}<br>}<br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838417866">formAdminView::init()</h3></div><div class="eArea xe_content xe_dr_txt"><p>init()는 XE_ROOT/classes/module/ModuleObject.class.php에서 보면 action이 들어오게 될때 act 값으로 action의 타입(model, view, controller)를 찾아 해당 class를 생성후 init()를 실행해 줍니다. 따라서 init()에서는 필요한 값을 미리 설정해 주면 차후 구현하기 편합니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p> /**<br> * @brief 초기화<br> **/<br> function init() {<br><br> // module_srl이 있으면 미리 체크하여 존재하는 모듈이면 module_info 세팅<br> $module_srl = Context::get('module_srl');<br> if(!$module_srl && $this->module_srl) {<br> $module_srl = $this->module_srl;<br> Context::set('module_srl', $module_srl);<br> }<br><br> // module model 객체 생성 <br> $oModuleModel = &getModel('module');<br><br> // module_srl이 넘어오면 해당 모듈의 정보(브라우져 타이틀, 관리자, 레이아웃 등 xe_modules table의 값과 정보)를 미리 구해 놓음<br> if($module_srl) {<br> $module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);<br> $this->module_info = $module_info;<br> Context::set('module_info',$module_info);<br> }<br><br> // tpl인 관리자 템플릿으로 경로 설정<br> // 템플릿 경로를 미리 셋팅 하면 action member method에서 따로 지정할 필요가 없음.<br> $template_path = sprintf("%stpl/",$this->module_path);<br> $this->setTemplatePath($template_path);<br> }<br><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838405713">formAdminView::dispFormAdminList() : 견적서폼 목록</h3></div><div class="eArea xe_content xe_dr_txt"><p>생성된 견적서 폼 목록을 받아 템플릿에 전달합니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p> /** <br> * @brief 견적서(mid) 목록<br> **/ <br> function dispFormAdminList(){<br> $page = Context::get('page'); <br> if(!$page) $page = 1;<br> $args->page = $page;<br> <br> // form model에서 목록을 가져옴<br> $oFormModel = &getModel('form'); <br> $output = $oFormModel->getFormList($args);<br> <br> // 템플릿에 전해주기 위해 set함<br> Context::set('form_list', $output->data); <br> Context::set('page_navigation', $output->page_navigation); <br> <br> // tpl/list.html 로 지정<br> $this->setTemplateFile('list');<br> } <br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838330707">formModel::getFormList()</h3></div><div class="eArea xe_content xe_dr_txt"><p>form.model.php의 formModel class에 getFormList() member method를 작성합니다.<br><br></p><p> class formModel extends module {<br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> function getFormList($args){</span></span><br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> $output = executeQueryArray('form.getFormList', $args);</span></span><br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> return $output;</span></span><br> }<br> }<br><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838496423">form/queries/getFormList.xml</h3></div><div class="eArea xe_content xe_dr_txt"><p><span style="background-color: rgb(225, 225, 225);">executeQueryArray('form.getFormList', $args);</span> 에서<br>Query ID "form.getFormList" Query는<span style="font-weight: bold;"> form/queries/getFormList.xml</span> 입니다.</p><p><query id="getFormList" action="select"><br> <tables><br> <table name="modules" /><br> </tables><br> <columns><br> <column name="*" /><br> </columns><br> <conditions><br> <condition operation="equal" column="module" default="form" /><br> </conditions><br> <navigation><br> <index var="sort_index" default="module_srl" order="desc" /><br> <list_count var="list_count" default="20" /><br> <page_count var="page_count" default="10" /><br> <page var="page" default="1" /><br> </navigation><br></query></p><p>select * from xe_modules where module='form' 의 쿼리에 페이징을 위한 정보가 선언되어 있습니다.</p><p> formModel::getFormList($args) 에서 $args->page 값이 <page <span style="font-weight: bold;">var="page"</span> default="1" /> 를 통해 page 값이 셋팅됩니다. 마찬가지로 $args->list_count 값이 설정된다면 목록의 한 페이지에 설정된 값만큼 견적서가 나열될 것 입니다.<br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838568309">form/tpl/list.html</h3></div><div class="eArea xe_content xe_dr_txt"><p>formModel::getFormList()에서 값을 받아 템플릿에 전달 위해 설정하고 tpl/list.html 로 지정 하였습니다.</p><p>Context::set(<span style="font-weight: bold;">'form_list'</span>, $output->data); <br>Context::set(<span style="font-weight: bold;">'page_navigation'</span>, $output->page_navigation); </p><p>$this->setTemplateFile(<span style="font-weight: bold;">'list'</span>);</p></div><div class="eArea xe_content xe_dr_txt"><p>실제 템플릿(form/tpl/list.html) 에서는 아래와 같이 구현하였습니다.<br></p><p> 13 <tbody> <br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> 14 <!--@foreach(</span></span><span style="font-weight: bold;"><span style="background-color: rgb(225, 225, 225);">$form_list</span></span><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> as $no => $val)--></span></span><br> 15 <tr class="row{$cycle_idx}"><br> 16 <td>{$no}</td><br> 17 <td class="wide"><a href="<span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{getUrl('+
'+
'','mid',$val->mid)}</span></span>" title="<span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{htmlspecialchars($lang->cmd_view)}</span></span>"><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{$val->browser_title}</span></span></a></td><br> 18 <td class="nowrap"><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{zdate($val->regdate,"Y-m-d")}</span></span></td><br> 19 <td class="nowrap"><br> 20 <a href="<span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{getUrl('act','dispFormAdminInsert','module_srl',$val->module_srl<span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">)</span></span></span></span><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">}</span></span>" class="buttonSet buttonSetting"><span>{$lang->cmd_setup}</span></a><br> 21 </td><br> 22 </tr><br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> 23 <!--@end--></span></span><br> 24 </tbody><br><br></p></div>
|
sol |
2009.08.21 16:29:40 |
|
|
|
Restore
<div class="eArea xe_content xe_dr_txt"><p>관리자 페이지의 form 모듈 부분입니다. tpl 디렉토리의 관리자용 템플릿과 form.admin.view.php, form.admin.model.php, form.admin.controller.php 를 구현할 것입니다.<br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250835809144">form.admin.view.php</h3></div><div class="eArea xe_content xe_dr_txt"><p>module.xml에서 정의한 view 부분 중 'dispFormAdmin~'으로 시작하는 관리자 뷰 action과 생성자 init를 form class를 상속받는 formAdminView class에 member method로 작성합니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p> class formAdminView extends form {<br> /**<br> * @brief 초기화<br> **/<br> function init() {}<br> /**<br> * @brief 견적서(mid) 목록<br> **/<br> function dispFormAdminList(){}<br> /**<br> * @brief 견적서(mid) 추가 폼<br> **/<br> function dispFormAdminInsert(){}<br> /**<br> * @brief 확장 변수 설정<br> **/<br> function dispFormAdminExtraVars() {}<br>}<br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838417866">formAdminView::init()</h3></div><div class="eArea xe_content xe_dr_txt"><p>init()는 XE_ROOT/classes/module/ModuleObject.class.php에서 보면 action이 들어오게 될때 act 값으로 action의 타입(model, view, controller)를 찾아 해당 class를 생성후 init()를 실행해 줍니다. 따라서 init()에서는 필요한 값을 미리 설정해 주면 차후 구현하기 편합니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p> /**<br> * @brief 초기화<br> **/<br> function init() {<br><br> // module_srl이 있으면 미리 체크하여 존재하는 모듈이면 module_info 세팅<br> $module_srl = Context::get('module_srl');<br> if(!$module_srl && $this->module_srl) {<br> $module_srl = $this->module_srl;<br> Context::set('module_srl', $module_srl);<br> }<br><br> // module model 객체 생성 <br> $oModuleModel = &getModel('module');<br><br> // module_srl이 넘어오면 해당 모듈의 정보(브라우져 타이틀, 관리자, 레이아웃 등 xe_modules table의 값과 정보)를 미리 구해 놓음<br> if($module_srl) {<br> $module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);<br> $this->module_info = $module_info;<br> Context::set('module_info',$module_info);<br> }<br><br> // tpl인 관리자 템플릿으로 경로 설정<br> // 템플릿 경로를 미리 셋팅 하면 action member method에서 따로 지정할 필요가 없음.<br> $template_path = sprintf("%stpl/",$this->module_path);<br> $this->setTemplatePath($template_path);<br> }<br><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838405713">formAdminView::dispFormAdminList() : 견적서폼 목록</h3></div><div class="eArea xe_content xe_dr_txt"><p>생성된 견적서 폼 목록을 받아 템플릿에 전달합니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p> /** <br> * @brief 견적서(mid) 목록<br> **/ <br> function dispFormAdminList(){<br> $page = Context::get('page'); <br> if(!$page) $page = 1;<br> $args->page = $page;<br> <br> // form model에서 목록을 가져옴<br> $oFormModel = &getModel('form'); <br> $output = $oFormModel->getFormList($args);<br> <br> // 템플릿에 전해주기 위해 set함<br> Context::set('form_list', $output->data); <br> Context::set('page_navigation', $output->page_navigation); <br> <br> // tpl/list.html 로 지정<br> $this->setTemplateFile('list');<br> } <br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838330707">formModel::getFormList()</h3></div><div class="eArea xe_content xe_dr_txt"><p>form.model.php의 formModel class에 getFormList() member method를 작성합니다.<br><br></p><p> class formModel extends module {<br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> function getFormList($args){</span></span><br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> $output = executeQueryArray('form.getFormList', $args);</span></span><br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> return $output;</span></span><br> }<br> }<br><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838496423">form/queries/getFormList.xml</h3></div><div class="eArea xe_content xe_dr_txt"><p><span style="background-color: rgb(225, 225, 225);">executeQueryArray('form.getFormList', $args);</span> 에서<br>Query ID "form.getFormList" Query는<span style="font-weight: bold;"> form/queries/getFormList.xml</span> 입니다.</p><p><query id="getFormList" action="select"><br> <tables><br> <table name="modules" /><br> </tables><br> <columns><br> <column name="*" /><br> </columns><br> <conditions><br> <condition operation="equal" column="module" default="form" /><br> </conditions><br> <navigation><br> <index var="sort_index" default="module_srl" order="desc" /><br> <list_count var="list_count" default="20" /><br> <page_count var="page_count" default="10" /><br> <page var="page" default="1" /><br> </navigation><br></query></p><p>select * from xe_modules where module='form' 의 쿼리에 페이징을 위한 정보가 선언되어 있습니다.</p><p> formModel::getFormList($args) 에서 $args->page 값이 <page <span style="font-weight: bold;">var="page"</span> default="1" /> 를 통해 page 값이 셋팅됩니다. 마찬가지로 $args->list_count 값이 설정된다면 목록의 한 페이지에 설정된 값만큼 견적서가 나열될 것 입니다.<br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250838568309">form/tpl/list.html</h3></div><div class="eArea xe_content xe_dr_txt"><p>formModel::getFormList()에서 값을 받아 템플릿에 전달 위해 설정하고 tpl/list.html 로 지정 하였습니다.</p><p>Context::set(<span style="font-weight: bold;">'form_list'</span>, $output->data); <br>Context::set(<span style="font-weight: bold;">'page_navigation'</span>, $output->page_navigation); </p><p>$this->setTemplateFile(<span style="font-weight: bold;">'list'</span>);</p></div><div class="eArea xe_content xe_dr_txt"><p>실제 템플릿(form/tpl/list.html) 에서는 아래와 같이 구현하였습니다.<br></p><p> 13 <tbody> <br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> 14 <!--@foreach(</span></span><span style="font-weight: bold;"><span style="background-color: rgb(225, 225, 225);">$form_list</span></span><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> as $no => $val)--></span></span><br> 15 <tr class="row{$cycle_idx}"><br> 16 <td>{$no}</td><br> 17 <td class="wide"><a href="<span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{getUrl('+
'+
'','mid',$val->mid)}</span></span>" title="<span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{htmlspecialchars($lang->cmd_view)}</span></span>"><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{$val->browser_title}</span></span></a></td><br> 18 <td class="nowrap"><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{zdate($val->regdate,"Y-m-d")}</span></span></td><br> 19 <td class="nowrap"><br> 20 <a href="<span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">{getUrl('act','dispFormAdminInsert','module_srl',$val->module_srl<span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">)</span></span></span></span><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);">}</span></span>" class="buttonSet buttonSetting"><span>{$lang->cmd_setup}</span></a><br> 21 </td><br> 22 </tr><br><span style="background-color: rgb(225, 225, 225);"><span style="background-color: rgb(225, 225, 225);"> 23 <!--@end--></span></span><br> 24 </tbody><br><br></p></div>
|
sol |
2009.08.21 16:11:30 |
|
|
|
Restore
<div class="eArea xe_content xe_dr_txt"><p>관리자 페이지의 form 모듈 부분입니다. tpl 디렉토리의 관리자용 템플릿과 form.admin.view.php, form.admin.model.php, form.admin.controller.php 를 구현할 것입니다.<br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250835809144">form.admin.view.php</h3></div><div class="eArea xe_content xe_dr_txt"><p>module.xml에서 정의한 view 부분 중 'dispFormAdmin~'으로 시작하는 관리자 뷰 action과 생성자 init를 form class를 상속받는 formAdminView class에 member method로 작성합니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p> class formAdminView extends form {<br> /**<br> * @brief 초기화<br> **/<br> function init() {}<br> /**<br> * @brief 견적서(mid) 목록<br> **/<br> function dispFormAdminList(){}<br> /**<br> * @brief 견적서(mid) 추가 폼<br> **/<br> function dispFormAdminInsert(){}<br> /**<br> * @brief 확장 변수 설정<br> **/<br> function dispFormAdminExtraVars() {}<br>}<br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250836425776">init()</h3></div><div class="eArea xe_content xe_dr_txt"><p>init()는 XE_ROOT/classes/module/ModuleObject.class.php에서 보면 action이 들어오게 될때 act 값으로 action의 타입(model, view, controller)를 찾아 해당 class를 생성후 init()를 실행해 줍니다. 따라서 init()에서는 필요한 값을 미리 설정해 주면 차후 구현하기 편합니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p> /**<br> * @brief 초기화<br> **/<br> function init() {<br><br> // module_srl이 있으면 미리 체크하여 존재하는 모듈이면 module_info 세팅<br> $module_srl = Context::get('module_srl');<br> if(!$module_srl && $this->module_srl) {<br> $module_srl = $this->module_srl;<br> Context::set('module_srl', $module_srl);<br> }<br><br> // module model 객체 생성 <br> $oModuleModel = &getModel('module');<br><br> // module_srl이 넘어오면 해당 모듈의 정보(브라우져 타이틀, 관리자, 레이아웃 등 xe_modules table의 값과 정보)를 미리 구해 놓음<br> if($module_srl) {<br> $module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);<br> $this->module_info = $module_info;<br> Context::set('module_info',$module_info);<br> }<br><br> // tpl인 관리자 템플릿으로 경로 설정<br> // 템플릿 경로를 미리 셋팅 하면 action member method에서 따로 지정할 필요가 없음.<br> $template_path = sprintf("%stpl/",$this->module_path);<br> $this->setTemplatePath($template_path);<br> }<br><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250837212178">dispFormAdminList() : 견적서폼 목록</h3></div><div class="eArea xe_content xe_dr_txt"><p> /** <br> * @brief 견적서(mid) 목록<br> **/ <br> function dispFormAdminList(){<br> $page = Context::get('page'); <br> if(!$page) $page = 1;<br> $args->page = $page;<br> <br> // form model에서 목록을 가져옴<br> $oFormModel = &getModel('form'); <br> $output = $oFormModel->getFormList($args);<br> <br> // 템플릿에 전해주기 위해 set함<br> Context::set('form_list', $output->data); <br> Context::set('+
'+
'page_navigation', $output->page_navigation); <br> <br> // tpl/list.html 로 지정<br> $this->setTemplateFile('list');<br> } <br></p></div><div class="eArea xe_content xe_dr_txt"><p>form.model.php의 formModel class에 getFormList() member method를 작성합니다.<br><br></p><p> class formModel extends module {<br> /**<br> * @brief 초기화<br> **/<br> function init() {<br> } <br><br> function getFormList($args){<br> $output = executeQueryArray('form.getFormList', $args);<br> return $output;<br> }<br><br> }<br><br></p></div><div class="eArea xe_content xe_dr_txt"><p>executeQueryArray('form.getFormList', $args); 에서<br>Query ID "form.getFormList" Query는 form/queries/getFormList.xml 입니다.</p><p><query id="getFormList" action="select"><br> <tables><br> <table name="modules" /><br> </tables><br> <columns><br> <column name="*" /><br> </columns><br> <conditions><br> <condition operation="equal" column="module" default="form" /><br> </conditions><br> <navigation><br> <index var="sort_index" default="module_srl" order="desc" /><br> <list_count var="list_count" default="20" /><br> <page_count var="page_count" default="10" /><br> <page var="page" default="1" /><br> </navigation><br></query></p><p>select * from xe_modules where module='form' 의 쿼리에 페이징을 위한 정보가 선언되어 있습니다.</p><p> formModel::getFormList($args) 에서 $args->page 값이 <page <span style="font-weight: bold;">var="page"</span> default="1" /> 를 통해 page 값이 셋팅됩니다. 마찬가지로 $args->list_count 값이 설정된다면 목록의 한 페이지에 설정된 값만큼 견적서가 나열될 것 입니다.<br></p></div>
|
sol |
2009.08.21 15:55:49 |
|
|
|
Restore
<div class="eArea xe_content xe_dr_txt"><p>관리자 페이지의 form 모듈 부분입니다. tpl 디렉토리의 관리자용 템플릿과 form.admin.view.php, form.admin.model.php, form.admin.controller.php 를 구현할 것입니다.<br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250835809144">form.admin.view.php</h3></div><div class="eArea xe_content xe_dr_txt"><p>module.xml에서 정의한 view 부분 중 'dispFormAdmin~'으로 시작하는 관리자 뷰 action과 생성자 init를 form class를 상속받는 formAdminView class에 member method로 작성합니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p> class formAdminView extends form {<br> /**<br> * @brief 초기화<br> **/<br> function init() {}<br> /**<br> * @brief 견적서(mid) 목록<br> **/<br> function dispFormAdminList(){}<br> /**<br> * @brief 견적서(mid) 추가 폼<br> **/<br> function dispFormAdminInsert(){}<br> /**<br> * @brief 확장 변수 설정<br> **/<br> function dispFormAdminExtraVars() {}<br>}<br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250836425776">init()</h3></div><div class="eArea xe_content xe_dr_txt"><p>init()는 XE_ROOT/classes/module/ModuleObject.class.php에서 보면 action이 들어오게 될때 act 값으로 action의 타입(model, view, controller)를 찾아 해당 class를 생성후 init()를 실행해 줍니다. 따라서 init()에서는 필요한 값을 미리 설정해 주면 차후 구현하기 편합니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p> /**<br> * @brief 초기화<br> **/<br> function init() {<br><br> // module_srl이 있으면 미리 체크하여 존재하는 모듈이면 module_info 세팅<br> $module_srl = Context::get('module_srl');<br> if(!$module_srl && $this->module_srl) {<br> $module_srl = $this->module_srl;<br> Context::set('module_srl', $module_srl);<br> }<br><br> // module model 객체 생성 <br> $oModuleModel = &getModel('module');<br><br> // module_srl이 넘어오면 해당 모듈의 정보(브라우져 타이틀, 관리자, 레이아웃 등 xe_modules table의 값과 정보)를 미리 구해 놓음<br> if($module_srl) {<br> $module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);<br> $this->module_info = $module_info;<br> Context::set('module_info',$module_info);<br> }<br><br> // tpl인 관리자 템플릿으로 경로 설정<br> // 템플릿 경로를 미리 셋팅 하면 action member method에서 따로 지정할 필요가 없음.<br> $template_path = sprintf("%stpl/",$this->module_path);<br> $this->setTemplatePath($template_path);<br> }<br><br></p></div>
|
sol |
2009.08.21 15:41:44 |
|
|
|
Restore
<div class="eArea xe_content xe_dr_txt"><p>관리자 페이지의 form 모듈 부분입니다. tpl 디렉토리의 관리자용 템플릿과 form.admin.view.php, form.admin.model.php, form.admin.controller.php 를 구현할 것입니다.<br></p></div>
|
sol |
2009.08.21 15:21:26 |