기타 강좌

XE를 1.1.5로 업데이트하고나니 기존에 만들어 두었던 위젯들이 약간의 오류를 발생합니다.
어떤분은 기존의 위젯들을 그대로 사용해도 아무 문제가 없다고 이야기 하는데 그렇지만은 않네요.
제가 만든 위젯들을 전부 수정할려니 귀찮기도 하고 제가 만들지 않은 위젯에서도 문제를 일으킬 수 있으므로 수정 방법을 설명드립니다.

문제점
1. 기존의 위젯을 그대로 사용할시 위젯설정의 저장이 제대로 되지 않는 문제가 발생합니다.
2.  module_srls만 수정시 모듈선택이 제대로 되지를 않고 모든 모듈이 선택이 됩니다.
참고로 기존에 사용중이던 위젯은 수정을 하지 않으면 정상적으로 작동합니다. 

수정방법
1. 위젯의 php파일에서(예제: mh_multi_com.class.php) [수정후] 부분을 추가시켜 주세요. 

수정후
// 대상 모듈 (mid_list는 기존 위젯의 호환을 위해서 처리하는 루틴을 유지. module_srl로 위젯에서 변경)
if($args->mid_list) {
 $mid_list = explode(",",$args->mid_list);
 $oModuleModel = &getModel('module');
 if(count($mid_list)) {
  $module_srl = $oModuleModel->getModuleSrlByMid($mid_list);
 } else {
  $site_module_info = Context::get('site_module_info');
  if($site_module_info) {
   $margs->site_srl = $site_module_info->site_srl;
   $oModuleModel = &getModel('module');
   $output = $oModuleModel->getMidList($margs);
   if(count($output)) $mid_list = array_keys($output);
   $module_srl = $oModuleModel->getModuleSrlByMid($mid_list);
  }
 }
} else $module_srl = explode(',',$args->module_srls);

2. conf/info.xml파일에서 [수정전] 부분을 찾아서 [수정후] 부분으로 바꾸어 주세요. 

수정전 
 <var id="mid_list">
   <type>mid_list</type>

수정후
  <var id="module_srls">
   <type>module_srl_list</type>

참고로 수정전 부분을 제거하지 않으면 위젯 설정내용이 저장이 되지를 않습니다. 
widgets.jpg

위와 같이 하시면 아마 정상적으로 위젯들이 작동할 것 입니다.
혹시 문제를 일으키는 위젯들이 있으면 댓글 달아주세요.

Who's 아방스

profile