MDL-22138 backup - rest of qtypes backup landed
authorEloy Lafuente <stronk7@moodle.org>
Tue, 21 Sep 2010 01:47:56 +0000 (01:47 +0000)
committerEloy Lafuente <stronk7@moodle.org>
Tue, 21 Sep 2010 01:47:56 +0000 (01:47 +0000)
question/type/essay/backup/moodle2/backup_qtype_essay_plugin.class.php [new file with mode: 0644]
question/type/match/backup/moodle2/backup_qtype_match_plugin.class.php [new file with mode: 0644]
question/type/multianswer/backup/moodle2/backup_qtype_multianswer_plugin.class.php [new file with mode: 0644]
question/type/multichoice/backup/moodle2/backup_qtype_multichoice_plugin.class.php [new file with mode: 0644]
question/type/randomsamatch/backup/moodle2/backup_qtype_randomsamatch_plugin.class.php [new file with mode: 0644]
question/type/shortanswer/backup/moodle2/backup_qtype_shortanswer_plugin.class.php [new file with mode: 0644]
question/type/truefalse/backup/moodle2/backup_qtype_truefalse_plugin.class.php [new file with mode: 0644]

diff --git a/question/type/essay/backup/moodle2/backup_qtype_essay_plugin.class.php b/question/type/essay/backup/moodle2/backup_qtype_essay_plugin.class.php
new file mode 100644 (file)
index 0000000..710dc25
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * @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 essay questions
+ */
+class backup_qtype_essay_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', 'essay');
+
+        // 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);
+
+        // Now create the qtype own structures
+        // No own structures!
+
+        // don't need to annotate ids nor files
+
+        return $plugin;
+    }
+}
diff --git a/question/type/match/backup/moodle2/backup_qtype_match_plugin.class.php b/question/type/match/backup/moodle2/backup_qtype_match_plugin.class.php
new file mode 100644 (file)
index 0000000..c5202d2
--- /dev/null
@@ -0,0 +1,67 @@
+<?php
+
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * @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 match questions
+ */
+class backup_qtype_match_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', 'match');
+
+        // 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);
+
+        // Now create the qtype own structures
+        $matchoptions = new backup_nested_element('matchoptions', array('id'), array(
+            'subquestions', 'shuffleanswers'));
+
+        $matches = new backup_nested_element('matches');
+
+        $match = new backup_nested_element('match', array('id'), array(
+            'code', 'questiontext', 'questiontextformat', 'answertext'));
+
+        // Now the own qtype tree
+        $pluginwrapper->add_child($matchoptions);
+        $pluginwrapper->add_child($matches);
+        $matches->add_child($match);
+
+        // set source to populate the data
+        $matchoptions->set_source_table('question_match', array('question' => backup::VAR_PARENTID));
+        $match->set_source_table('question_match_sub', array('question' => backup::VAR_PARENTID));
+
+        // don't need to annotate ids nor files
+
+        return $plugin;
+    }
+}
diff --git a/question/type/multianswer/backup/moodle2/backup_qtype_multianswer_plugin.class.php b/question/type/multianswer/backup/moodle2/backup_qtype_multianswer_plugin.class.php
new file mode 100644 (file)
index 0000000..e7761d5
--- /dev/null
@@ -0,0 +1,63 @@
+<?php
+
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * @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 multianswer questions
+ */
+class backup_qtype_multianswer_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', 'multianswer');
+
+        // 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);
+
+        // Now create the qtype own structures
+        $multianswer = new backup_nested_element('multianswer', array('id'), array(
+            'question', 'sequence'));
+
+        // Now the own qtype tree
+        $pluginwrapper->add_child($multianswer);
+
+        // set source to populate the data
+        $multianswer->set_source_table('question_multianswer', array('question' => backup::VAR_PARENTID));
+
+        // don't need to annotate ids nor files
+
+        return $plugin;
+    }
+}
diff --git a/question/type/multichoice/backup/moodle2/backup_qtype_multichoice_plugin.class.php b/question/type/multichoice/backup/moodle2/backup_qtype_multichoice_plugin.class.php
new file mode 100644 (file)
index 0000000..d9dd3e1
--- /dev/null
@@ -0,0 +1,65 @@
+<?php
+
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * @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 multichoice questions
+ */
+class backup_qtype_multichoice_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', 'multichoice');
+
+        // 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);
+
+        // Now create the qtype own structures
+        $multichoice = new backup_nested_element('multichoice', array('id'), array(
+            'layout', 'answers', 'single', 'shuffleanswers',
+            'correctfeedback', 'correctfeedbackformat', 'partiallycorrectfeedback', 'partiallycorrectfeedbackformat',
+            'incorrectfeedback', 'incorrectfeedbackformat', 'answernumbering'));
+
+        // Now the own qtype tree
+        $pluginwrapper->add_child($multichoice);
+
+        // set source to populate the data
+        $multichoice->set_source_table('question_multichoice', array('question' => backup::VAR_PARENTID));
+
+        // don't need to annotate ids nor files
+
+        return $plugin;
+    }
+}
diff --git a/question/type/randomsamatch/backup/moodle2/backup_qtype_randomsamatch_plugin.class.php b/question/type/randomsamatch/backup/moodle2/backup_qtype_randomsamatch_plugin.class.php
new file mode 100644 (file)
index 0000000..c427786
--- /dev/null
@@ -0,0 +1,59 @@
+<?php
+
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * @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 randomsamatch questions
+ */
+class backup_qtype_randomsamatch_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', 'randomsamatch');
+
+        // 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);
+
+        // Now create the qtype own structures
+        $randomsamatch = new backup_nested_element('randomsamatch', array('id'), array(
+            'choose'));
+
+        // Now the own qtype tree
+        $pluginwrapper->add_child($randomsamatch);
+
+        // set source to populate the data
+        $randomsamatch->set_source_table('question_randomsamatch', array('question' => backup::VAR_PARENTID));
+
+        // don't need to annotate ids nor files
+
+        return $plugin;
+    }
+}
diff --git a/question/type/shortanswer/backup/moodle2/backup_qtype_shortanswer_plugin.class.php b/question/type/shortanswer/backup/moodle2/backup_qtype_shortanswer_plugin.class.php
new file mode 100644 (file)
index 0000000..7d27193
--- /dev/null
@@ -0,0 +1,63 @@
+<?php
+
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * @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 shortanswer questions
+ */
+class backup_qtype_shortanswer_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', 'shortanswer');
+
+        // 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);
+
+        // Now create the qtype own structures
+        $shortanswer = new backup_nested_element('shortanswer', array('id'), array(
+            'answers', 'usecase'));
+
+        // Now the own qtype tree
+        $pluginwrapper->add_child($shortanswer);
+
+        // set source to populate the data
+        $shortanswer->set_source_table('question_shortanswer', array('question' => backup::VAR_PARENTID));
+
+        // don't need to annotate ids nor files
+
+        return $plugin;
+    }
+}
diff --git a/question/type/truefalse/backup/moodle2/backup_qtype_truefalse_plugin.class.php b/question/type/truefalse/backup/moodle2/backup_qtype_truefalse_plugin.class.php
new file mode 100644 (file)
index 0000000..677946a
--- /dev/null
@@ -0,0 +1,63 @@
+<?php
+
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
+
+/**
+ * @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 truefalse questions
+ */
+class backup_qtype_truefalse_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', 'truefalse');
+
+        // 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);
+
+        // Now create the qtype own structures
+        $truefalse = new backup_nested_element('truefalse', array('id'), array(
+            'trueanswer', 'falseanswer'));
+
+        // Now the own qtype tree
+        $pluginwrapper->add_child($truefalse);
+
+        // set source to populate the data
+        $truefalse->set_source_table('question_truefalse', array('question' => backup::VAR_PARENTID));
+
+        // don't need to annotate ids nor files
+
+        return $plugin;
+    }
+}