<?
class MyQcm implements QCM {
private $nom = "";
private $author = "" ;
private $email = "";
private $Questions = array();
private $id = 1;
/*
@description : constructeur de la classe MyQcm
*/
function __construct($nom, $author, $email){
$this->nom = $nom;
$this->author = $author;
$this->email = $email;
$this->id = 1;
}
public function __get($key) {
return $this->$key;
}
/*
@description : fonction qui permet de rajouter une question
au tableau de questions.
*/
function addQuestion($question){
$this->Questions[$this->id] = array(
$question[0],
$question[1],
$question[2]
);
$this->id++; // incrémente le nombre de question
}
/*
@description : fonction qui permet d'initialiser le tableau de Questions
*/
function addArrayQuestion($questions){
$this->Questions = $questions;
}
/*
@description : fonction qui permet de vérifier la réponse de l'utilisateur
et retourne une valeur booleen
*/
function verifyResponse($idQuestion, $reponse){
if($this->Questions[$idQuestion][2] == $reponse)
return true;
else
return false;
}
/*
@description : fonction qui permet de renvoyer la bonne réponse d'une question
*/
function getResponse($idQuestion){
$ind = $this->Questions[$idQuestion][2];
$question = $this->Questions[$idQuestion][1];
return $question[$ind];
}
/*
@function name : parseFile
@description : function permettant de parser un fichier csv (séparateur ;)
@format : question; nb réponse; bonne réponse; réponse 1; réponse 2; ... ; réponse xxx
*/
function parseFile($Fichier, $Fichier_type){
$statut = false;
if($Fichier_type == 'csv' || $Fichier_type == 'txt'){
if($fp = fopen($Fichier,"r")){
$statut = true;
$i = 0;
while (!feof($fp))
{
$temp = fgets($fp,4096);
$data = split(";",$temp);
if(sizeof($data) == 6 && $data[0] != 'Question'){
$Q = array();
for($j = 1; $j<=$data[1]; $j++) {
$Q[$j] = $data[2+$j];
}
$this->addQuestion(array($data[0], $Q, $data[2]));
}
$i++;
}
fclose($fp);
}
}
return $statut;
}
/*
@description : retourne le tableau de question pour l'imprimer sur l'écran
*/
function __toString(){
return $this->Questions;
}
function __destruct(){
}
}