From 1eb2aa184aa20b6e3e8a18b91f26306244c2382b Mon Sep 17 00:00:00 2001 From: Eloy Lafuente Date: Tue, 21 Sep 2010 01:44:35 +0000 Subject: [PATCH] MDL-22138 backup - calculated and numericals --- .../backup_qtype_calculated_plugin.class.php | 89 +++++++++++++++++++ ...kup_qtype_calculatedmulti_plugin.class.php | 39 ++++++++ ...up_qtype_calculatedsimple_plugin.class.php | 39 ++++++++ .../backup_qtype_numerical_plugin.class.php | 71 +++++++++++++++ 4 files changed, 238 insertions(+) create mode 100644 question/type/calculated/backup/moodle2/backup_qtype_calculated_plugin.class.php create mode 100644 question/type/calculatedmulti/backup/moodle2/backup_qtype_calculatedmulti_plugin.class.php create mode 100644 question/type/calculatedsimple/backup/moodle2/backup_qtype_calculatedsimple_plugin.class.php create mode 100644 question/type/numerical/backup/moodle2/backup_qtype_numerical_plugin.class.php diff --git a/question/type/calculated/backup/moodle2/backup_qtype_calculated_plugin.class.php b/question/type/calculated/backup/moodle2/backup_qtype_calculated_plugin.class.php new file mode 100644 index 00000000000..9cc224dba8c --- /dev/null +++ b/question/type/calculated/backup/moodle2/backup_qtype_calculated_plugin.class.php @@ -0,0 +1,89 @@ +. + +/** + * @package moodlecore + * @subpackage backup-moodle2 + * @copyright 2010 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com} + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +defined('MOODLE_INTERNAL') || die(); + +/** + * Provides the information to backup calculated questions + */ +class backup_qtype_calculated_plugin extends backup_qtype_plugin { + + protected function get_qtype_name() { + return 'calculated'; + } + + /** + * Returns the qtype information to attach to question element + */ + protected function define_question_plugin_structure() { + + // Define the virtual plugin element with the condition to fulfill + $plugin = $this->get_plugin_element(null, '../../qtype', $this->get_qtype_name()); + + // Create one standard named plugin element (the visible container) + $pluginwrapper = new backup_nested_element($this->get_recommended_name()); + + // connect the visible container ASAP + $plugin->add_child($pluginwrapper); + + // This qtype uses standard question_answers, add them here + // to the tree before any other information that will use them + $this->add_question_question_answers($pluginwrapper); + + // This qtype uses standard numerical units, add them here + $this->add_question_numerical_units($pluginwrapper); + + // This qtype uses standard numerical options, add them here + $this->add_question_numerical_options($pluginwrapper); + + // This qtype uses standard datasets, add them here + $this->add_question_datasets($pluginwrapper); + + // Now create the qtype own structures + $calculatedrecords = new backup_nested_element('calculated_records'); + $calculatedrecord = new backup_nested_element('calculated_record', array('id'), array( + 'answer', 'tolerance', 'tolerancetype', 'correctanswerlength', + 'correctanswerformat')); + + $calculatedoptions = new backup_nested_element('calculated_options'); + $calculatedoption = new backup_nested_element('calculated_option', array('id'), array( + 'synchronize', 'single', 'shuffleanswers', 'correctfeedback', + 'correctfeedbackformat', 'partiallycorrectfeedback', 'partiallycorrectfeedbackformat', 'incorrectfeedback', + 'incorrectfeedbackformat', 'answernumbering')); + + // Now the own qtype tree + $pluginwrapper->add_child($calculatedrecords); + $calculatedrecords->add_child($calculatedrecord); + + $pluginwrapper->add_child($calculatedoptions); + $calculatedoptions->add_child($calculatedoption); + + // set source to populate the data + $calculatedrecord->set_source_table('question_calculated', array('question' => backup::VAR_PARENTID)); + $calculatedoption->set_source_table('question_calculated_options', array('question' => backup::VAR_PARENTID)); + + // don't need to annotate ids nor files + + return $plugin; + } +} diff --git a/question/type/calculatedmulti/backup/moodle2/backup_qtype_calculatedmulti_plugin.class.php b/question/type/calculatedmulti/backup/moodle2/backup_qtype_calculatedmulti_plugin.class.php new file mode 100644 index 00000000000..26f2443a787 --- /dev/null +++ b/question/type/calculatedmulti/backup/moodle2/backup_qtype_calculatedmulti_plugin.class.php @@ -0,0 +1,39 @@ +. + +/** + * @package moodlecore + * @subpackage backup-moodle2 + * @copyright 2010 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com} + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +defined('MOODLE_INTERNAL') || die(); + +require_once($CFG->dirroot . '/question/type/calculated/backup/moodle2/backup_qtype_calculated_plugin.class.php'); + +/** + * Provides the information to backup calculatedmulti questions + */ +class backup_qtype_calculatedmulti_plugin extends backup_qtype_calculated_plugin { + + /** + * overwrite this with the current qtype + */ + protected function get_qtype_name() { + return 'calculatedmulti'; + } +} diff --git a/question/type/calculatedsimple/backup/moodle2/backup_qtype_calculatedsimple_plugin.class.php b/question/type/calculatedsimple/backup/moodle2/backup_qtype_calculatedsimple_plugin.class.php new file mode 100644 index 00000000000..9efbe5aebf8 --- /dev/null +++ b/question/type/calculatedsimple/backup/moodle2/backup_qtype_calculatedsimple_plugin.class.php @@ -0,0 +1,39 @@ +. + +/** + * @package moodlecore + * @subpackage backup-moodle2 + * @copyright 2010 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com} + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +defined('MOODLE_INTERNAL') || die(); + +require_once($CFG->dirroot . '/question/type/calculated/backup/moodle2/backup_qtype_calculated_plugin.class.php'); + +/** + * Provides the information to backup calculatedsimple questions + */ +class backup_qtype_calculatedsimple_plugin extends backup_qtype_calculated_plugin { + + /** + * overwrite this with the current qtype + */ + protected function get_qtype_name() { + return 'calculatedsimple'; + } +} diff --git a/question/type/numerical/backup/moodle2/backup_qtype_numerical_plugin.class.php b/question/type/numerical/backup/moodle2/backup_qtype_numerical_plugin.class.php new file mode 100644 index 00000000000..06fff61b729 --- /dev/null +++ b/question/type/numerical/backup/moodle2/backup_qtype_numerical_plugin.class.php @@ -0,0 +1,71 @@ +. + +/** + * @package moodlecore + * @subpackage backup-moodle2 + * @copyright 2010 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com} + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +defined('MOODLE_INTERNAL') || die(); + +/** + * Provides the information to backup numerical questions + */ +class backup_qtype_numerical_plugin extends backup_qtype_plugin { + + /** + * Returns the qtype information to attach to question element + */ + protected function define_question_plugin_structure() { + + // Define the virtual plugin element with the condition to fulfill + $plugin = $this->get_plugin_element(null, '../../qtype', 'numerical'); + + // Create one standard named plugin element (the visible container) + $pluginwrapper = new backup_nested_element($this->get_recommended_name()); + + // connect the visible container ASAP + $plugin->add_child($pluginwrapper); + + // This qtype uses standard question_answers, add them here + // to the tree before any other information that will use them + $this->add_question_question_answers($pluginwrapper); + + // This qtype uses standard numerical units, add them here + $this->add_question_numerical_units($pluginwrapper); + + // This qtype uses standard numerical options, add them here + $this->add_question_numerical_options($pluginwrapper); + + // Now create the qtype own structures + $numericalrecords = new backup_nested_element('numerical_records'); + $numericalrecord = new backup_nested_element('numerical_record', array('id'), array( + 'answer', 'tolerance')); + + // Now the own qtype tree + $pluginwrapper->add_child($numericalrecords); + $numericalrecords->add_child($numericalrecord); + + // set source to populate the data + $numericalrecord->set_source_table('question_numerical', array('question' => backup::VAR_PARENTID)); + + // don't need to annotate ids nor files + + return $plugin; + } +} -- 2.43.0