Issues (3083)

htdocs/modules/system/admin.php (1 issue)

1
<?php
2
/*
3
 * You may not change or alter any portion of this comment or credits
4
 * of supporting developers from this source code or any supporting source code
5
 * which is considered copyrighted (c) material of the original comment or credit authors.
6
 *
7
 * This program is distributed in the hope that it will be useful,
8
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10
 */
11
12
/**
13
 * @copyright    XOOPS Project https://xoops.org/
14
 * @license      GNU GPL 2.0 or later (https://www.gnu.org/licenses/gpl-2.0.html)
15
 * @package
16
 * @since
17
 * @author       XOOPS Development Team, Kazumi Ono (AKA onokazu)
18
 */
19
use Xmf\Request;
20
21
// Include header
22
include __DIR__ . '/header.php';
23
24
if (isset($fct) && $fct === 'users') {
25
    $xoopsOption['pagetype'] = 'user';
26
}
27
28
$error = false;
29
if ($admintest != 0) {
30
    if (isset($fct) && $fct !== '') {
31
        $fct = preg_replace("/[^a-z0-9_\-]/i", '', $fct);
32
        if (file_exists(XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/admin/' . $fct . '/xoops_version.php')) {
33
            // Load language file
34
            system_loadLanguage($fct, $xoopsModule->getVar('dirname', 'n'));
35
            // Include Configuration file
36
            require XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/admin/' . $fct . '/xoops_version.php';
37
            // Get System permission handler
38
            /** @var XoopsGroupPermHandler $sysperm_handler */
39
            $sysperm_handler = xoops_getHandler('groupperm');
40
41
            $category = !empty($modversion['category']) ? (int)$modversion['category'] : 0;
42
            unset($modversion);
43
44
            if ($category > 0) {
45
                $group = $xoopsUser->getGroups();
46
                if (in_array(XOOPS_GROUP_ADMIN, $group) || false !== $sysperm_handler->checkRight('system_admin', $category, $group, $xoopsModule->getVar('mid'))) {
47
                    if (file_exists(XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/admin/' . $fct . '/main.php')) {
48
                        include_once XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/admin/' . $fct . '/main.php';
49
                    } else {
50
                        $error = true;
51
                    }
52
                } else {
53
                    $error = true;
54
                }
55
            } elseif ($fct === 'version') {
56
                if (file_exists(XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/admin/version/main.php')) {
57
                    include_once XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/admin/version/main.php';
58
                } else {
59
                    $error = true;
60
                }
61
            } else {
62
                $error = true;
63
            }
64
        } else {
65
            $error = true;
66
        }
67
    } else {
68
        $error = true;
69
    }
70
}
71
72
if (false !== $error) {
73
	$op = Request::getString('op', '');
74
    if ($op === 'system_activate') {
75
        $part           = Request::getString('type', '');
76
        /** @var XoopsConfigHandler $config_handler */
77
        $config_handler = xoops_getHandler('config');
78
79
        $criteria = new Criteria('conf_name', 'active_' . $part);
80
        $configs  = $config_handler->getConfigs($criteria);
81
        foreach ($configs as $conf) {
82
            if ($conf->getVar('conf_name') === 'active_' . $part) {
83
                $conf->setVar('conf_value', !$conf->getVar('conf_value'));
84
                $config_handler->insertConfig($conf);
85
            }
86
        }
87
        exit;
88
    }
89
    // Define main template
90
    $GLOBALS['xoopsOption']['template_main'] = 'system_index.tpl';
91
    xoops_cp_header();
92
    // Define Stylesheet
93
    $xoTheme->addStylesheet(XOOPS_URL . '/modules/system/css/admin.css');
94
    // Define scripts
95
    $xoTheme->addScript('browse.php?Frameworks/jquery/jquery.js');
96
    $xoTheme->addScript('modules/system/js/admin.js');
97
    // Define Breadcrumb and tips
98
    $xoBreadCrumb->addLink(_AM_SYSTEM_CONFIG);
99
    $xoBreadCrumb->addTips(_AM_SYSTEM_TIPS_MAIN);
100
    $xoBreadCrumb->render();
101
    $groups = $xoopsUser->getGroups();
102
    $all_ok = false;
103
    if (!in_array(XOOPS_GROUP_ADMIN, $groups)) {
104
        $sysperm_handler = xoops_getHandler('groupperm');
105
        $ok_syscats      = $sysperm_handler->getItemIds('system_admin', $groups);
106
    } else {
107
        $all_ok = true;
108
    }
109
110
    xoops_load('xoopslists');
111
112
    $admin_dir        = XOOPS_ROOT_PATH . '/modules/system/admin';
113
    $dirlist          = XoopsLists::getDirListAsArray($admin_dir);
114
    $inactive_section = array('blocksadmin', 'groups', 'modulesadmin', 'preferences', 'tplsets');
115
    foreach ($dirlist as $directory) {
116
        if (file_exists($admin_dir . '/' . $directory . '/xoops_version.php')) {
117
            require $admin_dir . '/' . $directory . '/xoops_version.php';
118
119
            if ($modversion['hasAdmin']) {
120
                if (xoops_getModuleOption('active_' . $directory, 'system')) {
0 ignored issues
show
Deprecated Code introduced by
The function xoops_getModuleOption() has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

120
                if (/** @scrutinizer ignore-deprecated */ xoops_getModuleOption('active_' . $directory, 'system')) {
Loading history...
121
                    $category = isset($modversion['category']) ? (int)$modversion['category'] : 0;
122
                    if (false !== $all_ok || in_array($modversion['category'], $ok_syscats)) {
123
                        $menu['file']   = $directory;
124
                        $menu['title']  = trim($modversion['name']);
125
                        $menu['desc']   = str_replace('<br>', ' ', $modversion['description']);
126
                        $menu['icon']   = $modversion['image'];
127
                        $menu['status'] = true;
128
                    }
129
                } else {
130
                    $category = isset($modversion['category']) ? (int)$modversion['category'] : 0;
131
                    if (false !== $all_ok || in_array($modversion['category'], $ok_syscats)) {
132
                        $menu['file']   = $directory;
133
                        $menu['title']  = trim($modversion['name']);
134
                        $menu['desc']   = str_replace('<br>', ' ', $modversion['description']);
135
                        $menu['icon']   = $modversion['image'];
136
                        $menu['status'] = false;
137
                    }
138
                }
139
                if (!in_array($directory, $inactive_section)) {
140
                    $menu['used'] = true;
141
                }
142
                if (false !== $all_ok || in_array($modversion['category'], $ok_syscats)) {
143
                    switch ($directory) {
144
                        case 'avatars':
145
                            /** @var  SystemAvatarHandler $avatar_handler */
146
                            $avatar_handler = xoops_getHandler('avatar');
147
                            $avatar         = $avatar_handler->getCount();
148
                            $menu['infos']  = sprintf(_AM_SYSTEM_AVATAR_INFO, $avatar);
149
                            break;
150
                        case 'banners':
151
                            /** @var  SystemBannerHandler $banner_handler */
152
                            $banner_handler = xoops_getModuleHandler('banner', 'system');
153
                            $banner         = $banner_handler->getCount();
154
                            $menu['infos']  = sprintf(_AM_SYSTEM_BANNER_INFO, $banner);
155
                            break;
156
                        case 'comments':
157
                            /** @var  XoopsCommentHandler $comment_handler */
158
                            $comment_handler = xoops_getHandler('comment');
159
                            $comment         = $comment_handler->getCount();
160
                            $menu['infos']   = sprintf(_AM_SYSTEM_COMMENT_INFO, $comment);
161
                            break;
162
                        case 'groups':
163
                            /** @var  XoopsMembershipHandler $groups_Handler */
164
                            $groups_Handler = xoops_getModuleHandler('group', 'system');
165
                            $groups         = $groups_Handler->getCount();
166
                            $menu['infos']  = sprintf(_AM_SYSTEM_GROUP_INFO, $groups);
167
                            break;
168
                        case 'images':
169
                            /** @var  XoopsImageHandler $imgcat_handler */
170
                            $imgcat_handler = xoops_getHandler('image');
171
                            $img            = $imgcat_handler->getCount();
172
                            $menu['infos']  = sprintf(_AM_SYSTEM_IMG_INFO, $img);
173
                            break;
174
                        case 'smilies':
175
                            /** @var  SystemsmiliesHandler $smilies_Handler */
176
                            $smilies_Handler = xoops_getModuleHandler('smilies', 'system');
177
                            $smilies         = $smilies_Handler->getCount();
178
                            $menu['infos']   = sprintf(_AM_SYSTEM_SMILIES_INFO, $smilies);
179
                            break;
180
                        case 'userrank':
181
                            /** @var  SystemUserrankHandler $userrank_Handler */
182
                            $userrank_Handler = xoops_getModuleHandler('userrank', 'system');
183
                            $userrank         = $userrank_Handler->getCount();
184
                            $menu['infos']    = sprintf(_AM_SYSTEM_RANKS_INFO, $userrank);
185
                            break;
186
                        case 'users':
187
                            /** @var  SystemUsersHandler $member_handler */
188
                            $member_handler = xoops_getModuleHandler('users', 'system');
189
                            $member         = $member_handler->getCount();
190
                            $menu['infos']  = sprintf(_AM_SYSTEM_USERS_INFO, $member);
191
                            break;
192
                    }
193
                }
194
                $xoopsTpl->appendByRef('menu', $menu);
195
                unset($menu);
196
            }
197
            unset($modversion);
198
        }
199
    }
200
    unset($dirlist);
201
    xoops_cp_footer();
202
}
203