-
Notifications
You must be signed in to change notification settings - Fork 2
/
site-closed.php
117 lines (107 loc) · 5.27 KB
/
site-closed.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<?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-2021 XOOPS Project (https://xoops.org)
* @license GNU GPL 2 (https://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('mobile/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']));
if (isset($_SESSION['redirect_message'])) {
$xoopsTpl->assign('redirect_message', $_SESSION['redirect_message']);
unset($_SESSION['redirect_message']);
}
/* @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');
// limited substitutions for {X_SITEURL} and {X_YEAR}
if ($name === 'footer' || $name === 'meta_copyright') {
$value = str_replace('{X_SITEURL}', XOOPS_URL . '/', $value);
$value = str_replace('{X_YEAR}', date('Y', time()), $value);
}
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;
$link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ?
"https" : "http") . "://" . $_SERVER['HTTP_HOST'] .
$_SERVER['REQUEST_URI'];
if (strpos($_SERVER['REQUEST_URI'], 'mobile') !== false OR $link == XOOPS_URL . '/mobile/index.php' OR $link == XOOPS_URL . '/mobile/') {
echo $xoopsTpl->display(XOOPS_ROOT_PATH . '/mobile/templates/index.tpl');
}
else
{
// 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;