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