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;
     }
 }
Exemple #2
0
 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());
     }
 }