public static function init($runtimeContext = "ui")
{
self::loadSettingsFile();
error_reporting(self::$errorReporting);
// ensure the timezone is set. This is an arbitrary value (well, I live in Vancouver!) but it prevents warnings
if (ini_get("date.timezone") == "") {
ini_set("date.timezone", "Canada/Vancouver");
}
self::$translations = new Translations();
// for all pages
if ($runtimeContext == "installation") {
session_start();
$_SESSION["installing"] = true;
} else {
// the order is significant in all of this
self::initDatabase();
if (in_array($runtimeContext, array("installationDatabaseReady", "ui", "generation", "resetPlugins"))) {
self::initSessions();
}
if ($runtimeContext == "installationDatabaseReady") {
$_SESSION["installing"] = true;
}
$dbDefaultLanguage = Settings::getSetting("defaultLanguage");
if (!empty($dbDefaultLanguage)) {
self::$defaultLanguageFile = $dbDefaultLanguage;
}
}
self::$language = new Language(self::$defaultLanguageFile);
self::initSmarty();
if ($runtimeContext == "generation") {
self::initGeoData();
}
if ($runtimeContext == "ui" || $runtimeContext == "generation") {
self::initCountries();
self::initExportTypes($runtimeContext);
self::initDataTypes($runtimeContext);
}
if (in_array($runtimeContext, array("ui", "generation", "resetPlugins"))) {
self::initUser();
}
set_time_limit(self::$timeout);
}