id = $node->getAttribute("xml:id"); $this->added_time = $node->getAttribute("addedtime"); if (intval($node->getAttribute("validated"))) $this->validated = true; $this->validator = $node->getAttribute("validator"); $this->question = $node->getAttribute("question"); $this->course = $node->getAttribute("course"); $answers = $node->getElementsByTagName("answer"); for ($i = 0; $i < $answers->length; $i++) $this->answers[] = $answers->item($i)->getAttribute("answer"); } } public static function new_Question($question, $answers, $course = null) { $q = new Question(); $q->id = md5(time().$question); $q->added_time = time(); $q->question = $question; $q->course = $course; if (!empty($answers)) { if (is_array($answers)) { foreach ($answers as $ans) $q->answers[] = $ans; } else $q->answers[] = $answers; } return $q; } public function set_validator($val) { $this->validator = $val; } public function get_validator() { return $this->validator; } public function print_test() { echo 'Cours concerné : ' . $this->course . "
"; echo 'La question est : ' . $this->question . "
"; echo 'Les réponses sont : ' . print_r($this->answers, true) . "
"; } /** * Generate and fill an answer node * @param $answer The answer string * @param $scrore The score given by this answer */ private function gen_anode($treeXML, $answer, $score = 1) { $anode = $treeXML->createElement("answer"); $anode->setAttribute("answer", $answer); $anode->setAttribute("score", $score); return $anode; } /** * Generate XML corresponding to this question */ public function to_xml($root) { $qnode = $root->createElement("question"); $qnode->setAttribute("xml:id", $this->id); $qnode->setAttribute("addedtime", $this->added_time); $qnode->setAttribute("validated", $this->validated); $qnode->setAttribute("validator", $this->validator); $qnode->setAttribute("course", $this->course); $qnode->setAttribute("question", $this->question); foreach ($this->answers as $ans) $qnode->appendChild($this->gen_anode($root, $ans)); return $qnode; } public function validated() { $this->validated = true; } public function getId() { return $this->id; } } ?>