assign("fortyp", array("raw" => "RAW", "sha1" => "SHA-1", "md5" => "MD5", "sha224" => "SHA-224", "sha256" => "SHA-256", "sha384" => "SHA-384", "sha512" => "SHA-512")); $p = $out[0]; //TODO maybe move the try catch to index.html ? try { if (isset($p[2])) { $tmp = explode("-", $p[2]); $id = intval($tmp[0]); if ($id == 0) return "404"; $theme = new Theme($id); $template->assign("theme", $theme); } if (isset($p[3])) { $exercice = new Exercice($p[3], $theme); if (!empty($_POST)) { $exercice->points = intval($_POST["points"]); $exercice->statement = $_POST["desc"]; $exercice->require = $_POST["require"]; $exercice->level = intval($_POST["level"]); $exercice->flush_keys(); foreach ($_POST as $k => $key) { if (preg_match("/k([0-9]+)_value/", $k, $out) && !empty($key) && !empty($_POST["k".$out[1]."_type"])) $exercice->add_key($_POST["k".$out[1]."_type"], $key); if (preg_match("/f([0-9]+)_name/", $k, $out) && !empty($key) && !empty($_POST["f".$out[1]."_path"]) && isset($exercice->files[$out[1]])) { $exercice->files[$out[1]]["path_orig"] = $_POST["f".$out[1]."_path"]; $exercice->files[$out[1]]["name"] = trim($_POST["f".$out[1]."_name"]); $exercice->files[$out[1]]["sha1"] = $_POST["f".$out[1]."_sha1"]; } } $exercice->update(); header("Location: /".implode("/", $p)); exit(); } $template->assign("ex", $exercice); } } catch (ThemeNotFoundException $e) { return "404"; } catch(ExerciceNotFoundException $e) { return "404"; } catch(ExerciceNotFoundException $e) { return "404"; } return SALT_ADMIN."/exercice";