1 <?php 2 // This file is part of Moodle - http://moodle.org/ 3 // 4 // Moodle is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // Moodle is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17 /** 18 * @package qtype 19 * @subpackage multianswer 20 * @copyright 2011 David Mudrak <david@moodle.com> 21 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 22 */ 23 24 defined('MOODLE_INTERNAL') || die(); 25 26 /** 27 * Multianswer (aka embedded, cloze) question type conversion handler 28 */ 29 class moodle1_qtype_multianswer_handler extends moodle1_qtype_handler { 30 31 /** 32 * @return array 33 */ 34 public function get_question_subpaths() { 35 return array( 36 'ANSWERS/ANSWER', 37 'MULTIANSWERS/MULTIANSWER', 38 ); 39 } 40 41 /** 42 * Appends the multianswer specific information to the question 43 * 44 * Note that there is an upgrade step 2008050800 that is not replayed here as I suppose there 45 * was an error on restore and the backup file contains correct data. If I'm wrong on this 46 * assumption then the parent of the embedded questions could be fixed on conversion in theory 47 * (by using a temporary stash that keeps multianswer's id and its sequence) but the category 48 * fix would be tricky in XML. 49 */ 50 public function process_question(array $data, array $raw) { 51 52 // Convert and write the answers first. 53 if (isset($data['answers'])) { 54 $this->write_answers($data['answers'], $this->pluginname); 55 } 56 57 // Convert and write the multianswer extra fields. 58 foreach ($data['multianswers'] as $multianswers) { 59 foreach ($multianswers as $multianswer) { 60 $this->write_xml('multianswer', $multianswer, array('/multianswer/id')); 61 } 62 } 63 } 64 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body