fileSystemRoot/lib/Log.inc"); $default->log = new Log($default->fileSystemRoot . "/log", $default->logLevel); $res = $default->log->initialiseLogFile(); KTInit::handleInitError($res); $default->queryLog = new Log($default->fileSystemRoot . "/log", $default->logLevel, "query"); $res = $default->queryLog->initialiseLogFile(); KTInit::handleInitError($res); $default->timerLog = new Log($default->fileSystemRoot . "/log", $default->logLevel, "timer"); $res = $default->timerLog->initialiseLogFile(); KTInit::handleInitError($res); } // }}} // {{{ setupI18n() /** * setupI * */ function setupI18n () { global $default; if (in_array("gettext", get_loaded_extensions()) && function_exists('gettext') && function_exists('_')) { require_once("$default->fileSystemRoot/lib/i18n/languageFunctions.inc"); require_once("$default->fileSystemRoot/lib/i18n/accept-to-gettext.inc"); if ($default->useAcceptLanguageHeader) { $aInstalledLocales = getInstalledLocales(); $sLocale=al2gt($aInstalledLocales, 'text/html'); $default->defaultLanguage = $sLocale; } putenv('LANG=' . $default->defaultLanguage); setlocale(LC_ALL, $default->defaultLanguage); // Set the text domain $sDomain = 'knowledgeTree'; bindtextdomain($sDomain, $default->fileSystemRoot . "/i18n"); textdomain($sDomain); } else { $default->log->info("Gettext not installed, i18n disabled."); // define a dummy _ function so gettext is not -required- function _($sString) { return $sString; } } } // }}} // {{{ setupDB() function setupDB () { global $default; require_once("DB.php"); $dsn = array( 'phptype' => $default->dbType, 'username' => $default->dbUser, 'password' => $default->dbPass, 'hostspec' => $default->dbHost, 'database' => $default->dbName, ); $options = array( 'debug' => 2, 'portability' => DB_PORTABILITY_ERRORS, 'seqname_format' => 'zseq_%s', ); $default->_db = &DB::connect($dsn, $options); if (PEAR::isError($default->_db)) { KTInit::handleInitError($default->_db); // never returns } $default->_db->setFetchMode(DB_FETCHMODE_ASSOC); // DBCompat allows phplib API compatibility require_once(KT_LIB_DIR . '/database/dbcompat.inc'); $default->db = new DBCompat; // DBUtil is the preferred database abstraction require_once(KT_LIB_DIR . '/database/dbutil.inc'); // KTEntity is the database-backed base class require_once(KT_LIB_DIR . '/ktentity.inc'); } /// }}} // {{{ cleanGlobals() function cleanGlobals () { /* * Borrowed from TikiWiki * * Copyright (c) 2002-2004, Luis Argerich, Garland Foster, * Eduardo Polidor, et. al. */ if (ini_get('register_globals')) { foreach (array($_ENV, $_GET, $_POST, $_COOKIE, $_SERVER) as $superglob) { foreach ($superglob as $key => $val) { if (isset($GLOBALS[$key]) && $GLOBALS[$key] == $val) { unset($GLOBALS[$key]); } } } } } // }}} // {{{ cleanMagicQuotesItem() function cleanMagicQuotesItem (&$var) { if (is_array($var)) { foreach ($var as $key => $val) { KTInit::cleanMagicQuotesItem($var[$key]); } } else { // XXX: Make it look pretty $var = stripslashes($var); } } // }}} // {{{ cleanMagicQuotes() function cleanMagicQuotes () { if (get_magic_quotes_gpc()) { KTInit::cleanMagicQuotesItem($_GET); KTInit::cleanMagicQuotesItem($_POST); KTInit::cleanMagicQuotesItem($_REQUEST); KTInit::cleanMagicQuotesItem($_COOKIE); } } // }}} // {{{ setupRandomSeed() function setupRandomSeed () { mt_srand(hexdec(substr(md5(microtime()), -8)) & 0x7fffffff); } // }}} // {{{ handleInitError() function handleInitError($oError) { // XXX: Make it look pretty die($oError->toString()); } // }}} } // }}} // Application defaults // // Overriden in environment.php $default->fileSystemRoot = KT_DIR; $default->serverName = $_SERVER['HTTP_HOST']; $default->execSearchPath = $_SERVER['PATH']; $default->unzipCommand = "unzip"; $default->logLevel = 'INFO'; $default->useDatabaseConfiguration = false; // include the environment settings require_once("environment.php"); KTInit::prependPath(KT_DIR . '/pear'); KTInit::setupDB(); KTInit::setupRandomSeed(); // Give everyone access to legacy PHP functions require_once(KT_LIB_DIR . '/util/legacy.inc'); // Give everyone access to KTUtil utility functions require_once(KT_LIB_DIR . '/util/ktutil.inc'); require_once("$default->fileSystemRoot/lib/authentication/$default->authenticationClass.inc"); // instantiate system settings class require_once("$default->fileSystemRoot/lib/database/lookup.inc"); require_once("$default->fileSystemRoot/lib/System.inc"); $default->system = new System(); if ($default->useDatabaseConfiguration && $default->system->initialised()) { $aSettings = $default->system->aSettings; for ($i=0; $i$aSettings[$i] = $default->system->get($aSettings[$i]); } } // table mapping entries include("tableMappings.inc"); // instantiate log KTInit::setupLogging(); KTInit::setupI18n(); KTInit::cleanGlobals(); KTInit::cleanMagicQuotes(); // site map definition include("siteMap.inc"); require_once(KT_DIR . '/phpmailer/class.phpmailer.php'); require_once(KT_LIB_DIR . '/session/Session.inc'); require_once(KT_LIB_DIR . '/session/control.inc'); require_once(KT_DIR . '/presentation/Html.inc'); // browser settings require_once(KT_DIR . '/phpSniff/phpSniff.class.php'); require_once('browsers.inc'); ?>