/**
  * @brief insert borad module
  **/
 function procBoardAdminInsertBoard($args = null)
 {
     // igenerate module model/controller object
     $oModuleController = getController('module');
     $oModuleModel = getModel('module');
     // setup the board module infortmation
     $args = Context::getRequestVars();
     $args->module = 'board';
     $args->mid = $args->board_name;
     if (is_array($args->use_status)) {
         $args->use_status = implode('|@|', $args->use_status);
     }
     unset($args->board_name);
     // setup extra_order_target
     $extra_order_target = array();
     if ($args->module_srl) {
         $oDocumentModel = getModel('document');
         $module_extra_vars = $oDocumentModel->getExtraKeys($args->module_srl);
         foreach ($module_extra_vars as $oExtraItem) {
             $extra_order_target[$oExtraItem->eid] = $oExtraItem->name;
         }
     }
     // setup other variables
     if ($args->except_notice != 'Y') {
         $args->except_notice = 'N';
     }
     if ($args->use_anonymous != 'Y') {
         $args->use_anonymous = 'N';
     }
     if ($args->consultation != 'Y') {
         $args->consultation = 'N';
     }
     if ($args->protect_content != 'Y') {
         $args->protect_content = 'N';
     }
     if (!in_array($args->order_target, $this->order_target) && !in_array($args->order_target, $extra_order_target)) {
         $args->order_target = 'list_order';
     }
     if (!in_array($args->order_type, array('asc', 'desc'))) {
         $args->order_type = 'asc';
     }
     // if there is an existed module
     if ($args->module_srl) {
         $module_info = $oModuleModel->getModuleInfoByModuleSrl($args->module_srl);
         if ($module_info->module_srl != $args->module_srl) {
             unset($args->module_srl);
         }
     }
     // insert/update the board module based on module_srl
     if (!$args->module_srl) {
         $args->hide_category = 'N';
         $output = $oModuleController->insertModule($args);
         $msg_code = 'success_registed';
     } else {
         $args->hide_category = $module_info->hide_category;
         $output = $oModuleController->updateModule($args);
         $msg_code = 'success_updated';
     }
     if (!$output->toBool()) {
         return $output;
     }
     // setup list config
     $list = explode(',', Context::get('list'));
     if (count($list)) {
         $list_arr = array();
         foreach ($list as $val) {
             $val = trim($val);
             if (!$val) {
                 continue;
             }
             if (substr($val, 0, 10) == 'extra_vars') {
                 $val = substr($val, 10);
             }
             $list_arr[] = $val;
         }
         $oModuleController = getController('module');
         $oModuleController->insertModulePartConfig('board', $output->get('module_srl'), $list_arr);
     }
     $this->setMessage($msg_code);
     if (Context::get('success_return_url')) {
         changeValueInUrl('mid', $args->mid, $module_info->mid);
         $this->setRedirectUrl(Context::get('success_return_url'));
     } else {
         $this->setRedirectUrl(getNotEncodedUrl('', 'module', 'admin', 'act', 'dispBoardAdminBoardInfo', 'module_srl', $output->get('module_srl')));
     }
 }
Beispiel #2
0
 /**
  * @brief Modify module information
  */
 function updateModule($args)
 {
     if (isset($args->isMenuCreate)) {
         $isMenuCreate = $args->isMenuCreate;
     } else {
         $isMenuCreate = TRUE;
     }
     $output = $this->arrangeModuleInfo($args, $extra_vars);
     if (!$output->toBool()) {
         return $output;
     }
     // begin transaction
     $oDB =& DB::getInstance();
     $oDB->begin();
     $oModuleModel = getModel('module');
     $columnList = array('module_srl', 'site_srl', 'browser_title', 'mid');
     $module_info = $oModuleModel->getModuleInfoByModuleSrl($args->module_srl);
     if (!$args->site_srl || !$args->browser_title) {
         if (!$args->site_srl) {
             $args->site_srl = (int) $module_info->site_srl;
         }
         if (!$args->browser_title) {
             $args->browser_title = $module_info->browser_title;
         }
     }
     $args->browser_title = strip_tags($args->browser_title);
     $output = executeQuery('module.isExistsModuleName', $args);
     if (!$output->toBool() || $output->data->count) {
         $oDB->rollback();
         return new Object(-1, 'msg_module_name_exists');
     }
     // default value
     if ($args->skin == '/USE_DEFAULT/') {
         $args->is_skin_fix = 'N';
     } else {
         if (isset($args->is_skin_fix)) {
             $args->is_skin_fix = $args->is_skin_fix != 'Y' ? 'N' : 'Y';
         } else {
             $args->is_skin_fix = 'Y';
         }
     }
     if ($args->mskin == '/USE_DEFAULT/') {
         $args->is_mskin_fix = 'N';
     } else {
         if (isset($args->is_mskin_fix)) {
             $args->is_mskin_fix = $args->is_mskin_fix != 'Y' ? 'N' : 'Y';
         } else {
             $args->is_mskin_fix = 'Y';
         }
     }
     $output = executeQuery('module.updateModule', $args);
     if (!$output->toBool()) {
         $oDB->rollback();
         return $output;
     }
     if ($isMenuCreate === TRUE) {
         $menuArgs = new stdClass();
         $menuArgs->url = $module_info->mid;
         $menuArgs->site_srl = $module_info->site_srl;
         $menuOutput = executeQueryArray('menu.getMenuItemByUrl', $menuArgs);
         if ($menuOutput->data && count($menuOutput->data)) {
             $oMenuAdminController = getAdminController('menu');
             foreach ($menuOutput->data as $itemInfo) {
                 $itemInfo->url = $args->mid;
                 $updateMenuItemOutput = $oMenuAdminController->updateMenuItem($itemInfo);
                 if (!$updateMenuItemOutput->toBool()) {
                     $oDB->rollback();
                     return $updateMenuItemOutput;
                 }
             }
         }
     }
     // if mid changed, change mid of success_return_url to new mid
     if ($module_info->mid != $args->mid && Context::get('success_return_url')) {
         changeValueInUrl('mid', $args->mid, $module_info->mid);
     }
     // Insert module extra vars
     $this->insertModuleExtraVars($args->module_srl, $extra_vars);
     $oDB->commit();
     $output->add('module_srl', $args->module_srl);
     //remove from cache
     Rhymix\Framework\Cache::clearGroup('site_and_module');
     return $output;
 }