/** * Checks whether the site is closed now, and whether all of must modules * have been installed. This function is called through delegates. * @var XoopsUser &$xoopsUser * @see preBlockFilter() */ function callbackSetupUser(&$principal, &$controller, &$context) { $retArray = Legacy_Utils::checkSystemModules(); $accessAllowFlag = false; $xoopsConfig = $controller->mRoot->mContext->getXoopsConfig(); if (!empty($_POST['xoops_login'])) { define('XOOPS_CPFUNC_LOADED', 1); $controller->checkLogin(); return; } elseif (is_object($context->mXoopsUser)) { if (in_array(XOOPS_GROUP_ADMIN, $context->mXoopsUser->getGroups())) { $accessAllowFlag = true; } } // @todo Devide following lines to another preload file if ($accessAllowFlag) { $GLOBALS['xoopsUser'] = $context->mXoopsUser; if (!empty($_POST['cube_module_install'])) { //@todo use Ticket require_once XOOPS_LEGACY_PATH . "/admin/class/ModuleInstaller.class.php"; require_once XOOPS_LEGACY_PATH . "/admin/class/ModuleInstallUtils.class.php"; if (isset($_POST['uninstalled_modules']) && is_array($_POST['uninstalled_modules'])) { foreach ($_POST['uninstalled_modules'] as $module) { $module = basename($module); if (in_array($module, $retArray['uninstalled'])) { $controller->mRoot->mLanguageManager->loadModuleAdminMessageCatalog('legacy'); $handler =& xoops_gethandler('module'); $xoopsModule =& $handler->create(); $xoopsModule->set('weight', 1); $xoopsModule->loadInfoAsVar($module); $installer =& Legacy_ModuleInstallUtils::createInstaller($xoopsModule->get('dirname')); $installer->setForceMode(true); $installer->setCurrentXoopsModule($xoopsModule); $installer->executeInstall(); } } } if (isset($_POST['disabled_modules']) && is_array($_POST['disabled_modules'])) { $moduleHandler =& xoops_gethandler('module'); foreach ($_POST['disabled_modules'] as $module) { $module = basename($module); if (in_array($module, $retArray['disabled'])) { if ($moduleObject =& $moduleHandler->getByDirname($module)) { $moduleObject->setVar('isactive', 1); $moduleHandler->insert($moduleObject); $blockHandler =& xoops_gethandler('block'); $blockHandler->syncIsActive($moduleObject->get('mid'), $moduleObject->get('isactive')); } } } } if (isset($_POST['option_modules']) && is_array($_POST['option_modules'])) { $handler =& xoops_getmodulehandler('non_installation_module', 'legacy'); $objects = $handler->getObjects(); $optionModules = array(); foreach ($objects as $module) { if (!in_array($module->get('dirname'), $retArray['uninstalled'])) { $optionModules[] = $module->get('dirname'); } } foreach ($_POST['option_modules'] as $module) { $module = basename($module); if (in_array($module, $optionModules)) { $controller->mRoot->mLanguageManager->loadModuleAdminMessageCatalog('legacy'); $handler =& xoops_gethandler('module'); $xoopsModule =& $handler->create(); $xoopsModule->set('weight', 1); $xoopsModule->loadInfoAsVar($module); $installer =& Legacy_ModuleInstallUtils::createInstaller($xoopsModule->get('dirname')); $installer->setForceMode(true); $installer->setCurrentXoopsModule($xoopsModule); $installer->executeInstall(); } } } $controller->executeRedirect(XOOPS_URL . '/', 1); } elseif (!empty($_GET['cube_module_uninstall'])) { require_once XOOPS_ROOT_PATH . '/class/template.php'; $xoopsTpl = new XoopsTpl(); $xoopsTpl->assign('cube_module_uninstall', htmlspecialchars($_GET['cube_module_uninstall'], ENT_QUOTES)); $xoopsTpl->assign(array('xoops_sitename' => htmlspecialchars($xoopsConfig['sitename']), 'xoops_themecss' => xoops_getcss(), 'xoops_imageurl' => XOOPS_THEME_URL . '/' . $xoopsConfig['theme_set'] . '/')); ///< @todo filebase template with absolute file path $xoopsTpl->compile_check = true; $xoopsTpl->display(XOOPS_ROOT_PATH . '/modules/legacy/templates/legacy_uninstall_modules.html'); exit; } elseif (!empty($_POST['cube_module_uninstallok'])) { //@todo use Ticket require_once XOOPS_LEGACY_PATH . "/admin/class/ModuleUninstaller.class.php"; require_once XOOPS_LEGACY_PATH . "/admin/class/ModuleInstallUtils.class.php"; $module = basename($_POST['cube_module_uninstallok']); if (in_array($module, $retArray['disabled'])) { $controller->mRoot->mLanguageManager->loadModuleAdminMessageCatalog('legacy'); $handler =& xoops_gethandler('module'); $xoopsModule =& $handler->getByDirname($module); $uninstaller =& Legacy_ModuleInstallUtils::createUninstaller($xoopsModule->get('dirname')); $uninstaller->setForceMode(true); $uninstaller->setCurrentXoopsModule($xoopsModule); $uninstaller->executeUninstall(); } $controller->executeRedirect(XOOPS_URL . '/', 1); } else { $handler =& xoops_getmodulehandler('non_installation_module', 'legacy'); $objects = $handler->getObjectsFor2ndInstaller(); $optionModules = array(); foreach ($objects as $module) { $dirname = $module->getVar('dirname'); if (!in_array($dirname, $retArray['uninstalled'])) { $optionModule['dirname'] = $dirname; if (in_array($dirname, $retArray['recommended'])) { $optionModule['checked'] = 'checked="checked"'; $optionModule['desc'] = _SYS_RECOMMENDED_MODULES; $optionModules[' ' . $dirname] = $optionModule; } else { $optionModule['checked'] = ''; $optionModule['desc'] = _SYS_OPTION_MODULES; $optionModules[$dirname] = $optionModule; } } } ksort($optionModules); $optionModules = array_values($optionModules); require_once XOOPS_ROOT_PATH . '/class/template.php'; $xoopsTpl = new XoopsTpl(); $xoopsTpl->assign('uninstalled', $retArray['uninstalled']); $xoopsTpl->assign('disabled', $retArray['disabled']); $xoopsTpl->assign('option', $optionModules); $xoopsTpl->assign(array('xoops_sitename' => htmlspecialchars($xoopsConfig['sitename']), 'xoops_themecss' => xoops_getcss(), 'xoops_imageurl' => XOOPS_THEME_URL . '/' . $xoopsConfig['theme_set'] . '/')); ///< @todo filebase template with absolute file path $xoopsTpl->compile_check = true; $xoopsTpl->display(XOOPS_ROOT_PATH . '/modules/legacy/templates/legacy_install_modules.html'); exit; } } if (!$accessAllowFlag) { require_once XOOPS_ROOT_PATH . '/class/template.php'; $xoopsTpl = new XoopsTpl(); $xoopsTpl->assign(array('xoops_sitename' => htmlspecialchars($xoopsConfig['sitename']), 'xoops_themecss' => xoops_getcss(), 'xoops_imageurl' => XOOPS_THEME_URL . '/' . $xoopsConfig['theme_set'] . '/', 'lang_login' => _LOGIN, 'lang_username' => _USERNAME, 'lang_password' => _PASSWORD, 'lang_siteclosemsg' => $xoopsConfig['closesite_text'])); $xoopsTpl->compile_check = true; // @todo filebase template with absolute file path $xoopsTpl->display(XOOPS_ROOT_PATH . '/modules/legacy/templates/legacy_site_closed.html'); exit; } }