07. 견적서 목록 및 내용 보기 부분 구현하기

조회 수 563 추천 수 0 2009.08.22 06:45:09
sol *.130.111.148
제목 작성자 날짜
07. 견적서 목록 및 내용 보기 부분 구현하기 (current) sol 2009.08.22 06:45:09
복원
<div class="eArea xe_content xe_dr_index"><ul class="toc"><li class="toc3"><a href="#h1250841637733">form.view.php</a></li><li class="toc3"><a href="#h1250841848308">생성자 formView::init()</a></li><li class="toc3"><a href="#h1250841811001">견적서 목록 formView::dispFormContentList()</a></li><li class="toc3"><a href="#h1250842518041">견적서 목록 skins/sample/list.html</a></li><li class="toc3"><a href="#h1250842395492">견적서 내용보기 formView::dispFormContentView()</a></li><li class="toc3"><a href="#h1250843985672">견적서 보기 skins/sample/view.html</a></li></ul></div><div class="eArea xe_content xe_dr_txt"><p>관리자가 견적서 폼을 생성하여 사용자 화면인 견적서 목록을 구현하겠습니다. 관리자와 같은 방법으로 module.xml을 참조하여 form.view.php와 form.controller.php에 class 및 필요한 member method를 만듭니다. 또 스킨은 sample이라는 스킨명으로 구현하겠습니다.<br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250841637733">form.view.php</h3></div><div class="eArea xe_content xe_dr_txt"><p>&nbsp;&nbsp;&nbsp; class formView extends form {<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /** <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * @brief 초기화<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; **/<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function init() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /** <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * @brief 목록<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; **/<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function dispFormContentList() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * @brief 선택된 견적서 내용보기<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; **/<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function dispFormContentView(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * @brief 견적서 작성 화면 출력<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; **/<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function dispFormContentWrite() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250841848308">생성자 formView::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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function init() {<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * 스킨 경로를 미리 template_path 라는 변수로 설정함<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * 스킨이 존재하지 않는다면 sample로 변경<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; **/<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $template_path = sprintf("%sskins/%s/",$this-&gt;module_path, $this-&gt;module_info-&gt;skin);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!is_dir($template_path)||!$this-&gt;module_info-&gt;skin) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;module_info-&gt;skin = 'sample';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $template_path = sprintf("%sskins/%s/",$this-&gt;module_path, $this-&gt;module_info-&gt;skin);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;setTemplatePath($template_path);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 확장 변수 사용시 미리 확장변수의 대상 키들을 가져와서 context set<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $oDocumentModel = &amp;getModel('document');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $extra_keys = $oDocumentModel-&gt;getExtraKeys($this-&gt;module_info-&gt;module_srl);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Context::set('extra_keys', $extra_keys);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 게시판 전반적으로 사용되는 javascript 추가<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Context::addJsFile($this-&gt;module_path.'tpl/js/form.js');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250841811001">견적서 목록 formView::dispFormContentList()</h3></div><div class="eArea xe_content xe_dr_txt"><p>form 모듈은 기본적으로 document모듈을 이용합니다. 견적서를 가져올 때도 document모듈의 모델을 사용하여 가져오고 document의 entity class인 documentItem(document.item.php)의 목록을 받습니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * @brief 목록<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; **/<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function dispFormContentList() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $args-&gt;module_srl = $this-&gt;module_srl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $args-&gt;page = Context::get('page');<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $oDocumentModel = &amp;getModel('document');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $output = $oDocumentModel-&gt;getDocumentList($args,true);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Context::set('document_list', $output-&gt;data);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Context::set('page', $output-&gt;page);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Context::set('page_navigation', $output-&gt;page_navigation);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // template_file을 list.html로 지정<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;setTemplateFile('list');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250842518041">견적서 목록 skins/sample/list.html</h3></div><div class="eArea xe_content xe_dr_txt"><p>템플릿에서는 documentItem(document.item.php)의 getTitle(), getNickName() 등을 참고하여 구현합니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p>&nbsp;13 &lt;!--@foreach($document_list as $no =&gt; $document)--&gt;<br>&nbsp;14&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr class="bg{($no+1)%2+1}"&gt;<br>&nbsp;15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td class="num"&gt;&lt;!--@if($document_srl == $document-&gt;document_srl)--&gt;&amp;raquo;&lt;!--@else--&gt;{$no}&lt;!--@end--&gt;&lt;/td&gt;<br>&nbsp;16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td class="title"&gt; &lt;a href="{getUrl('act','dispFormContentView','document_srl',$document-&gt;document_srl)}"&gt;{$document-&gt;getTitle($module_info-&gt;subject_cut_size)}&lt;/a&gt; {$document-&gt;printExtraImages(60*60*&nbsp;&nbsp;&nbsp; $module_info-&gt;duration_new)} &lt;/td&gt;<br>&nbsp;17&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td class="author"&gt;&lt;a href="#popup_menu_area" class="member_{$document-&gt;get('member_srl')}" onclick="return false"&gt;{$document-&gt;getNickName()}&lt;/a&gt;&lt;/td&gt;<br>&nbsp;18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td class="num"&gt;{$document-&gt;getRegdate()}&lt;/td&gt;<br>&nbsp;19&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br>&nbsp;20 &lt;!--@end--&gt;<br><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250842395492">견적서 내용보기 formView::dispFormContentView()</h3></div><div class="eArea xe_content xe_dr_txt"><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * @brief 선택된 견적서 내용보기<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; **/<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function dispFormContentView(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $page = Context::get('page');<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // document_srl 이 없으면<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $document_srl = Context::get('document_srl');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!$document_srl) return new Object(-1,'msg_invalid_request');<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 해당 document를 가져옴<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $oDocumentModel = &amp;getModel('document');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $oDocument = $oDocumentModel-&gt;getDocument($document_srl);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 해당 문서가 존재하지 않다면 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!$oDocument-&gt;isExists()) return new Object(-1,'msg_invalid_request');<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 글과 요청된 모듈이 다르다면 오류 표시<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if($oDocument-&gt;get('module_srl') != $this-&gt;module_info-&gt;module_srl ) return new Object(-1,'msg_invalid_request');<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Context::set('oDocument',$oDocument);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // template_file을 view.html로 지정<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;setTemplateFile('view');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br></p></div><div class="eArea xe_content xe_dr_txt"><p>* 변수의 값이 꼭 들어와야하는 안들어 왔을 경우 오류를 나타내기 위해서는 new Object(-1,<span style="font-weight: bold;">[lang code]</span>); 를 리턴합니다.<br></p><p>if(!$document_srl) return new Object(-1,'msg_invalid_request'); <br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250843985672">견적서 보기 skins/sample/view.html</h3></div><div class="eArea xe_content xe_dr_txt"><p>&nbsp; 3 &lt;div class="formRead"&gt;<br>&nbsp; 4&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class="formReadHeader"&gt;<br>&nbsp; 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h3 class="title"&gt;&lt;a href="{$oDocument-&gt;getPermanentUrl()}"&gt;{$oDocument-&gt;getTitle()}&lt;/a&gt;&lt;/h3&gt;<br>&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;em&gt;<br>&nbsp; 7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--@if(!$oDocument-&gt;getMemberSrl())--&gt;<br>&nbsp; 8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--@if($oDocument-&gt;isExistsHomepage())--&gt;<br>&nbsp; 9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;a href="{$oDocument-&gt;getHomepageUrl()}" onclick="window.open(this.href);return false;"&gt;{$oDocument-&gt;getNickName()}&lt;/a&gt;<br>&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--@else--&gt;<br>&nbsp;11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {$oDocument-&gt;getNickName()}<br>&nbsp;12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--@end--&gt;<br>&nbsp;13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--@else--&gt;<br>&nbsp;14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;a href="#popup_menu_area" class="member_{$oDocument-&gt;get('member_srl')}" onclick="return false"&gt;{$oDocument-&gt;getNickName()}&lt;/a&gt;<br>&nbsp;15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--@end--&gt;<br>&nbsp;16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/em&gt;<br>&nbsp;17&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br>&nbsp;18&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;19&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--@if($oDocument-&gt;isExtraVarsExists() )--&gt;<br>&nbsp;20&nbsp;&nbsp;&nbsp;&nbsp; &lt;table border="1" cellspacing="0" summary="Extra Form" class="extraVarsList"&gt;<br>&nbsp;21&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--@foreach($oDocument-&gt;getExtraVars() as $key =&gt; $val)--&gt;<br>&nbsp;22&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt; <br>&nbsp;23&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;{$val-&gt;name} :&lt;/th&gt;<br>&nbsp;24&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;{$val-&gt;getValueHTML()}&lt;/td&gt;<br>&nbsp;25&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br>&nbsp;26&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--@end--&gt;<br>&nbsp;27&nbsp;&nbsp;&nbsp;&nbsp; &lt;/table&gt;<br>&nbsp;28&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--@end--&gt;<br>&nbsp;29&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;30&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class="formReadBody"&gt;<br>&nbsp;31&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {$oDocument-&gt;getContent(false)}<br>&nbsp;32&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br>&nbsp;33&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class="formNavigation"&gt;<br>&nbsp;34&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class="buttonLeft"&gt;<br>&nbsp;35&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;a href="{getUrl('','mid',$mid)}" class="button"&gt;&lt;span&gt;{$lang-&gt;cmd_list}&lt;/span&gt;&lt;/a&gt;<br>&nbsp;36&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br>&nbsp;37&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br>&nbsp;38 &lt;/div&gt;<br></p></div>
sol 2009.08.21 17:42:42
복원
<div class="eArea xe_content xe_dr_txt"><p>관리자가 견적서 폼을 생성하여 사용자 화면인 견적서 목록을 구현하겠습니다. 관리자와 같은 방법으로 module.xml을 참조하여 form.view.php와 form.controller.php에 class 및 필요한 member method를 만듭니다. 또 스킨은 sample이라는 스킨명으로 구현하겠습니다.<br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250841637733">form.view.php</h3></div><div class="eArea xe_content xe_dr_txt"><p>&nbsp;&nbsp;&nbsp; class formView extends form {<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /** <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * @brief 초기화<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; **/<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function init() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /** <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * @brief 목록<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; **/<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function dispFormContentList() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * @brief 선택된 견적서 내용보기<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; **/<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function dispFormContentView(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * @brief 견적서 작성 화면 출력<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; **/<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function dispFormContentWrite() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250841848308">생성자 formView::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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function init() {<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * 스킨 경로를 미리 template_path 라는 변수로 설정함<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * 스킨이 존재하지 않는다면 sample로 변경<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; **/<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $template_path = sprintf("%sskins/%s/",$this-&gt;module_path, $this-&gt;module_info-&gt;skin);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!is_dir($template_path)||!$this-&gt;module_info-&gt;skin) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;module_info-&gt;skin = 'sample';<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $template_path = sprintf("%sskins/%s/",$this-&gt;module_path, $this-&gt;module_info-&gt;skin);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;setTemplatePath($template_path);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 확장 변수 사용시 미리 확장변수의 대상 키들을 가져와서 context set<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $oDocumentModel = &amp;getModel('document');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $extra_keys = $oDocumentModel-&gt;getExtraKeys($this-&gt;module_info-&gt;module_srl);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Context::set('extra_keys', $extra_keys);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 게시판 전반적으로 사용되는 javascript 추가<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Context::addJsFile($this-&gt;module_path.'tpl/js/form.js');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250841811001">견적서 목록 formView::dispFormContentList()</h3></div><div class="eArea xe_content xe_dr_txt"><p>form 모듈은 기본적으로 document모듈을 이용합니다. 견적서를 가져올 때도 document모듈의 모델을 사용하여 가져오고 document의 entity class인 documentItem(document.item.php)의 목록을 받습니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * @brief 목록<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; **/<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function dispFormContentList() {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $args-&gt;module_srl = $this-&gt;module_srl;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $args-&gt;page = Context::get('page');<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $oDocumentModel = &amp;getModel('document');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $output = $oDocumentModel-&gt;getDocumentList($args,true);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Context::set('document_list', $output-&gt;data);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Context::set('page', $output-&gt;page);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Context::set('page_navigation', $output-&gt;page_navigation);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // template_file을 list.html로 지정<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;setTemplateFile('list');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250842518041">견적서 목록 skins/sample/list.html</h3></div><div class="eArea xe_content xe_dr_txt"><p>템플릿에서는 documentItem(document.item.php)의 getTitle(), getNickName() 등을 참고하여 구현합니다.<br></p></div><div class="eArea xe_content xe_dr_txt"><p>&nbsp;13 &lt;!--@foreach($document_list as $no =&gt; $document)--&gt;<br>&nbsp;14&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr class="bg{($no+1)%2+1}"&gt;<br>&nbsp;15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td class="num"&gt;&lt;!--@if($document_srl == $document-&gt;document_srl)--&gt;&amp;raquo;&lt;!--@else--&gt;{$no}&lt;!--@end--&gt;&lt;/td&gt;<br>&nbsp;16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td class="title"&gt; &lt;a href="{getUrl('+
'+
'act','dispFormContentView','document_srl',$document-&gt;document_srl)}"&gt;{$document-&gt;getTitle($module_info-&gt;subject_cut_size)}&lt;/a&gt; {$document-&gt;printExtraImages(60*60*&nbsp;&nbsp;&nbsp; $module_info-&gt;duration_new)} &lt;/td&gt;<br>&nbsp;17&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td class="author"&gt;&lt;a href="#popup_menu_area" class="member_{$document-&gt;get('member_srl')}" onclick="return false"&gt;{$document-&gt;getNickName()}&lt;/a&gt;&lt;/td&gt;<br>&nbsp;18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td class="num"&gt;{$document-&gt;getRegdate()}&lt;/td&gt;<br>&nbsp;19&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br>&nbsp;20 &lt;!--@end--&gt;<br><br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250842395492">견적서 내용보기 formView::dispFormContentView()</h3></div><div class="eArea xe_content xe_dr_txt"><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /**<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * @brief 선택된 견적서 내용보기<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; **/<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function dispFormContentView(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $page = Context::get('page');<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // document_srl 이 없으면<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $document_srl = Context::get('document_srl');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!$document_srl) return new Object(-1,'msg_invalid_request');<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 해당 document를 가져옴<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $oDocumentModel = &amp;getModel('document');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $oDocument = $oDocumentModel-&gt;getDocument($document_srl);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 해당 문서가 존재하지 않다면 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!$oDocument-&gt;isExists()) return new Object(-1,'msg_invalid_request');<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 글과 요청된 모듈이 다르다면 오류 표시<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if($oDocument-&gt;get('module_srl') != $this-&gt;module_info-&gt;module_srl ) return new Object(-1,'msg_invalid_request');<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Context::set('oDocument',$oDocument);<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // template_file을 view.html로 지정<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $this-&gt;setTemplateFile('view');<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br></p></div><div class="eArea xe_content xe_dr_txt"><p>* 변수의 값이 꼭 들어와야하는 안들어 왔을 경우 오류를 나타내기 위해서는 new Object(-1,<span style="font-weight: bold;">[lang code]</span>); 를 리턴합니다.<br></p><p>if(!$document_srl) return new Object(-1,'msg_invalid_request'); <br></p></div><div class="eArea xe_content xe_dr_hx"><h3 id="h1250843985672">견적서 보기 skins/sample/view.html</h3></div><div class="eArea xe_content xe_dr_txt"><p>&nbsp; 3 &lt;div class="formRead"&gt;<br>&nbsp; 4&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class="formReadHeader"&gt;<br>&nbsp; 5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;h3 class="title"&gt;&lt;a href="{$oDocument-&gt;getPermanentUrl()}"&gt;{$oDocument-&gt;getTitle()}&lt;/a&gt;&lt;/h3&gt;<br>&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;em&gt;<br>&nbsp; 7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--@if(!$oDocument-&gt;getMemberSrl())--&gt;<br>&nbsp; 8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--@if($oDocument-&gt;isExistsHomepage())--&gt;<br>&nbsp; 9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;a href="{$oDocument-&gt;getHomepageUrl()}" onclick="window.open(this.href);return false;"&gt;{$oDocument-&gt;getNickName()}&lt;/a&gt;<br>&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--@else--&gt;<br>&nbsp;11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {$oDocument-&gt;getNickName()}<br>&nbsp;12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--@end--&gt;<br>&nbsp;13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--@else--&gt;<br>&nbsp;14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;a href="#popup_menu_area" class="member_{$oDocument-&gt;get('member_srl')}" onclick="return false"&gt;{$oDocument-&gt;getNickName()}&lt;/a&gt;<br>&nbsp;15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--@end--&gt;<br>&nbsp;16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/em&gt;<br>&nbsp;17&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br>&nbsp;18&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;19&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--@if($oDocument-&gt;isExtraVarsExists() )--&gt;<br>&nbsp;20&nbsp;&nbsp;&nbsp;&nbsp; &lt;table border="1" cellspacing="0" summary="Extra Form" class="extraVarsList"&gt;<br>&nbsp;21&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--@foreach($oDocument-&gt;getExtraVars() as $key =&gt; $val)--&gt;<br>&nbsp;22&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt; <br>&nbsp;23&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;th&gt;{$val-&gt;name} :&lt;/th&gt;<br>&nbsp;24&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td&gt;{$val-&gt;getValueHTML()}&lt;/td&gt;<br>&nbsp;25&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br>&nbsp;26&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--@end--&gt;<br>&nbsp;27&nbsp;&nbsp;&nbsp;&nbsp; &lt;/table&gt;<br>&nbsp;28&nbsp;&nbsp;&nbsp;&nbsp; &lt;!--@end--&gt;<br>&nbsp;29&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;30&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class="formReadBody"&gt;<br>&nbsp;31&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {$oDocument-&gt;getContent(false)}<br>&nbsp;32&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br>&nbsp;33&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class="formNavigation"&gt;<br>&nbsp;34&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div class="buttonLeft"&gt;<br>&nbsp;35&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;a href="{getUrl('','mid',$mid)}" class="button"&gt;&lt;span&gt;{$lang-&gt;cmd_list}&lt;/span&gt;&lt;/a&gt;<br>&nbsp;36&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br>&nbsp;37&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br>&nbsp;38 &lt;/div&gt;<br></p></div>
sol 2009.08.21 17:41:52