메뉴 건너뛰기

xe 모듈 제작시 옵션 추가 방법

Average Rating:
 0명 참여
Rate this page:
평점 한줄평 글쓴이 작성날짜


편의상 모듈명은 제가 제작중인 thumbnail_wizard 로 하겠습니다.




1. 저정된 변수값 불러오기


thumbnail_wizard.admin.view.php


 function init()
 {
  // Get configurations (using module model object)
  $oModuleModel = getModel('module');
  $this->config = $oModuleModel->getModuleConfig('thumbnail_wizard');
  //Context::set('thumbnail_wizard_config',$this->config);

  // set the template path
  $this->setTemplatePath($this->module_path . 'tpl');
 }


 function dispThumbnail_wizardAdminIndex()
 {
  //$oModuleModel = &getModel('module');
  Context::set('module_info',$this->module_info);
  Context::set('thumbnail_wizard',$this->config);

  // display
  $this->setTemplateFile('index');
 }


변수를 불러와서 inext.html 에 넘겨준다.



2. 위에서 넘겨 받은 변수를 설정화면에 출력한다.


xe/tpl/index.html


<form action="./" method="get" onsubmit="return procFilter(this, insert_config)" class="x_form-horizontal">

    <div class="x_control-group">
        <label class="x_control-label">* 사용 여부</label>
        <div class="x_controls">
            <label class="x_inline">
                <input type="radio" name="use" value="Y"  id="use_Y" checked="checked"|cond="'Y'==$thumbnail_wizard->use||$thumbnail_wizard->use==''"> {$lang->thumbnail_wizard} 활성화
            </label>
            <label class="x_inline">
                <input type="radio" name="use" value="N"  id="use_N" checked="checked"|cond="'N'==$thumbnail_wizard->use"> {$lang->thumbnail_wizard} 끄기
            </label>

            <br><p class="x_help-inline">{$lang->thumbnail_wizard}의 기능을 사용할 것인지 선택하세요.</p>
        </div>
    </div>

    <div class="x_control-group">
        <label class="x_control-label">썸네일 파일 저장</label>
        <div class="x_controls">
            <label class="x_inline">
                <input type="radio" name="is_save" value="Y"  id="is_save_Y" checked="checked"|cond="'Y'==$thumbnail_wizard->is_save||$thumbnail_wizard->is_save==''"> xe/files/thumbnails/ 폴더에 썸네일 저장
            </label>
            <label class="x_inline">
                <input type="radio" name="is_save" value="N"  id="is_save_N" checked="checked"|cond="'N'==$thumbnail_wizard->is_save"> 썸네일 원본 이미지의 URL을 그대로 사용
            </label>

            <br><p class="x_help-inline">{nl2br($lang->about_save)}</p>

        </div>
    </div>

 <div class="x_clearfix btnArea">
  <div class="x_pull-right">
   <button class="x_btn x_btn-primary" type="submit"  accesskey="s" >{$lang->cmd_registration}</button>
  </div>
 </div>
</form>


form 형태이면 procFilter(this, insert_config)로 연결됩니다.



3. 필터


tpl/filter/insert_config.xml


<filter name="insert_config" module="thumbnail_wizard" act="procThumbnail_wizardAdminInsertConfig" confirm_msg_code="confirm_submit">
    <form />
</filter>


별다른 변수 검사 없이 실행합니다.




4. 변수 저장


어드민 설정 페이지에서 선택한 옵션의 값을 DB에 저장해주는 함수입니다.

index.html 의 '저장' 버튼을 누르면 실행됩니다.


thumbnail_wizard.admin.controller.php


 function procThumbnail_wizardAdminInsertConfig() {
  // Get the basic information
  //$args = Context::getRequestVars();


  // 기존 설정값을 불러와도 되고 안해도 됩니다.

  //$oModuleModel = &getModel('module');
  //$thumbnail_wizard_config = $oModuleModel->getModuleConfig('thumbnail_wizard');


  $oModuleController = &getController('module');

  $thumbnail_wizard_config->use = Context::get('use');
  $thumbnail_wizard_config->is_save = Context::get('is_save');


  $oModuleController->insertModuleConfig('thumbnail_wizard', $thumbnail_wizard_config);
  $this->setMessage('success_updated'); 
  //return output;
 }


사용하려는 옵션 항목은 use, is_save 입니다.




5. 활용


  $oModuleModel = &getModel('module');
  $thumbnail_wizard_config = $oModuleModel->getModuleConfig('thumbnail_wizard');


위와 같이  2줄로 해당 모듈 설정값을 불러올 수 있습니다.




제목 날짜
Star Rating 별점 위젯 업데이트 정보   2014.03.09
modules/editor/tpl.js/uploader.js  
Zeroclipboard 적용하기   file
    10
xe jQuery 최신버전 사용하기 CDN  
    10
http://www.bootstrapcdn.com/   file
태그 목록