diff --git a/WEB/Config/Config.php b/WEB/Config/Config.php index 7e90213d..3d21e68f 100644 --- a/WEB/Config/Config.php +++ b/WEB/Config/Config.php @@ -3,8 +3,8 @@ $rep =''; // BD -$dsn = './scripted.db'; -// $dsn = 'C:\\wamp64\\www\\scripted.db'; +// $dsn = './scripted.db'; +$dsn = 'C:\\wamp64\\www\\scripted.db'; //Sel de hashage $sel = "JeSuisUnSeldeHashageEtJeSuisUniqueEtTresSecuriseEtJeSuisTresLong"; @@ -17,7 +17,8 @@ $vues['login'] = 'View/src/pages/LogSign/Login.php'; $vues['signUp'] = 'View/src/pages/LogSign/SignUp.php'; $vues['test'] = 'View/src/pages/FirstTests/FirstTest1.html'; $vues['next'] = 'View/src/pages/FirstTests/FirstTest'; -$vues['admin'] = 'View/src/pages/Admin.php'; +$vues['admin'] = 'View/src/pages/Admin/Admin.php'; +$vues['addEnigmeSolo'] = 'View/src/pages/Admin/AddEnigmeSolo.php'; // Enigme $vues['enigme'] = 'View/src/pages/Enigme/Palindrome.html'; $vues['enigmePage'] = 'View/src/pages/Enigme/EnigmePage.php'; diff --git a/WEB/Controller/AdminController.php b/WEB/Controller/AdminController.php index 8e200053..65473d53 100644 --- a/WEB/Controller/AdminController.php +++ b/WEB/Controller/AdminController.php @@ -54,11 +54,14 @@ class AdminController extends UserController case "goToQueue": $this->goToQueue()(); break; + case "goToAddEnigmeSolo": + $this->goToAddEnigmeSolo()(); + break; case "logout": $this->logout(); break; - case "addNewEnigme": - $this->addNewEnigme(); + case "addNewEnigmeSolo": + $this->addNewEnigmeSolo(); break; default: $error = "Action non valide"; @@ -74,14 +77,44 @@ class AdminController extends UserController } } - function goToAdmin() + public function goToAdmin() { - global $rep, $vues; - require($rep . $vues['admin']); + try { + global $rep, $vues; + 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']); + } + } - function addNewEnigme() + public function addNewEnigmeSolo() { - + try { + global $rep, $vues; + $model = new AdminModel(); + $nom = $_POST['nom']; + $enonce = $_POST['enigme']; + $aide = $_POST['aide']; + $rappel = $_POST['rappel']; + $exemple = $_POST['exemple']; + $test = $_POST['test']; + $solution = $_POST['solution']; + $enigme = $model->addNewEnigmeSolo($nom, $enonce, $aide, $rappel, $exemple, $test, $solution); + require($rep . $vues['enigmePage']); + } catch (Exception $e) { + $error = $e->getMessage(); + require($rep . $vues['erreur']); + } } } \ No newline at end of file diff --git a/WEB/Controller/EnigmeGateway.php b/WEB/Controller/EnigmeGateway.php index b3e3cfde..8887a53c 100644 --- a/WEB/Controller/EnigmeGateway.php +++ b/WEB/Controller/EnigmeGateway.php @@ -35,13 +35,13 @@ class EnigmeGateway */ public function insert(Enigme $enigme) { - $query = "INSERT INTO Enigme VALUES (:id,:nom,:enonce,:aide,:rappel,:solution,:test,:tempsDeResolution,:points)"; + $query = "INSERT INTO Enigme VALUES (NULL,:nom,:enonce,:aide,:rappel,:exemple,:solution,:test,:tempsDeResolution,:points)"; $this->con->executeQuery($query, array( - ':id' => array($enigme->getIdEnigme(),SQLITE3_INTEGER), ':nom' => array($enigme->getNom(), SQLITE3_TEXT), ':enonce' => array($enigme->getEnonce(), SQLITE3_TEXT), ':aide' => array($enigme->getAide(), SQLITE3_TEXT), ':rappel' => array($enigme->getRappel(), SQLITE3_TEXT), + ':exemple' => array($enigme->getExemple(), SQLITE3_TEXT), ':solution' => array($enigme->getSolution(), SQLITE3_TEXT), ':test' => array($enigme->getTest(), SQLITE3_TEXT), ':tempsDeResolution' => array($enigme->getTempsDeResolution(), SQLITE3_INTEGER), @@ -121,7 +121,14 @@ class EnigmeGateway $tabEnigme=EnigmeFactory::create($results); return $tabEnigme; } - + public function findLastEnigma() : array + { + $query = "SELECT * FROM Enigme ORDER BY id DESC LIMIT 1"; + $this->con->executequery($query); + $results = $this->con->getResults(); + $tabEnigme=EnigmeFactory::create($results); + return $tabEnigme; + } public function showAll(): void { $query = "SELECT * FROM Enigme"; diff --git a/WEB/Controller/VisitorController.php b/WEB/Controller/VisitorController.php index af65f75d..2ccf3e1f 100644 --- a/WEB/Controller/VisitorController.php +++ b/WEB/Controller/VisitorController.php @@ -50,7 +50,7 @@ class VisitorController global $rep, $vues; require($rep . $vues['main']); } catch (Exception $e) { - $error = "404"; + $error = $e->getMessage(); require($rep . $vues['erreur']); } } @@ -60,7 +60,7 @@ class VisitorController global $rep, $vues; require($rep . $vues['login']); } catch (Exception $e) { - $error = "404"; + $error = $e->getMessage(); require($rep . $vues['erreur']); } } @@ -70,7 +70,7 @@ class VisitorController global $rep, $vues; require($rep . $vues['signUp']); } catch (Exception $e) { - $error = "404"; + $error = $e->getMessage(); require($rep . $vues['erreur']); } } diff --git a/WEB/Model/AdminModel.php b/WEB/Model/AdminModel.php new file mode 100644 index 00000000..5afdb32b --- /dev/null +++ b/WEB/Model/AdminModel.php @@ -0,0 +1,24 @@ +enigme_gateway = new EnigmeGateway(); + $this->nettoyage = new Nettoyage(); + $this->validation = new Validation(); + } + + public function addNewEnigmeSolo(string $nom,string $enonce,string $aide,string $rappel,string $exemple,string $test,string $solution) : Enigme + { + $enigme = new Enigme(1,$nom, $enonce, $aide, $rappel, $exemple, $solution, $test); + $this->enigme_gateway->insert($enigme); + $tabEnigme = $this->enigme_gateway->findLastEnigma(); + 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 new file mode 100644 index 00000000..3df6621e --- /dev/null +++ b/WEB/View/src/pages/Admin/AddEnigmeSolo.php @@ -0,0 +1,70 @@ + + +
+