diff --git a/Source/API/script/APIController.php b/Source/API/script/APIController.php
index 19e2190..5119b57 100644
--- a/Source/API/script/APIController.php
+++ b/Source/API/script/APIController.php
@@ -1,5 +1,9 @@
stmt->execute();
}
+
+ /**
+ * Permet de récupère le résultat de la dernière réquête éxecuté avec
+ * la fonction executeQuery().
+ *
+ * @return array
+ */
public function getResults(): array
{
return $this->stmt->fetchAll();
diff --git a/Source/API/script/Gateway/GatewayQuestion.php b/Source/API/script/Gateway/GatewayQuestion.php
index d110df0..643c7b8 100644
--- a/Source/API/script/Gateway/GatewayQuestion.php
+++ b/Source/API/script/Gateway/GatewayQuestion.php
@@ -17,10 +17,8 @@ class GatewayQuestion
$this->connection = connect();
}
- public function insertQuestion(Question $question, int $idForm): void
+ public function addQuestion(Question $question, int $idForm): int
{
- $gatewayPossibleResponse = new GatewayPossibleResponse();
-
$query = "INSERT INTO Question(content, type, form) VALUES(:content, :type, :form)";
$this->connection->executeQuery($query, array(
':content' => array($question->getContent(), PDO::PARAM_STR),
@@ -28,29 +26,27 @@ class GatewayQuestion
':form' => array($idForm, PDO::PARAM_INT)
));
- $idQuestion = $this->connection->lastInsertId();
-
- if (get_class($question) != TextQuestion::class) {
- $listPossibleResponse = $question->getPossibleResponses();
-
- for ($i = 0; $i < count($listPossibleResponse); $i++) {
+ return $this->connection->lastInsertId();
+ }
- $idPossibleResponse = $gatewayPossibleResponse->insertPossibleResponse($listPossibleResponse[$i]);
+ public function insertResponseInQuestion(string $response, array $categories, int $idQuestion): int
+ {
+ $gatewayPossibleResponse = new GatewayPossibleResponse();
+ $idPossibleResponse = $gatewayPossibleResponse->insertPossibleResponse($response);
- $query = "INSERT INTO Propose(question, possibleResponse) VALUES(:question, :possibleResponse)";
- $this->connection->executeQuery($query, array(
- ':question' => array($idQuestion, PDO::PARAM_INT),
- ':possibleResponse' => array($idPossibleResponse, PDO::PARAM_INT)
- ));
+ $query = "INSERT INTO Propose(question, possibleResponse) VALUES(:question, :possibleResponse)";
+ $this->connection->executeQuery($query, array(
+ ':question' => array($idQuestion, PDO::PARAM_INT),
+ ':possibleResponse' => array($idPossibleResponse, PDO::PARAM_INT)
+ ));
- foreach ($question->getCategories()[$i] as $keyword) {
- $gatewayForm = new GatewayForm();
- $gatewayForm->assignKeywordToQuestion($keyword, $listPossibleResponse[$i], $idQuestion);
- }
- }
+ foreach ($categories as $keyword) {
+ $gatewayForm = new GatewayForm();
+ $gatewayForm->assignKeywordToQuestion($keyword, $response, $idQuestion);
}
+ return $idQuestion;
}
public function deleteQuestion(Question $question): void
diff --git a/Source/BusinessClass/BoxQuestion.php b/Source/BusinessClass/BoxQuestion.php
index cc82dfe..bbf49d4 100644
--- a/Source/BusinessClass/BoxQuestion.php
+++ b/Source/BusinessClass/BoxQuestion.php
@@ -2,26 +2,54 @@
namespace BusinessClass;
+/**
+ * Définit une question avec plusieurs réponses.
+ */
abstract class BoxQuestion extends Question
{
+ /**
+ * @var array|mixed
+ */
private array $possibleResponses;
- private array $categories;
-
/**
- * @param array $possibleResponses
- * @param string $content
- * @param array $categories
- * @param int $id
+ * @var array|mixed
*/
- public function __construct(array $possibleResponses, string $content, array $categories, int $id)
+ private array $categories;
+
+
+ public function __construct()
{
- parent::__construct($id, $content);
- $this->categories = $categories;
- $this->possibleResponses = $possibleResponses;
+ $ctp = func_num_args();
+ $args = func_get_args();
+ switch($ctp)
+ {
+ case 4:
+ parent::__construct($args[3], $args[1]);
+ $this->categories = $args[2];
+ $this->possibleResponses = $args[0];
+ break;
+ case 2:
+ parent::__construct($args[0], $args[1]);
+ break;
+ default:
+ break;
+ }
}
+
+ /**
+ * Permet de définir la manière donc la réponse doit être traitée
+ *
+ * @return void
+ */
abstract public function responseStrategy();
+
+ /**
+ * Permet de définir la manière dont la question doit s'afficher en HTML.
+ *
+ * @return string
+ */
abstract public function printStrategy(): string;
/**
diff --git a/Source/BusinessClass/CheckBoxQuestion.php b/Source/BusinessClass/CheckBoxQuestion.php
index 42a8251..9f76d76 100644
--- a/Source/BusinessClass/CheckBoxQuestion.php
+++ b/Source/BusinessClass/CheckBoxQuestion.php
@@ -2,13 +2,45 @@
namespace BusinessClass;
+/**
+ * Définit une question à choix multiples.
+ */
class CheckBoxQuestion extends BoxQuestion
{
+ public function __construct()
+ {
+ $ctp = func_num_args();
+ $args = func_get_args();
+ switch($ctp)
+ {
+ case 4:
+ parent::__construct($args[0], $args[1], $args[2], $args[3]);
+ break;
+ case 2:
+ parent::__construct($args[0], $args[1]);
+ break;
+ default:
+ break;
+ }
+ }
+
+
+ /**
+ * Permet de définir la manière donc la réponse doit être traitée
+ *
+ * @return void
+ */
public function responseStrategy(): void
{
echo "Implement responseStrategy() method.";
}
+
+ /**
+ * Permet de définir la manière dont la question doit s'afficher en HTML.
+ *
+ * @return string
+ */
public function printStrategy(): string
{
$id = $this->getId();
diff --git a/Source/BusinessClass/Form.php b/Source/BusinessClass/Form.php
index 6254c22..d3c5cd0 100644
--- a/Source/BusinessClass/Form.php
+++ b/Source/BusinessClass/Form.php
@@ -2,11 +2,29 @@
namespace BusinessClass;
+/**
+ * Définit un formulaire.
+ */
class Form
{
+ /**
+ * @var int
+ */
private int $id;
+
+ /**
+ * @var string
+ */
private string $title;
+
+ /**
+ * @var string
+ */
private string $description;
+
+ /**
+ * @var array
+ */
private array $questions; // La liste des questions dans un formulaire
/**
diff --git a/Source/BusinessClass/IPrintQuestionStrategy.php b/Source/BusinessClass/IPrintQuestionStrategy.php
index 06b2d5c..bbfc35a 100644
--- a/Source/BusinessClass/IPrintQuestionStrategy.php
+++ b/Source/BusinessClass/IPrintQuestionStrategy.php
@@ -2,7 +2,15 @@
namespace BusinessClass;
+/**
+ * Définit l'affiche d'une question.
+ */
interface IPrintQuestionStrategy
{
+ /**
+ * Permet de définir la manière dont la question doit s'afficher en HTML.
+ *
+ * @return string
+ */
public function printStrategy(): string;
}
diff --git a/Source/BusinessClass/IResponseProcessingStrategy.php b/Source/BusinessClass/IResponseProcessingStrategy.php
index c6bf1d2..51b60a9 100644
--- a/Source/BusinessClass/IResponseProcessingStrategy.php
+++ b/Source/BusinessClass/IResponseProcessingStrategy.php
@@ -2,7 +2,15 @@
namespace BusinessClass;
+/**
+ * Définit la gestion des réponses à une question.
+ */
interface IResponseProcessingStrategy
{
+ /**
+ * Permet de définir la manière donc la réponse doit être traitée
+ *
+ * @return void
+ */
public function responseStrategy();
}
diff --git a/Source/BusinessClass/Keyword.php b/Source/BusinessClass/Keyword.php
index 5b6e572..cc4db26 100644
--- a/Source/BusinessClass/Keyword.php
+++ b/Source/BusinessClass/Keyword.php
@@ -2,9 +2,19 @@
namespace BusinessClass;
+/**
+ * Définit une catégorie associable à une réponse.
+ */
class Keyword
{
+ /**
+ * @var int
+ */
private int $id;
+
+ /**
+ * @var string
+ */
private string $word;
/**
diff --git a/Source/BusinessClass/ListBoxQuestion.php b/Source/BusinessClass/ListBoxQuestion.php
index 186b179..31a4809 100644
--- a/Source/BusinessClass/ListBoxQuestion.php
+++ b/Source/BusinessClass/ListBoxQuestion.php
@@ -2,13 +2,45 @@
namespace BusinessClass;
+/**
+ * Définit une question avec plusieurs réponse mais une seule possible.
+ */
class ListBoxQuestion extends BoxQuestion
{
+ public function __construct()
+ {
+ $ctp = func_num_args();
+ $args = func_get_args();
+ switch($ctp)
+ {
+ case 4:
+ parent::__construct($args[0], $args[1], $args[2], $args[3]);
+ break;
+ case 2:
+ parent::__construct($args[0], $args[1]);
+ break;
+ default:
+ break;
+ }
+ }
+
+
+ /**
+ * Permet de définir la manière donc la réponse doit être traitée
+ *
+ * @return void
+ */
public function responseStrategy(): void
{
echo "Implement responseStrategy() method.";
}
+
+ /**
+ * Permet de définir la manière dont la question doit s'afficher en HTML.
+ *
+ * @return string
+ */
public function printStrategy(): string
{
$id = $this->getId();
diff --git a/Source/BusinessClass/Question.php b/Source/BusinessClass/Question.php
index 67dd266..ae9044c 100644
--- a/Source/BusinessClass/Question.php
+++ b/Source/BusinessClass/Question.php
@@ -2,11 +2,22 @@
namespace BusinessClass;
+/**
+ * Définit une question.
+ */
abstract class Question implements IResponseProcessingStrategy, IPrintQuestionStrategy
{
+ /**
+ * @var int
+ */
private int $id;
+
+ /**
+ * @var string
+ */
private string $content;
+
/**
* @param int $id
* @param string $content
@@ -17,8 +28,20 @@ abstract class Question implements IResponseProcessingStrategy, IPrintQuestionSt
$this->content = $content;
}
+
+ /**
+ * Permet de définir la manière donc la réponse doit être traitée
+ *
+ * @return void
+ */
abstract public function responseStrategy();
+
+ /**
+ * Permet de définir la manière dont la question doit s'afficher en HTML.
+ *
+ * @return string
+ */
abstract public function printStrategy(): string;
/**
diff --git a/Source/BusinessClass/Response.php b/Source/BusinessClass/Response.php
index 74b05ee..27de529 100644
--- a/Source/BusinessClass/Response.php
+++ b/Source/BusinessClass/Response.php
@@ -2,11 +2,29 @@
namespace BusinessClass;
+/**
+ * Définit une possibilité de réponse à une question.
+ */
class Response
{
+ /**
+ * @var int
+ */
private int $id;
+
+ /**
+ * @var string
+ */
private string $date;
+
+ /**
+ * @var string
+ */
private string $titleForm;
+
+ /**
+ * @var array
+ */
private array $questionsResponses;
/**
diff --git a/Source/BusinessClass/TextQuestion.php b/Source/BusinessClass/TextQuestion.php
index 8dab852..039024e 100644
--- a/Source/BusinessClass/TextQuestion.php
+++ b/Source/BusinessClass/TextQuestion.php
@@ -2,23 +2,33 @@
namespace BusinessClass;
+/**
+ * Définit une question qui propose d'écrire du texte en guise de réponse
+ */
class TextQuestion extends Question
{
/**
* @param string $content
* @param int $id
*/
- public function __construct(string $content, int $id)
+ public function __construct(int $id, string $content)
{
parent::__construct($id, $content);
}
+ /**
+ * Permet de définir la manière donc la réponse doit être traitée
+ *
+ * @return void
+ */
public function responseStrategy(): void
{
echo "Implement responseStrategy() method.";
}
/**
+ * Permet de définir la manière dont la question doit s'afficher en HTML.
+ *
* @return string
*/
public function printStrategy(): string
diff --git a/Source/Config/Autoload.php b/Source/Config/Autoload.php
index 4fdb894..72c9ecb 100644
--- a/Source/Config/Autoload.php
+++ b/Source/Config/Autoload.php
@@ -4,33 +4,33 @@ class Autoload
{
private static $instance = null;
- public static function charger(): void
+ public static function charger()
{
if (null !== self::$instance) {
- throw new RuntimeException(sprintf('%s is already started', __CLASS__));
+ throw RuntimeException(sprintf('%s is already started', __CLASS__));
}
self::$instance = new self();
if (!spl_autoload_register(array(self::$instance, 'autoloader'), false)) {
- throw new RuntimeException(sprintf('%s : Could not start the autoload', __CLASS__));
+ throw RuntimeException(sprintf('%s : Could not start the autoload', __CLASS__));
}
}
- public static function shutDown(): void
+ public static function shutDown()
{
if (null !== self::$instance) {
if (!spl_autoload_unregister(array(self::$instance, 'autoloader'))) {
- throw new RuntimeException('Could not stop the autoload');
+ throw RuntimeException('Could not stop the autoload');
}
self::$instance = null;
}
}
- private static function autoloader($className): void
+ private static function autoloader($className)
{
$folder = "./";
$className = ltrim($className, '\\');
diff --git a/Source/Config/config.php b/Source/Config/config.php
index 6ac43ef..e7d33c3 100644
--- a/Source/Config/config.php
+++ b/Source/Config/config.php
@@ -3,9 +3,10 @@
$rep = __DIR__ . '/../';
-// Vues
$views['form'] = 'Views/HTML/form.php';
$views['admin'] = 'Views/HTML/admin.php';
+$views['possibleResponsesForm'] = 'Views/HTML/possibleResponsesForm.php';
+$views['continue'] = 'Views/HTML/continue.php';
$emailMaxLength=150;
$pseudoMaxLength=50;
diff --git a/Source/Controller/ControllerAdmin.php b/Source/Controller/ControllerAdmin.php
index 7836d09..0811b1e 100644
--- a/Source/Controller/ControllerAdmin.php
+++ b/Source/Controller/ControllerAdmin.php
@@ -4,24 +4,105 @@ 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
{
- (new ModelAdmin())->addQuestion();
+ $type = $_POST['type'];
+ if(strcmp($type, "BusinessClass\TextQuestion") == 0) {
+ $this->goToAdminPage();
+ } else {
+ $idQuestion = (new ModelAdmin())->addQuestion();
+ $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();
diff --git a/Source/Controller/ControllerCandidate.php b/Source/Controller/ControllerCandidate.php
index 016a017..1398c21 100644
--- a/Source/Controller/ControllerCandidate.php
+++ b/Source/Controller/ControllerCandidate.php
@@ -4,8 +4,17 @@ namespace Controller;
use Model\ModelCandidate;
+/**
+ * Permet de controller les réponses à fournir en fonction des actions passer dans l'URL
+ * par l'utilisateur
+ */
class ControllerCandidate
{
+ /**
+ * Permet de naviguer jusqu'au formulaire.
+ *
+ * @return void
+ */
public function goToForm(): void
{
global $rep, $views;
@@ -14,6 +23,11 @@ class ControllerCandidate
require_once($rep.$views['form']);
}
+ /**
+ * Permet de finaliser la saisie du formulaire et de le soumettre.
+ *
+ * @return void
+ */
public function submitForm(): void
{
(new ModelCandidate())->submitForm();
diff --git a/Source/Controller/FrontController.php b/Source/Controller/FrontController.php
index b85279c..dec9e49 100644
--- a/Source/Controller/FrontController.php
+++ b/Source/Controller/FrontController.php
@@ -5,8 +5,15 @@ namespace Controller;
use Exception;
use PDOException;
+/**
+ * Permet de gérer l'appel des controllers en fonction de l'action et du rôle de l'utilisateur
+ */
class FrontController
{
+ /**
+ * Définit le comportement de la classe à sa création, on appelle le bon controller en fonction de l'action
+ * et du rôle de la personne qui souhaite réaliser cette action (utilisateur, administrateur...).
+ */
public function __construct()
{
$listControllers = array("\\Controller\\ControllerCandidate", "\\Controller\\ControllerAdmin");
diff --git a/Source/Model/Factory.php b/Source/Model/Factory.php
index 1952aba..60093bf 100644
--- a/Source/Model/Factory.php
+++ b/Source/Model/Factory.php
@@ -4,10 +4,29 @@ namespace Model;
use BusinessClass\Question;
+/**
+ * Décrit les fonctionnalités principale d'une frabique
+ */
abstract class Factory
{
+ /**
+ * Permet de créer un objet grâce au retour d'une Gateway.
+ *
+ * @param array $results
+ *
+ * @return array
+ */
abstract public function create(array $results): array;
+
+ /**
+ * Permet de récupérer les objets créer par la fonction create().
+ *
+ * @param array $results
+ * @param string $type
+ *
+ * @return array
+ */
public static function getBuiltObjects(array $results, string $type): array
{
$type = "\\Model\\Factory" . $type;
diff --git a/Source/Model/FactoryQuestion.php b/Source/Model/FactoryQuestion.php
index 9723d60..cc82f63 100644
--- a/Source/Model/FactoryQuestion.php
+++ b/Source/Model/FactoryQuestion.php
@@ -5,15 +5,26 @@ namespace Model;
use BusinessClass\Question;
use BusinessClass\TextQuestion;
+/**
+ * Décrit une fabrique de questions
+ */
class FactoryQuestion extends Factory
{
+ /**
+ * Permet de créer une liste de question en fonction du retour d'une gateway
+ * passer en paramètre. On prend en compte les différents type de question.
+ *
+ * @param array $results
+ *
+ * @return array
+ */
public function create(array $results): array
{
$questions = [];
if ($results[0] != null) {
for ($i = 0; $i < count($results[0]); $i++) {
if (strcmp($results[0][$i]['type'], "BusinessClass\TextQuestion") == 0) {
- $questions[] = new TextQuestion($results[0][$i]['content'], $results[0][$i]['id']);
+ $questions[] = new TextQuestion($results[0][$i]['id'], $results[0][$i]['content']);
} else {
$possiblesResponses = $results[1][$i];
$content = $results[0][$i]['content'];
diff --git a/Source/Model/ModelAdmin.php b/Source/Model/ModelAdmin.php
index aa0921b..44b6ec2 100644
--- a/Source/Model/ModelAdmin.php
+++ b/Source/Model/ModelAdmin.php
@@ -7,39 +7,53 @@ use API\script\Gateway\GatewayKeyword;
use API\script\Gateway\GatewayQuestion;
use BusinessClass\Form;
+/**
+ * Permet de développer les fonctions appelées par le controllerAdmin pour gérer
+ * les actions de l'administrateur
+ */
class ModelAdmin
{
- public function addQuestion(): void
+ /**
+ * Permet de créer et d'ajouter une question et de retourner son ID afin de la reconnaitre facilement dans
+ * la suite du code.
+ *
+ * @return int
+ */
+ public function addQuestion(): int
{
$questionContent = $_POST['question'];
$type = $_POST['type'];
- $responses = $_POST['responses'];
- $categories = $_POST['categories'];
- $responses = explode(";", $responses);
- array_pop($responses);
- $categories = explode(";", $categories);
+ $question = new $type(0, $questionContent);
- $tmp = [];
- foreach ($categories as $category) {
- $tmp[] = explode(",", $category);
+ $form = (new GatewayForm())->getForm();
+ if (!empty($form)) {
+ return (new GatewayQuestion())->addQuestion($question, $form[0]['id']);
}
- $categories = $tmp;
- array_pop($categories);
- if (strcmp($type, "BusinessClass\TextQuestion") == 0) {
- $question = new $type($questionContent, 0);
- } else {
- $question = new $type($responses, $questionContent, $categories, 0);
- }
+ return -1;
+ }
- $form = (new GatewayForm())->getForm();
- if (!empty($form)) {
- (new GatewayQuestion())->insertQuestion($question, $form[0]['id']);
- }
+ /**
+ * Permet d'ajouter une possibilité de réponse à une question en l'assignant à des catégories.
+ *
+ * @return void
+ */
+ public function addResponse(): void
+ {
+ $idQuestion = $_POST['idQuestion'];
+ $response = $_POST['response'];
+ $categories = $_POST['categories'];
+ (new GatewayQuestion())->insertResponseInQuestion($response, $categories, $idQuestion);
}
+
+ /**
+ * Permet de créer un nouveau formulaire en précisant son titre et sa description.
+ *
+ * @return void
+ */
public function createForm(): void
{
if (empty((new GatewayForm())->getForm())) {
@@ -48,9 +62,43 @@ class ModelAdmin
}
}
+
+ /**
+ * Permet d'ajouter une nouvelle catégorie (mot-clef)
+ *
+ * @return void
+ */
public function addKeyword(): void
{
$keyword = $_POST['keyword'];
(new GatewayKeyword())->insertKeyword($keyword);
}
+
+
+ /**
+ * Permet de récupérer toutes les catégories existantes.
+ *
+ * @return array
+ */
+ public function getCategories(): array
+ {
+ $categories = [];
+ foreach ((new GatewayKeyword())->getAllKeyword() as $category)
+ $categories[] = $category["word"];
+
+ return $categories;
+ }
+
+
+ /**
+ * Permet de récupérer toutes les questions existantes.
+ *
+ * @return array
+ */
+ public function getQuestions(): array
+ {
+ $idForm = (new GatewayForm())->getForm()[0]["id"];
+ $questionsArray = (new GatewayQuestion())->getAllQuestions($idForm);
+ return Factory::getBuiltObjects($questionsArray, "Question");
+ }
}
diff --git a/Source/Model/ModelCandidate.php b/Source/Model/ModelCandidate.php
index 1f8ab2c..962e17b 100644
--- a/Source/Model/ModelCandidate.php
+++ b/Source/Model/ModelCandidate.php
@@ -6,8 +6,17 @@ use API\script\Gateway\GatewayForm;
use API\script\Gateway\GatewayListResponseOfCandidate;
use API\script\Gateway\GatewayQuestion;
+/**
+ * Permet de développer les fonctions appelées par le controllerCandidate pour gérer
+ * les actions de l'utilisateur
+ */
class ModelCandidate
{
+ /**
+ * Permet de soumettre et d'envoyer la réponse à un formulaire.
+ *
+ * @return void
+ */
public function submitForm(): void
{
$answersAndCategories = $_POST['answers'];
@@ -29,6 +38,15 @@ class ModelCandidate
(new GatewayListResponseOfCandidate())->insertListResponsesOfCandidate($id, $answer, $category, $titleForm);
}
+
+ /**
+ * Permet de récupérer le code html à afficher dans la page du formulaire,
+ * on récupère donc le formulaire et toutes les questions qu'il contient.
+ * On les traduits en code HTML puis on le retourne. On utilise une Factory
+ * pour récupèrer les questions.
+ *
+ * @return string
+ */
public function getForm(): string
{
$form = (new GatewayForm())->getForm();
diff --git a/Source/Views/CSS/base.css b/Source/Views/CSS/base.css
index ea82ad1..7172367 100644
--- a/Source/Views/CSS/base.css
+++ b/Source/Views/CSS/base.css
@@ -29,3 +29,9 @@ h1 {
padding-left: 3%;
padding-top: 2%;
}
+
+#container {
+ display: flex;
+ flex-direction: row;
+ justify-content: space-around;
+}
diff --git a/Source/Views/HTML/admin.php b/Source/Views/HTML/admin.php
index ea3aae9..0a5fee2 100644
--- a/Source/Views/HTML/admin.php
+++ b/Source/Views/HTML/admin.php
@@ -19,7 +19,7 @@