function execute() { $root =& XCube_Root::getSingleton(); // load message catalog of legacy for _AD_LEGACY_LANG_NO_SETTING, even if the current module is not Legacy. $root->mLanguageManager->loadModuleAdminMessageCatalog('legacy'); // $root->mLanguageManager->loadModinfoMessageCatalog('legacy'); $controller =& $root->mController; $user =& $root->mController->mRoot->mContext->mXoopsUser; $render =& $this->getRenderTarget(); $render->setAttribute('legacy_module', 'legacy'); $this->mCurrentModule =& $controller->mRoot->mContext->mXoopsModule; if ($this->mCurrentModule->get('dirname') == 'legacy') { if (xoops_getrequest('action') == "help") { $moduleHandler =& xoops_gethandler('module'); $t_module =& $moduleHandler->getByDirname(xoops_gethandler('dirname')); if (is_object($t_module)) { $this->mCurrentModule =& $t_module; } } } $db =& $controller->getDB(); $mod = $db->prefix("modules"); $perm = $db->prefix("group_permission"); $groups = implode(",", $user->getGroups()); // // Users who are belong to ADMIN GROUP have every permissions, so we have to prepare two kinds of SQL. // if ($root->mContext->mUser->isInRole('Site.Owner')) { $sql = "SELECT DISTINCT mid FROM {$mod} WHERE isactive=1 AND hasadmin=1 ORDER BY weight, mid"; } else { $sql = "SELECT DISTINCT {$mod}.mid FROM {$mod},{$perm} " . "WHERE {$mod}.isactive=1 AND {$mod}.mid={$perm}.gperm_itemid AND {$perm}.gperm_name='module_admin' AND {$perm}.gperm_groupid IN ({$groups}) " . "AND {$mod}.hasadmin=1 " . "ORDER BY {$mod}.weight, {$mod}.mid"; } $result = $db->query($sql); $handler =& xoops_gethandler('module'); while ($row = $db->fetchArray($result)) { $xoopsModule =& $handler->get($row['mid']); $module =& Legacy_Utils::createModule($xoopsModule); $this->mModules[] =& $module; unset($module); } // $tpl = $db->prefix("tplfile"); $tpl_modules = array(); $sql = "SELECT DISTINCT tpl_module FROM {$tpl}"; $result = $db->query($sql); while ($row = $db->fetchArray($result)) { $tpl_modules[] = $row['tpl_module']; } $render->setAttribute('tplmodules', $tpl_modules); // $render->setTemplateName('legacy_admin_block_sidemenu.html'); $render->setAttribute('modules', $this->mModules); $render->setAttribute('currentModule', $this->mCurrentModule); $renderSystem =& $root->getRenderSystem($this->getRenderSystemName()); $renderSystem->renderBlock($render); }
function executeViewCancel(&$controller, &$xoopsUser, &$render) { $module = Legacy_Utils::createModule($this->_mMaster->mModule); $controller->executeForward($module->getAdminIndex()); }
function &getVirtualCurrentModule() { static $ret_module; if (is_object($ret_module)) { return $ret_module; } if ($this->mController->mRoot->mContext->mModule != null) { $module =& $this->mController->mRoot->mContext->mXoopsModule; if ($module->get('dirname') == "legacy" && isset($_REQUEST['dirname'])) { if (in_array(xoops_getrequest('action'), $this->_mSpecialActions)) { $handler =& xoops_gethandler('module'); $t_xoopsModule =& $handler->getByDirname(xoops_getrequest('dirname')); $ret_module =& Legacy_Utils::createModule($t_xoopsModule); } } elseif ($module->get('dirname') == "legacy" && xoops_getrequest('action') == 'PreferenceEdit' && isset($_REQUEST['confmod_id'])) { $handler =& xoops_gethandler('module'); $t_xoopsModule =& $handler->get(intval(xoops_getrequest('confmod_id'))); $ret_module =& Legacy_Utils::createModule($t_xoopsModule); } if (!is_object($ret_module)) { $ret_module =& Legacy_Utils::createModule($module); } } return $ret_module; }
/** * Create some instances for the module process. * Because Legacy_ModuleContext needs XoopsModule instance, this function * kills the process if XoopsModule instance can't be found. Plus, in the * case, raises 'Legacy.Event.Exception.XoopsModuleNotFound'. * * @param Legacy_HttpContext $context * @param string $dirname */ function setupModuleContext(&$context, $dirname) { $handler =& xoops_gethandler('module'); $module =& $handler->getByDirname($dirname); if (!is_object($module)) { XCube_DelegateUtils::call('Legacy.Event.Exception.XoopsModuleNotFound', $dirname); $this->mController->executeRedirect(XOOPS_URL . '/', 1, "You can't access this URL."); // TODO need message catalog. die; } $context->mModule =& Legacy_Utils::createModule($module); $context->mXoopsModule =& $context->mModule->getXoopsModule(); $context->mModuleConfig = $context->mModule->getModuleConfig(); // // Load Roles // $this->mController->mRoot->mRoleManager->loadRolesByMid($context->mXoopsModule->get('mid')); }
/** * @access private */ private function _searchItems($mid, $queries, $andor, $max_hit, $start, $uid) { $ret = array(); static $moduleArr; if (!isset($moduleArr)) { $moduleArr = array(); foreach ($this->getActiveModules() as $mod) { $moduleArr[$mod['mid']] = $mod['name']; } } if (!isset($moduleArr[$mid])) { return $ret; } static $timezone; if (!isset($timezone)) { $root =& XCube_Root::getSingleton(); $timezone = $root->mContext->getXoopsConfig('server_TZ') * 3600; } $handler =& xoops_gethandler('module'); $xoopsModule =& $handler->get($mid); if (!is_object($xoopsModule)) { return $ret; } if (!$xoopsModule->get('isactive') || !$xoopsModule->get('hassearch')) { return $ret; } $module =& Legacy_Utils::createModule($xoopsModule, false); $results = $module->doLegacyGlobalSearch($queries, $andor, $max_hit, $start, $uid); if (is_array($results) && count($results) > 0) { foreach (array_keys($results) as $key) { $timeval =& $results[$key]['time']; // // TODO If this service will come to web service, we should // change format from unixtime to string by timeoffset. // if ($timeval) { $timeval -= $timezone; } } } return $results; }
function executeViewSuccess(&$controller, &$xoopsUser, &$renderer) { $renderer->setTemplateName("help.html"); $module =& Legacy_Utils::createModule($this->mModuleObject); $renderer->setAttribute('module', $module); $renderer->setAttribute('contents', $this->mContents); }
function b_altsys_admin_menu_show($options) { global $xoopsUser; $mydirname = empty($options[0]) ? 'altsys' : $options[0]; $this_template = empty($options[1]) ? 'db:' . $mydirname . '_block_admin_menu.html' : trim($options[1]); if (preg_match('/[^0-9a-zA-Z_-]/', $mydirname)) { die('Invalid mydirname'); } if (!is_object(@$xoopsUser)) { return array(); } // coretype $coretype = altsys_get_core_type(); // mid_selected if (is_object(@$GLOBALS["xoopsModule"])) { $mid_selected = $GLOBALS["xoopsModule"]->getVar("mid"); // for system->preferences if ($mid_selected == 1 && @$_GET["fct"] == "preferences" && @$_GET["op"] == "showmod" && !empty($_GET["mod"])) { $mid_selected = intval($_GET["mod"]); } } else { $mid_selected = 0; } $db =& Database::getInstance(); $myts =& MyTextSanitizer::getInstance(); $module_handler =& xoops_gethandler('module'); $current_module =& $module_handler->getByDirname($mydirname); $config_handler =& xoops_gethandler('config'); $current_configs = $config_handler->getConfigList($current_module->mid()); $moduleperm_handler =& xoops_gethandler('groupperm'); $admin_mids = $moduleperm_handler->getItemIds('module_admin', $xoopsUser->getGroups()); $modules = $module_handler->getObjects(new Criteria('mid', '(' . implode(',', $admin_mids) . ')', 'IN'), true); $block = array('mydirname' => $mydirname, 'mod_url' => XOOPS_URL . '/modules/' . $mydirname, 'mod_imageurl' => XOOPS_URL . '/modules/' . $mydirname . '/' . $current_configs['images_dir'], 'mod_config' => $current_configs); foreach ($modules as $mod) { $mid = intval($mod->getVar('mid')); $dirname = $mod->getVar('dirname'); $modinfo = $mod->getInfo(); $submenus4assign = array(); $adminmenu = array(); $adminmenu4altsys = array(); unset($adminmenu_use_altsys); @(include XOOPS_ROOT_PATH . '/modules/' . $dirname . '/' . @$modinfo['adminmenu']); // from admin_menu.php etc. $adminmenu = array_merge($adminmenu, $adminmenu4altsys); foreach ($adminmenu as $sub) { $link = empty($sub['altsys_link']) ? $sub['link'] : $sub['altsys_link']; if (isset($sub['show']) && $sub['show'] === false) { continue; } $submenus4assign[] = array('title' => $myts->makeTboxData4Show($sub['title']), 'url' => XOOPS_URL . '/modules/' . $dirname . '/' . htmlspecialchars($link, ENT_QUOTES)); } // for modules overriding Module.class.php (eg. Analyzer for XC) if (empty($submenus4assign) && defined('XOOPS_CUBE_LEGACY') && !empty($modinfo['cube_style'])) { $module_handler =& xoops_gethandler('module'); $module =& $module_handler->get($mid); $moduleObj =& Legacy_Utils::createModule($module); $modinfo['adminindex'] = $moduleObj->getAdminIndex(); $modinfo['adminindex_absolute'] = true; foreach ($moduleObj->getAdminMenu() as $sub) { if (@$sub['show'] === false) { continue; } $submenus4assign[] = array('title' => $myts->makeTboxData4Show($sub['title']), 'url' => strncmp($sub['link'], 'http', 4) === 0 ? htmlspecialchars($sub['link'], ENT_QUOTES) : XOOPS_URL . '/modules/' . $dirname . '/' . htmlspecialchars($sub['link'], ENT_QUOTES)); } } else { if (empty($adminmenu4altsys)) { // add preferences if ($mod->getVar('hasconfig') && !in_array($mod->getVar('dirname'), array('system', 'legacy'))) { $submenus4assign[] = array('title' => _PREFERENCES, 'url' => htmlspecialchars(altsys_get_link2modpreferences($mid, $coretype), ENT_QUOTES)); } // add help if (defined('XOOPS_CUBE_LEGACY') && !empty($modinfo['help'])) { $submenus4assign[] = array('title' => _HELP, 'url' => XOOPS_URL . '/modules/legacy/admin/index.php?action=Help&dirname=' . $dirname); } } } $module4assign = array('mid' => $mid, 'dirname' => $dirname, 'name' => $mod->getVar('name'), 'version_in_db' => sprintf('%.2f', $mod->getVar('version') / 100.0), 'version_in_file' => sprintf('%.2f', $modinfo['version']), 'description' => htmlspecialchars(@$modinfo['description'], ENT_QUOTES), 'image' => htmlspecialchars($modinfo['image'], ENT_QUOTES), 'isactive' => $mod->getVar('isactive'), 'hasmain' => $mod->getVar('hasmain'), 'hasadmin' => $mod->getVar('hasadmin'), 'hasconfig' => $mod->getVar('hasconfig'), 'weight' => $mod->getVar('weight'), 'adminindex' => htmlspecialchars(@$modinfo['adminindex'], ENT_QUOTES), 'adminindex_absolute' => @$modinfo['adminindex_absolute'], 'submenu' => $submenus4assign, 'selected' => $mid == $mid_selected ? true : false, 'dot_suffix' => $mid == $mid_selected ? 'selected_opened' : 'closed'); $block['modules'][] = $module4assign; } require_once XOOPS_TRUST_PATH . '/libs/altsys/class/D3Tpl.class.php'; $tpl =& new D3Tpl(); $tpl->assign('block', $block); $ret['content'] = $tpl->fetch($this_template); return $ret; }