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 * 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(); 25 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 { 37 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() { 43 44 $paths = array(); 45 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); 51 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); 59 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); 64 65 return $paths; 66 } 67 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; 74 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 } 82 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; 89 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); 95 96 $DB->insert_record('assignfeedback_editpdf_annot', $data); 97 98 } 99 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; 106 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); 112 113 $DB->insert_record('assignfeedback_editpdf_cmnt', $data); 114 115 } 116 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 } 128 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body