| 1: | <?php
|
| 2: | |
| 3: | |
| 4: | |
| 5: | |
| 6: | |
| 7: | |
| 8: | |
| 9: | |
| 10: | |
| 11: | |
| 12: | |
| 13: | |
| 14: | |
| 15: | |
| 16: | |
| 17: |
|
| 18: | class XoopsSystemGui
|
| 19: | {
|
| 20: | |
| 21: | |
| 22: |
|
| 23: | public $template;
|
| 24: |
|
| 25: | |
| 26: | |
| 27: |
|
| 28: | public $navigation;
|
| 29: |
|
| 30: | |
| 31: | |
| 32: |
|
| 33: | public $foldername;
|
| 34: |
|
| 35: | |
| 36: | |
| 37: |
|
| 38: | public $xoTheme;
|
| 39: |
|
| 40: | public function header()
|
| 41: | {
|
| 42: | global $xoops, $xoopsConfig, $xoopsModule, $xoopsUser, $xoopsOption, $xoTheme, $xoopsTpl;
|
| 43: | ob_start();
|
| 44: |
|
| 45: | xoops_loadLanguage('admin', 'system');
|
| 46: | xoops_loadLanguage('cpanel', 'system');
|
| 47: | xoops_loadLanguage('modinfo', 'system');
|
| 48: |
|
| 49: | $xoopsLogger = XoopsLogger::getInstance();
|
| 50: | $xoopsLogger->stopTime('Module init');
|
| 51: | $xoopsLogger->startTime('XOOPS output init');
|
| 52: |
|
| 53: | if (!headers_sent()) {
|
| 54: | header('Content-Type:text/html; charset=' . _CHARSET);
|
| 55: | header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
| 56: | header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
| 57: | header('Cache-Control: no-store, no-cache, must-revalidate');
|
| 58: | header('Cache-Control: post-check=0, pre-check=0', false);
|
| 59: | header('Pragma: no-cache');
|
| 60: | }
|
| 61: |
|
| 62: | require_once XOOPS_ROOT_PATH . '/class/template.php';
|
| 63: | require_once XOOPS_ROOT_PATH . '/class/theme.php';
|
| 64: |
|
| 65: | if (isset($GLOBALS['xoopsOption']['template_main'])) {
|
| 66: | if (false === strpos($GLOBALS['xoopsOption']['template_main'], ':')) {
|
| 67: | $GLOBALS['xoopsOption']['template_main'] = 'db:' . $GLOBALS['xoopsOption']['template_main'];
|
| 68: | }
|
| 69: | }
|
| 70: |
|
| 71: | $adminThemeFactory = new xos_opal_AdminThemeFactory();
|
| 72: | $this->xoTheme =& $adminThemeFactory->createInstance(array(
|
| 73: | 'folderName' => $this->foldername,
|
| 74: | 'themesPath' => 'modules/system/themes',
|
| 75: | 'contentTemplate' => isset($GLOBALS['xoopsOption']['template_main'])? $GLOBALS['xoopsOption']['template_main'] :''));
|
| 76: | $this->xoTheme->loadLocalization('admin');
|
| 77: | $this->template =& $this->xoTheme->template;
|
| 78: |
|
| 79: | $GLOBALS['xoTheme'] =& $this->xoTheme;
|
| 80: | $GLOBALS['adminTpl'] =& $this->xoTheme->template;
|
| 81: |
|
| 82: | $xoopsLogger->stopTime('XOOPS output init');
|
| 83: | $xoopsLogger->startTime('Module display');
|
| 84: |
|
| 85: | $xoopsPreload = XoopsPreload::getInstance();
|
| 86: | $xoopsPreload->triggerEvent('system.class.gui.header');
|
| 87: |
|
| 88: | if (isset($xoopsModule) && $xoopsModule->getVar('dirname') === 'system') {
|
| 89: | $xoopsModule->loadAdminMenu();
|
| 90: |
|
| 91: | foreach (array_keys($xoopsModule->adminmenu) as $item) {
|
| 92: | $sys_menu[$item]['link'] = XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname') . '/' . $xoopsModule->adminmenu[$item]['link'];
|
| 93: | $GLOBALS['xoopsTpl']->appendByRef('sys_menu', $sys_menu);
|
| 94: | unset($sys_menu);
|
| 95: | }
|
| 96: | }
|
| 97: |
|
| 98: | if (isset($xoopsModule) && $xoopsModule->getVar('dirname') !== 'system') {
|
| 99: | if ($xoopsModule->getInfo('system_menu')) {
|
| 100: | $GLOBALS['xoTheme']->addStylesheet(XOOPS_URL . '/modules/system/css/menu.css');
|
| 101: |
|
| 102: | $xoopsModule->loadAdminMenu();
|
| 103: |
|
| 104: |
|
| 105: | $menu_handler = xoops_getModuleHandler('menu', 'system');
|
| 106: |
|
| 107: | $menu_handler->addMenuTop(XOOPS_URL . '/modules/system/admin.php?fct=preferences&op=showmod&mod=' . $xoopsModule->getVar('mid', 'e'), _AM_SYSTEM_PREF);
|
| 108: | $menu_handler->addMenuTop(XOOPS_URL . '/modules/system/admin.php?fct=modulesadmin&op=update&module=' . $xoopsModule->getVar('dirname', 'e'), _AM_SYSTEM_UPDATE);
|
| 109: | $blocksTest = $xoopsModule->getInfo('blocks');
|
| 110: | if (!empty($blocksTest)) {
|
| 111: | $menu_handler->addMenuTop(XOOPS_URL . '/modules/system/admin.php?fct=blocksadmin&op=list&filter=1&selgen=' . $xoopsModule->getVar('mid', 'e') . '&selmod=-2&selgrp=-1&selvis=-1', _AM_SYSTEM_BLOCKS);
|
| 112: | }
|
| 113: | $menu_handler->addMenuTop(XOOPS_URL . '/modules/system/admin.php?fct=tplsets&op=listtpl&tplset=default&moddir=' . $xoopsModule->getVar('dirname', 'e'), _AM_SYSTEM_TPLSETS);
|
| 114: | if ($xoopsModule->getInfo('hasComments') == 1){
|
| 115: | $menu_handler->addMenuTop(XOOPS_URL . '/modules/system/admin.php?module=' . $xoopsModule->getVar('mid', 'e') . '&status=0&limit=10&fct=comments', _AM_SYSTEM_COMMENTS);
|
| 116: | }
|
| 117: | $menu_handler->addMenuTop(XOOPS_URL . '/modules/system/admin.php?fct=modulesadmin&op=uninstall&module=' . $xoopsModule->getVar('dirname', 'e'), _AM_SYSTEM_UNINSTALL);
|
| 118: | if ($xoopsModule->getInfo('hasMain') == 1){
|
| 119: | $menu_handler->addMenuTop(XOOPS_URL . '/modules/' . $xoopsModule->getVar('dirname', 'e') . '/', _AM_SYSTEM_GOTOMODULE);
|
| 120: | }
|
| 121: |
|
| 122: | $i = 0;
|
| 123: | $current = $i;
|
| 124: | foreach ($xoopsModule->adminmenu as $menu) {
|
| 125: | if (stripos($_SERVER['REQUEST_URI'], $menu['link']) !== false) {
|
| 126: | $current = $i;
|
| 127: | }
|
| 128: | $menu_handler->addMenuTabs($menu['link'], $menu['title']);
|
| 129: | ++$i;
|
| 130: | }
|
| 131: | if ($xoopsModule->getInfo('help')) {
|
| 132: | if (stripos($_SERVER['REQUEST_URI'], 'admin/' . $xoopsModule->getInfo('help')) !== false) {
|
| 133: | $current = $i;
|
| 134: | }
|
| 135: | $menu_handler->addMenuTabs('../system/help.php?mid=' . $xoopsModule->getVar('mid', 's') . '&' . $xoopsModule->getInfo('help'), _AM_SYSTEM_HELP);
|
| 136: | }
|
| 137: |
|
| 138: |
|
| 139: | $GLOBALS['xoopsTpl']->assign('xo_system_menu', $menu_handler->render($current, false));
|
| 140: | }
|
| 141: | }
|
| 142: | }
|
| 143: |
|
| 144: | public function footer()
|
| 145: | {
|
| 146: | global $xoopsConfig, $xoopsOption, $xoopsTpl, $xoTheme;
|
| 147: |
|
| 148: | $xoopsLogger = XoopsLogger::getInstance();
|
| 149: | $xoopsLogger->stopTime('Module display');
|
| 150: |
|
| 151: | if (!headers_sent()) {
|
| 152: | header('Content-Type:text/html; charset=' . _CHARSET);
|
| 153: | header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
| 154: | header('Cache-Control: private, no-cache');
|
| 155: | header('Pragma: no-cache');
|
| 156: | }
|
| 157: |
|
| 158: |
|
| 159: | if (!isset($xoTheme)) {
|
| 160: | $xoTheme = $GLOBALS['xoTheme'];
|
| 161: | }
|
| 162: |
|
| 163: | if (isset($GLOBALS['xoopsOption']['template_main']) && $GLOBALS['xoopsOption']['template_main'] != $xoTheme->contentTemplate) {
|
| 164: | trigger_error("xoopsOption['template_main'] should be defined before call xoops_cp_header function", E_USER_WARNING);
|
| 165: | if (false === strpos($GLOBALS['xoopsOption']['template_main'], ':')) {
|
| 166: | $xoTheme->contentTemplate = 'db:' . $GLOBALS['xoopsOption']['template_main'];
|
| 167: | } else {
|
| 168: | $xoTheme->contentTemplate = $GLOBALS['xoopsOption']['template_main'];
|
| 169: | }
|
| 170: | }
|
| 171: |
|
| 172: | $xoTheme->render();
|
| 173: | $xoopsLogger->stopTime();
|
| 174: | ob_end_flush();
|
| 175: | }
|
| 176: |
|
| 177: | public static function validate()
|
| 178: | {
|
| 179: | }
|
| 180: |
|
| 181: | public static function flush()
|
| 182: | {
|
| 183: | }
|
| 184: |
|
| 185: | public function getInstance()
|
| 186: | {
|
| 187: | static $instance;
|
| 188: | if (!isset($instance)) {
|
| 189: | $class = __CLASS__;
|
| 190: | $instance = new $class();
|
| 191: | }
|
| 192: |
|
| 193: | return $instance;
|
| 194: | }
|
| 195: | }
|
| 196: | |