Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 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
}