Créé dans le cadre du projet de fin d'année de la promo 2018 de CIR2 de l'ISEN Brest/Rennes, le Burger Quizz est une adaptation numérique du jeu télévisé éponyme, plus précisément d'une épreuve spécifique de ce jeu : le "Sel ou Poivre".

class.questset.php 3.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. /*******************************************************************************
  3. * Classe Questset *
  4. * Auteur : Brendan Abolivier *
  5. * Fonction : Créer un objet représentatif d'un jeu de questions (thème) *
  6. * *
  7. * Attribut : *
  8. * $reponse1 : String *
  9. * $reponse2 : String *
  10. * $questions : Array (Question) *
  11. * *
  12. * Méthodes : *
  13. * __construct() *
  14. * getArray() *
  15. *******************************************************************************/
  16. class Questset {
  17. private $reponse1;
  18. private $reponse2;
  19. private $questions;
  20. /*****************************************************************************
  21. * Méthode __construct() *
  22. * Fonction : Constructeur, crée un objet Questset (thème) à partir de ses *
  23. * réponses *
  24. * *
  25. * Paramètres : *
  26. * $reponses (Array (String)) : Tableau associatif contenant les deux *
  27. * réponses du thème *
  28. * *
  29. * Retour : Aucun *
  30. * *
  31. * Exceptions : *
  32. * expected_questset_array : Le paramètre n'est pas un tableau *
  33. *****************************************************************************/
  34. function __construct($reponses) {
  35. if(is_array($reponses)) {
  36. $this->questions = array();
  37. $this->reponse1 = $reponses[0];
  38. $this->reponse2 = $reponses[1];
  39. try {
  40. $bdd = new Connector();
  41. $options = array(
  42. "where" => array(
  43. array("reponse1", "=", $this->reponse1),
  44. array("reponse2", "=", $this->reponse2)
  45. ),
  46. "order by" => array("rand()")
  47. );
  48. $questions = $bdd->Select('*', 'questions', $options);
  49. foreach($questions as $question) {
  50. array_push($this->questions, new Question($question['intitule']));
  51. }
  52. } catch(Exception $e) {
  53. throw $e;
  54. }
  55. } else {
  56. throw new Exception('expected_questset_array');
  57. }
  58. }
  59. /*****************************************************************************
  60. * Méthode getArray() *
  61. * Fonction : Renvoie un tableau associatif représentant l'objet courant *
  62. * *
  63. * Paramètres : Aucun *
  64. * *
  65. * Retour : *
  66. * Tableau contenant les deux réponses identifiant le thème ainsi qu'un *
  67. * tableau de questions (voir classe Question) *
  68. *****************************************************************************/
  69. function getArray() {
  70. $questions = array();
  71. foreach($this->questions as $question) {
  72. array_push($questions, $question->getArray());
  73. }
  74. return array(
  75. "reponse1" => utf8_encode($this->reponse1),
  76. "reponse2" => utf8_encode($this->reponse2),
  77. "questions" => $questions
  78. );
  79. }
  80. }