vars["title"] = "500 Internal Server Error"; if (__DEBUG__) { $ste->vars["details"] = $e->__toString(); } echo $ste->exectemplate("/systemtemplates/error.html"); } } function _ratatoeskr() { global $backend_subactions, $ste, $url_handlers, $ratatoeskr_settings, $plugin_objs, $api_compat; session_start(); clean_database(); if (isset($ratatoeskr_settings["debugmode"]) and $ratatoeskr_settings["debugmode"]) { define("__DEBUG__", true); } if (PLUGINS_ENABLED) { $activeplugins = array_filter(Plugin::all(), function ($plugin) { return $plugin->active; }); /** @var Plugin $plugin */ foreach ($activeplugins as $plugin) { if (!in_array($plugin->api, $api_compat)) { $plugin->active = false; $plugin->save(); continue; } eval($plugin->code); /** @var RatatoeskrPlugin $plugin_obj */ $plugin_obj = new $plugin->classname($plugin->get_id()); if ($plugin->update) { $plugin_obj->update(); $plugin->update = false; $plugin->save(); } $plugin_obj->init(); $plugin_objs[$plugin->get_id()] = $plugin_obj; } } /* Register URL handlers */ build_backend_subactions(); register_url_handler("_default", "frontend_url_handler"); register_url_handler("_index", "frontend_url_handler"); register_url_handler("index", "frontend_url_handler"); register_url_handler("backend", $backend_subactions); register_url_handler("_notfound", url_action_simple(function ($data) { global $ste; header("HTTP/1.1 404 Not Found"); $ste->vars["title"] = "404 Not Found"; $ste->vars["details"] = str_replace("[[URL]]", $_SERVER["REQUEST_URI"], (isset($translation) ? $translation["e404_details"] : "The page [[URL]] could not be found. Sorry.")); echo $ste->exectemplate("/systemtemplates/error.html"); })); $urlpath = explode("/", @$_GET["action"]); $rel_path_to_root = implode("/", array_merge(["."], array_fill(0, count($urlpath) - 1, ".."))); $GLOBALS["rel_path_to_root"] = $rel_path_to_root; $data = ["rel_path_to_root" => $rel_path_to_root]; $ste->vars["rel_path_to_root"] = $rel_path_to_root; url_process($urlpath, $url_handlers, $data); if (PLUGINS_ENABLED) { foreach ($plugin_objs as $plugin_obj) { $plugin_obj->atexit(); } } $ratatoeskr_settings->save(); }