function getCustomErrorRedirectPage() { $oKTErrorConfig =& KTConfig::getSingleton(); $sCustomErrorPage = $oKTErrorConfig->get('CustomErrorMessages/customerrorpagepath'); //if a filname is specified in the config.ini file make it into a url if (substr($sCustomErrorPage, 0, 4) != 'http') { $sUrl = KTInit::guessRootUrl(); global $default; $sRootUrl = ($default->sslEnabled ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $sUrl; $sCustomErrorPage = $sRootUrl . '/' . $sCustomErrorPage; } //checking if file exists //curl options will return the page header, we can then check for an http error $CurlSession = curl_init(); curl_setopt($CurlSession, CURLOPT_URL, $sCustomErrorPage); curl_setopt($CurlSession, CURLOPT_HEADER, true); curl_setopt($CurlSession, CURLOPT_NOBODY, true); curl_setopt($CurlSession, CURLOPT_RETURNTRANSFER, true); $data = curl_exec($CurlSession); curl_close($CurlSession); preg_match("/HTTP\\/1\\.[1|0]\\s(\\d{3})/", $data, $matches); //checking for http error - if the retunr code isn't 200 then we have an error //on an error we return 0 if ($matches[1] != '200') { //if file does not exist return error code of 0 return '0'; } else { //if file exists return error page address return $sCustomErrorPage; } }
function getDynamicConfigSettings() { $oKTConfig =& KTConfig::getSingleton(); // Override the config setting - KT_DIR is resolved on page load $oKTConfig->setdefaultns('KnowledgeTree', 'fileSystemRoot', KT_DIR); // Set ssl to enabled if using https - if the server variable is not set, allow the config setting to take precedence if (array_key_exists('HTTPS', $_SERVER)) { if (strtolower($_SERVER['HTTPS']) === 'on') { $oKTConfig->setdefaultns('KnowledgeTree', 'sslEnabled', 'true'); } } $oKTConfig->setdefaultns('KnowledgeTree', 'serverName', $_SERVER['HTTP_HOST']); // Check for the config setting before overriding with the resolved setting $serverName = $oKTConfig->get('KnowledgeTree/serverName'); $rootUrl = $oKTConfig->get('KnowledgeTree/rootUrl'); $execSearchPath = $oKTConfig->get('KnowledgeTree/execSearchPath'); $magicDatabase = $oKTConfig->get('KnowledgeTree/magicDatabase'); // base server name if (empty($serverName) || $serverName == 'default') { $oKTConfig->setdefaultns('KnowledgeTree', 'serverName', KTUtil::getServerName()); } // the sub directory or root url if (empty($rootUrl) || $rootUrl == 'default') { $oKTConfig->setdefaultns('KnowledgeTree', 'rootUrl', $this->guessRootUrl()); } // path to find the executable binaries if (empty($execSearchPath) || $execSearchPath == 'default') { $oKTConfig->setdefaultns('KnowledgeTree', 'execSearchPath', $_SERVER['PATH']); } // path to magic database if (empty($magicDatabase) || $magicDatabase == 'default') { $oKTConfig->setdefaultns('KnowledgeTree', 'magicDatabase', KTInit::detectMagicFile()); } }