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 http://xoops.org/
14 * @license      GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
15 * @package
16 * @since
17 * @author       XOOPS Development Team, Kazumi Ono (AKA onokazu)
18 */
19
20// defined('XOOPS_ROOT_PATH') || exit('XOOPS root path not defined');
21
22$groups = $GLOBALS['xoopsUser']->getGroups();
23$all_ok = false;
24if (!in_array(XOOPS_GROUP_ADMIN, $groups)) {
25    /* @var XoopsGroupPermHandler $sysperm_handler */
26    $sysperm_handler = xoops_getHandler('groupperm');
27    $ok_syscats      = $sysperm_handler->getItemIds('system_admin', $groups);
28} else {
29    $all_ok = true;
30}
31require_once $GLOBALS['xoops']->path('/class/xoopslists.php');
32// include system category definitions
33include_once $GLOBALS['xoops']->path('/modules/system/constants.php');
34
35$admin_dir = $GLOBALS['xoops']->path('/modules/system/admin');
36$dirlist   = XoopsLists::getDirListAsArray($admin_dir);
37$index     = 0;
38foreach ($dirlist as $file) {
39    if (file_exists($admin_dir . '/' . $file . '/xoops_version.php')) {
40        include $admin_dir . '/' . $file . '/xoops_version.php';
41        if ($modversion['hasAdmin']) {
42            if (xoops_getModuleOption('active_' . $file, 'system')) {
43                $category = isset($modversion['category']) ? (int)$modversion['category'] : 0;
44                if (false !== $all_ok || in_array($modversion['category'], $ok_syscats)) {
45                    $adminmenu[$index]['title'] = trim($modversion['name']);
46                    $adminmenu[$index]['link']  = 'admin.php?fct=' . $file;
47                    $adminmenu[$index]['image'] = $modversion['image'];
48                }
49            }
50        }
51        unset($modversion);
52    }
53    ++$index;
54}
55unset($dirlist);
56