69 lines
1.7 KiB
PHP
69 lines
1.7 KiB
PHP
<?php
|
|
|
|
if(!defined('ONYX')) exit;
|
|
|
|
$template->assign("fortyp", array("raw" => "RAW", "sha1" => "SHA-1", "md5" => "MD5", "sha224" => "SHA-224", "sha256" => "SHA-256", "sha384" => "SHA-384", "sha512" => "SHA-512", "whirlpool" => "Whirlpool"));
|
|
|
|
$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";
|