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.
314 lines
10 KiB
314 lines
10 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 "goToSolo":
|
|
$this->goToSolo();
|
|
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 "enigmeEnded":
|
|
$this->enigmeEnded();
|
|
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 goToEnigme()
|
|
{
|
|
try {
|
|
global $rep, $vues;
|
|
$model = new UserModel();
|
|
$ordre = $_REQUEST['ordre'];
|
|
$enigme = $model->getEnigmeByOrdre($ordre);
|
|
if ($enigme->getNom() == ""){
|
|
$enigme = $model->getEnigmeByOrdre($ordre-1);
|
|
}
|
|
require($rep . $vues['enigmePage']);
|
|
} catch (Exception $e) {
|
|
$error = $e->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 enigmeEnded(){
|
|
try{
|
|
global $rep, $vues;
|
|
$model = new UserModel();
|
|
$ordre = $_REQUEST['ordre']+1;
|
|
$enigme = $model->getEnigmeByOrdre($ordre);
|
|
require($rep . $vues['enigmePage']);
|
|
} 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']);
|
|
}
|
|
}
|
|
} |