<?php
/**
* XOOPS Closed Site
*
* Temporary solution for "site closed" status
*
* You may not change or alter any portion of this comment or credits
* of supporting developers from this source code or any supporting source code
* which is considered copyrighted (c) material of the original comment or credit authors.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* @copyright (c) 2000-2016 XOOPS Project (www.xoops.org)
* @license GNU GPL 2 (http://www.gnu.org/licenses/gpl-2.0.html)
* @package kernel
* @since 2.0.17
* @author Taiwen Jiang <[email protected]>
*/
defined('XOOPS_ROOT_PATH') || exit('Restricted access');
global $xoopsConfig, $xoopsUser;
$allowed = false;
if (is_object($xoopsUser)) {
foreach ($xoopsUser->getGroups() as $group) {
if (in_array($group, $xoopsConfig['closesite_okgrp']) || XOOPS_GROUP_ADMIN == $group) {
$allowed = true;
break;
}
}
} elseif (!empty($_POST['xoops_login'])) {
include_once $GLOBALS['xoops']->path('include/checklogin.php');
exit();
}
if (!$allowed) {
require_once $GLOBALS['xoops']->path('class/template.php');
require_once $GLOBALS['xoops']->path('class/theme.php');
$xoopsThemeFactory = null;
$xoopsThemeFactory = new xos_opal_ThemeFactory();
$xoopsThemeFactory->allowedThemes = $xoopsConfig['theme_set_allowed'];
$xoopsThemeFactory->defaultTheme = $xoopsConfig['theme_set'];
$xoTheme = $xoopsThemeFactory->createInstance(array(
'plugins' => array()));
$xoTheme->addScript('/include/xoops.js', array(
'type' => 'text/javascript'));
$xoopsTpl = $xoTheme->template;
$xoopsTpl->assign(array(
'xoops_theme' => $xoopsConfig['theme_set'],
'xoops_imageurl' => XOOPS_THEME_URL . '/' . $xoopsConfig['theme_set'] . '/',
'xoops_themecss' => xoops_getcss($xoopsConfig['theme_set']),
'xoops_requesturi' => htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES),
'xoops_sitename' => htmlspecialchars($xoopsConfig['sitename'], ENT_QUOTES),
'xoops_slogan' => htmlspecialchars($xoopsConfig['slogan'], ENT_QUOTES),
'xoops_dirname' => @$xoopsModule ? $xoopsModule->getVar('dirname') : 'system',
'xoops_banner' => $xoopsConfig['banners'] ? xoops_getbanner() : ' ',
'xoops_pagetitle' => isset($xoopsModule) && is_object($xoopsModule) ? $xoopsModule->getVar('name') : htmlspecialchars($xoopsConfig['slogan'], ENT_QUOTES),
'lang_login' => _LOGIN,
'lang_username' => _USERNAME,
'lang_password' => _PASSWORD,
'lang_siteclosemsg' => $xoopsConfig['closesite_text']));
/* @var XoopsConfigHandler $config_handler */
$config_handler = xoops_getHandler('config');
$criteria = new CriteriaCompo(new Criteria('conf_modid', 0));
$criteria->add(new Criteria('conf_catid', XOOPS_CONF_METAFOOTER));
$config = $config_handler->getConfigs($criteria, true);
foreach (array_keys($config) as $i) {
$name = $config[$i]->getVar('conf_name', 'n');
$value = $config[$i]->getVar('conf_value', 'n');
if (substr($name, 0, 5) === 'meta_') {
$xoopsTpl->assign("xoops_$name", htmlspecialchars($value, ENT_QUOTES));
} else {
// prefix each tag with 'xoops_'
$xoopsTpl->assign("xoops_$name", $value);
}
}
$xoopsTpl->debugging = false;
$xoopsTpl->debugging_ctrl = 'none';
$xoopsTpl->caching = 0;
// handle error and transition to tpl naming convention
if ($xoopsTpl->template_exists('db:system_siteclosed.tpl')) {
$xoopsTpl->display('db:system_siteclosed.tpl');
} elseif ($xoopsTpl->template_exists('db:system_siteclosed.html')) {
$xoopsTpl->display('db:system_siteclosed.html');
} else {
echo $xoopsConfig['closesite_text'];
}
exit();
}
unset($allowed, $group);
return true;
|