server/onyx/include/admin/exercice.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"));
$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";