<?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 2000-2025 XOOPS Project (https://xoops.org)
* @license GNU GPL 2.0 or later (https://www.gnu.org/licenses/gpl-2.0.html)
* @package
* @since
* @author XOOPS Development Team, Kazumi Ono (AKA onokazu)
*/
//if (!defined('XOOPS_ROOT_PATH')) {
// throw new \RuntimeException('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((string) $modversion['name']);
$adminmenu[$index]['link'] = 'admin.php?fct=' . $file;
$adminmenu[$index]['image'] = $modversion['image'];
}
}
}
unset($modversion);
}
++$index;
}
unset($dirlist);
|