/** * Make invalid group key (like delete group key) * * @param string $keyGroupName Group name * @return void */ public function invalidateGroupKey($keyGroupName) { return Rhymix\Framework\Cache::clearGroup($keyGroupName); }
/** * Delete cached group data * @return void */ function _deleteMemberGroupCache($site_srl = 0) { //remove from cache Rhymix\Framework\Cache::clearGroup('member'); }
function updateModuleInSites($site_srls, $args) { $args = new stdClass(); $args->site_srls = $site_srls; $output = executeQuery('module.updateModuleInSites', $args); Rhymix\Framework\Cache::clearGroup('site_and_module'); return $output; }
/** * Delete all comments of the specific module * @return object */ function deleteModuleComments($module_srl) { $args = new stdClass(); $args->module_srl = $module_srl; $output = executeQuery('comment.deleteModuleComments', $args); if (!$output->toBool()) { return $output; } $output = executeQuery('comment.deleteModuleCommentsList', $args); //remove from cache Rhymix\Framework\Cache::clearGroup('newestCommentsList'); return $output; }
/** * insert menu when not linked module. * * @param array $moduleInfos * @param int $menuSrl * * @return Object */ function updateLinkModule($moduleInfos, $menuSrl) { if (!$moduleInfos || !is_array($moduleInfos) || count($moduleInfos) == 0 || $menuSrl == 0) { return new Object(-1, 'msg_invalid_request'); } foreach ($moduleInfos as $moduleInfo) { // search menu. $args = new stdClass(); $args->url = $moduleInfo->mid; $args->site_srl = $moduleInfo->site_srl; $args->is_shortcut = 'N'; $output = executeQuery('menu.getMenuItemByUrl', $args); if ($output->toBool() && $output->data) { $moduleInfo->menu_srl = $output->data->menu_srl; } else { // create menu item. $item_args = new stdClass(); $item_args->menu_srl = $menuSrl; $item_args->url = $moduleInfo->mid; $item_args->name = $moduleInfo->mid; $item_args->menu_item_srl = getNextSequence(); $item_args->listorder = -1 * $item_args->menu_item_srl; $output = executeQuery('menu.insertMenuItem', $item_args); if (!$output->toBool()) { return $output; } $moduleInfo->menu_srl = $menuSrl; } $output = executeQuery('module.updateModule', $moduleInfo); return $output; } Rhymix\Framework\Cache::clearGroup('site_and_module'); $oMenuAdminController = getAdminController('menu'); $oMenuAdminController->makeXmlFile($menuSrl); return new Object(); }
/** * @brief Reset points for each module */ function procPointAdminReset() { $module_srl = Context::get('module_srls'); if (!$module_srl) { return new Object(-1, 'msg_invalid_request'); } // In case of batch configuration of several modules if (preg_match('/^([0-9,]+)$/', $module_srl)) { $module_srl = explode(',', $module_srl); } else { $module_srl = array($module_srl); } // Save configurations $oModuleController = getController('module'); for ($i = 0; $i < count($module_srl); $i++) { $srl = trim($module_srl[$i]); if (!$srl) { continue; } $args = new stdClass(); $args->module = 'point'; $args->module_srl = $srl; executeQuery('module.deleteModulePartConfig', $args); } Rhymix\Framework\Cache::clearGroup('site_and_module'); $this->setMessage('success_updated'); }
/** * Update layout information * Apply a title of the new layout and extra vars * @return Object */ function procLayoutAdminUpdate() { // Consider the rest of items as extra vars, except module, act, layout_srl, layout, and title .. Some gurida .. $extra_vars = Context::getRequestVars(); unset($extra_vars->module); unset($extra_vars->act); unset($extra_vars->layout_srl); unset($extra_vars->layout); unset($extra_vars->title); unset($extra_vars->apply_layout); unset($extra_vars->apply_mobile_view); $is_sitemap = $extra_vars->is_sitemap; unset($extra_vars->is_sitemap); $args = Context::gets('layout_srl', 'title'); // Get layout information $oLayoutModel = getModel('layout'); $oMenuAdminModel = getAdminModel('menu'); $layout_info = $oLayoutModel->getLayout($args->layout_srl); if ($layout_info->menu) { $menus = get_object_vars($layout_info->menu); } if (count($menus)) { foreach ($menus as $menu_id => $val) { $menu_srl = Context::get($menu_id); if (!$menu_srl) { continue; } // if menu is -1, get default menu in site if ($menu_srl == -1) { $oModuleModel = getModel('module'); $start_module = $oModuleModel->getSiteInfo(0, $columnList); $tmpArgs = new stdClass(); $tmpArgs->url = $start_module->mid; $tmpArgs->site_srl = 0; $output = executeQuery('menu.getMenuItemByUrl', $tmpArgs); if (!$output->toBool()) { return new Object(-1, 'fail_to_update'); } $menu_srl = $output->data->menu_srl; } $output = $oMenuAdminModel->getMenu($menu_srl); $menu_srl_list[] = $menu_srl; $menu_name_list[$menu_srl] = $output->title; $apply_layout = Context::get('apply_layout'); $apply_mobile_view = Context::get('apply_mobile_view'); if ($apply_layout == 'Y' || $apply_mobile_view == 'Y') { $menu_args = new stdClass(); $menu_args->menu_srl = $menu_srl; $menu_args->site_srl = $layout_info->site_srl; $output = executeQueryArray('layout.getLayoutModules', $menu_args); if ($output->data) { $modules = array(); for ($i = 0; $i < count($output->data); $i++) { $modules[] = $output->data[$i]->module_srl; } if (count($modules)) { $update_args = new stdClass(); $update_args->module_srls = implode(',', $modules); if ($apply_layout == "Y") { $update_args->layout_srl = $args->layout_srl; } if ($layout_info->layout_type == "M") { if (Context::get('apply_mobile_view') == "Y") { $update_args->use_mobile = "Y"; } $output = executeQuery('layout.updateModuleMLayout', $update_args); } else { $output = executeQuery('layout.updateModuleLayout', $update_args); } Rhymix\Framework\Cache::clearGroup('site_and_module'); } } } } } $tmpDir = sprintf('./files/attach/images/%s/tmp', $args->layout_srl); // Separately handle if a type of extra_vars is an image if ($layout_info->extra_var) { foreach ($layout_info->extra_var as $name => $vars) { if ($vars->type != 'image') { continue; } $fileName = $extra_vars->{$name}; if ($vars->value == $fileName) { continue; } FileHandler::removeFile($vars->value); if (!$fileName) { continue; } $pathInfo = pathinfo($fileName); $tmpFileName = sprintf('%s/tmp/%s', $pathInfo['dirname'], $pathInfo['basename']); if (!FileHandler::moveFile($tmpFileName, $fileName)) { unset($extra_vars->{$name}); } } } // Save header script into "config" of layout module $oModuleModel = getModel('module'); $oModuleController = getController('module'); $layout_config = new stdClass(); $layout_config->header_script = Context::get('header_script'); $oModuleController->insertModulePartConfig('layout', $args->layout_srl, $layout_config); // Save a title of the menu $extra_vars->menu_name_list = $menu_name_list; // Variable setting for DB insert $args->extra_vars = serialize($extra_vars); $output = $this->updateLayout($args); if (!$output->toBool()) { return $output; } FileHandler::removeDir($tmpDir); if (!$is_sitemap) { return $this->setRedirectUrl(Context::get('error_return_url'), $output); } else { $context = Context::getInstance(); $context->setRequestMethod('JSON'); $this->setMessage('success'); } }
/** * @brief Execute update */ function moduleUpdate() { $oDB =& DB::getInstance(); // 2008. 10. 27 module_part_config Add a multi-index to the table and check all information of module_configg if (!$oDB->isIndexExists("module_part_config", "idx_module_part_config")) { $oModuleModel = getModel('module'); $oModuleController = getController('module'); $modules = $oModuleModel->getModuleList(); foreach ($modules as $key => $module_info) { $module = $module_info->module; if (!in_array($module, array('point', 'trackback', 'layout', 'rss', 'file', 'comment', 'editor'))) { continue; } $config = $oModuleModel->getModuleConfig($module); $module_config = null; switch ($module) { case 'point': $module_config = $config->module_point; unset($config->module_point); break; case 'trackback': case 'rss': case 'file': case 'comment': case 'editor': $module_config = $config->module_config; unset($config->module_config); if (is_array($module_config) && count($module_config)) { foreach ($module_config as $key => $val) { if (isset($module_config[$key]->module_srl)) { unset($module_config[$key]->module_srl); } } } break; case 'layout': $tmp = $config->header_script; if (is_array($tmp) && count($tmp)) { foreach ($tmp as $k => $v) { if (!$v && !trim($v)) { continue; } $module_config[$k]->header_script = $v; } } $config = null; break; } $oModuleController->insertModuleConfig($module, $config); if (is_array($module_config) && count($module_config)) { foreach ($module_config as $module_srl => $module_part_config) { $oModuleController->insertModulePartConfig($module, $module_srl, $module_part_config); } } } $oDB->addIndex("module_part_config", "idx_module_part_config", array("module", "module_srl")); } // 2008. 11. 13 drop index(unique_mid). Add a column and index on site_srl and mid columns if (!$oDB->isIndexExists('modules', "idx_site_mid")) { $oDB->dropIndex("modules", "unique_mid", true); $oDB->addColumn('modules', 'site_srl', 'number', 11, 0, true); $oDB->addIndex("modules", "idx_site_mid", array("site_srl", "mid"), true); } // document extra vars if (!$oDB->isTableExists('document_extra_vars')) { $oDB->createTableByXmlFile('./modules/document/schemas/document_extra_vars.xml'); } if (!$oDB->isTableExists('document_extra_keys')) { $oDB->createTableByXmlFile('./modules/document/schemas/document_extra_keys.xml'); } // Move permission, skin info, extection info, admin ID of all modules to the table, grants if ($oDB->isColumnExists('modules', 'grants')) { $oModuleController = getController('module'); $oDocumentController = getController('document'); // Get a value of the current system language code $lang_code = Context::getLangType(); // Get module_info of all modules $output = executeQueryArray('module.getModuleInfos'); if (count($output->data)) { foreach ($output->data as $module_info) { // Separate information about permission granted to the module, extra vars, skin vars, super-admin's authority $module_srl = trim($module_info->module_srl); // grant an authority $grants = unserialize($module_info->grants); if ($grants) { $oModuleController->insertModuleGrants($module_srl, $grants); } // Insert skin vars $skin_vars = unserialize($module_info->skin_vars); if ($skin_vars) { $oModuleController->insertModuleSkinVars($module_srl, $skin_vars); } // Insert super admin's ID $admin_id = trim($module_info->admin_id); if ($admin_id && $admin_id != 'Array') { $admin_ids = explode(',', $admin_id); if (count($admin_id)) { foreach ($admin_ids as $admin_id) { $oModuleController->insertAdminId($module_srl, $admin_id); } } } // Save extra configurations for each module(column data which doesn't exist in the defaut modules) $extra_vars = unserialize($module_info->extra_vars); $document_extra_keys = null; if ($extra_vars->extra_vars && count($extra_vars->extra_vars)) { $document_extra_keys = $extra_vars->extra_vars; unset($extra_vars->extra_vars); } if ($extra_vars) { $oModuleController->insertModuleExtraVars($module_srl, $extra_vars); } /** * Move document extra vars(it should have conducted in the documents module however extra vars in modules table should be listed up in this module) */ // Insert extra vars if planet module is if ($module_info->module == 'planet') { if (!$document_extra_keys || !is_array($document_extra_keys)) { $document_extra_keys = array(); } $planet_extra_keys->name = 'postscript'; $planet_extra_keys->type = 'text'; $planet_extra_keys->is_required = 'N'; $planet_extra_keys->search = 'N'; $planet_extra_keys->default = ''; $planet_extra_keys->desc = ''; $document_extra_keys[20] = $planet_extra_keys; } // Register keys for document extra vars if (count($document_extra_keys)) { foreach ($document_extra_keys as $var_idx => $val) { $oDocumentController->insertDocumentExtraKey($module_srl, $var_idx, $val->name, $val->type, $val->is_required, $val->search, $val->default, $val->desc, 'extra_vars' . $var_idx); } // 2009-04-14 Fixed a bug that only 100 extra vars are moved $oDocumentModel = getModel('document'); $total_count = $oDocumentModel->getDocumentCount($module_srl); if ($total_count > 0) { $per_page = 100; $total_pages = (int) (($total_count - 1) / $per_page) + 1; // Get extra vars if exist $doc_args = new stdClass(); $doc_args->module_srl = $module_srl; $doc_args->list_count = $per_page; $doc_args->sort_index = 'list_order'; $doc_args->order_type = 'asc'; for ($doc_args->page = 1; $doc_args->page <= $total_pages; $doc_args->page++) { $output = executeQueryArray('document.getDocumentList', $doc_args); if ($output->toBool() && $output->data && count($output->data)) { foreach ($output->data as $document) { if (!$document) { continue; } foreach ($document as $key => $var) { if (strpos($key, 'extra_vars') !== 0 || !trim($var) || $var == 'N;') { continue; } $var_idx = str_replace('extra_vars', '', $key); $oDocumentController->insertDocumentExtraVar($module_srl, $document->document_srl, $var_idx, $var, 'extra_vars' . $var_idx, $lang_code); } } } } // for total_pages } // if count } // Additional variables of the module, remove $module_info->grant = null; $module_info->extra_vars = null; $module_info->skin_vars = null; $module_info->admin_id = null; executeQuery('module.updateModule', $module_info); Rhymix\Framework\Cache::clearGroup('site_and_module'); } } // Various column drop $oDB->dropColumn('modules', 'grants'); $oDB->dropColumn('modules', 'admin_id'); $oDB->dropColumn('modules', 'skin_vars'); $oDB->dropColumn('modules', 'extra_vars'); } // Rights of all modules/skins transferring the information into a table Update grants if (!$oDB->isColumnExists('sites', 'default_language')) { $oDB->addColumn('sites', 'default_language', 'varchar', 255, 0, false); } // extra_vars * Remove Column for ($i = 1; $i <= 20; $i++) { if (!$oDB->isColumnExists("documents", "extra_vars" . $i)) { continue; } $oDB->dropColumn('documents', 'extra_vars' . $i); } // Enter the main site information sites on the table $args = new stdClass(); $args->site_srl = 0; $output = $oDB->executeQuery('module.getSite', $args); if (!$output->data) { // Basic mid, language Wanted $mid_output = $oDB->executeQuery('module.getDefaultMidInfo', $args); $domain = Context::getDefaultUrl(); $url_info = parse_url($domain); $domain = $url_info['host'] . (!empty($url_info['port']) && $url_info['port'] != 80 ? ':' . $url_info['port'] : '') . $url_info['path']; $site_args = new stdClass(); $site_args->site_srl = 0; $site_args->index_module_srl = $mid_output->data->module_srl; $site_args->domain = $domain; $site_args->default_language = config('locale.default_lang'); $output = executeQuery('module.insertSite', $site_args); if (!$output->toBool()) { return $output; } } if ($oDB->isIndexExists('sites', 'idx_domain')) { $oDB->dropIndex('sites', 'idx_domain'); } if (!$oDB->isIndexExists('sites', 'unique_domain')) { $this->updateForUniqueSiteDomain(); $oDB->addIndex('sites', 'unique_domain', array('domain'), true); } if (!$oDB->isColumnExists("modules", "use_mobile")) { $oDB->addColumn('modules', 'use_mobile', 'char', 1, 'N'); } if (!$oDB->isColumnExists("modules", "mlayout_srl")) { $oDB->addColumn('modules', 'mlayout_srl', 'number', 11, 0); } if (!$oDB->isColumnExists("modules", "mcontent")) { $oDB->addColumn('modules', 'mcontent', 'bigtext'); } if (!$oDB->isColumnExists("modules", "mskin")) { $oDB->addColumn('modules', 'mskin', 'varchar', 250); } if (!$oDB->isColumnExists("modules", "is_skin_fix")) { $oDB->addColumn('modules', 'is_skin_fix', 'char', 1, 'N'); $output = executeQuery('module.updateSkinFixModules'); } if (!$oDB->isColumnExists("module_config", "site_srl")) { $oDB->addColumn('module_config', 'site_srl', 'number', 11, 0, true); } FileHandler::makeDir('./files/ruleset'); $args->skin = '.'; $output = executeQueryArray('module.getModuleSkinDotList', $args); if ($output->data && count($output->data) > 0) { foreach ($output->data as $item) { $skin_path = explode('.', $item->skin); if (count($skin_path) != 2) { continue; } if (is_dir(sprintf(_XE_PATH_ . 'themes/%s/modules/%s', $skin_path[0], $skin_path[1]))) { $args = new stdClass(); $args->skin = $item->skin; $args->new_skin = implode('|@|', $skin_path); $output = executeQuery('module.updateSkinAll', $args); } } } // XE 1.7 if (!$oDB->isColumnExists("modules", "is_mskin_fix")) { $oDB->addColumn('modules', 'is_mskin_fix', 'char', 1, 'N'); $output = executeQuery('module.updateMobileSkinFixModules'); } $oModuleModel = getModel('module'); $moduleConfig = $oModuleModel->getModuleConfig('module'); if (!$moduleConfig->isUpdateFixedValue) { $output = executeQuery('module.updateSkinFixModules'); $output = executeQuery('module.updateMobileSkinFixModules'); $oModuleController = getController('module'); if (!$moduleConfig) { $moduleConfig = new stdClass(); } $moduleConfig->isUpdateFixedValue = TRUE; $output = $oModuleController->updateModuleConfig('module', $moduleConfig); } return new Object(0, 'success_updated'); }