diff --git a/core/trunk/core/class/class_portal.php b/core/trunk/core/class/class_portal.php index 01c57533cb0933a0a1af6853428a0c6176e37238..c1240cfa75313fc47c5fc15d1508269908b01ccf 100644 --- a/core/trunk/core/class/class_portal.php +++ b/core/trunk/core/class/class_portal.php @@ -41,7 +41,10 @@ class portal extends functions * Loads Maarch portal configuration into sessions from an xml configuration file (core/xml/config.xml) */ public function build_config() { - $xmlconfig = simplexml_load_file('core'.DIRECTORY_SEPARATOR.'xml'.DIRECTORY_SEPARATOR.'config.xml'); + $xmlconfig = simplexml_load_file(dirname(__FILE__) + . DIRECTORY_SEPARATOR . '..' + . DIRECTORY_SEPARATOR . 'xml' + . DIRECTORY_SEPARATOR . 'config.xml'); foreach($xmlconfig->CONFIG as $CONFIG) { $_SESSION['config']['corename'] = (string) $CONFIG->corename; $_SESSION['config']['corepath'] = (string) $CONFIG->corepath; @@ -76,14 +79,20 @@ class portal extends functions if(!preg_match('/:[0-9]+$/', $host)) { $tmp =$host.$server_port; } + if (isset($_SERVER['HTTP_X_BASE_URL']) && $_SERVER['HTTP_X_BASE_URL'] <> "" ) { - $uri = $_SERVER['HTTP_X_BASE_URL']; + $uri = str_replace($_SERVER['HTTP_X_BASE_URL'], '', $_SERVER['SCRIPT_NAME']); } else { - $uri = str_replace('index.php','', - $_SERVER['SCRIPT_NAME']); + $uri = $_SERVER['SCRIPT_NAME']; } + + if (($appsInUri = strpos($uri, 'apps')) !== false) { + $uri = substr($uri, 0, $appsInUri); + } + $uri = str_replace('index.php', '', $uri); + $_SESSION['config']['coreurl'] = $protocol . "://" . $tmp . $uri; }