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