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 * Backup code for qtype_ddimageortext. 19 * 20 * @package qtype_ddimageortext 21 * @copyright 2011 The Open University 22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 23 */ 24 defined('MOODLE_INTERNAL') || die(); 25 26 27 /** 28 * Provides the information to backup ddimageortext questions. 29 * 30 * @copyright 2011 The Open University 31 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 32 */ 33 class backup_qtype_ddimageortext_plugin extends backup_qtype_plugin { 34 /** 35 * Returns the question type this is. 36 * 37 * @return string question type name, like 'ddimageortext'. 38 */ 39 protected static function qtype_name() { 40 return 'ddimageortext'; 41 } 42 43 /** 44 * Returns the qtype information to attach to question element. 45 */ 46 protected function define_question_plugin_structure() { 47 $qtype = self::qtype_name(); 48 $plugin = $this->get_plugin_element(null, '../../qtype', $qtype); 49 50 $pluginwrapper = new backup_nested_element($this->get_recommended_name()); 51 52 $plugin->add_child($pluginwrapper); 53 54 $dds = new backup_nested_element($qtype, array('id'), array( 55 'shuffleanswers', 'correctfeedback', 'correctfeedbackformat', 56 'partiallycorrectfeedback', 'partiallycorrectfeedbackformat', 57 'incorrectfeedback', 'incorrectfeedbackformat', 'shownumcorrect')); 58 59 $pluginwrapper->add_child($dds); 60 $drags = new backup_nested_element('drags'); 61 62 $drag = new backup_nested_element('drag', array('id'), 63 array('no', 'draggroup', 'infinite', 'label')); 64 $drops = new backup_nested_element('drops'); 65 66 $drop = new backup_nested_element('drop', array('id'), 67 array('no', 'xleft', 'ytop', 'choice', 'label')); 68 69 $dds->set_source_table("qtype_{$qtype}", 70 array('questionid' => backup::VAR_PARENTID)); 71 72 $pluginwrapper->add_child($drags); 73 $drags->add_child($drag); 74 $pluginwrapper->add_child($drops); 75 $drops->add_child($drop); 76 77 $drag->set_source_table("qtype_{$qtype}_drags", 78 array('questionid' => backup::VAR_PARENTID)); 79 80 $drop->set_source_table("qtype_{$qtype}_drops", 81 array('questionid' => backup::VAR_PARENTID)); 82 83 return $plugin; 84 } 85 86 /** 87 * Returns one array with filearea => mappingname elements for the qtype 88 * 89 * Used by {@link get_components_and_fileareas} to know about all the qtype 90 * files to be processed both in backup and restore. 91 */ 92 public static function get_qtype_fileareas() { 93 $qtype = self::qtype_name(); 94 return array( 95 'correctfeedback' => 'question_created', 96 'partiallycorrectfeedback' => 'question_created', 97 'incorrectfeedback' => 'question_created', 98 99 'bgimage' => 'question_created', 100 'dragimage' => "qtype_{$qtype}_drags"); 101 } 102 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body