You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Scripted/WEB/Controller/AdminController.php

279 lines
9.0 KiB

<?php
class AdminController extends UserController
{
function __construct()
{
try {
global $dsn, $rep, $vues, $error;
// parent::__construct();
$action = $_REQUEST['action'];
switch ($action) {
case NULL:
$this->goToHome();
break;
case "goToHome":
$this->goToHome();
break;
case "goToAdmin":
$this->goToAdmin();
break;
case "goToPresentation":
$this->goToPresentation();
break;
case "goToEnigme":
$this->goToEnigme();
break;
case "goToTest":
$this->goToTest();
break;
case "goToNext":
$this->goToNext();
break;
case "goToQueue":
$this->goToQueue();
break;
case "goToAddEnigmeSolo":
$this->goToAddEnigmeSolo();
break;
case "logout":
$this->logout();
break;
case "addNewEnigmeSolo":
$this->addNewEnigmeSolo();
break;
case "goToEnigmeMultiManager":
$this->goToEnigmeMultiManager();
break;
case "goToEnigmeSoloManager":
$this->goToEnigmeSoloManager();
break;
case "goToDetailEnigme":
$this->goToDetailEnigme();
break;
case "goToModifEnigmeSolo":
$this->goToModifEnigmeSolo();
break;
case "goToAdminSolo":
$this->goToAdminSolo();
break;
case "goToSeeOrdre":
$this->goToSeeOrdre();
break;
case "goToModifOrdre":
$this->goToModifOrdre();
break;
case "editEnigme":
$this->editEnigme();
break;
case "deleteEnigme":
$this->deleteEnigme();
break;
case "modifOrdre":
$this->modifOrdre();
break;
default:
$error = "Action non valide";
require($rep . $vues['erreur']);
break;
}
} catch (PDOException $e) {
$error = $e->getMessage();
require($rep . $vues['erreur']);
} catch (Exception $e2) {
$error = $e2->getMessage();
require($rep . $vues['erreur']);
}
}
public function goToAdmin()
{
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']);
}
}
public function goToEnigmeMultiManager()
{
try {
global $rep, $vues;
require($rep . $vues['enigmeMultiManager']);
} catch (Exception $e) {
$error = $e->getMessage();
require($rep . $vues['erreur']);
}
}
public function goToEnigmeSoloManager()
{
try {
global $rep, $vues;
$model = new AdminModel();
$lesEnigmes = $model->getEnigmesSolo();
require($rep . $vues['enigmeSoloManager']);
} catch (Exception $e) {
$error = $e->getMessage();
require($rep . $vues['erreur']);
}
}
public function goToDetailEnigme()
{
try {
global $rep, $vues;
$model = new AdminModel();
$enigme = $model->getEnigmeById($_GET['id']);
require($rep . $vues['detailEnigme']);
} catch (Exception $e) {
$error = $e->getMessage();
require($rep . $vues['erreur']);
}
}
public function goToModifEnigmeSolo()
{
try {
global $rep, $vues;
$model = new AdminModel();
$enigme = $model->getEnigmeById($_GET['id']);
require($rep . $vues['modifEnigmeSolo']);
} catch (Exception $e) {
$error = $e->getMessage();
require($rep . $vues['erreur']);
}
}
public function goToAdminSolo()
{
try {
global $rep, $vues;
require($rep . $vues['adminSolo']);
} catch (Exception $e) {
$error = $e->getMessage();
require($rep . $vues['erreur']);
}
}
public function goToSeeOrdre()
{
try {
global $rep, $vues;
$model = new AdminModel();
$lesEnigmes = $model->getEnigmesSolo();
require($rep . $vues['seeOrdre']);
} catch (Exception $e) {
$error = $e->getMessage();
require($rep . $vues['erreur']);
}
}
public function goToModifOrdre()
{
try {
global $rep, $vues;
$model = new AdminModel();
$lesEnigmes = $model->getEnigmesSolo();
require($rep . $vues['modifOrdre']);
} catch (Exception $e) {
$error = $e->getMessage();
require($rep . $vues['erreur']);
}
}
public function editEnigme()
{
try{
global $rep, $vues;
$model = new AdminModel();
$id = $_GET['id'];
$nom = $_POST['nom'];
$enonce = $_POST['enigme'];
$aide = $_POST['aide'];
$rappel = $_POST['rappel'];
$exemple = $_POST['exemple'];
$test = $_POST['test'];
$solution = $_POST['solution'];
$prompt = $_POST['prompt'];
$enigme = $model->editEnigme($id, $nom, $enonce, $aide, $rappel, $exemple, $test, $solution, $prompt);
echo '<script>alert("L\'énigme a bien été modifier.");</script>';
require($rep . $vues['detailEnigme']);
}
catch (Exception $e) {
$error = $e->getMessage();
require($rep . $vues['erreur']);
}
}
public function deleteEnigme(){
try{
global $rep, $vues;
$model = new AdminModel();
$id = $_GET['id'];
$model->deleteEnigme($id);
echo '<script>alert("L\'énigme a bien été supprimé.");</script>';
$this->goToEnigmeSoloManager();
}
catch (Exception $e) {
$error = $e->getMessage();
require($rep . $vues['erreur']);
}
}
public function modifOrdre(){
try{
global $rep, $vues;
$model = new AdminModel();
$lesOrdres = [];
$lesEnigmes=$model->getEnigmesSolo();
foreach ($lesEnigmes as $enigme) {
$lesOrdres[] = array($enigme->getIdEnigme(),(int)$_POST['ordre'.$enigme->getIdEnigme()]);
}
$model->modifOrdre($lesOrdres);
echo '<script>alert("L\'ordre a bien été modifier.");</script>';
$this->goToSeeOrdre();
}
catch (Exception $e) {
$error = $e->getMessage();
require($rep . $vues['erreur']);
}
}
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'];
$prompt = $_POST['prompt'];
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, $prompt);
echo '<script>alert("L\'énigme a bien été ajouté.");</script>';
require($rep . $vues['adminSolo']);
} catch (Exception $e) {
$error = $e->getMessage();
require($rep . $vues['erreur']);
}
}
}