From: thepurpleblob Date: Mon, 20 Nov 2006 13:02:24 +0000 (+0000) Subject: Various improvements to Examview input. X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=0b3940f85c3bd82aa55b04292999265e983ad352;p=moodle.git Various improvements to Examview input. Fixes MDL-7087 and MDL-7349. Partial fix for MDL-7184 (Examview part) --- diff --git a/question/format/examview/format.php b/question/format/examview/format.php index c29f12e4e7..ea7f08dc46 100755 --- a/question/format/examview/format.php +++ b/question/format/examview/format.php @@ -1,53 +1,8 @@ libdir/xmlize.php"); -//require_once("xmlize.php"); /* define("SHORTANSWER", "1"); @@ -81,26 +36,31 @@ class qformat_examview extends qformat_default { return true; } - function print_matching_questions() - { - foreach($this->matching_questions as $key => $value) { - print("$key => $value->questiontext
"); - print("Questions:"); - print("Choices:"); - print("Answers:"); } + + // currently we throw the tags we found + $text = strip_tags($text); + return $text; } function parse_matching_groups($matching_groups) @@ -111,7 +71,7 @@ class qformat_examview extends qformat_default { foreach($matching_groups as $match_group) { $newgroup = NULL; $groupname = trim($match_group['@']['name']); - $questiontext = $this->ArrayTagToString($match_group['#']['text']['0']['#']); + $questiontext = $this->unxmlise($match_group['#']['text'][0]['#']); $newgroup->questiontext = trim($questiontext); $newgroup->subchoices = array(); $newgroup->subquestions = array(); @@ -130,8 +90,9 @@ class qformat_examview extends qformat_default { function parse_ma($qrec, $groupname) { $match_group = $this->matching_questions[$groupname]; - $phrase = trim($qrec['text']['0']['#']); - $answer = trim($qrec['answer']['0']['#']); + $phrase = trim($this->unxmlise($qrec['text']['0']['#'])); + $answer = trim($this->unxmlise($qrec['answer']['0']['#'])); + $answer = strip_tags( $answer ); $match_group->subquestions[] = $phrase; $match_group->subanswers[] = $match_group->subchoices[$answer]; $this->matching_questions[$groupname] = $match_group; @@ -145,20 +106,17 @@ class qformat_examview extends qformat_default { } foreach($this->matching_questions as $match_group) { $question = $this->defaultquestion(); - $htmltext = $this->htmlPrepare($match_group->questiontext); - $htmltext = addslashes($htmltext); + $htmltext = $this->s(addslashes($match_group->questiontext)); $question->questiontext = $htmltext; $question->name = $question->questiontext; $question->qtype = MATCH; $question->subquestions = array(); $question->subanswers = array(); foreach($match_group->subquestions as $key => $value) { - $htmltext = $this->htmlPrepare($value); - $htmltext = addslashes($htmltext); + $htmltext = s(addslashes($value)); $question->subquestions[] = $htmltext; - $htmltext = $this->htmlPrepare($match_group->subanswers[$key]); - $htmltext = addslashes($htmltext); + $htmltext = $this->s(addslashes($match_group->subanswers[$key])); $question->subanswers[] = $htmltext; } $questions[] = $question; @@ -192,40 +150,11 @@ class qformat_examview extends qformat_default { } } - // print('
'); - // $this->print_matching_questions(); $this->process_matches($questions); - // print('
'); - return $questions; } // end readquestions - function htmlPrepare($htmltext) - { - // $text = trim($text); - $text = s($htmltext); - //$htmltext = nl2br($text); - return $text; - } - - function ArrayTagToString($aTag) - { - if (!is_array($aTag)) { - return $aTag; - } - $out = ''; - foreach($aTag as $key => $value) { - if (is_array($value)) { - $out = $out.$this->ArrayTagToString($value); - } else { - $out = $value; - } - } - return $out; - } - - function readquestion($qrec) { @@ -234,9 +163,7 @@ class qformat_examview extends qformat_default { $question->qtype = $this->qtypes[$type]; $question->single = 1; // Only one answer is allowed - $htmltext = $this->ArrayTagToString($qrec['#']['text'][0]['#']); - $htmltext = $this->htmlPrepare($htmltext); - $htmltext = addslashes($htmltext); + $htmltext = $this->unxmlise($qrec['#']['text'][0]['#']); $question->questiontext = $htmltext; $question->name = $question->questiontext; @@ -290,8 +217,8 @@ class qformat_examview extends qformat_default { $choices = $qrec['choices'][0]['#']; foreach($choices as $key => $value) { if (strpos(trim($key),'choice-') !== FALSE) { - - $question->answer[$key] = $this->htmlPrepare($value[0]['#']); + + $question->answer[$key] = s($this->unxmlise($value[0]['#'])); if (strcmp($key, $answer) == 0) { $question->fraction[$key] = 1; $question->feedback[$key] = 'Correct'; @@ -307,7 +234,8 @@ class qformat_examview extends qformat_default { function parse_co($qrec, $question) { $question->usecase = 0; - $answer = trim($qrec['answer'][0]['#']); + $answer = trim($this->unxmlise($qrec['answer'][0]['#'])); + $answer = strip_tags( $answer ); $answers = explode("\n",$answer); foreach($answers as $key => $value) { @@ -323,7 +251,8 @@ class qformat_examview extends qformat_default { function parse_nr($qrec, $question) { - $answer = trim($qrec['answer'][0]['#']); + $answer = trim($this->unxmlise($qrec['answer'][0]['#'])); + $answer = strip_tags( $answer ); $answers = explode("\n",$answer); foreach($answers as $key => $value) {