diff --git a/WEB/Controller/AdminController.php b/WEB/Controller/AdminController.php index 0d3d0168..e8b2d385 100644 --- a/WEB/Controller/AdminController.php +++ b/WEB/Controller/AdminController.php @@ -252,7 +252,7 @@ class AdminController extends UserController $lesOrdres = []; $lesEnigmes=$model->getEnigmesSolo(); foreach ($lesEnigmes as $enigme) { - $lesOrdres[] = array($enigme->getIdEnigme(),$_POST['ordre'.$enigme->getIdEnigme()]); + $lesOrdres[] = array($enigme->getIdEnigme(),(int)$_POST['ordre'.$enigme->getIdEnigme()]); } $model->modifOrdre($lesOrdres); echo ''; diff --git a/WEB/Model/AdminModel.php b/WEB/Model/AdminModel.php index e21f1120..147feb63 100644 --- a/WEB/Model/AdminModel.php +++ b/WEB/Model/AdminModel.php @@ -86,13 +86,39 @@ async function submit(){ } return $enigme; } + + private function checkOrdre(array $lesOrdres){ + $lesNombres = array(); + foreach ($lesOrdres as $ordre) { + if ($ordre[1] < 1) { + return false; + } + $lesNombres[] = $ordre[1]; + } + sort($lesNombres); + if ($lesNombres[0] != 1) { + return false; + } + $last = end($lesNombres); + $i = 0; + while ($i < $last) { + if ($lesNombres[$i] != $i+1) { + echo "Error"; + return false; + } + $i++; + } + return true; + } + public function modifOrdre(array $lesOrdres){ - $i = 1; + if (!$this->checkOrdre($lesOrdres)){ + throw new Exception("Les ordres ne sont pas corrects"); + } foreach ($lesOrdres as $ordre){ - $enigme = $this->enigme_gateway->findById($ordre)[0]; - $enigme->setOrdre($i); + $enigme = $this->enigme_gateway->findById($ordre[0])[0]; + $enigme->setOrdre($ordre[1]); $this->enigme_gateway->update($enigme); - $i++; } } } \ No newline at end of file diff --git a/WEB/View/src/pages/Admin/ModifOrdre.php b/WEB/View/src/pages/Admin/ModifOrdre.php index e0aed53d..318626fb 100644 --- a/WEB/View/src/pages/Admin/ModifOrdre.php +++ b/WEB/View/src/pages/Admin/ModifOrdre.php @@ -21,13 +21,13 @@
- Retour + Retour

Ordre des énigmes

-
+