| 
<?php// start hack by Trabis
 if (!class_exists('ProtectorRegistry')) {
 exit('Registry not found');
 }
 
 $registry  = ProtectorRegistry::getInstance();
 $mydirname = $registry->getEntry('mydirname');
 $mydirpath = $registry->getEntry('mydirpath');
 $language  = $registry->getEntry('language');
 // end hack by Trabis
 
 $mytrustdirname = basename(__DIR__);
 $mytrustdirpath = __DIR__;
 
 // environment
 require_once XOOPS_ROOT_PATH . '/class/template.php';
 /* @var XoopsModuleHandler $module_handler */
 $module_handler    = xoops_getHandler('module');
 $xoopsModule       = $module_handler->getByDirname($mydirname);
 /* @var XoopsConfigHandler $config_handler */
 $config_handler    = xoops_getHandler('config');
 $xoopsModuleConfig = $config_handler->getConfigsByCat(0, $xoopsModule->getVar('mid'));
 
 // check permission of 'module_admin' of this module
 /* @var XoopsGroupPermHandler $moduleperm_handler */
 $moduleperm_handler = xoops_getHandler('groupperm');
 if (!is_object(@$xoopsUser) || !$moduleperm_handler->checkRight('module_admin', $xoopsModule->getVar('mid'), $xoopsUser->getGroups())) {
 die('only admin can access this area');
 }
 
 $xoopsOption['pagetype'] = 'admin';
 require XOOPS_ROOT_PATH . '/include/cp_functions.php';
 
 // language files (admin.php)
 //$language = empty( $xoopsConfig['language'] ) ? 'english' : $xoopsConfig['language'] ;  //hack by Trabis
 if (file_exists("$mydirpath/language/$language/admin.php")) {
 // user customized language file
 include_once "$mydirpath/language/$language/admin.php";
 } elseif (file_exists("$mytrustdirpath/language/$language/admin.php")) {
 // default language file
 include_once "$mytrustdirpath/language/$language/admin.php";
 } else {
 // fallback english
 include_once "$mytrustdirpath/language/english/admin.php";
 }
 
 // language files (main.php)
 //$language = empty( $xoopsConfig['language'] ) ? 'english' : $xoopsConfig['language'] ;  //hack by Trabis
 if (file_exists("$mydirpath/language/$language/main.php")) {
 // user customized language file
 include_once "$mydirpath/language/$language/main.php";
 } elseif (file_exists("$mytrustdirpath/language/$language/main.php")) {
 // default language file
 include_once "$mytrustdirpath/language/$language/main.php";
 } else {
 // fallback english
 include_once "$mytrustdirpath/language/english/main.php";
 }
 
 if (!empty($_GET['lib'])) {
 // common libs (eg. altsys)
 $lib  = preg_replace('/[^a-zA-Z0-9_-]/', '', $_GET['lib']);
 $page = preg_replace('/[^a-zA-Z0-9_-]/', '', @$_GET['page']);
 
 if (file_exists(XOOPS_TRUST_PATH . '/libs/' . $lib . '/' . $page . '.php')) {
 include XOOPS_TRUST_PATH . '/libs/' . $lib . '/' . $page . '.php';
 } elseif (file_exists(XOOPS_TRUST_PATH . '/libs/' . $lib . '/index.php')) {
 include XOOPS_TRUST_PATH . '/libs/' . $lib . '/index.php';
 } else {
 die('wrong request');
 }
 } else {
 // fork each pages of this module
 $page = preg_replace('/[^a-zA-Z0-9_-]/', '', @$_GET['page']);
 
 if (file_exists("$mytrustdirpath/admin/$page.php")) {
 include "$mytrustdirpath/admin/$page.php";
 } elseif (file_exists("$mytrustdirpath/admin/index.php")) {
 include "$mytrustdirpath/admin/index.php";
 } else {
 die('wrong request');
 }
 }
 
 |