include_once $file; } $className = "ETPlugin_{$v}"; if (!class_exists($className)) { continue; } ET::$plugins[$v] = new $className("addons/plugins/" . $v); ET::$plugins[$v]->boot(); } } //***** 6. INITIALIZE SESSION AND DATABASE, AND CACHE // Initialize the cache. $cacheClass = C("esoTalk.cache"); ET::$cache = ETFactory::make($cacheClass ? $cacheClass : "cache"); // Connect to the database. ET::$database = ETFactory::make("database"); ET::$database->init(C("esoTalk.database.host"), C("esoTalk.database.user"), C("esoTalk.database.password"), C("esoTalk.database.dbName"), C("esoTalk.database.prefix"), C("esoTalk.database.connectionOptions"), C("esoTalk.database.port")); // Initialize the session. ET::$session = ETFactory::make("session"); // Check if any plugins need upgrading by comparing the versions in ET::$pluginInfo with the versions in // ET::$config. foreach (ET::$plugins as $k => $v) { if (C("{$k}.version") != ET::$pluginInfo[$k]["version"]) { if ($v->setup(C("{$k}.version"))) { ET::writeConfig(array("{$k}.version" => ET::$pluginInfo[$k]["version"])); } } } //***** 7. PARSE REQUEST // If $_GET["p"] was explicitly specified, use that. if (!empty($_GET["p"])) {