db->fnExecute = '_count_execs'; // FIXME: PDO equivalent $database->db->beginTransaction(); $config = new DatabaseConfig($database); ctx_log_endok(); ctx_log_start("Loading themelets"); // load the theme parts $_theme = $config->get_string("theme", "default"); if(!file_exists("themes/$_theme")) $_theme = "default"; if(file_exists("themes/$_theme/custompage.class.php")) require_once "themes/$_theme/custompage.class.php"; require_once "themes/$_theme/layout.class.php"; require_once "themes/$_theme/themelet.class.php"; $themelets = glob("ext/*/theme.php"); foreach($themelets as $filename) { require_once $filename; } $custom_themelets = glob("themes/$_theme/*.theme.php"); if($custom_themelets) { $m = array(); foreach($custom_themelets as $filename) { if(preg_match("/themes\/$_theme\/(.*)\.theme\.php/",$filename,$m) && in_array("ext/{$m[1]}/theme.php", $themelets)) { require_once $filename; } } } ctx_log_endok(); // initialise the extensions foreach(get_declared_classes() as $class) { if(is_subclass_of($class, "SimpleExtension")) { $c = new $class(); $c->i_am($c); add_event_listener($c, $c->get_priority()); } } ctx_log_endok("Initialisation"); ctx_log_start("Page generation"); // start the page generation waterfall $page = class_exists("CustomPage") ? new CustomPage() : new Page(); $user = _get_user($config, $database); send_event(new InitExtEvent()); send_event(_get_page_request()); $page->display(); ctx_log_endok("Page generation"); $database->db->commit(); _end_cache(); ctx_log_endok(); } catch(Exception $e) { $version = VERSION; $message = $e->getMessage(); //$trace = var_dump($e->getTrace()); header("HTTP/1.0 500 Internal Error"); print << Internal error - SCore-$version

Internal Error

$message EOD; if($database && $database->db) $database->db->rollback(); ctx_log_ender(); } ?>