|
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 00030 class backup_root_task extends backup_task { 00031 00035 public function build() { 00036 00037 // Add all the steps needed to prepare any moodle2 backup to work 00038 $this->add_step(new create_and_clean_temp_stuff('create_and_clean_temp_stuff')); 00039 00040 $this->built = true; 00041 } 00042 00043 // Protected API starts here 00044 00045 protected function converter_deps($main_setting, $converters) { 00046 foreach ($this->settings as $setting) { 00047 $name = $setting->get_name(); 00048 if (in_array($name, $converters)) { 00049 $setvalue = convert_helper::export_converter_dependencies($name, $main_setting->get_name()); 00050 if ($setvalue !== false) { 00051 $setting->add_dependency($main_setting, $setvalue, array('value' => $name)); 00052 } 00053 } 00054 } 00055 } 00056 00060 protected function define_settings() { 00061 global $CFG; 00062 require_once($CFG->dirroot . '/backup/util/helper/convert_helper.class.php'); 00063 // Define filename setting 00064 $filename = new backup_filename_setting('filename', base_setting::IS_FILENAME, 'backup.mbz'); 00065 $filename->set_ui(get_string('filename', 'backup'), 'backup.mbz', array('size'=>50)); 00066 $this->add_setting($filename); 00067 00068 //Sample custom settings 00069 $converters = convert_helper::available_converters(false); 00070 foreach ($converters as $cnv) { 00071 $formatcnv = new backup_users_setting($cnv, base_setting::IS_BOOLEAN, false); 00072 $formatcnv->set_ui(new backup_setting_ui_checkbox($formatcnv, get_string('backupformat'.$cnv, 'backup'))); 00073 $this->add_setting($formatcnv); 00074 } 00075 00076 // Define users setting (keeping it on hand to define dependencies) 00077 $users = new backup_users_setting('users', base_setting::IS_BOOLEAN, true); 00078 $users->set_ui(new backup_setting_ui_checkbox($users, get_string('rootsettingusers', 'backup'))); 00079 $this->add_setting($users); 00080 $this->converter_deps($users, $converters); 00081 00082 // Define anonymize (dependent of users) 00083 $anonymize = new backup_anonymize_setting('anonymize', base_setting::IS_BOOLEAN, false); 00084 $anonymize->set_ui(new backup_setting_ui_checkbox($anonymize, get_string('rootsettinganonymize', 'backup'))); 00085 $this->add_setting($anonymize); 00086 $users->add_dependency($anonymize); 00087 00088 // Define role_assignments (dependent of users) 00089 $roleassignments = new backup_role_assignments_setting('role_assignments', base_setting::IS_BOOLEAN, true); 00090 $roleassignments->set_ui(new backup_setting_ui_checkbox($roleassignments, get_string('rootsettingroleassignments', 'backup'))); 00091 $this->add_setting($roleassignments); 00092 $users->add_dependency($roleassignments); 00093 00094 // Define user_files (dependent of users and anonymize) 00095 $userfiles = new backup_user_files_setting('user_files', base_setting::IS_BOOLEAN, true); 00096 $userfiles->set_ui(new backup_setting_ui_checkbox($userfiles, get_string('rootsettinguserfiles', 'backup'))); 00097 $this->add_setting($userfiles); 00098 $users->add_dependency($userfiles); 00099 $anonymize->add_dependency($userfiles, setting_dependency::DISABLED_TRUE); 00100 00101 // Define activities 00102 $activities = new backup_activities_setting('activities', base_setting::IS_BOOLEAN, true); 00103 $activities->set_ui(new backup_setting_ui_checkbox($activities, get_string('rootsettingactivities', 'backup'))); 00104 $this->add_setting($activities); 00105 00106 // Define blocks 00107 $blocks = new backup_generic_setting('blocks', base_setting::IS_BOOLEAN, true); 00108 $blocks->set_ui(new backup_setting_ui_checkbox($blocks, get_string('rootsettingblocks', 'backup'))); 00109 $this->add_setting($blocks); 00110 $this->converter_deps($blocks, $converters); 00111 00112 // Define filters 00113 $filters = new backup_generic_setting('filters', base_setting::IS_BOOLEAN, true); 00114 $filters->set_ui(new backup_setting_ui_checkbox($filters, get_string('rootsettingfilters', 'backup'))); 00115 $this->add_setting($filters); 00116 $this->converter_deps($filters, $converters); 00117 00118 // Define comments (dependent of users) 00119 $comments = new backup_comments_setting('comments', base_setting::IS_BOOLEAN, true); 00120 $comments->set_ui(new backup_setting_ui_checkbox($comments, get_string('rootsettingcomments', 'backup'))); 00121 $this->add_setting($comments); 00122 $users->add_dependency($comments); 00123 00124 // Define completion (dependent of users) 00125 $completion = new backup_userscompletion_setting('userscompletion', base_setting::IS_BOOLEAN, true); 00126 $completion->set_ui(new backup_setting_ui_checkbox($completion, get_string('rootsettinguserscompletion', 'backup'))); 00127 $this->add_setting($completion); 00128 $users->add_dependency($completion); 00129 00130 // Define logs (dependent of users) 00131 $logs = new backup_logs_setting('logs', base_setting::IS_BOOLEAN, true); 00132 $logs->set_ui(new backup_setting_ui_checkbox($logs, get_string('rootsettinglogs', 'backup'))); 00133 $this->add_setting($logs); 00134 $users->add_dependency($logs); 00135 00136 // Define grade_histories (dependent of users) 00137 $gradehistories = new backup_generic_setting('grade_histories', base_setting::IS_BOOLEAN, true); 00138 $gradehistories->set_ui(new backup_setting_ui_checkbox($gradehistories, get_string('rootsettinggradehistories', 'backup'))); 00139 $this->add_setting($gradehistories); 00140 $users->add_dependency($gradehistories); 00141 } 00142 }