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: xoops_load('gui', 'system');
13:
14: /*
15: * Xoops Cpanel default GUI class
16: *
17: * @copyright (c) 2000-2016 XOOPS Project (www.xoops.org)
18: * @license GNU GPL 2.0 or later (https://www.gnu.org/licenses/gpl-2.0.html)
19: * @package system
20: * @usbpackage GUI
21: * @since 2.4
22: * @author Mamba <mambax7@gmail.com>
23: * @author Mojtabajml <jamali.mojtaba@gmail.com>
24: * @author Voltan <djvoltan@gmail.com>
25: * @author BitC3R0 <BitC3R0@gmail.com>
26: * @author trabis <lusopoemas@gmail.com>
27: */
28:
29: /**
30: * Class XoopsGuiDefault
31: */
32: class XoopsGuiDefault extends XoopsSystemGui
33: {
34: /**
35: *
36: */
37: public function __construct()
38: {
39: }
40:
41: /**
42: * @return bool
43: */
44: public static function validate()
45: {
46: return true;
47: }
48:
49: public function header()
50: {
51: parent::header();
52:
53: global $xoopsConfig, $xoopsUser, $xoopsModule, $xoTheme, $xoopsTpl, $xoopsDB;
54: $tpl =& $this->template;
55:
56: $xoTheme->addScript('browse.php?Frameworks/jquery/jquery.js');
57: $xoTheme->addScript(XOOPS_ADMINTHEME_URL . '/default/js/styleswitch.js');
58: $xoTheme->addScript(XOOPS_ADMINTHEME_URL . '/default/js/formenu.js');
59: $xoTheme->addScript(XOOPS_ADMINTHEME_URL . '/default/js/menu.js');
60: $xoTheme->addScript(XOOPS_ADMINTHEME_URL . '/default/js/tooltip.js');
61: // $xoTheme->addScript(XOOPS_ADMINTHEME_URL . '/default/js/tabs.jquery.tools.min.js');
62: $xoTheme->addScript(XOOPS_ADMINTHEME_URL . '/default/js/tabs.js');
63: $xoTheme->addScript(XOOPS_ADMINTHEME_URL . '/default/js/tabs.slideshow.js');
64:
65: $xoTheme->addStylesheet(XOOPS_ADMINTHEME_URL . '/default/css/style.css');
66: $xoTheme->addStylesheet(XOOPS_ADMINTHEME_URL . '/default/css/dark.css', array('title' => 'dark', 'media' => 'screen'));
67: $xoTheme->addStylesheet(XOOPS_ADMINTHEME_URL . '/default/css/silver.css', array('title' => 'silver', 'media' => 'screen'));
68: $xoTheme->addStylesheet(XOOPS_ADMINTHEME_URL . '/default/css/orange.css', array('title' => 'orange', 'media' => 'screen'));
69:
70: $tpl->assign('lang_cp', _CPHOME);
71: //start system overview
72: //$tpl->assign('lang_xoops_version', XOOPS_VERSION);
73: $tpl->assign('lang_php_vesion', PHP_VERSION);
74: $tpl->assign('lang_mysql_version', mysqli_get_server_info($xoopsDB->conn));
75: $tpl->assign('lang_server_api', PHP_SAPI);
76: $tpl->assign('lang_os_name', PHP_OS);
77: // $tpl->assign('safe_mode', ini_get('safe_mode') ? 'On' : 'Off');
78: // $tpl->assign('register_globals', ini_get('register_globals') ? 'On' : 'Off');
79: // $tpl->assign('magic_quotes_gpc', ini_get('magic_quotes_gpc') ? 'On' : 'Off');
80: $tpl->assign('allow_url_fopen', ini_get('allow_url_fopen') ? 'On' : 'Off');
81: $tpl->assign('fsockopen', function_exists('fsockopen') ? 'On' : 'Off');
82: // $tpl->assign('allow_call_time_pass_reference', ini_get('allow_call_time_pass_reference') ? 'On' : 'Off');
83: $tpl->assign('post_max_size', ini_get('post_max_size'));
84: $tpl->assign('max_input_time', ini_get('max_input_time'));
85: $tpl->assign('output_buffering', ini_get('output_buffering'));
86: $tpl->assign('max_execution_time', ini_get('max_execution_time'));
87: $tpl->assign('memory_limit', ini_get('memory_limit'));
88: $tpl->assign('file_uploads', ini_get('file_uploads') ? 'On' : 'Off');
89: $tpl->assign('upload_max_filesize', ini_get('upload_max_filesize'));
90: $tpl->assign('xoops_sitename', $xoopsConfig['sitename']);
91:
92: // ADD MENU *****************************************
93:
94: //Add CONTROL PANEL Menu items
95: $menu = array();
96: $menu[0]['link'] = XOOPS_URL;
97: $menu[0]['title'] = _YOURHOME;
98: $menu[0]['absolute'] = 1;
99: $menu[1]['link'] = XOOPS_URL . '/admin.php?xoopsorgnews=1';
100: $menu[1]['title'] = _OXYGEN_NEWS;
101: $menu[1]['absolute'] = 1;
102: $menu[1]['icon'] = XOOPS_ADMINTHEME_URL . '/default/images/xoops.png';
103: $menu[2]['link'] = XOOPS_URL . '/user.php?op=logout';
104: $menu[2]['title'] = _LOGOUT;
105: $menu[2]['absolute'] = 1;
106: $menu[2]['icon'] = XOOPS_ADMINTHEME_URL . '/default/images/logout.png';
107: $tpl->append('navitems', array('link' => XOOPS_URL . '/admin.php', 'text' => _CPHOME, 'menu' => $menu));
108:
109: //add SYSTEM Menu items
110: include __DIR__ . '/menu.php';
111: if (empty($xoopsModule) || 'system' === $xoopsModule->getVar('dirname', 'n')) {
112: $modpath = XOOPS_URL . '/admin.php';
113: $modname = _OXYGEN_SYSOPTIONS;
114: $modid = 1;
115: $moddir = 'system';
116:
117: $mod_options = $adminmenu;
118: foreach (array_keys($mod_options) as $item) {
119: $mod_options[$item]['link'] = empty($mod_options[$item]['absolute']) ? XOOPS_URL . '/modules/' . $moddir . '/' . $mod_options[$item]['link'] : $mod_options[$item]['link'];
120: $mod_options[$item]['icon'] = empty($mod_options[$item]['icon']) ? '' : XOOPS_ADMINTHEME_URL . '/default/' . $mod_options[$item]['icon'];
121: unset($mod_options[$item]['icon_small']);
122: }
123: } else {
124: $moddir = $xoopsModule->getVar('dirname', 'n');
125: $modpath = XOOPS_URL . '/modules/' . $moddir;
126: $modname = $xoopsModule->getInfo('name') . ' (' . $xoopsModule->getInfo('version') . ')';
127: $modid = $xoopsModule->getVar('mid');
128:
129: $mod_options = $xoopsModule->getAdminMenu();
130: foreach (array_keys($mod_options) as $item) {
131: $mod_options[$item]['link'] = empty($mod_options[$item]['absolute']) ? XOOPS_URL . "/modules/{$moddir}/" . $mod_options[$item]['link'] : $mod_options[$item]['link'];
132: // $mod_options[$item]['icon'] = empty($mod_options[$item]['icon']) ? '' : XOOPS_URL . "/modules/{$moddir}/" . $mod_options[$item]['icon'];
133: //mb for direct URL access to icons in modules Admin
134: $mod_options[$item]['icon'] = empty($mod_options[$item]['icon']) ? '' : (filter_var($mod_options[$item]['icon'], FILTER_VALIDATE_URL) ? $mod_options[$item]['icon'] : (XOOPS_URL . "/modules/{$moddir}/" . $mod_options[$item]['icon']));
135: }
136: }
137:
138: $tpl->assign('mod_options', $mod_options);
139: $tpl->assign('modpath', $modpath);
140: $tpl->assign('modname', $modname);
141: $tpl->assign('modid', $modid);
142: $tpl->assign('moddir', $moddir);
143:
144: // add MODULES Menu items
145: /** @var XoopsModuleHandler $module_handler */
146: $module_handler = xoops_getHandler('module');
147: $criteria = new CriteriaCompo();
148: $criteria->add(new Criteria('hasadmin', 1));
149: $criteria->add(new Criteria('isactive', 1));
150: $criteria->setSort('mid');
151: $mods = $module_handler->getObjects($criteria);
152:
153: $menu = array();
154: /** @var XoopsGroupPermHandler $moduleperm_handler */
155: $moduleperm_handler = xoops_getHandler('groupperm');
156: foreach ($mods as $mod) {
157: $rtn = array();
158: $modOptions = array(); //add for sub menus
159: $sadmin = $moduleperm_handler->checkRight('module_admin', $mod->getVar('mid'), $xoopsUser->getGroups());
160: if ($sadmin) {
161: $info = $mod->getInfo();
162: if (!empty($info['adminindex'])) {
163: $rtn['link'] = XOOPS_URL . '/modules/' . $mod->getVar('dirname', 'n') . '/' . $info['adminindex'];
164: } else {
165: $rtn['link'] = XOOPS_URL . '/modules/system/admin.php?fct=preferences&amp;op=showmod&amp;mod=' . $mod->getVar('mid');
166: }
167: $rtn['title'] = htmlspecialchars($mod->name(), ENT_QUOTES);
168: $rtn['absolute'] = 1;
169: $rtn['url'] = XOOPS_URL . '/modules/' . $mod->getVar('dirname', 'n') . '/'; //add for sub menus
170: $modOptions = $mod->getAdminMenu(); //add for sub menus
171: $rtn['options'] = $modOptions; //add for sub menus
172:
173: if (isset($info['icon']) && $info['icon'] !== '') {
174: $rtn['icon'] = XOOPS_URL . '/modules/' . $mod->getVar('dirname', 'n') . '/' . $info['icon'];
175: }
176: $menu[] = $rtn;
177: }
178: }
179: $tpl->append('navitems', array(
180: 'link' => XOOPS_URL . '/modules/system/admin.php?fct=modulesadmin',
181: 'text' => _AM_SYSTEM_MODULES,
182: 'dir' => $mod->getVar('dirname', 'n'),
183: 'menu' => $menu));
184:
185: // add preferences menu
186: $menu = array();
187:
188: $OPT = array();
189: $OPT[] = array(
190: 'link' => 'admin.php?fct=preferences&amp;op=show&amp;confcat_id=1',
191: 'title' => _OXYGEN_GENERAL,
192: 'absolute' => 1,
193: 'icon' => XOOPS_ADMINTHEME_URL . '/default/icons/prefs_small.png');
194: $OPT[] = array(
195: 'link' => 'admin.php?fct=preferences&amp;op=show&amp;confcat_id=2',
196: 'title' => _OXYGEN_USERSETTINGS,
197: 'absolute' => 1,
198: 'icon' => XOOPS_ADMINTHEME_URL . '/default/icons/prefs_small.png');
199: $OPT[] = array(
200: 'link' => 'admin.php?fct=preferences&amp;op=show&amp;confcat_id=3',
201: 'title' => _OXYGEN_METAFOOTER,
202: 'absolute' => 1,
203: 'icon' => XOOPS_ADMINTHEME_URL . '/default/icons/prefs_small.png');
204: $OPT[] = array(
205: 'link' => 'admin.php?fct=preferences&amp;op=show&amp;confcat_id=4',
206: 'title' => _OXYGEN_CENSOR,
207: 'absolute' => 1,
208: 'icon' => XOOPS_ADMINTHEME_URL . '/default/icons/prefs_small.png');
209: $OPT[] = array(
210: 'link' => 'admin.php?fct=preferences&amp;op=show&amp;confcat_id=5',
211: 'title' => _OXYGEN_SEARCH,
212: 'absolute' => 1,
213: 'icon' => XOOPS_ADMINTHEME_URL . '/default/icons/prefs_small.png');
214: $OPT[] = array(
215: 'link' => 'admin.php?fct=preferences&amp;op=show&amp;confcat_id=6',
216: 'title' => _OXYGEN_MAILER,
217: 'absolute' => 1,
218: 'icon' => XOOPS_ADMINTHEME_URL . '/default/icons/prefs_small.png');
219: $OPT[] = array(
220: 'link' => 'admin.php?fct=preferences&amp;op=show&amp;confcat_id=7',
221: 'title' => _OXYGEN_AUTHENTICATION,
222: 'absolute' => 1,
223: 'icon' => XOOPS_ADMINTHEME_URL . '/default/icons/prefs_small.png');
224: $OPT[] = array(
225: 'link' => 'admin.php?fct=preferences&amp;op=showmod&amp;mod=1',
226: 'title' => _OXYGEN_MODULESETTINGS,
227: 'absolute' => 1,
228: 'icon' => XOOPS_ADMINTHEME_URL . '/default/icons/prefs_small.png');
229:
230: $menu[] = array(
231: 'link' => XOOPS_URL . '/modules/system/admin.php?fct=preferences',
232: 'title' => _OXYGEN_SYSOPTIONS,
233: 'absolute' => 1,
234: 'url' => XOOPS_URL . '/modules/system/',
235: 'options' => $OPT);
236:
237: foreach ($mods as $mod) {
238: $rtn = array();
239: $sadmin = $moduleperm_handler->checkRight('module_admin', $mod->getVar('mid'), $xoopsUser->getGroups());
240: if ($sadmin && ($mod->getVar('hasnotification') || is_array($mod->getInfo('config')) || is_array($mod->getInfo('comments')))) {
241: $rtn['link'] = XOOPS_URL . '/modules/system/admin.php?fct=preferences&amp;op=showmod&amp;mod=' . $mod->getVar('mid');
242: $rtn['title'] = htmlspecialchars($mod->name(), ENT_QUOTES);
243: $rtn['absolute'] = 1;
244: $rtn['icon'] = XOOPS_ADMINTHEME_URL . '/gui/oxygen/icons/prefs_small.png';
245: $menu[] = $rtn;
246: }
247: }
248: $tpl->append('navitems', array(
249: 'link' => XOOPS_URL . '/modules/system/admin.php?fct=preferences',
250: 'text' => _OXYGEN_SITEPREF,
251: 'dir' => $mod->getVar('dirname', 'n'),
252: 'menu' => $menu));
253:
254: //add OPTIONS/Links Menu Items
255: $menu = array();
256: $menu[] = array(
257: 'link' => 'https://xoops.org',
258: 'title' => _OXYGEN_XOOPSPROJECT,
259: 'absolute' => 1);
260: $menu[] = array(
261: 'link' => 'https://xoops.org',
262: 'title' => _OXYGEN_WEBSITE,
263: 'absolute' => 1,
264: 'icon' => XOOPS_ADMINTHEME_URL . '/default/images/xoops.png');
265: $menu[] = array(
266: 'link' => 'https://xoops.org/modules/repository/',
267: 'title' => _OXYGEN_XOOPSMODULES,
268: 'absolute' => 1,
269: 'icon' => XOOPS_ADMINTHEME_URL . '/default/images/xoops.png');
270: $menu[] = array(
271: 'link' => 'https://xoops.org/modules/extgallery/',
272: 'title' => _OXYGEN_XOOPSTHEMES,
273: 'absolute' => 1,
274: 'icon' => XOOPS_ADMINTHEME_URL . '/default/images/tweb.png');
275:
276: $tpl->append('navitems', array('link' => XOOPS_URL . '/admin.php', 'text' => _OXYGEN_INTERESTSITES, 'menu' => $menu));
277:
278: //add OPTIONS/links for local support
279: if (file_exists($file = XOOPS_ADMINTHEME_PATH . '/default/language/' . $xoopsConfig['language'] . '/localsupport.php')) {
280: $links = include XOOPS_ADMINTHEME_PATH . '/default/language/' . $xoopsConfig['language'] . '/localsupport.php';
281: if (count($links) > 0) {
282: $tpl->append('navitems', array('link' => XOOPS_URL . '/admin.php', 'text' => _OXYGEN_LOCALSUPPORT, 'menu' => $links));
283: }
284: }
285:
286: if (is_object($xoopsModule) || !empty($_GET['xoopsorgnews'])) {
287: if (is_object($xoopsModule) && file_exists($file = XOOPS_ROOT_PATH . '/modules/' . $xoopsModule->getVar('dirname') . '/' . $xoopsModule->getInfo('adminmenu'))) {
288: include $file;
289: }
290:
291: return null;
292: }
293:
294: foreach ($mods as $mod) {
295: $sadmin = $moduleperm_handler->checkRight('module_admin', $mod->getVar('mid'), $xoopsUser->getGroups());
296: if ($sadmin) {
297: $rtn = array();
298: $info = $mod->getInfo();
299: if (!empty($info ['adminindex'])) {
300: $rtn ['link'] = XOOPS_URL . '/modules/' . $mod->getVar('dirname', 'n') . '/' . $info ['adminindex'];
301: } else {
302: $rtn ['link'] = XOOPS_URL . '/modules/system/admin.php?fct=preferences&amp;op=showmod&amp;mod=' . $mod->getVar('mid');
303: }
304: $rtn ['title'] = htmlspecialchars($mod->getVar('name'), ENT_QUOTES);
305: $rtn ['description'] = $mod->getInfo('description');
306: $rtn ['absolute'] = 1;
307: if (isset($info ['icon_big'])) {
308: $rtn ['icon'] = XOOPS_URL . '/modules/' . $mod->getVar('dirname', 'n') . '/' . $info ['icon_big'];
309: } elseif (isset($info ['image'])) {
310: $rtn ['icon'] = XOOPS_URL . '/modules/' . $mod->getVar('dirname', 'n') . '/' . $info ['image'];
311: }
312:
313: $tpl->append('modules', $rtn);
314: }
315: }
316: }
317: }
318: