MDL-30998: updated docblocks for advanced grading
[moodle.git] / grade / grading / form / rubric / backup / moodle2 / restore_gradingform_rubric_plugin.class.php
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/>.
17 /**
18  * Support for restore API
19  *
20  * @package    gradingform_rubric
21  * @copyright  2011 David Mudrak <david@moodle.com>
22  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23  */
25 defined('MOODLE_INTERNAL') || die();
27 /**
28  * Restores the rubric specific data from grading.xml file
29  *
30  * @copyright  2011 David Mudrak <david@moodle.com>
31  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
32  */
33 class restore_gradingform_rubric_plugin extends restore_gradingform_plugin {
35     /**
36      * Declares the rubric XML paths attached to the form definition element
37      *
38      * @return array of {@link restore_path_element}
39      */
40     protected function define_definition_plugin_structure() {
42         $paths = array();
44         $paths[] = new restore_path_element('gradingform_rubric_criterion',
45             $this->get_pathfor('/criteria/criterion'));
47         $paths[] = new restore_path_element('gradingform_rubric_level',
48             $this->get_pathfor('/criteria/criterion/levels/level'));
50         return $paths;
51     }
53     /**
54      * Declares the rubric XML paths attached to the form instance element
55      *
56      * @return array of {@link restore_path_element}
57      */
58     protected function define_instance_plugin_structure() {
60         $paths = array();
62         $paths[] = new restore_path_element('gradinform_rubric_filling',
63             $this->get_pathfor('/fillings/filling'));
65         return $paths;
66     }
68     /**
69      * Processes criterion element data
70      *
71      * Sets the mapping 'gradingform_rubric_criterion' to be used later by
72      * {@link self::process_gradinform_rubric_filling()}
73      *
74      * @param stdClass|array $data
75      */
76     public function process_gradingform_rubric_criterion($data) {
77         global $DB;
79         $data = (object)$data;
80         $oldid = $data->id;
81         $data->definitionid = $this->get_new_parentid('grading_definition');
83         $newid = $DB->insert_record('gradingform_rubric_criteria', $data);
84         $this->set_mapping('gradingform_rubric_criterion', $oldid, $newid);
85     }
87     /**
88      * Processes level element data
89      *
90      * Sets the mapping 'gradingform_rubric_level' to be used later by
91      * {@link self::process_gradinform_rubric_filling()}
92      *
93      * @param stdClass|array $data
94      */
95     public function process_gradingform_rubric_level($data) {
96         global $DB;
98         $data = (object)$data;
99         $oldid = $data->id;
100         $data->criterionid = $this->get_new_parentid('gradingform_rubric_criterion');
102         $newid = $DB->insert_record('gradingform_rubric_levels', $data);
103         $this->set_mapping('gradingform_rubric_level', $oldid, $newid);
104     }
106     /**
107      * Processes filling element data
108      *
109      * @param stdClass|array $data
110      */
111     public function process_gradinform_rubric_filling($data) {
112         global $DB;
114         $data = (object)$data;
115         $data->instanceid = $this->get_new_parentid('grading_instance');
116         $data->criterionid = $this->get_mappingid('gradingform_rubric_criterion', $data->criterionid);
117         $data->levelid = $this->get_mappingid('gradingform_rubric_level', $data->levelid);
119         if (!empty($data->criterionid)) {
120             $DB->insert_record('gradingform_rubric_fillings', $data);
121         }
123     }