From 200f263ed965c60586a1e9564fb0fc7a09ec8bf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9=20Garnier?= Date: Sat, 24 Dec 2022 15:40:37 +0100 Subject: [PATCH] =?UTF-8?q?Impl=C3=A9mantation=20de=20l'ajout=20de=20nouve?= =?UTF-8?q?lle=20enigme=20solo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WEB/Controller/AdminController.php | 32 +++++++++++++++------- WEB/Model/AdminModel.php | 16 +++++++++++ WEB/View/src/pages/Admin/AddEnigmeSolo.php | 8 +++--- WEB/View/src/pages/Enigme/EnigmePage.php | 21 ++++++++------ WEB/View/src/pages/Enigme/Palindrome.html | 2 +- 5 files changed, 55 insertions(+), 24 deletions(-) diff --git a/WEB/Controller/AdminController.php b/WEB/Controller/AdminController.php index a363c2b6..eaeb780c 100644 --- a/WEB/Controller/AdminController.php +++ b/WEB/Controller/AdminController.php @@ -82,24 +82,24 @@ class AdminController extends UserController public function goToAdmin() { - try{ + try { global $rep, $vues; - require($rep . $vues['admin']); + require($rep . $vues['admin']); } catch (Exception $e) { $error = $e->getMessage(); require($rep . $vues['erreur']); } } public function goToAddEnigmeSolo() - { - try { - global $rep, $vues; - require($rep . $vues['addEnigmeSolo']); - } catch (Exception $e) { - $error = $e->getMessage(); - require($rep . $vues['erreur']); - } + { + try { + global $rep, $vues; + require($rep . $vues['addEnigmeSolo']); + } catch (Exception $e) { + $error = $e->getMessage(); + require($rep . $vues['erreur']); } + } public function goToEnigmeMultiManager() { @@ -124,6 +124,18 @@ class AdminController extends UserController $exemple = $_POST['exemple']; $test = $_POST['test']; $solution = $_POST['solution']; + if (empty($nom) || empty($enonce) || empty($test) || empty($solution)) { + throw new Exception("Les champs nom, enigme, test et solution doivent être remplis"); + } + if (empty($aide)){ + $aide = "Il n'y a pas d'aide pour cette énigme"; + } + if (empty($rappel)){ + $rappel = "Il n'y a pas de rappel pour cette énigme"; + } + if (empty($exemple)){ + $exemple = "Il n'y a pas d'exemple pour cette énigme"; + } $enigme = $model->addNewEnigmeSolo($nom, $enonce, $aide, $rappel, $exemple, $test, $solution); require($rep . $vues['enigmePage']); } catch (Exception $e) { diff --git a/WEB/Model/AdminModel.php b/WEB/Model/AdminModel.php index 5afdb32b..1d74276c 100644 --- a/WEB/Model/AdminModel.php +++ b/WEB/Model/AdminModel.php @@ -19,6 +19,22 @@ class AdminModel $enigme = new Enigme(1,$nom, $enonce, $aide, $rappel, $exemple, $solution, $test); $this->enigme_gateway->insert($enigme); $tabEnigme = $this->enigme_gateway->findLastEnigma(); + $js = fopen("View/src/JS/$nom.js", "w"); + if (is_resource($js)) { + fwrite($js, "//~ Function that test the user code + +async function submit(){ + var test = editor.getValue()+`\\n\n". $solution . "\n". $test . "\n`; + exec(\"print ('True')\", \"code\"); + exec(test, \"solution\"); + result.innerHTML = \"Test en cours...\"; + await new Promise(r => setTimeout(r, 1500)); + check(); +}"); + fclose($js); + } else { + throw new Exception("Impossible d'ouvrir le fichier"); + } return $tabEnigme[0]; } } \ No newline at end of file diff --git a/WEB/View/src/pages/Admin/AddEnigmeSolo.php b/WEB/View/src/pages/Admin/AddEnigmeSolo.php index a5a5220f..a9e09fc6 100644 --- a/WEB/View/src/pages/Admin/AddEnigmeSolo.php +++ b/WEB/View/src/pages/Admin/AddEnigmeSolo.php @@ -23,13 +23,13 @@
- +
- +
@@ -53,13 +53,13 @@
- +
- +
diff --git a/WEB/View/src/pages/Enigme/EnigmePage.php b/WEB/View/src/pages/Enigme/EnigmePage.php index ea786f0d..0158fd3f 100644 --- a/WEB/View/src/pages/Enigme/EnigmePage.php +++ b/WEB/View/src/pages/Enigme/EnigmePage.php @@ -4,7 +4,11 @@ - Titre + + <?php + echo $enigme->getNom(); + ?> + getNom() . '.js">'; + echo ''; ?> diff --git a/WEB/View/src/pages/Enigme/Palindrome.html b/WEB/View/src/pages/Enigme/Palindrome.html index 9b41417c..c85c6a64 100644 --- a/WEB/View/src/pages/Enigme/Palindrome.html +++ b/WEB/View/src/pages/Enigme/Palindrome.html @@ -70,7 +70,7 @@ Palindrome

- Écrire une fonction estPalindrome qui prend en argument un + Écrire une fonction estPalindrome(var) qui prend en argument un entier et qui renvoie True si c’est un palindrome et False sinon.