| 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: |  |