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.
SAE4.01_FORMULAIRE/Source/Controller/ControllerAdmin.php

112 lines
3.1 KiB

<?php
namespace Controller;
use Model\ModelAdmin;
/**
* Permet de controller les réponses à fournir en fonction des actions passer dans l'URL
* par l'administrateur
*/
class ControllerAdmin
{
/**
* Ajoute une question grâce à son contenu et son type récupéré dans le tableau $_POST
* Si la question n'est pas une question texte, on appelle un nouveau formulaire permettant
* d'ajouter des réponses prédéfinies à la question.
*
* @return void
*/
public function addQuestion(): void
{
$type = $_POST['type'];
$idQuestion = (new ModelAdmin())->addQuestion();
if (strcmp($type, "BusinessClass\TextQuestion") == 0) {
$this->goToAdminPage();
} else {
$categories = (new ModelAdmin())->getCategories();
$questionContent = $_POST['question'];
global $rep, $views;
require_once($rep.$views['possibleResponsesForm']);
}
}
/**
* Ajoute une possibilité de réponse à une question, on assige également cette réponse
* à des catégories. On propose ensuite à l'utilisateur de continuer l'ajout d'autre réponses.
*
* @return void
*/
public function addResponse(): void
{
(new ModelAdmin())->addResponse();
$categories = (new ModelAdmin())->getCategories();
$idQuestion = $_POST['idQuestion'];
$questionContent = $_POST['question'];
$type = $_POST['type'];
global $rep, $views;
require_once($rep.$views['continue']);
}
/**
* Permet de proposer à l'utiliser de continuer ou non à ajouter des possibilités de réponses à l'aide
* de la fonction addResponse(). Si non, il retourne à la page d'admnistration.
*
* @return void
*/
public function continueResponse(): void
{
$choose = $_POST['choose'];
if ($choose == "Oui") {
$idQuestion = $_POST['idQuestion'];
$categories = (new ModelAdmin())->getCategories();
$questionContent = $_POST['question'];
$type = $_POST['type'];
global $rep, $views;
require_once($rep.$views['possibleResponsesForm']);
} else {
$this->goToAdminPage();
}
}
/**
* Permet de créer un nouveau formulaire avec un titre et une description.
*
* @return void
*/
public function createForm(): void
{
(new ModelAdmin())->createForm();
}
/**
* Permet de naviguer jusqu'à la page d'admninistration principale. On retrouve la gestion
* des données de notre application
*
* @return void
*/
public function goToAdminPage(): void
{
$categories = (new ModelAdmin())->getCategories();
$questions = (new ModelAdmin())->getQuestions();
global $rep, $views;
require_once($rep.$views['admin']);
}
/**
* Permet d'ajouter une catégories (mot-clef) à notre application
*
* @return void
*/
public function addKeyword(): void
{
(new ModelAdmin())->addKeyword();
$this->goToAdminPage();
}
}