isActivatedAddon($addon)) $this->doDeactivate($addon); // 비활성화 되어 있으면 활성화 시킴 else $this->doActivate($addon); } $this->makeCacheFile(); } /** * @brief 애드온 설정 정보 입력 **/ function procAddonAdminSetupAddon() { $args = Context::getRequestVars(); $addon_name = $args->addon_name; unset($args->module); unset($args->act); unset($args->addon_name); $this->doSetup($addon_name, $args); $this->makeCacheFile(); } /** * @brief 캐시 파일 생성 **/ function makeCacheFile() { // 모듈에서 애드온을 사용하기 위한 캐시 파일 생성 $buff = ""; $oAddonModel = &getAdminModel('addon'); $addon_list = $oAddonModel->getInsertedAddons(); foreach($addon_list as $addon=> $val) { if($val->is_used != 'Y') continue; if($val->extra_vars) { unset($extra_vars); $extra_vars = base64_encode($val->extra_vars); } $buff .= sprintf(' if(file_exists("./addons/%s/%s.addon.php")) { unset($addon_info); $addon_info = unserialize(base64_decode("%s")); $addon_path = "./addons/%s/"; @include("./addons/%s/%s.addon.php"); }', $addon, $addon, $extra_vars, $addon, $addon, $addon); } $buff = sprintf('', $buff); FileHandler::writeFile($this->cache_file, $buff); } /** * @brief 애드온 추가 * DB에 애드온을 추가함 **/ function doInsert($addon) { $args->addon = $addon; $args->is_used = 'N'; return executeQuery('addon.insertAddon', $args); } /** * @brief 애드온 활성화 * addons라는 테이블에 애드온의 활성화 상태를 on 시켜줌 **/ function doActivate($addon) { $args->addon = $addon; $args->is_used = 'Y'; return executeQuery('addon.updateAddon', $args); } /** * @brief 애드온 비활성화 * * addons라는 테이블에 애드온의 이름을 제거하는 것으로 비활성화를 시키게 된다 **/ function doDeactivate($addon) { $args->addon = $addon; $args->is_used = 'N'; return executeQuery('addon.updateAddon', $args); } /** * @brief 애드온 설정 **/ function doSetup($addon, $extra_vars) { $args->addon = $addon; $args->extra_vars = serialize($extra_vars); return executeQuery('addon.updateAddon', $args); } } ?>