<?php
/*
* 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 XOOPS Project http://xoops.org/
* @license GNU GPL 2 or later (http://www.gnu.org/licenses/gpl-2.0.html)
* @package
* @since
* @author XOOPS Development Team, Kazumi Ono (AKA onokazu)
*/
// defined('XOOPS_ROOT_PATH') || exit('XOOPS root path not defined');
$groups = $GLOBALS['xoopsUser']->getGroups();
$all_ok = false;
if (!in_array(XOOPS_GROUP_ADMIN, $groups)) {
/* @var XoopsGroupPermHandler $sysperm_handler */
$sysperm_handler = xoops_getHandler('groupperm');
$ok_syscats = $sysperm_handler->getItemIds('system_admin', $groups);
} else {
$all_ok = true;
}
require_once $GLOBALS['xoops']->path('/class/xoopslists.php');
// include system category definitions
include_once $GLOBALS['xoops']->path('/modules/system/constants.php');
$admin_dir = $GLOBALS['xoops']->path('/modules/system/admin');
$dirlist = XoopsLists::getDirListAsArray($admin_dir);
$index = 0;
foreach ($dirlist as $file) {
if (file_exists($admin_dir . '/' . $file . '/xoops_version.php')) {
include $admin_dir . '/' . $file . '/xoops_version.php';
if ($modversion['hasAdmin']) {
if (xoops_getModuleOption('active_' . $file, 'system')) {
$category = isset($modversion['category']) ? (int)$modversion['category'] : 0;
if (false !== $all_ok || in_array($modversion['category'], $ok_syscats)) {
$adminmenu[$index]['title'] = trim($modversion['name']);
$adminmenu[$index]['link'] = 'admin.php?fct=' . $file;
$adminmenu[$index]['image'] = $modversion['image'];
}
}
}
unset($modversion);
}
++$index;
}
unset($dirlist);
|