assign("SALT_USER",SALT_USER); $template->assign("SALT_ADMIN",SALT_ADMIN); $n = preg_match_all("#[^/]+#", strtolower(gpc("p")), $out); $p = $out[0]; // Admin part if ($n && $p[0] == SALT_ADMIN) { if (isset($p[1])) $template->assign("menu_where", $p[1]); else $template->assign("menu_where", ""); if (isset($p[2])) $template->assign("submenu_where", $p[2]); else $template->assign("submenu_where", ""); $template->assign("themes", Theme::get_themes()); if ($n <= 1) $page = require("admin/home.php"); else { if (isset($p[2])) $cmpstr = $p[1]."/".$p[2]; else $cmpstr = $p[1]; switch($cmpstr) { case "exercices/import/": case "exercices/import": $page = require("admin/import_exercices.php"); break; // Users case "teams": case "teams/": $page = require("admin/list_users.php"); break; case "teams/import": case "teams/import/": $page = require("admin/import_users.php"); break; case "teams/export": case "teams/export/": $page = require("admin/export_users.php"); break; } } } // Known users else if ($n && $p[0] == SALT_USER) { $connected = true; if ($n <= 1) { require("public/home.php"); $page = "teams/list"; } else { $TEAM = new Team($p[1]); $template->assign("my_team", $TEAM); $template->assign("themes", Theme::get_themes()); if ($n <= 2) $page = require("team/team.php"); else { switch($p[2]) { case "me/": case "me": $page = require("team/me.php"); break; case "summary": case "summary/": $page = require("team/summary.php"); break; case "confirmation": $page = require("team/confirmation.php"); break; } // SALT/$team/$theme if (empty($page)) { $tmp = explode("-", $p[2]); $id = intval($tmp[0]); $THEME = new Theme($id); unset($tmp, $id); $template->assign("cur_theme", $THEME); if ($n == 4 || ($n == 5 && $p[4] == "submission")) $id_exo = $p[3]; else if ($n == 3) { foreach($THEME->get_exercicesOrdered() as $exo) { if (! $exo->has_solved($TEAM)) break; } $id_exo = $exo->id; } try { $EXERCICE = new Exercice($id_exo, $THEME); $template->assign("cur_exercice", $EXERCICE); $page = require("team/exercice.php"); } catch(ExerciceNotFoundException $e) { $page = "404"; } catch(InvalidThemeException $e) { $page = "404"; } } } } } // Public part else { if ($n == 0) $page = require("public/home.php"); else if ($n == 1) { $TEAM = intval(substr($p[0], 0, strpos($p[0], "-"))); $page = require("public/score.php"); } } // No page here...? if (empty($page) || $page == "404" || ! file_exists(ONYX . "/tpl/bootstrap/".$page.".tpl")) { $template->assign("err", 404); $template->display("404.tpl"); } else $template->display($page.".tpl");