This repository has been archived on 2020-08-21. You can view files and clone it, but cannot push or open issues or pull requests.
nemubot-askweb/Question.class.php
2012-05-19 11:02:31 +02:00

82 lines
2.0 KiB
PHP

<?php
class Question
{
private var $id;
private var $question;
private var $answers = array();
private var $added_time;
private var $validated = false;
private var $validator = "";
public function __construct($node = null)
{
$this->id = $node->getAttribute("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");
$answers = $node->getElementByTagName("answer");
for ($i = 0; $i < $answers->length; $i++)
$this->answers[] = $answers->item($i)->getAttribute("answer");
}
public static function new_Question($question, $answers = null)
{
$q = new Question();
$q->id = md5(time().$question);
$q->added_time = time();
$q->question = $question;
if (!empty($answers))
{
if (is_array($answers))
{
foreach ($answers => $ans)
$this->answers[] = $ans;
}
else
$this->answers[] = $answers;
}
return $q;
}
/**
* Generate and fill an answer node
* @param $answer The answer string
* @param $scrore The score given by this answer
*/
private function gen_anode($answer, $score = 1)
{
$anode = $this->treeXML->createElement("answer");
$qnode->setAttribute("answer", $answer);
$qnode->setAttribute("score", $score);
return $anode;
}
/**
* Generate XML corresponding to this question
*/
public function to_xml($root)
{
$qnode = $root->createElement("question");
$qnode->setAttribute("id", $this->id);
$qnode->setAttribute("addedtime", $this->added_time);
$qnode->setAttribute("validated", $this->validated);
$qnode->setAttribute("validator", $this->validator);
$qnode->setAttribute("question", $this->question);
foreach ($answers => $ans)
$qnode->appendChild(gen_anode($ans));
return $qnode;
}
}
?>