From 3df35815ad7b15d2c54a1dc25a5d8c7469e378cc Mon Sep 17 00:00:00 2001 From: kevin_fourie Date: Thu, 18 Sep 2008 13:38:21 +0000 Subject: [PATCH] Merged in from STABLE trunk... --- config/dmsDefaults.php | 24 +++++------------------- lib/config/config.inc.php | 5 ++++- lib/util/ktutil.inc | 66 ++++++++++++++++++++++++++++++++++++++---------------------------- 3 files changed, 47 insertions(+), 48 deletions(-) diff --git a/config/dmsDefaults.php b/config/dmsDefaults.php index f5a03b5..4338822 100644 --- a/config/dmsDefaults.php +++ b/config/dmsDefaults.php @@ -273,8 +273,7 @@ class KTInit { $_SERVER['PATH_INFO'] = $kt_path_info; } - $oConfig =& KTConfig::getSingleton(); - $sServerName = $oConfig->get('KnowledgeTree/serverName'); + $sServerName = $oKTConfig->get('KnowledgeTree/serverName'); $_SERVER['HTTP_HOST'] = $sServerName; } // }}} @@ -423,10 +422,10 @@ class KTInit { $oKTConfig->setdefaultns('KnowledgeTree', 'fileSystemRoot', KT_DIR); $oKTConfig->setdefaultns('KnowledgeTree', 'serverName', KTUtil::arrayGet($_SERVER, 'HTTP_HOST', 'localhost')); - $oKTConfig->setdefaultns('KnowledgeTree', 'sslEnabled', 0); + $oKTConfig->setdefaultns('KnowledgeTree', 'sslEnabled', 'false'); if (array_key_exists('HTTPS', $_SERVER)) { if (strtolower($_SERVER['HTTPS']) === 'on') { - $oKTConfig->setdefaultns('KnowledgeTree', 'sslEnabled', 1); + $oKTConfig->setdefaultns('KnowledgeTree', 'sslEnabled', 'true'); } } $oKTConfig->setdefaultns('KnowledgeTree', 'rootUrl', $this->guessRootUrl()); @@ -466,25 +465,10 @@ class KTInit { // If the http_host server variable is not set then the serverName gets set to localhost // We don't want to store this setting so we set store_cache to false $store_cache = false; - - /* - // Check if serverName.txt is set and use that - $pathFile = KT_DIR . '/config/cache-path'; - $cachePath = trim(file_get_contents($pathFile)); - $serverNamePath = $cachePath . '/' . KTUtil::SERVER_NAME_FILE; - - if(file_exists($serverNamePath)){ - $serverName = @file_get_contents($serverNamePath); - $_SERVER['HTTP_HOST'] = $serverName; - } - */ } } if(!$use_cache) { - // Get default server url settings - $this->getDynamicConfigSettings(); - //Read in DB settings and config settings $oKTConfig->readDBConfig(); } @@ -502,6 +486,8 @@ class KTInit { // Create the global $default array if(!$use_cache) $res = $oKTConfig->readConfig(); + // Get default server url settings + $this->getDynamicConfigSettings(); if($store_cache && isset($cachePath)){ @touch($cachePath); diff --git a/lib/config/config.inc.php b/lib/config/config.inc.php index 356482c..6d8d9c7 100644 --- a/lib/config/config.inc.php +++ b/lib/config/config.inc.php @@ -254,7 +254,10 @@ class KTConfig { } function setdefaultns($seck, $k, $v) { - return $this->setns($seck, $k, $v, true); + $this->setns($seck, $k, $v, true); + + global $default; + $default->$k = $this->expand($this->flatns["$seck/$k"]); } function expand($val) { diff --git a/lib/util/ktutil.inc b/lib/util/ktutil.inc index 79b36b4..c377012 100644 --- a/lib/util/ktutil.inc +++ b/lib/util/ktutil.inc @@ -50,7 +50,7 @@ class KTUtil { const TB = 1099511627776; const PB = 1125899906842624; - const SERVER_NAME_FILE = 'serverName.txt'; + const SERVER_NAME_SETTING = 'server_name'; /** * Used to resolve the server name @@ -59,19 +59,23 @@ class KTUtil { static function save_base_kt_url() { global $default; - $cacheDir = $default->cacheDirectory; - $serverFilename = $cacheDir . '/' . KTUtil::SERVER_NAME_FILE; - if (file_exists($serverFilename)) - { - return; - } + $serverName = KTUtil::getSystemSetting(SERVER_NAME_SETTING, false); + if($serverName !== false){ + return $serverName; + } $rootUrl = $default->rootUrl; $protocol = $default->sslEnabled ? 'https' : 'http'; $port = $_SERVER['SERVER_PORT']+0; $serverName = $_SERVER['SERVER_NAME']; + // We don't want to set the servername to localhost, it should be set to the url that will be used normally + if($serverName == 'localhost' || $serverName == '127.0.0.1') + { + return false; + } + $base_url = $protocol . '://' . $serverName; if (($protocol == 'http' && $port == 80) || ($protocol == 'https' && $port == 443)) @@ -86,7 +90,8 @@ class KTUtil { // Add the root url $base_url .= $rootUrl; - @file_put_contents($serverFilename, $base_url); + // Save as system setting + KTUtil::setSystemSetting(SERVER_NAME_SETTING, $base_url); } @@ -100,28 +105,34 @@ class KTUtil { return $base_url; } - $cacheDir = $default->cacheDirectory; - - $base_url = @file_get_contents($cacheDir . '/' . KTUtil::SERVER_NAME_FILE); + $config = KTConfig::getSingleton(); + $serverName = $config->get('knowledgeTree/serverName', $_SERVER['HTTP_HOST']); - /* We are checking if the object exists because we could have an error pre oor during initialization */ - if(is_object($default->log)) + // $serverName gets set in dmsDefaults, if $_SERVER['HTTP_HOST'] is empty, it gets set to localhost + // we want to avoid this if possible + if(empty($serverName) || $serverName == 'localhost') { - $default->log->debug("kt_url: base url - $base_url"); - } + // The host has not been set - check if the serverName setting exists + $base_url = KTUtil::getSystemSetting(SERVER_NAME_SETTING, false); + + if (false !== $base_url) + { + /* We are checking if the object exists because we could have an error pre oor during initialization */ + if(is_object($default->log)) + { + $default->log->debug("kt_url: base url - $base_url"); + } + + $base_url = str_replace(array("\n","\r"), array('',''), $base_url); + return $base_url; + } - if (false !== $base_url) - { - $base_url = str_replace(array("\n","\r"), array('',''), $base_url); - return $base_url; + // TODO: Check if the $_SERVER['SERVER_NAME'] variable is set. + $serverName = 'localhost'; } - $config = KTConfig::getSingleton(); - $serverName = $config->get('knowledgeTree/serverName', $_SERVER['HTTP_HOST']); - $rootUrl = $default->rootUrl; - - $base_url = ($default->sslEnabled ? 'https' : 'http') .'://'.$serverName . $rootUrl; - + // build up the url + $base_url = ($default->sslEnabled ? 'https' : 'http') .'://'.$serverName . $default->rootUrl; if(is_object($default->log)) { $default->log->debug("kt_url: base url - $base_url"); @@ -132,11 +143,10 @@ class KTUtil { static function call_page($path) { global $default; - $cacheDir = $default->cacheDirectory; - $base_url = @file_get_contents($cacheDir . '/' . KTUtil::SERVER_NAME_FILE); + $base_url = KTUtil::getSystemSetting(SERVER_NAME_SETTING, false); - if (false == $base_url) + if (false === $base_url) { $default->log->info("call_page: $path - cannot call script until user logs in for the first time!"); return; -- libgit2 0.21.4