Remove "$categories" from TextQuestion class

AdminInterface
alexi 2 years ago
parent 9c1530d5a0
commit 707fbbf062

@ -6,6 +6,7 @@ abstract class BoxQuestion extends Question
{ {
private array $possibleResponses; // un dictionnaire qui associe chaque réponse private array $possibleResponses; // un dictionnaire qui associe chaque réponse
// possible à un ou plusieurs objets Category // possible à un ou plusieurs objets Category
private array $categories;
/** /**
* @param array $possibleResponses * @param array $possibleResponses
@ -14,7 +15,8 @@ abstract class BoxQuestion extends Question
*/ */
public function __construct(array $possibleResponses, string $content, array $categories) public function __construct(array $possibleResponses, string $content, array $categories)
{ {
parent::__construct($content, $categories); parent::__construct($content);
$this->categories = $categories;
$this->possibleResponses = $possibleResponses; $this->possibleResponses = $possibleResponses;
} }
@ -37,4 +39,20 @@ abstract class BoxQuestion extends Question
{ {
$this->possibleResponses = $possibleResponses; $this->possibleResponses = $possibleResponses;
} }
/**
* @return array
*/
public function getCategories(): array
{
return $this->categories;
}
/**
* @param array $categories
*/
public function setCategories(array $categories): void
{
$this->categories = $categories;
}
} }

@ -31,7 +31,12 @@ class ListBoxQuestion extends BoxQuestion
for($i = 0; $i < count($possibleResponses); $i++) for($i = 0; $i < count($possibleResponses); $i++)
{ {
$html.= "\t\t\t\t\t<option value='$categories[$i]'>$possibleResponses[$i]</option>\n"; $categoriesSplit = "_";
foreach ($categories[$i] as $category)
{
$categoriesSplit.= $category."_";
}
$html.= "\t\t\t\t\t<option value='$categoriesSplit'>$possibleResponses[$i]</option>\n";
} }
$html.= "\t\t\t\t</select> $html.= "\t\t\t\t</select>
</div>\n"; </div>\n";

@ -5,16 +5,12 @@ namespace BusinessClass;
abstract class Question implements IResponseProcessingStrategy, IPrintQuestionStrategy abstract class Question implements IResponseProcessingStrategy, IPrintQuestionStrategy
{ {
private string $content; private string $content;
private array $categories; // Liste d'objets Category
/** /**
* @param string $content * @param string $content
* @param array $categories
*/ */
public function __construct(string $content, array $categories) public function __construct(string $content)
{ {
$this->content = $content; $this->content = $content;
$this->categories = $categories;
} }
public abstract function responseStrategy(); public abstract function responseStrategy();
@ -36,20 +32,4 @@ abstract class Question implements IResponseProcessingStrategy, IPrintQuestionSt
{ {
$this->content = $content; $this->content = $content;
} }
/**
* @return array
*/
public function getCategories(): array
{
return $this->categories;
}
/**
* @param array $categories
*/
public function setCategories(array $categories): void
{
$this->categories = $categories;
}
} }

@ -6,11 +6,10 @@ class TextQuestion extends Question
{ {
/** /**
* @param string $content * @param string $content
* @param array $categories
*/ */
public function __construct(string $content, array $categories) public function __construct(string $content)
{ {
parent::__construct($content, $categories); parent::__construct($content);
} }
public function responseStrategy() public function responseStrategy()
@ -24,6 +23,7 @@ class TextQuestion extends Question
public function printStrategy(): string // Possibilité de rajouter l'id de la question en parametre public function printStrategy(): string // Possibilité de rajouter l'id de la question en parametre
{ // pour la mettre en id du input afin de la lier à ça question { // pour la mettre en id du input afin de la lier à ça question
$content = $this->getContent(); $content = $this->getContent();
return "\t\t\t<div class='question'> return "\t\t\t<div class='question'>
<label>$content</label> <label>$content</label>
<input type='text' name='answers[]' /> <input type='text' name='answers[]' />

@ -1,32 +0,0 @@
<?php
namespace BusinessClass;
class YesNoQuestion extends Question
{
/**
* @param string $content
* @param array $categories
*/
public function __construct(string $content, array $categories)
{
parent::__construct($content, $categories);
}
public function responseStrategy()
{
// TODO: Implement responseStrategy() method
}
public function printStrategy(): string
{
$content = $this->getContent();
return "\t\t\t<div class='question'>
<label>$content</label>
<select name='answers[]'>
<option value='Yes' selected>Yes</option>
<option value='No'>No</option>
</select>
</div>\n";
}
}

@ -21,10 +21,10 @@ class ModelCandidate
$title = "Candidature à un témoignage"; $title = "Candidature à un témoignage";
$description = "Ce formulaire vous permet de candidater à un potentiel témoignage vidéo."; $description = "Ce formulaire vous permet de candidater à un potentiel témoignage vidéo.";
$questions = array( $questions = array(
new TextQuestion("Décrivez-nous votre parcours en quelques lignes :", array(null)), new TextQuestion("Décrivez-nous votre parcours en quelques lignes :"),
new YesNoQuestion("Êtes-vous originaire de Clermont et ses alentours ? (- de 2 heures de trajet)", array("Origine")), new ListBoxQuestion(array("Oui", "Non"), "Êtes-vous originaire de Clermont et ses alentours ? (- de 2 heures de trajet)", array(array("Clermont"), array("OrigineLointaine"))),
new ListBoxQuestion(array("BAC Général", "BAC Pro", "Étude supérieure"), "Quel étude avez-vous réalisé avant l'IUT?", array("Général", "Pro", "EtudSupp")), new ListBoxQuestion(array("BAC Général", "BAC Pro", "Étude supérieure"), "Quel étude avez-vous réalisé avant l'IUT?", array(array("Général"), array("Pro"), array("EtudSupp"))),
new CheckBoxQuestion(array("Mathématiques", "Web", "Mobile", "Gestion"), "Quels matières appréciez-vous ?", array(array("Maths", "Maths2", "Maths3"), array("Web"), array(""), array("Gestion", "Gestion2"))) new CheckBoxQuestion(array("Mathématiques", "Web", "Mobile", "Gestion"), "Quels matières appréciez-vous ?", array(array("Maths", "Maths2", "Maths3"), array("Web"), array(""), array("Gestion", "Gestion2"))),
); );
$form = new Form($title, $description, $questions); $form = new Form($title, $description, $questions);
/* ---------- */ /* ---------- */

Loading…
Cancel
Save