to fetch code on my second computer
continuous-integration/drone/push Build is passing Details

LoginModification
alexi 2 years ago
parent 907c68e282
commit e7e2fd4e97

@ -7,19 +7,27 @@ abstract class BoxQuestion extends Question
private array $possibleResponses;
private array $categories;
/**
* @param array $possibleResponses
* @param string $content
* @param array $categories
* @param int $id
*/
public function __construct(array $possibleResponses, string $content, array $categories, int $id)
public function __construct()
{
parent::__construct($id, $content);
$this->categories = $categories;
$this->possibleResponses = $possibleResponses;
$ctp = func_num_args();
$args = func_get_args();
switch($ctp)
{
case 5:
parent::__construct($args[3], $args[1]);
$this->categories = $args[2];
$this->possibleResponses = $args[0];
break;
case 2:
parent::__construct($args[3], $args[1]);
break;
default:
break;
}
}
abstract public function responseStrategy();
abstract public function printStrategy(): string;

@ -4,6 +4,25 @@ namespace BusinessClass;
class CheckBoxQuestion extends BoxQuestion
{
public function __construct()
{
$ctp = func_num_args();
$args = func_get_args();
switch($ctp)
{
case 5:
parent::__construct($args[3], $args[1]);
$this->categories = $args[2];
$this->possibleResponses = $args[0];
break;
case 2:
parent::__construct($args[3], $args[1]);
break;
default:
break;
}
}
public function responseStrategy(): void
{
echo "Implement responseStrategy() method.";

@ -4,6 +4,24 @@ namespace BusinessClass;
class ListBoxQuestion extends BoxQuestion
{
public function __construct()
{
$ctp = func_num_args();
$args = func_get_args();
switch($ctp)
{
case 4:
parent::__construct($args[0], $args[2], $args[3], $args[1]);
break;
case 2:
parent::__construct($args[3], $args[1]);
break;
default:
break;
}
}
public function responseStrategy(): void
{
echo "Implement responseStrategy() method.";

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

@ -8,9 +8,24 @@ class ControllerAdmin
{
public function addQuestion(): void
{
(new ModelAdmin())->addQuestion();
$id = $_POST['id'];
(new ModelAdmin())->addQuestion($id);
}
public function chooseQuestionAndType(): void
{
global $rep, $views;
$categories = (new ModelAdmin())->getCategories();
$questionContent = $_POST['question'];
$type = $_POST['type'];
require_once($rep.$views['possibleResponsesForm']);
}
public function createForm(): void
{
(new ModelAdmin())->createForm();

@ -9,7 +9,7 @@ use BusinessClass\Form;
class ModelAdmin
{
public function addQuestion(): void
/*public function addQuestion(int|null $id): void
{
$questionContent = $_POST['question'];
$type = $_POST['type'];
@ -34,6 +34,20 @@ class ModelAdmin
}
$form = (new GatewayForm())->getForm();
if (!empty($form)) {
(new GatewayQuestion())->insertQuestion($question, $form[0]['id']);
}
}*/
public function addQuestion(int|null $id): void
{
$questionContent = $_POST['question'];
$type = $_POST['type'];
$question = new $type($questionContent, 0);
$form = (new GatewayForm())->getForm();
if (!empty($form)) {
(new GatewayQuestion())->insertQuestion($question, $form[0]['id']);

@ -101,6 +101,37 @@
</div>
</div>
<div style="text-align: center">
<button id="addNewQuestion">Ajouter une question ▼</button>
<form id="addQuestionForm" method="post" style="visibility: hidden">
<div id="questionText">
<label for="question">Écrivez la question : </label>
<br>
<input id ="question" name="question" type="text" size="100">
</div>
<div>
<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\TextQuestion">Text</option>
<option value="BusinessClass\ListBoxQuestion">ListBox</option>
<option value="BusinessClass\CheckBoxQuestion">CheckBox</option>
</select>
</div>
<br><br>
<input type="submit" value="Confirmer">
<input type="hidden" name="action" value="addQuestion">
</form>
</div>
</body>
<script src="Views/JS/form_category.js"></script>
@ -112,6 +143,9 @@
const printQuestionButton = document.querySelector('#printQuestion');
printQuestionButton.addEventListener('click', printQuestion);
const printFormQuestionButton = document.querySelector('#addNewQuestion');
printFormQuestionButton.addEventListener('click', addQuestion);
</script>
</html>

@ -0,0 +1,118 @@
<!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">
<form method="post"
<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>
<br><br>
<label>Entrez une réponse : </label>
<input name="responses" type="text" size="50">
<br><br><br>
<label>Séléctionnez les catégories associées à cette réponse : </label>
<br><br>
<?php
foreach ($categories as $category) {
?>
<label><?php echo $category ?></label>
<input type="checkbox" name="categories[]" value="<?php echo $category ?>">
<?php
}
?>
<br><br>
<input type="submit" value="Ajouter la réponse">
<input type="hidden" name="action" value="addResponse">
</form>
</div>
</body>
<script>
let responsesAndCategories = new Map();
function addResponse() {
const response = document.querySelector('#response');
const categories = document.querySelectorAll(".categories");
responsesAndCategories.set(response.value, categories.forEach(category => console.log(category.value)));
}
const addPossiblesResponsesButton = document.querySelector('#addNewResponse');
addPossiblesResponsesButton.addEventListener('click', addResponse);
</script>
</html>

@ -9,4 +9,17 @@ function printQuestion() {
printQuestionButton.innerText = "Les questions ▲";
ul.style.visibility = "visible";
}
}
function addQuestion() {
const printAddQuestionFormButton = document.querySelector('#addNewQuestion');
const form = document.querySelector('#addQuestionForm');
if(printAddQuestionFormButton.innerText === "Ajouter une question ▲") {
printAddQuestionFormButton.innerText = "Ajouter une question ▼";
form.style.visibility = "hidden";
} else {
printAddQuestionFormButton.innerText = "Ajouter une question ▲";
form.style.visibility = "visible";
}
}
Loading…
Cancel
Save