<?
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(){

    }
}