Moodle  2.2.1
http://www.collinsharper.com
C:/xampp/htdocs/moodle/backup/moodle2/restore_final_task.class.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 
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 }
 All Data Structures Namespaces Files Functions Variables Enumerations