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// Include header 21include __DIR__ . '/header.php'; 22 23if (isset($fct) && $fct === 'users') { 24 $xoopsOption['pagetype'] = 'user'; 25} 26 27$error = false; 28if ($admintest != 0) { 29 if (isset($fct) && $fct !== '') { 30 $fct = preg_replace("/[^a-z0-9_\-]/i", '', $fct); 31 if (file_exists(XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/admin/' . $fct . '/xoops_version.php')) { 32 // Load language file 33 system_loadLanguage($fct, $xoopsModule->getVar('dirname', 'n')); 34 // Include Configuration file 35 require XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/admin/' . $fct . '/xoops_version.php'; 36 // Get System permission handler 37 /* @var XoopsGroupPermHandler $sysperm_handler */ 38 $sysperm_handler = xoops_getHandler('groupperm'); 39 40 $category = !empty($modversion['category']) ? (int)$modversion['category'] : 0; 41 unset($modversion); 42 43 if ($category > 0) { 44 $group = $xoopsUser->getGroups(); 45 if (in_array(XOOPS_GROUP_ADMIN, $group) || false !== $sysperm_handler->checkRight('system_admin', $category, $group, $xoopsModule->getVar('mid'))) { 46 if (file_exists(XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/admin/' . $fct . '/main.php')) { 47 include_once XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/admin/' . $fct . '/main.php'; 48 } else { 49 $error = true; 50 } 51 } else { 52 $error = true; 53 } 54 } elseif ($fct === 'version') { 55 if (file_exists(XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/admin/version/main.php')) { 56 include_once XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname', 'n') . '/admin/version/main.php'; 57 } else { 58 $error = true; 59 } 60 } else { 61 $error = true; 62 } 63 } else { 64 $error = true; 65 } 66 } else { 67 $error = true; 68 } 69} 70 71if (false !== $error) { 72 $op = system_CleanVars($_REQUEST, 'op', '', 'string'); 73 if ($op === 'system_activate') { 74 $part = system_CleanVars($_REQUEST, 'type', '', 'string'); 75 /* @var XoopsConfigHandler $config_handler */ 76 $config_handler = xoops_getHandler('config'); 77 78 $criteria = new Criteria('conf_name', 'active_' . $part); 79 $configs = $config_handler->getConfigs($criteria); 80 foreach ($configs as $conf) { 81 if ($conf->getVar('conf_name') === 'active_' . $part) { 82 $conf->setVar('conf_value', !$conf->getVar('conf_value')); 83 $config_handler->insertConfig($conf); 84 } 85 } 86 exit; 87 } 88 // Define main template 89 $GLOBALS['xoopsOption']['template_main'] = 'system_index.tpl'; 90 xoops_cp_header(); 91 // Define Stylesheet 92 $xoTheme->addStylesheet(XOOPS_URL . '/modules/system/css/admin.css'); 93 // Define scripts 94 $xoTheme->addScript('browse.php?Frameworks/jquery/jquery.js'); 95 $xoTheme->addScript('modules/system/js/admin.js'); 96 // Define Breadcrumb and tips 97 $xoBreadCrumb->addLink(_AM_SYSTEM_CONFIG); 98 $xoBreadCrumb->addTips(_AM_SYSTEM_TIPS_MAIN); 99 $xoBreadCrumb->render(); 100 $groups = $xoopsUser->getGroups(); 101 $all_ok = false; 102 if (!in_array(XOOPS_GROUP_ADMIN, $groups)) { 103 $sysperm_handler = xoops_getHandler('groupperm'); 104 $ok_syscats = $sysperm_handler->getItemIds('system_admin', $groups); 105 } else { 106 $all_ok = true; 107 } 108 109 xoops_load('xoopslists'); 110 111 $admin_dir = XOOPS_ROOT_PATH . '/modules/system/admin'; 112 $dirlist = XoopsLists::getDirListAsArray($admin_dir); 113 $inactive_section = array('blocksadmin', 'groups', 'modulesadmin', 'preferences', 'tplsets'); 114 foreach ($dirlist as $directory) { 115 if (file_exists($admin_dir . '/' . $directory . '/xoops_version.php')) { 116 require $admin_dir . '/' . $directory . '/xoops_version.php'; 117 118 if ($modversion['hasAdmin']) { 119 if (xoops_getModuleOption('active_' . $directory, 'system')) { 120 $category = isset($modversion['category']) ? (int)$modversion['category'] : 0; 121 if (false !== $all_ok || in_array($modversion['category'], $ok_syscats)) { 122 $menu['file'] = $directory; 123 $menu['title'] = trim($modversion['name']); 124 $menu['desc'] = str_replace('<br>', ' ', $modversion['description']); 125 $menu['icon'] = $modversion['image']; 126 $menu['status'] = true; 127 } 128 } else { 129 $category = isset($modversion['category']) ? (int)$modversion['category'] : 0; 130 if (false !== $all_ok || in_array($modversion['category'], $ok_syscats)) { 131 $menu['file'] = $directory; 132 $menu['title'] = trim($modversion['name']); 133 $menu['desc'] = str_replace('<br>', ' ', $modversion['description']); 134 $menu['icon'] = $modversion['image']; 135 $menu['status'] = false; 136 } 137 } 138 if (!in_array($directory, $inactive_section)) { 139 $menu['used'] = true; 140 } 141 if (false !== $all_ok || in_array($modversion['category'], $ok_syscats)) { 142 switch ($directory) { 143 case 'avatars': 144 /* @var SystemAvatarHandler $avatar_handler */ 145 $avatar_handler = xoops_getHandler('avatar'); 146 $avatar = $avatar_handler->getCount(); 147 $menu['infos'] = sprintf(_AM_SYSTEM_AVATAR_INFO, $avatar); 148 break; 149 case 'banners': 150 /* @var SystemBannerHandler $banner_handler */ 151 $banner_handler = xoops_getModuleHandler('banner', 'system'); 152 $banner = $banner_handler->getCount(); 153 $menu['infos'] = sprintf(_AM_SYSTEM_BANNER_INFO, $banner); 154 break; 155 case 'comments': 156 /* @var XoopsCommentHandler $comment_handler */ 157 $comment_handler = xoops_getHandler('comment'); 158 $comment = $comment_handler->getCount(); 159 $menu['infos'] = sprintf(_AM_SYSTEM_COMMENT_INFO, $comment); 160 break; 161 case 'groups': 162 /* @var XoopsMembershipHandler $groups_Handler */ 163 $groups_Handler = xoops_getModuleHandler('group', 'system'); 164 $groups = $groups_Handler->getCount(); 165 $menu['infos'] = sprintf(_AM_SYSTEM_GROUP_INFO, $groups); 166 break; 167 case 'images': 168 /* @var XoopsImageHandler $imgcat_handler */ 169 $imgcat_handler = xoops_getHandler('image'); 170 $img = $imgcat_handler->getCount(); 171 $menu['infos'] = sprintf(_AM_SYSTEM_IMG_INFO, $img); 172 break; 173 case 'smilies': 174 /* @var SystemsmiliesHandler $smilies_Handler */ 175 $smilies_Handler = xoops_getModuleHandler('smilies', 'system'); 176 $smilies = $smilies_Handler->getCount(); 177 $menu['infos'] = sprintf(_AM_SYSTEM_SMILIES_INFO, $smilies); 178 break; 179 case 'userrank': 180 /* @var SystemUserrankHandler $userrank_Handler */ 181 $userrank_Handler = xoops_getModuleHandler('userrank', 'system'); 182 $userrank = $userrank_Handler->getCount(); 183 $menu['infos'] = sprintf(_AM_SYSTEM_RANKS_INFO, $userrank); 184 break; 185 case 'users': 186 /* @var SystemUsersHandler $member_handler */ 187 $member_handler = xoops_getModuleHandler('users', 'system'); 188 $member = $member_handler->getCount(); 189 $menu['infos'] = sprintf(_AM_SYSTEM_USERS_INFO, $member); 190 break; 191 } 192 } 193 $xoopsTpl->append_by_ref('menu', $menu); 194 unset($menu); 195 } 196 unset($modversion); 197 } 198 } 199 unset($dirlist); 200 xoops_cp_footer(); 201} 202