[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 3 // This file is part of Moodle - http://moodle.org/ 4 // 5 // Moodle is free software: you can redistribute it and/or modify 6 // it under the terms of the GNU General Public License as published by 7 // the Free Software Foundation, either version 3 of the License, or 8 // (at your option) any later version. 9 // 10 // Moodle is distributed in the hope that it will be useful, 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 // GNU General Public License for more details. 14 // 15 // You should have received a copy of the GNU General Public License 16 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 17 18 /** 19 * @package mod_workshop 20 * @copyright 2010 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com} 21 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 22 */ 23 24 /** 25 * Define all the restore steps that will be used by the restore_workshop_activity_task 26 */ 27 28 /** 29 * Structure step to restore one workshop activity 30 */ 31 class restore_workshop_activity_structure_step extends restore_activity_structure_step { 32 33 protected function define_structure() { 34 35 $paths = array(); 36 37 $userinfo = $this->get_setting_value('userinfo'); // are we including userinfo? 38 39 //////////////////////////////////////////////////////////////////////// 40 // XML interesting paths - non-user data 41 //////////////////////////////////////////////////////////////////////// 42 43 // root element describing workshop instance 44 $workshop = new restore_path_element('workshop', '/activity/workshop'); 45 $paths[] = $workshop; 46 47 // Apply for 'workshopform' subplugins optional paths at workshop level 48 $this->add_subplugin_structure('workshopform', $workshop); 49 50 // Apply for 'workshopeval' subplugins optional paths at workshop level 51 $this->add_subplugin_structure('workshopeval', $workshop); 52 53 // example submissions 54 $paths[] = new restore_path_element('workshop_examplesubmission', 55 '/activity/workshop/examplesubmissions/examplesubmission'); 56 57 // reference assessment of the example submission 58 $referenceassessment = new restore_path_element('workshop_referenceassessment', 59 '/activity/workshop/examplesubmissions/examplesubmission/referenceassessment'); 60 $paths[] = $referenceassessment; 61 62 // Apply for 'workshopform' subplugins optional paths at referenceassessment level 63 $this->add_subplugin_structure('workshopform', $referenceassessment); 64 65 // End here if no-user data has been selected 66 if (!$userinfo) { 67 return $this->prepare_activity_structure($paths); 68 } 69 70 //////////////////////////////////////////////////////////////////////// 71 // XML interesting paths - user data 72 //////////////////////////////////////////////////////////////////////// 73 74 // assessments of example submissions 75 $exampleassessment = new restore_path_element('workshop_exampleassessment', 76 '/activity/workshop/examplesubmissions/examplesubmission/exampleassessments/exampleassessment'); 77 $paths[] = $exampleassessment; 78 79 // Apply for 'workshopform' subplugins optional paths at exampleassessment level 80 $this->add_subplugin_structure('workshopform', $exampleassessment); 81 82 // submissions 83 $paths[] = new restore_path_element('workshop_submission', '/activity/workshop/submissions/submission'); 84 85 // allocated assessments 86 $assessment = new restore_path_element('workshop_assessment', 87 '/activity/workshop/submissions/submission/assessments/assessment'); 88 $paths[] = $assessment; 89 90 // Apply for 'workshopform' subplugins optional paths at assessment level 91 $this->add_subplugin_structure('workshopform', $assessment); 92 93 // aggregations of grading grades in this workshop 94 $paths[] = new restore_path_element('workshop_aggregation', '/activity/workshop/aggregations/aggregation'); 95 96 // Return the paths wrapped into standard activity structure 97 return $this->prepare_activity_structure($paths); 98 } 99 100 protected function process_workshop($data) { 101 global $DB; 102 103 $data = (object)$data; 104 $oldid = $data->id; 105 $data->course = $this->get_courseid(); 106 107 $data->timemodified = $this->apply_date_offset($data->timemodified); 108 $data->submissionstart = $this->apply_date_offset($data->submissionstart); 109 $data->submissionend = $this->apply_date_offset($data->submissionend); 110 $data->assessmentstart = $this->apply_date_offset($data->assessmentstart); 111 $data->assessmentend = $this->apply_date_offset($data->assessmentend); 112 113 // insert the workshop record 114 $newitemid = $DB->insert_record('workshop', $data); 115 // immediately after inserting "activity" record, call this 116 $this->apply_activity_instance($newitemid); 117 } 118 119 protected function process_workshop_examplesubmission($data) { 120 global $DB; 121 122 $data = (object)$data; 123 $oldid = $data->id; 124 125 $data->workshopid = $this->get_new_parentid('workshop'); 126 $data->example = 1; 127 $data->authorid = $this->task->get_userid(); 128 $data->timecreated = $this->apply_date_offset($data->timecreated); 129 $data->timemodified = $this->apply_date_offset($data->timemodified); 130 131 $newitemid = $DB->insert_record('workshop_submissions', $data); 132 $this->set_mapping('workshop_examplesubmission', $oldid, $newitemid, true); // Mapping with files 133 } 134 135 protected function process_workshop_referenceassessment($data) { 136 global $DB; 137 138 $data = (object)$data; 139 $oldid = $data->id; 140 141 $data->submissionid = $this->get_new_parentid('workshop_examplesubmission'); 142 $data->reviewerid = $this->task->get_userid(); 143 $data->timecreated = $this->apply_date_offset($data->timecreated); 144 $data->timemodified = $this->apply_date_offset($data->timemodified); 145 146 $newitemid = $DB->insert_record('workshop_assessments', $data); 147 $this->set_mapping('workshop_referenceassessment', $oldid, $newitemid, true); // Mapping with files 148 } 149 150 protected function process_workshop_exampleassessment($data) { 151 global $DB; 152 153 $data = (object)$data; 154 $oldid = $data->id; 155 156 $data->submissionid = $this->get_new_parentid('workshop_examplesubmission'); 157 $data->reviewerid = $this->get_mappingid('user', $data->reviewerid); 158 $data->timecreated = $this->apply_date_offset($data->timecreated); 159 $data->timemodified = $this->apply_date_offset($data->timemodified); 160 161 $newitemid = $DB->insert_record('workshop_assessments', $data); 162 $this->set_mapping('workshop_exampleassessment', $oldid, $newitemid, true); // Mapping with files 163 } 164 165 protected function process_workshop_submission($data) { 166 global $DB; 167 168 $data = (object)$data; 169 $oldid = $data->id; 170 171 $data->workshopid = $this->get_new_parentid('workshop'); 172 $data->example = 0; 173 $data->authorid = $this->get_mappingid('user', $data->authorid); 174 $data->timecreated = $this->apply_date_offset($data->timecreated); 175 $data->timemodified = $this->apply_date_offset($data->timemodified); 176 177 $newitemid = $DB->insert_record('workshop_submissions', $data); 178 $this->set_mapping('workshop_submission', $oldid, $newitemid, true); // Mapping with files 179 } 180 181 protected function process_workshop_assessment($data) { 182 global $DB; 183 184 $data = (object)$data; 185 $oldid = $data->id; 186 187 $data->submissionid = $this->get_new_parentid('workshop_submission'); 188 $data->reviewerid = $this->get_mappingid('user', $data->reviewerid); 189 $data->timecreated = $this->apply_date_offset($data->timecreated); 190 $data->timemodified = $this->apply_date_offset($data->timemodified); 191 192 $newitemid = $DB->insert_record('workshop_assessments', $data); 193 $this->set_mapping('workshop_assessment', $oldid, $newitemid, true); // Mapping with files 194 } 195 196 protected function process_workshop_aggregation($data) { 197 global $DB; 198 199 $data = (object)$data; 200 $oldid = $data->id; 201 202 $data->workshopid = $this->get_new_parentid('workshop'); 203 $data->userid = $this->get_mappingid('user', $data->userid); 204 $data->timegraded = $this->apply_date_offset($data->timegraded); 205 206 $newitemid = $DB->insert_record('workshop_aggregations', $data); 207 $this->set_mapping('workshop_aggregation', $oldid, $newitemid, true); 208 } 209 210 protected function after_execute() { 211 // Add workshop related files, no need to match by itemname (just internally handled context) 212 $this->add_related_files('mod_workshop', 'intro', null); 213 $this->add_related_files('mod_workshop', 'instructauthors', null); 214 $this->add_related_files('mod_workshop', 'instructreviewers', null); 215 $this->add_related_files('mod_workshop', 'conclusion', null); 216 217 // Add example submission related files, matching by 'workshop_examplesubmission' itemname 218 $this->add_related_files('mod_workshop', 'submission_content', 'workshop_examplesubmission'); 219 $this->add_related_files('mod_workshop', 'submission_attachment', 'workshop_examplesubmission'); 220 221 // Add reference assessment related files, matching by 'workshop_referenceassessment' itemname 222 $this->add_related_files('mod_workshop', 'overallfeedback_content', 'workshop_referenceassessment'); 223 $this->add_related_files('mod_workshop', 'overallfeedback_attachment', 'workshop_referenceassessment'); 224 225 // Add example assessment related files, matching by 'workshop_exampleassessment' itemname 226 $this->add_related_files('mod_workshop', 'overallfeedback_content', 'workshop_exampleassessment'); 227 $this->add_related_files('mod_workshop', 'overallfeedback_attachment', 'workshop_exampleassessment'); 228 229 // Add submission related files, matching by 'workshop_submission' itemname 230 $this->add_related_files('mod_workshop', 'submission_content', 'workshop_submission'); 231 $this->add_related_files('mod_workshop', 'submission_attachment', 'workshop_submission'); 232 233 // Add assessment related files, matching by 'workshop_assessment' itemname 234 $this->add_related_files('mod_workshop', 'overallfeedback_content', 'workshop_assessment'); 235 $this->add_related_files('mod_workshop', 'overallfeedback_attachment', 'workshop_assessment'); 236 } 237 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Aug 11 10:00:09 2016 | Cross-referenced by PHPXref 0.7.1 |