Moodle  2.2.1
http://www.collinsharper.com
C:/xampp/htdocs/moodle/mod/workshop/backup/moodle2/restore_workshop_stepslib.php
Go to the documentation of this file.
00001 <?php
00002 
00003 // This file is part of Moodle - http://moodle.org/
00004 //
00005 // Moodle is free software: you can redistribute it and/or modify
00006 // it under the terms of the GNU General Public License as published by
00007 // the Free Software Foundation, either version 3 of the License, or
00008 // (at your option) any later version.
00009 //
00010 // Moodle is distributed in the hope that it will be useful,
00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013 // GNU General Public License for more details.
00014 //
00015 // You should have received a copy of the GNU General Public License
00016 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
00017 
00032 class restore_workshop_activity_structure_step extends restore_activity_structure_step {
00033 
00034     protected function define_structure() {
00035 
00036         $paths = array();
00037 
00038         $userinfo = $this->get_setting_value('userinfo'); // are we including userinfo?
00039 
00041         // XML interesting paths - non-user data
00043 
00044         // root element describing workshop instance
00045         $workshop = new restore_path_element('workshop', '/activity/workshop');
00046         $paths[] = $workshop;
00047 
00048         // Apply for 'workshopform' subplugins optional paths at workshop level
00049         $this->add_subplugin_structure('workshopform', $workshop);
00050 
00051         // Apply for 'workshopeval' subplugins optional paths at workshop level
00052         $this->add_subplugin_structure('workshopeval', $workshop);
00053 
00054         // example submissions
00055         $paths[] = new restore_path_element('workshop_examplesubmission',
00056                        '/activity/workshop/examplesubmissions/examplesubmission');
00057 
00058         // reference assessment of the example submission
00059         $referenceassessment = new restore_path_element('workshop_referenceassessment',
00060                                    '/activity/workshop/examplesubmissions/examplesubmission/referenceassessment');
00061         $paths[] = $referenceassessment;
00062 
00063         // Apply for 'workshopform' subplugins optional paths at referenceassessment level
00064         $this->add_subplugin_structure('workshopform', $referenceassessment);
00065 
00066         // End here if no-user data has been selected
00067         if (!$userinfo) {
00068             return $this->prepare_activity_structure($paths);
00069         }
00070 
00072         // XML interesting paths - user data
00074 
00075         // assessments of example submissions
00076         $exampleassessment = new restore_path_element('workshop_exampleassessment',
00077                                  '/activity/workshop/examplesubmissions/examplesubmission/exampleassessments/exampleassessment');
00078         $paths[] = $exampleassessment;
00079 
00080         // Apply for 'workshopform' subplugins optional paths at exampleassessment level
00081         $this->add_subplugin_structure('workshopform', $exampleassessment);
00082 
00083         // submissions
00084         $paths[] = new restore_path_element('workshop_submission', '/activity/workshop/submissions/submission');
00085 
00086         // allocated assessments
00087         $assessment = new restore_path_element('workshop_assessment',
00088                           '/activity/workshop/submissions/submission/assessments/assessment');
00089         $paths[] = $assessment;
00090 
00091         // Apply for 'workshopform' subplugins optional paths at assessment level
00092         $this->add_subplugin_structure('workshopform', $assessment);
00093 
00094         // aggregations of grading grades in this workshop
00095         $paths[] = new restore_path_element('workshop_aggregation', '/activity/workshop/aggregations/aggregation');
00096 
00097         // Return the paths wrapped into standard activity structure
00098         return $this->prepare_activity_structure($paths);
00099     }
00100 
00101     protected function process_workshop($data) {
00102         global $DB;
00103 
00104         $data = (object)$data;
00105         $oldid = $data->id;
00106         $data->course = $this->get_courseid();
00107 
00108         $data->timemodified = $this->apply_date_offset($data->timemodified);
00109         $data->submissionstart = $this->apply_date_offset($data->submissionstart);
00110         $data->submissionend = $this->apply_date_offset($data->submissionend);
00111         $data->assessmentstart = $this->apply_date_offset($data->assessmentstart);
00112         $data->assessmentend = $this->apply_date_offset($data->assessmentend);
00113 
00114         // insert the workshop record
00115         $newitemid = $DB->insert_record('workshop', $data);
00116         // immediately after inserting "activity" record, call this
00117         $this->apply_activity_instance($newitemid);
00118     }
00119 
00120     protected function process_workshop_examplesubmission($data) {
00121         global $DB;
00122 
00123         $data = (object)$data;
00124         $oldid = $data->id;
00125 
00126         $data->workshopid = $this->get_new_parentid('workshop');
00127         $data->example = 1;
00128         $data->authorid = $this->task->get_userid();
00129         $data->timecreated = $this->apply_date_offset($data->timecreated);
00130         $data->timemodified = $this->apply_date_offset($data->timemodified);
00131 
00132         $newitemid = $DB->insert_record('workshop_submissions', $data);
00133         $this->set_mapping('workshop_examplesubmission', $oldid, $newitemid, true); // Mapping with files
00134     }
00135 
00136     protected function process_workshop_referenceassessment($data) {
00137         global $DB;
00138 
00139         $data = (object)$data;
00140         $oldid = $data->id;
00141 
00142         $data->submissionid = $this->get_new_parentid('workshop_examplesubmission');
00143         $data->reviewerid = $this->task->get_userid();
00144         $data->timecreated = $this->apply_date_offset($data->timecreated);
00145         $data->timemodified = $this->apply_date_offset($data->timemodified);
00146 
00147         $newitemid = $DB->insert_record('workshop_assessments', $data);
00148         $this->set_mapping('workshop_referenceassessment', $oldid, $newitemid);
00149     }
00150 
00151     protected function process_workshop_exampleassessment($data) {
00152         global $DB;
00153 
00154         $data = (object)$data;
00155         $oldid = $data->id;
00156 
00157         $data->submissionid = $this->get_new_parentid('workshop_examplesubmission');
00158         $data->reviewerid = $this->get_mappingid('user', $data->reviewerid);
00159         $data->timecreated = $this->apply_date_offset($data->timecreated);
00160         $data->timemodified = $this->apply_date_offset($data->timemodified);
00161 
00162         $newitemid = $DB->insert_record('workshop_assessments', $data);
00163         $this->set_mapping('workshop_exampleassessment', $oldid, $newitemid);
00164     }
00165 
00166     protected function process_workshop_submission($data) {
00167         global $DB;
00168 
00169         $data = (object)$data;
00170         $oldid = $data->id;
00171 
00172         $data->workshopid = $this->get_new_parentid('workshop');
00173         $data->example = 0;
00174         $data->authorid = $this->get_mappingid('user', $data->authorid);
00175         $data->timecreated = $this->apply_date_offset($data->timecreated);
00176         $data->timemodified = $this->apply_date_offset($data->timemodified);
00177 
00178         $newitemid = $DB->insert_record('workshop_submissions', $data);
00179         $this->set_mapping('workshop_submission', $oldid, $newitemid, true); // Mapping with files
00180     }
00181 
00182     protected function process_workshop_assessment($data) {
00183         global $DB;
00184 
00185         $data = (object)$data;
00186         $oldid = $data->id;
00187 
00188         $data->submissionid = $this->get_new_parentid('workshop_submission');
00189         $data->reviewerid = $this->get_mappingid('user', $data->reviewerid);
00190         $data->timecreated = $this->apply_date_offset($data->timecreated);
00191         $data->timemodified = $this->apply_date_offset($data->timemodified);
00192 
00193         $newitemid = $DB->insert_record('workshop_assessments', $data);
00194         $this->set_mapping('workshop_assessment', $oldid, $newitemid);
00195     }
00196 
00197     protected function process_workshop_aggregation($data) {
00198         global $DB;
00199 
00200         $data = (object)$data;
00201         $oldid = $data->id;
00202 
00203         $data->workshopid = $this->get_new_parentid('workshop');
00204         $data->userid = $this->get_mappingid('user', $data->userid);
00205         $data->timegraded = $this->apply_date_offset($data->timegraded);
00206 
00207         $newitemid = $DB->insert_record('workshop_aggregations', $data);
00208     }
00209 
00210     protected function after_execute() {
00211         // Add workshop related files, no need to match by itemname (just internally handled context)
00212         $this->add_related_files('mod_workshop', 'intro', null);
00213         $this->add_related_files('mod_workshop', 'instructauthors', null);
00214         $this->add_related_files('mod_workshop', 'instructreviewers', null);
00215 
00216         // Add example submission related files, matching by 'workshop_examplesubmission' itemname
00217         $this->add_related_files('mod_workshop', 'submission_content', 'workshop_examplesubmission');
00218         $this->add_related_files('mod_workshop', 'submission_attachment', 'workshop_examplesubmission');
00219 
00220         // Add submission related files, matching by 'workshop_submission' itemname
00221         $this->add_related_files('mod_workshop', 'submission_content', 'workshop_submission');
00222         $this->add_related_files('mod_workshop', 'submission_attachment', 'workshop_submission');
00223     }
00224 }
 All Data Structures Namespaces Files Functions Variables Enumerations