MDL-61537 assignfeedback_editpdf: Rotate PDF page
[moodle.git] / mod / assign / feedback / editpdf / backup / moodle2 / restore_assignfeedback_editpdf_subplugin.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  * This file contains the restore code for the feedback_editpdf plugin.
19  *
20  * @package   assignfeedback_editpdf
21  * @copyright 2013 Damyon Wiese
22  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23  */
24 defined('MOODLE_INTERNAL') || die();
26 /**
27  * Restore subplugin class.
28  *
29  * Provides the necessary information needed
30  * to restore one assign_feedback subplugin.
31  *
32  * @package   assignfeedback_editpdf
33  * @copyright 2013 Damyon Wiese
34  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
35  */
36 class restore_assignfeedback_editpdf_subplugin extends restore_subplugin {
38     /**
39      * Returns the paths to be handled by the subplugin at assignment level
40      * @return array
41      */
42     protected function define_grade_subplugin_structure() {
44         $paths = array();
46         // We used get_recommended_name() so this works.
47         // The files node is a placeholder just containing gradeid so we can restore files once per grade.
48         $elename = $this->get_namefor('files');
49         $elepath = $this->get_pathfor('/feedback_editpdf_files');
50         $paths[] = new restore_path_element($elename, $elepath);
52         // Now we have the list of comments and annotations per grade.
53         $elename = $this->get_namefor('comment');
54         $elepath = $this->get_pathfor('/feedback_editpdf_comments/comment');
55         $paths[] = new restore_path_element($elename, $elepath);
56         $elename = $this->get_namefor('annotation');
57         $elepath = $this->get_pathfor('/feedback_editpdf_annotations/annotation');
58         $paths[] = new restore_path_element($elename, $elepath);
60         // Rotation details.
61         $elename = $this->get_namefor('pagerotation');
62         $elepath = $this->get_pathfor('/feedback_editpdf_rotation/pagerotation');
63         $paths[] = new restore_path_element($elename, $elepath);
65         return $paths;
66     }
68     /**
69      * Processes one feedback_editpdf_files element
70      * @param mixed $data
71      */
72     public function process_assignfeedback_editpdf_files($data) {
73         $data = (object)$data;
75         // In this case the id is the old gradeid which will be mapped.
76         $this->add_related_files('assignfeedback_editpdf',
77             \assignfeedback_editpdf\document_services::FINAL_PDF_FILEAREA, 'grade', null, $data->gradeid);
78         $this->add_related_files('assignfeedback_editpdf',
79             \assignfeedback_editpdf\document_services::PAGE_IMAGE_READONLY_FILEAREA, 'grade', null, $data->gradeid);
80         $this->add_related_files('assignfeedback_editpdf', 'stamps', 'grade', null, $data->gradeid);
81     }
83     /**
84      * Processes one feedback_editpdf_annotations/annotation element
85      * @param mixed $data
86      */
87     public function process_assignfeedback_editpdf_annotation($data) {
88         global $DB;
90         $data = (object)$data;
91         $oldgradeid = $data->gradeid;
92         // The mapping is set in the restore for the core assign activity
93         // when a grade node is processed.
94         $data->gradeid = $this->get_mappingid('grade', $data->gradeid);
96         $DB->insert_record('assignfeedback_editpdf_annot', $data);
98     }
100     /**
101      * Processes one feedback_editpdf_comments/comment element
102      * @param mixed $data
103      */
104     public function process_assignfeedback_editpdf_comment($data) {
105         global $DB;
107         $data = (object)$data;
108         $oldgradeid = $data->gradeid;
109         // The mapping is set in the restore for the core assign activity
110         // when a grade node is processed.
111         $data->gradeid = $this->get_mappingid('grade', $data->gradeid);
113         $DB->insert_record('assignfeedback_editpdf_cmnt', $data);
115     }
117     /**
118      * Processes one /feedback_editpdf_rotation/pagerotation element
119      * @param mixed $data
120      */
121     public function process_assignfeedback_editpdf_pagerotation($data) {
122         global $DB;
123         $data = (object)$data;
124         $oldgradeid = $data->gradeid;
125         $data->gradeid = $this->get_mappingid('grade', $oldgradeid);
126         $DB->insert_record('assignfeedback_editpdf_rot', $data);
127     }