add possible response form
continuous-integration/drone/push Build is passing Details

LoginModification
alexi 2 years ago
parent 3977b4c01e
commit e9cf2b055c

@ -29,26 +29,10 @@ class GatewayQuestion
return $this->connection->lastInsertId(); return $this->connection->lastInsertId();
} }
public function insertQuestion(Question $question, int $idForm): int public function insertResponseInQuestion(string $response, array $categories, int $idQuestion): int
{ {
$gatewayPossibleResponse = new GatewayPossibleResponse(); $gatewayPossibleResponse = new GatewayPossibleResponse();
$idPossibleResponse = $gatewayPossibleResponse->insertPossibleResponse($response);
$query = "INSERT INTO Question(content, type, form) VALUES(:content, :type, :form)";
$this->connection->executeQuery($query, array(
':content' => array($question->getContent(), PDO::PARAM_STR),
':type' => array(get_class($question), PDO::PARAM_STR),
':form' => array($idForm, PDO::PARAM_INT)
));
$idQuestion = $this->connection->lastInsertId();
if (get_class($question) != TextQuestion::class) {
var_dump($question);
$listPossibleResponse = $question->getPossibleResponses();
for ($i = 0; $i < count($listPossibleResponse); $i++) {
$idPossibleResponse = $gatewayPossibleResponse->insertPossibleResponse($listPossibleResponse[$i]);
$query = "INSERT INTO Propose(question, possibleResponse) VALUES(:question, :possibleResponse)"; $query = "INSERT INTO Propose(question, possibleResponse) VALUES(:question, :possibleResponse)";
$this->connection->executeQuery($query, array( $this->connection->executeQuery($query, array(
@ -57,11 +41,9 @@ class GatewayQuestion
)); ));
foreach ($question->getCategories()[$i] as $keyword) { foreach ($categories as $keyword) {
$gatewayForm = new GatewayForm(); $gatewayForm = new GatewayForm();
$gatewayForm->assignKeywordToQuestion($keyword, $listPossibleResponse[$i], $idQuestion); $gatewayForm->assignKeywordToQuestion($keyword, $response, $idQuestion);
}
}
} }
return $idQuestion; return $idQuestion;

@ -14,7 +14,7 @@ abstract class BoxQuestion extends Question
$args = func_get_args(); $args = func_get_args();
switch($ctp) switch($ctp)
{ {
case 5: case 4:
parent::__construct($args[3], $args[1]); parent::__construct($args[3], $args[1]);
$this->categories = $args[2]; $this->categories = $args[2];
$this->possibleResponses = $args[0]; $this->possibleResponses = $args[0];

@ -10,10 +10,8 @@ class CheckBoxQuestion extends BoxQuestion
$args = func_get_args(); $args = func_get_args();
switch($ctp) switch($ctp)
{ {
case 5: case 4:
parent::__construct($args[3], $args[1]); parent::__construct($args[0], $args[1], $args[2], $args[3]);
$this->categories = $args[2];
$this->possibleResponses = $args[0];
break; break;
case 2: case 2:
parent::__construct($args[3], $args[1]); parent::__construct($args[3], $args[1]);

@ -11,7 +11,7 @@ class ListBoxQuestion extends BoxQuestion
switch($ctp) switch($ctp)
{ {
case 4: case 4:
parent::__construct($args[0], $args[2], $args[3], $args[1]); parent::__construct($args[0], $args[1], $args[2], $args[3]);
break; break;
case 2: case 2:
parent::__construct($args[0], $args[1]); parent::__construct($args[0], $args[1]);

@ -6,6 +6,7 @@ $rep = __DIR__ . '/../';
$views['form'] = 'Views/HTML/form.php'; $views['form'] = 'Views/HTML/form.php';
$views['admin'] = 'Views/HTML/admin.php'; $views['admin'] = 'Views/HTML/admin.php';
$views['possibleResponsesForm'] = 'Views/HTML/possibleResponsesForm.php'; $views['possibleResponsesForm'] = 'Views/HTML/possibleResponsesForm.php';
$views['continue'] = 'Views/HTML/continue.php';
$googleApis = "https://fonts.googleapis.com"; $googleApis = "https://fonts.googleapis.com";
$googleStatic = "https://fonts.gstatic.com"; $googleStatic = "https://fonts.gstatic.com";

@ -20,7 +20,25 @@ class ControllerAdmin
public function addResponse(): void public function addResponse(): void
{ {
(new ModelAdmin())->addResponse();
global $rep, $views;
$idQuestion = $_POST['idQuestion'];
require_once($rep.$views['continue']);
}
public function continueResponse(): void
{
global $rep, $views;
$idQuestion = $_POST['idQuestion'];
$choose = $_POST['choose'];
if($choose == "Oui") {
require_once($rep.$views['possibleResponsesForm']);
}
else {
require_once($rep.$views['']);
}
} }
public function createForm(): void public function createForm(): void

@ -55,6 +55,14 @@ class ModelAdmin
return -1; return -1;
} }
public function addResponse(): void
{
$idQuestion = $_POST['idQuestion'];
$response = $_POST['response'];
$categories = $_POST['categories'];
(new GatewayQuestion())->insertResponseInQuestion($response, $categories, $idQuestion);
}
public function createForm(): void public function createForm(): void
{ {
if (empty((new GatewayForm())->getForm())) { if (empty((new GatewayForm())->getForm())) {

@ -42,6 +42,7 @@ class ModelCandidate
$questions = Factory::getBuiltObjects($questionsTab, "Question"); $questions = Factory::getBuiltObjects($questionsTab, "Question");
$html = " $html = "
<h1>$title</h1>\n <h1>$title</h1>\n
<h3>$description</h3>\n <h3>$description</h3>\n

@ -0,0 +1,85 @@
<!DOCTYPE html>
<html lang="en">
<head>
<?php
global $googleApis, $googleStatic, $poppins, $icon, $logoUCA;
?>
<meta charset="UTF-8">
<link rel="stylesheet" href="Views/CSS/base.css" />
<link rel="preconnect" href="<?php echo $googleApis; ?>">
<link rel="preconnect" href="<?php echo $googleStatic; ?>" crossorigin>
<link href="<?php echo $poppins; ?>" rel="stylesheet">
<title>Formulaire de témoignage</title>
<link rel="shortcut icon" href="<?php echo $icon; ?>" type="image/x-icon">
<link rel="icon" href="<?php echo $icon; ?>" type="image/x-icon">
</head>
<body>
<img id="logoUCA" src="<?php echo $logoUCA; ?>" height="35px" width="auto" alt="logo UCA">
<h1>Administration</h1>
<!--
<form method="post">
<label for="keyword">Écrivez la catégorie : </label>
<input id="keyword" name="keyword" type="text" size="50">
<input type="submit" value="Ajouter">
<input type="hidden" name="action" value="addKeyword">
</form>
<h2>Ajouter une question :</h2>
<form method="post">
<label for="question">Écrivez la question : </label>
<br>
<input id="question" name="question" type="text" size="100">
<br><br>
<label for="type">Séléctionnez le type de question souhaitée :
<br>- Text permet à l'utilisateur d'écrire lui même la réponse.
<br>- ListBox permet à l'utilisateur de choisir une réponse parmi plusieurs possibilités.
<br>- CheckBox permet à l'utilisateur de choisir une ou plusieurs réponses parmi plusieurs possibilités.
</label>
<br>
<select id="type" name="type">
<option value="BusinessClass\ListBoxQuestion">ListBox</option>
<option value="BusinessClass\CheckBoxQuestion">CheckBox</option>
<option value="BusinessClass\TextQuestion">Text</option>
</select>
<br><br>
<label for="responses">Écrivez la liste des réponses possibles en les séparant comme cela :
<br>Réponse1; Réponse2; Réponse3;
</label>
<br>
<input id="responses" name="responses" type="text" size="100">
<br><br>
<label for="categories">Écrivez la liste des catégories associée à chaque question comme cela :
<br>Catégorie1.1,Catégorié1.2; Catégorie2.1; Catégorié3.1,Catégorie3.2,Catégorie3.3;
</label>
<br>
<input id="categories" name="categories" type="text" size="100">
<br><br>
<input type="submit" value="Confirmer">
<input type="hidden" name="action" value="addQuestion">
</form>
-->
<div style="text-align: center">
<h2>Continuer d'ajouter des possibilités de réponses ?</h2>
<form method="post">
<input name="idQuestion" type="hidden" value="<?php echo $idQuestion; ?>">
<input type="submit" name="choose" value="Oui">
<input type="submit" name="choose" value="Non">
<input type="hidden" name="action" value="continueResponse">
</form>
</div>
</body>
</html>

@ -70,10 +70,8 @@
--> -->
<div style="text-align: center"> <div style="text-align: center">
<form method="post" <form method="post">
<input name="idQuestion" type="hidden" value="<?php echo $idQuestion; ?>"> <input name="idQuestion" type="hidden" value="<?php echo $idQuestion; ?>">
<input name="type" type="hidden" value="<?php echo $type; ?>">
<input name="question" type="hidden" value="<?php echo $questionContent; ?>">
<p>Votre question : <?php echo $questionContent; ?></p> <p>Votre question : <?php echo $questionContent; ?></p>
<br><br> <br><br>

Loading…
Cancel
Save