From: thepurpleblob Date: Fri, 13 Jul 2007 08:36:14 +0000 (+0000) Subject: MDL-10380: X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=e53ff7f60ab5ca7dd0ec99e9d8d6eb0ef53e085c;p=moodle.git MDL-10380: Check for randeredmatch plugin done using array_key_exists() for PHP4 compatibility MDL-10317: Question name is now the question ID, rather than the question text. --- diff --git a/question/format/blackboard_6/format.php b/question/format/blackboard_6/format.php index bdf4e298df..0cb6cbdeb8 100644 --- a/question/format/blackboard_6/format.php +++ b/question/format/blackboard_6/format.php @@ -251,8 +251,9 @@ class qformat_blackboard_6 extends qformat_default { // the object created is NOT a moodle question object function create_raw_question($quest) { - $question = $this->defaultquestion(); + $question = new StdClass; $question->qtype = $quest['#']['itemmetadata'][0]['#']['bbmd_questiontype'][0]['#']; + $question->id = $quest['#']['itemmetadata'][0]['#']['bbmd_asi_object_id'][0]['#']; $presentation->blocks = $quest['#']['presentation'][0]['#']['flow'][0]['#']['flow']; foreach($presentation->blocks as $pblock) { @@ -538,19 +539,25 @@ function process_feedback($feedbackset, &$feedbacks) { } } +/** + * Create common parts of question + */ +function process_common( $quest ) { + $question = $this->defaultquestion(); + $question->questiontext = addslashes($quest->QUESTION_BLOCK->text); + $question->name = shorten_text( $quest->id, 250 ); + + return $question; +} + //---------------------------------------- // Process True / False Questions //---------------------------------------- function process_tf($quest, &$questions) { - $question = $this->defaultquestion(); + $question = $this->process_common( $quest ); $question->qtype = TRUEFALSE; - $question->defaultgrade = 1; $question->single = 1; // Only one answer is allowed - $question->image = ""; // No images with this format - $question->questiontext = addslashes($quest->QUESTION_BLOCK->text); - // put name in question object - $question->name = shorten_text($question->questiontext, 250); // first choice is true, second is false. if ($quest->responses[0]->fraction == 1) { @@ -582,14 +589,10 @@ function process_tf($quest, &$questions) { // Process Fill in the Blank //---------------------------------------- function process_fblank($quest, &$questions) { - $question = $this->defaultquestion(); + $question = $this->process_common( $quest ); $question->qtype = SHORTANSWER; - $question->defaultgrade = 1; $question->single = 1; - $question->usecase = 0; - $question->image = ''; - $question->questiontext = addslashes($quest->QUESTION_BLOCK->text); - $question->name = shorten_text($question->questiontext, 250); + $answers = array(); $fractions = array(); $feedbacks = array(); @@ -648,13 +651,9 @@ function process_fblank($quest, &$questions) { // Process Multiple Choice Questions //---------------------------------------- function process_mc($quest, &$questions) { - $question = $this->defaultquestion(); + $question = $this->process_common( $quest ); $question->qtype = MULTICHOICE; - $question->defaultgrade = 1; $question->single = 1; - $question->image = ""; - $question->questiontext = addslashes($quest->QUESTION_BLOCK->text); - $question->name = shorten_text($question->questiontext, 250); $feedback = array(); foreach($quest->feedback as $fback) { @@ -721,13 +720,9 @@ function process_mc($quest, &$questions) { // Process Multiple Choice Questions With Multiple Answers //---------------------------------------- function process_ma($quest, &$questions) { - $question = $this->defaultquestion(); // copied this from process_mc - $question->questiontext = addslashes($quest->QUESTION_BLOCK->text); - $question->name = shorten_text($question->questiontext, 250); + $question = $this->process_common( $quest ); // copied this from process_mc $question->qtype = MULTICHOICE; - $question->defaultgrade = 1; $question->single = 0; // More than one answer allowed - $question->image = ""; // No images with this format $answers = $quest->responses; $correct_answers = array(); @@ -773,13 +768,8 @@ function process_essay($quest, &$questions) { if (defined("ESSAY")) { // treat as short answer - $question = $this->defaultquestion(); // copied this from process_mc + $question = $this->process_common( $quest ); // copied this from process_mc $question->qtype = ESSAY; - $question->defaultgrade = 1; - $question->usecase = 0; // Ignore case - $question->image = ""; // No images with this format - $question->questiontext = addslashes(trim($quest->QUESTION_BLOCK->text)); - $question->name = shorten_text($question->questiontext, 250); $question->feedback = array(); // not sure where to get the correct answer from @@ -810,13 +800,10 @@ function process_matching($quest, &$questions) { global $QTYPES; // renderedmatch is an optional plugin, so we need to check if it is defined - if (!empty($QTYPES['renderedmatch'])) { - $question = $this->defaultquestion($this->defaultquestion()); + if (array_key_exists('renderedmatch', $QTYPES)) { + $question = $this->process_common( $quest ); $question->valid = true; $question->qtype = 'renderedmatch'; - $question->defaultgrade = 1; - $question->questiontext = addslashes($quest->QUESTION_BLOCK->text); - $question->name = shorten_text($question->questiontext, 250); foreach($quest->RESPONSE_BLOCK->subquestions as $qid => $subq) { foreach($quest->responses as $rid => $resp) {