From 655842bb3a9c027fc72279388d5b2a8a207f0d10 Mon Sep 17 00:00:00 2001 From: Li Chen Date: Thu, 28 Nov 2013 17:35:34 +0100 Subject: [PATCH] Handle submission_dir in root.xml --- onyx/include/team/exercice.php | 73 ++++++++++++++++----------- onyx/tpl/bootstrap/teams/exercice.tpl | 2 +- 2 files changed, 44 insertions(+), 31 deletions(-) diff --git a/onyx/include/team/exercice.php b/onyx/include/team/exercice.php index 299eefa4..200f26da 100644 --- a/onyx/include/team/exercice.php +++ b/onyx/include/team/exercice.php @@ -4,39 +4,52 @@ if(!defined('ONYX')) exit; $solved = count($EXERCICE->get_solved()); -if ($n >= 5 && $p[4] == "submission") +if (isset($VAR['submission_dir'])) +{ + $submission_dir = $VAR['submission_dir']; + + if ($n >= 5 && $p[4] == "submission") + { + if ($n >= 6 && $p[5] == "werr") + { + $template->assign("ERRcolor", "danger"); + if (DEBUG) + $template->assign("ERRmessage", "DEBUG ERROR: le répertoire submission n'est pas accessible en écriture."); + else + $template->assign("ERRmessage", "Une erreur s'est produite durant la soumission. Veuillez réessayer dans quelques instants."); + } + else + { + $template->assign("ERRcolor", "success"); + $template->assign("ERRmessage", "Votre réponse a bien été prise en compte et sera évaluée dans quelques instants..."); + } + + if (!empty($_POST["solution"])) + { + if (is_writable("$submission_dir/")) + { + $file = $submission_dir.'/'.$p[1].'-'.$p[2].'-'.$p[3]; + + file_put_contents($file, $_POST['solution'], LOCK_EX); + + header("Location: /".implode("/", $p)); + exit; + } + else + { + header("Location: /".implode("/", $p)."/werr"); + exit; + } + } + } +} +else { - if ($n >= 6 && $p[5] == "werr") - { - $template->assign("ERRcolor", "danger"); if (DEBUG) - $template->assign("ERRmessage", "DEBUG ERROR: le répertoire submission n'est pas accessible en écriture."); + erreur("Merci d'ajouter la variable submission_dir dans root.xml"); else - $template->assign("ERRmessage", "Une erreur s'est produite durant la soumission. Veuillez réessayer dans quelques instants."); - } - else - { - $template->assign("ERRcolor", "success"); - $template->assign("ERRmessage", "Votre réponse a bien été prise en compte et sera évaluée dans quelques instants..."); - } - - if (!empty($_POST["solution"])) - { - if (is_writable(ONYX . "../submission/")) - { - $file = ONYX . "../submission/".$p[1]."-".$p[2]."-".$p[3]; - - file_put_contents($file, $_POST['solution'], LOCK_EX); - - header("Location: /".implode("/", $p)); - exit; - } - else - { - header("Location: /".implode("/", $p)."/werr"); - exit; - } - } + erreur("Une erreur s'est produite. Veuillez réessayer dans quelques instants."); + $template->assign("submission_disabled", true); } $template->assign("solved", $solved); diff --git a/onyx/tpl/bootstrap/teams/exercice.tpl b/onyx/tpl/bootstrap/teams/exercice.tpl index 89d79580..387c43f8 100644 --- a/onyx/tpl/bootstrap/teams/exercice.tpl +++ b/onyx/tpl/bootstrap/teams/exercice.tpl @@ -61,7 +61,7 @@ - + {/if}