AutorÃa | Ultima modificación | Ver Log |
<?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/>.
/**
* This file contains the restore code for the feedback_editpdf plugin.
*
* @package assignfeedback_editpdf
* @copyright 2013 Damyon Wiese
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined('MOODLE_INTERNAL') || die();
/**
* Restore subplugin class.
*
* Provides the necessary information needed
* to restore one assign_feedback subplugin.
*
* @package assignfeedback_editpdf
* @copyright 2013 Damyon Wiese
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class restore_assignfeedback_editpdf_subplugin extends restore_subplugin {
/**
* Returns the paths to be handled by the subplugin at assignment level
* @return array
*/
protected function define_grade_subplugin_structure() {
$paths = array();
// We used get_recommended_name() so this works.
// The files node is a placeholder just containing gradeid so we can restore files once per grade.
$elename = $this->get_namefor('files');
$elepath = $this->get_pathfor('/feedback_editpdf_files');
$paths[] = new restore_path_element($elename, $elepath);
// Now we have the list of comments and annotations per grade.
$elename = $this->get_namefor('comment');
$elepath = $this->get_pathfor('/feedback_editpdf_comments/comment');
$paths[] = new restore_path_element($elename, $elepath);
$elename = $this->get_namefor('annotation');
$elepath = $this->get_pathfor('/feedback_editpdf_annotations/annotation');
$paths[] = new restore_path_element($elename, $elepath);
// Rotation details.
$elename = $this->get_namefor('pagerotation');
$elepath = $this->get_pathfor('/feedback_editpdf_rotation/pagerotation');
$paths[] = new restore_path_element($elename, $elepath);
return $paths;
}
/**
* Processes one feedback_editpdf_files element
* @param mixed $data
*/
public function process_assignfeedback_editpdf_files($data) {
$data = (object)$data;
// In this case the id is the old gradeid which will be mapped.
$this->add_related_files('assignfeedback_editpdf',
\assignfeedback_editpdf\document_services::FINAL_PDF_FILEAREA, 'grade', null, $data->gradeid);
$this->add_related_files('assignfeedback_editpdf',
\assignfeedback_editpdf\document_services::PAGE_IMAGE_READONLY_FILEAREA, 'grade', null, $data->gradeid);
$this->add_related_files('assignfeedback_editpdf', 'stamps', 'grade', null, $data->gradeid);
}
/**
* Processes one feedback_editpdf_annotations/annotation element
* @param mixed $data
*/
public function process_assignfeedback_editpdf_annotation($data) {
global $DB;
$data = (object)$data;
$oldgradeid = $data->gradeid;
// The mapping is set in the restore for the core assign activity
// when a grade node is processed.
$data->gradeid = $this->get_mappingid('grade', $data->gradeid);
$DB->insert_record('assignfeedback_editpdf_annot', $data);
}
/**
* Processes one feedback_editpdf_comments/comment element
* @param mixed $data
*/
public function process_assignfeedback_editpdf_comment($data) {
global $DB;
$data = (object)$data;
$oldgradeid = $data->gradeid;
// The mapping is set in the restore for the core assign activity
// when a grade node is processed.
$data->gradeid = $this->get_mappingid('grade', $data->gradeid);
$DB->insert_record('assignfeedback_editpdf_cmnt', $data);
}
/**
* Processes one /feedback_editpdf_rotation/pagerotation element
* @param mixed $data
*/
public function process_assignfeedback_editpdf_pagerotation($data) {
global $DB;
$data = (object)$data;
$oldgradeid = $data->gradeid;
$data->gradeid = $this->get_mappingid('grade', $oldgradeid);
$DB->insert_record('assignfeedback_editpdf_rot', $data);
}
}