|
Moodle
2.2.1
http://www.collinsharper.com
|
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 00031 class restore_final_task extends restore_task { 00032 00036 public function build() { 00037 00038 // Move all the CONTEXT_MODULE question qcats to their 00039 // final (newly created) module context 00040 $this->add_step(new restore_move_module_questions_categories('move_module_question_categories')); 00041 00042 // Create all the question files now that every question is in place 00043 // and every category has its final contextid associated 00044 $this->add_step(new restore_create_question_files('create_question_files')); 00045 00046 // Review all the block_position records in backup_ids in order 00047 // match them now that all the contexts are created populating DB 00048 // as needed. Only if we are restoring blocks. 00049 if ($this->get_setting_value('blocks')) { 00050 $this->add_step(new restore_review_pending_block_positions('review_block_positions')); 00051 } 00052 00053 // Gradebook. Don't restore the gradebook unless activities are being restored. 00054 if ($this->get_setting_value('activities')) { 00055 $this->add_step(new restore_gradebook_structure_step('gradebook_step','gradebook.xml')); 00056 } 00057 00058 // Course completion 00059 $this->add_step(new restore_course_completion_structure_step('course_completion', 'completion.xml')); 00060 00061 // Review all the module_availability records in backup_ids in order 00062 // to match them with existing modules / grade items. 00063 $this->add_step(new restore_process_course_modules_availability('process_modules_availability')); 00064 00065 // Decode all the interlinks 00066 $this->add_step(new restore_decode_interlinks('decode_interlinks')); 00067 00068 // Restore course logs (conditionally). They are restored here because we need all 00069 // the activities to be already restored 00070 if ($this->get_setting_value('logs')) { 00071 $this->add_step(new restore_course_logs_structure_step('course_logs', 'course/logs.xml')); 00072 } 00073 00074 // Rebuild course cache to see results, whoah! 00075 $this->add_step(new restore_rebuild_course_cache('rebuild_course_cache')); 00076 00077 // Review all the executed tasks having one after_restore method 00078 // executing it to perform some final adjustments of information 00079 // not available when the task was executed. 00080 // This step is always the last one before the one cleaning the temp stuff! 00081 $this->add_step(new restore_execute_after_restore('executing_after_restore')); 00082 00083 // Clean the temp dir (conditionally) and drop temp table 00084 $this->add_step(new restore_drop_and_clean_temp_stuff('drop_and_clean_temp_stuff')); 00085 00086 $this->built = true; 00087 } 00088 00094 public function launch_execute_after_restore() { 00095 $this->plan->execute_after_restore(); 00096 } 00097 00108 static public function define_restore_log_rules() { 00109 $rules = array(); 00110 00111 // module 'course' rules 00112 $rules[] = new restore_log_rule('course', 'view', 'view.php?id={course}', '{course}'); 00113 $rules[] = new restore_log_rule('course', 'guest', 'view.php?id={course}', null); 00114 $rules[] = new restore_log_rule('course', 'user report', 'user.php?id={course}&user={user}&mode=[mode]', null); 00115 $rules[] = new restore_log_rule('course', 'add mod', '../mod/[modname]/view.php?id={course_module}', '[modname] {[modname]}'); 00116 $rules[] = new restore_log_rule('course', 'update mod', '../mod/[modname]/view.php?id={course_module}', '[modname] {[modname]}'); 00117 $rules[] = new restore_log_rule('course', 'delete mod', 'view.php?id={course}', null); 00118 $rules[] = new restore_log_rule('course', 'update', 'view.php?id={course}', ''); 00119 $rules[] = new restore_log_rule('course', 'enrol', 'view.php?id={course}', '{user}'); 00120 $rules[] = new restore_log_rule('course', 'unenrol', 'view.php?id={course}', '{user}'); 00121 $rules[] = new restore_log_rule('course', 'editsection', 'editsection.php?id={course_section}', null); 00122 $rules[] = new restore_log_rule('course', 'new', 'view.php?id={course}', ''); 00123 $rules[] = new restore_log_rule('course', 'recent', 'recent.php?id={course}', ''); 00124 $rules[] = new restore_log_rule('course', 'report log', 'report/log/index.php?id={course}', '{course}'); 00125 $rules[] = new restore_log_rule('course', 'report live', 'report/live/index.php?id={course}', '{course}'); 00126 $rules[] = new restore_log_rule('course', 'report outline', 'report/outline/index.php?id={course}', '{course}'); 00127 $rules[] = new restore_log_rule('course', 'report participation', 'report/participation/index.php?id={course}', '{course}'); 00128 $rules[] = new restore_log_rule('course', 'report stats', 'report/stats/index.php?id={course}', '{course}'); 00129 00130 // module 'user' rules 00131 $rules[] = new restore_log_rule('user', 'view', 'view.php?id={user}&course={course}', '{user}'); 00132 $rules[] = new restore_log_rule('user', 'change password', 'view.php?id={user}&course={course}', '{user}'); 00133 $rules[] = new restore_log_rule('user', 'login', 'view.php?id={user}&course={course}', '{user}'); 00134 $rules[] = new restore_log_rule('user', 'logout', 'view.php?id={user}&course={course}', '{user}'); 00135 $rules[] = new restore_log_rule('user', 'view all', 'index.php?id={course}', ''); 00136 $rules[] = new restore_log_rule('user', 'update', 'view.php?id={user}&course={course}', ''); 00137 00138 // rules from other tasks (activities) not belonging to one module instance (cmid = 0), so are restored here 00139 $rules = array_merge($rules, restore_logs_processor::register_log_rules_for_course()); 00140 00141 // TODO: Other logs like 'calendar', 'upload'... will go here 00142 00143 return $rules; 00144 } 00145 00146 00147 // Protected API starts here 00148 00152 protected function define_settings() { 00153 // This task has not settings (could have them, like destination or so in the future, let's see) 00154 } 00155 }