MDL-21432 backup - all sort of restore tasks
[moodle.git] / backup / moodle2 / restore_root_task.class.php
1 <?php
3 // This file is part of Moodle - http://moodle.org/
4 //
5 // Moodle is free software: you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation, either version 3 of the License, or
8 // (at your option) any later version.
9 //
10 // Moodle is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
18 /**
19  * @package moodlecore
20  * @subpackage backup-moodle2
21  * @copyright 2010 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com}
22  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
23  */
25 /**
26  * Start task that provides all the settings common to all restores and other initial steps
27  *
28  * TODO: Finish phpdocs
29  */
30 class restore_root_task extends restore_task {
32     /**
33      * Create all the steps that will be part of this task
34      */
35     public function build() {
37         // TODO: Link all the preloading/precreation steps here
39         // At the end, mark it as built
40         $this->built = true;
41     }
43 // Protected API starts here
45     /**
46      * Define the common setting that any restore type will have
47      */
48     protected function define_settings() {
50         // Load all the root settings found in backup file from controller
51         $rootsettings = $this->get_info()->root_settings;
53         // Define users setting (keeping it on hand to define dependencies)
54         $selectvalues = array(0=>get_string('no')); // Safer options
55         $defaultvalue = false;                      // Safer default
56         if (isset($rootsettings['users']) && $rootsettings['users']) { // Only enabled when available
57             $selectvalues = array(1=>get_string('yes'), 0=>get_string('no'));
58             $defaultvalue = true;
59         }
60         $users = new restore_users_setting('users', base_setting::IS_BOOLEAN, $defaultvalue);
61         $users->set_ui(new backup_setting_ui_select($users, $users->get_name(), $selectvalues));
62         $this->add_setting($users);
64         // Define role_assignments (dependent of users)
65         $selectvalues = array(0=>get_string('no')); // Safer options
66         $defaultvalue = false;                      // Safer default
67         if (isset($rootsettings['role_assignments']) && $rootsettings['role_assignments']) { // Only enabled when available
68             $selectvalues = array(1=>get_string('yes'), 0=>get_string('no'));
69             $defaultvalue = true;
70         }
71         $roleassignments = new restore_role_assignments_setting('role_assignments', base_setting::IS_BOOLEAN, $defaultvalue);
72         $roleassignments->set_ui(new backup_setting_ui_select($roleassignments, $roleassignments->get_name(), $selectvalues));
73         $this->add_setting($roleassignments);
74         $users->add_dependency($roleassignments);
76         // Define user_files (dependent of users)
77         $selectvalues = array(0=>get_string('no')); // Safer options
78         $defaultvalue = false;                      // Safer default
79         if (isset($rootsettings['user_files']) && $rootsettings['user_files']) { // Only enabled when available
80             $selectvalues = array(1=>get_string('yes'), 0=>get_string('no'));
81             $defaultvalue = true;
82         }
83         $userfiles = new restore_user_files_setting('user_files', base_setting::IS_BOOLEAN, $defaultvalue);
84         $userfiles->set_ui(new backup_setting_ui_select($userfiles, $userfiles->get_name(), $selectvalues));
85         $this->add_setting($userfiles);
86         $users->add_dependency($userfiles);
88         // Define activitites
89         $selectvalues = array(0=>get_string('no')); // Safer options
90         $defaultvalue = false;                      // Safer default
91         if (isset($rootsettings['activities']) && $rootsettings['activities']) { // Only enabled when available
92             $selectvalues = array(1=>get_string('yes'), 0=>get_string('no'));
93             $defaultvalue = true;
94         }
95         $activities = new restore_activities_setting('activities', base_setting::IS_BOOLEAN, $defaultvalue);
96         $activities->set_ui(new backup_setting_ui_select($activities, $activities->get_name(), $selectvalues));
97         $this->add_setting($activities);
99         // Define blocks
100         $selectvalues = array(0=>get_string('no')); // Safer options
101         $defaultvalue = false;                      // Safer default
102         if (isset($rootsettings['blocks']) && $rootsettings['blocks']) { // Only enabled when available
103             $selectvalues = array(1=>get_string('yes'), 0=>get_string('no'));
104             $defaultvalue = true;
105         }
106         $blocks = new restore_generic_setting('blocks', base_setting::IS_BOOLEAN, $defaultvalue);
107         $blocks->set_ui(new backup_setting_ui_select($blocks, $blocks->get_name(), $selectvalues));
108         $this->add_setting($blocks);
110         // Define filters
111         $selectvalues = array(0=>get_string('no')); // Safer options
112         $defaultvalue = false;                      // Safer default
113         if (isset($rootsettings['filters']) && $rootsettings['filters']) { // Only enabled when available
114             $selectvalues = array(1=>get_string('yes'), 0=>get_string('no'));
115             $defaultvalue = true;
116         }
117         $filters = new restore_generic_setting('filters', base_setting::IS_BOOLEAN, $defaultvalue);
118         $filters->set_ui(new backup_setting_ui_select($filters, $filters->get_name(), $selectvalues));
119         $this->add_setting($filters);
121         // Define comments (dependent of users)
122         $selectvalues = array(0=>get_string('no')); // Safer options
123         $defaultvalue = false;                      // Safer default
124         if (isset($rootsettings['comments']) && $rootsettings['comments']) { // Only enabled when available
125             $selectvalues = array(1=>get_string('yes'), 0=>get_string('no'));
126             $defaultvalue = true;
127         }
128         $comments = new restore_comments_setting('comments', base_setting::IS_BOOLEAN, $defaultvalue);
129         $comments->set_ui(new backup_setting_ui_select($comments, $comments->get_name(), $selectvalues));
130         $this->add_setting($comments);
131         $users->add_dependency($comments);
133         // Define completion (dependent of users)
134         $selectvalues = array(0=>get_string('no')); // Safer options
135         $defaultvalue = false;                      // Safer default
136         if (isset($rootsettings['userscompletion']) && $rootsettings['userscompletion']) { // Only enabled when available
137             $selectvalues = array(1=>get_string('yes'), 0=>get_string('no'));
138             $defaultvalue = true;
139         }
140         $completion = new restore_userscompletion_setting('userscompletion', base_setting::IS_BOOLEAN, $defaultvalue);
141         $completion->set_ui(new backup_setting_ui_select($completion, $completion->get_name(), $selectvalues));
142         $this->add_setting($completion);
143         $users->add_dependency($completion);
145         // Define logs (dependent of users)
146         $selectvalues = array(0=>get_string('no')); // Safer options
147         $defaultvalue = false;                      // Safer default
148         if (isset($rootsettings['logs']) && $rootsettings['logs']) { // Only enabled when available
149             $selectvalues = array(1=>get_string('yes'), 0=>get_string('no'));
150             $defaultvalue = true;
151         }
152         $logs = new restore_logs_setting('logs', base_setting::IS_BOOLEAN, $defaultvalue);
153         $logs->set_ui(new backup_setting_ui_select($logs, $logs->get_name(), $selectvalues));
154         $this->add_setting($logs);
155         $users->add_dependency($logs);
157         // Define grade_histories (dependent of users)
158         $selectvalues = array(0=>get_string('no')); // Safer options
159         $defaultvalue = false;                      // Safer default
160         if (isset($rootsettings['grade_histories']) && $rootsettings['grade_histories']) { // Only enabled when available
161             $selectvalues = array(1=>get_string('yes'), 0=>get_string('no'));
162             $defaultvalue = true;
163         }
164         $gradehistories = new restore_grade_histories_setting('grade_histories', base_setting::IS_BOOLEAN, $defaultvalue);
165         $gradehistories->set_ui(new backup_setting_ui_select($gradehistories, $gradehistories->get_name(), $selectvalues));
166         $this->add_setting($gradehistories);
167         $users->add_dependency($gradehistories);
168     }