weekly release 1.9.12+
[moodle.git] / backup / backup_check.html
blobb881a13d9902f7e107f91f95648196c70f19b39d
1 <?php //$Id$
2 //This page prints the backup todo list to see everything
4 //Check login
5 require_login();
7 // Init backupuserinfo
8 $backupuserinfo = false;
10 if (!empty($course->id)) {
11 if (!has_capability('moodle/site:backup', get_context_instance(CONTEXT_COURSE, $course->id))) {
12 if (empty($to)) {
13 error("You need to be a teacher or admin user to use this page.", "$CFG->wwwroot/login/index.php");
14 } else {
15 if (!has_capability('moodle/site:backup', get_context_instance(CONTEXT_COURSE, $to))) {
16 error("You need to be a teacher or admin user to use this page.", "$CFG->wwwroot/login/index.php");
20 $backupuserinfo = has_capability('moodle/backup:userinfo', get_context_instance(CONTEXT_COURSE, $course->id));
21 } else {
22 if (!has_capability('moodle/site:backup', get_context_instance(CONTEXT_SYSTEM))) {
23 error("You need to be an admin user to use this page.", "$CFG->wwwroot/login/index.php");
25 $backupuserinfo = has_capability('moodle/backup:userinfo', get_context_instance(CONTEXT_SYSTEM));
30 $backupprefs = new StdClass;
31 $count = 0;
32 backup_fetch_prefs_from_request($backupprefs,$count,$course);
36 //Check site
37 if (!$site = get_site()) {
38 error("Site not found!");
40 if ($count == 0) {
41 notice("No backupable modules are installed!");
44 if (!execute_sql("DELETE FROM {$CFG->prefix}backup_ids WHERE backup_code = '{$backupprefs->backup_unique_code}'",false)){
45 error('Couldn\'t delete previous backup ids.');
50 <form id="form" method="post" action="backup.php">
51 <table cellpadding="5" style="text-align:center;margin-left:auto;margin-right:auto">
52 <?php
53 echo '<input type="hidden" name="sesskey" value="'.sesskey().'" />';
55 if (empty($to)) {
56 //Now print the Backup Name tr
57 echo "<tr>";
58 echo "<td align=\"right\"><b>";
59 echo get_string("name").":";
60 echo "</b></td><td>";
61 //Add as text field
62 echo "<input type=\"text\" name=\"backup_name\" size=\"40\" value=\"".$backupprefs->backup_name."\" />";
63 echo "</td></tr>";
65 //Line
66 echo "<tr><td colspan=\"2\"><hr /></td></tr>";
68 //Now print the To Do list
69 echo "<tr>";
70 echo "<td colspan=\"2\" align=\"center\"><b>";
74 // Re-enforce 'moodle/site:backup' at system context to be able to backup all users
75 if ($backupprefs->backup_users == 0 and !has_capability('moodle/site:backup', get_context_instance(CONTEXT_SYSTEM))) {
76 $backupprefs->backup_users = 1; // users => course
79 // Re-enforce moodle/backup:userinfo capability
80 if (!$backupuserinfo) {
81 $backupprefs->backup_users = 2; // users => none
84 //Here we check if backup_users = None. Then, we switch off every module
85 //user info, user_files, logs and exercises, workshop and messages & blogs backups. A Warning is showed to
86 //inform the user.
87 // TODO: Move this logic to one function to be shared by any (manual, scheduled) backup
88 if ($backupprefs->backup_users == 2) {
89 if ($allmods = get_records('modules') ) {
90 foreach ($allmods as $mod) {
91 /// Reset global user_info settings to "no" (0)
92 $modname = $mod->name;
93 $var = 'backup_user_info_'.$modname;
94 if (isset($backupprefs->$var)) {
95 $backupprefs->$var = 0;
97 /// Reset each instance userinfo settings to "no" (0)
98 if (isset($backupprefs->mods[$modname])) {
99 /// Set the module userinfo to no (0)
100 $backupprefs->mods[$modname]->userinfo = 0;
101 /// Set the instances to no (o)
102 foreach ($backupprefs->mods[$modname]->instances as $key => $instance) {
103 $backupprefs->mods[$modname]->instances[$key]->userinfo = 0;
104 $var = 'backup_user_info_' . $modname . '_instance_' . $key;
105 $backupprefs->$var = 0;
108 /// If modules are workshop or exercise, disable their backup completely
109 if ($modname == 'exercise' || $modname == 'workshop') {
110 $var = 'backup_'.$modname;
111 if (isset($backupprefs->$var)) {
112 $backupprefs->$var = 0;
113 /// Reset each instance backup settings to "no" (0)
114 if (isset($backupprefs->mods[$modname])) {
115 /// Set the module backup to no (0)
116 $backupprefs->mods[$modname]->backup = 0;
117 $var = 'backup_' . $modname . '_instances';
118 $backupprefs->$var = 0;
119 /// Set the instances backup to no (o)
120 foreach ($backupprefs->mods[$modname]->instances as $key => $instance) {
121 $backupprefs->mods[$modname]->instances[$key]->backup = 0;
122 $var = 'backup_' . $modname . '_instance_' . $key;
123 $backupprefs->$var = 0;
130 $backupprefs->backup_user_files = 0;
131 $backupprefs->backup_logs = 0;
132 $backupprefs->backup_messages = 0;
133 $backupprefs->backup_blogs = 0;
134 $backupprefs->backuproleassignments = array();
136 if ($backupuserinfo) { // Based on perms, decide the msg to show
137 $nousersmsgtoshow = 'backupnoneusersinfo';
138 } else {
139 $nousersmsgtoshow = 'backupmissinguserinfoperms';
141 print_simple_box("<font color=\"red\">".get_string($nousersmsgtoshow)."</font>","center", "70%", '', "20", "noticebox");
142 echo "<hr />";
145 if (empty($to)) {
146 echo get_string("backupdetails").":";
147 echo "</b></td></tr>";
150 //This is the alignment of every row in the table
151 $table->align = array ("left","right");
153 if ($allmods = get_records("modules") ) {
154 foreach ($allmods as $mod) {
155 $modname = $mod->name;
156 $modfile = $CFG->dirroot.'/mod/'.$modname.'/backuplib.php';
157 if (!file_exists($modfile)) {
158 continue;
160 require_once($modfile);
161 $modbackup = $modname."_backup_mods";
162 //If exists the lib & function
163 $var = "exists_".$modname;
164 if (isset($backupprefs->$var) && $backupprefs->$var) {
165 $var = "backup_".$modname;
166 //Only if selected
167 if (!empty($backupprefs->$var) and ($backupprefs->$var == 1)) {
168 //Print the full tr
169 echo "<tr>";
170 echo "<td colspan=\"2\">";
171 //Print the mod name
172 echo "<b>".get_string("include")." ".get_string("modulenameplural",$modname)." ";
173 //Now look for user-data status
174 $backup_user_options[0] = get_string("withoutuserdata");
175 $backup_user_options[1] = get_string("withuserdata");
176 $var = "backup_user_info_".$modname;
177 //Print the user info
178 echo $backup_user_options[$backupprefs->$var]."</b>";
179 //Call the check function to show more info
180 $modcheckbackup = $modname."_check_backup_mods";
181 $var = $modname.'_instances';
182 $instancestopass = array();
183 if (!empty($backupprefs->$var) && is_array($backupprefs->$var) && count($backupprefs->$var)) {
184 $table->data = array();
185 $countinstances = 0;
186 foreach ($backupprefs->$var as $instance) {
187 $var1 = 'backup_'.$modname.'_instance_'.$instance->id;
188 $var2 = 'backup_user_info_'.$modname.'_instance_'.$instance->id;
189 if (!empty($backupprefs->$var1)) {
190 $obj = new StdClass;
191 $obj->name = $instance->name;
192 $obj->userdata = $backupprefs->$var2;
193 $obj->id = $instance->id;
194 $instancestopass[$instance->id]= $obj;
195 $countinstances++;
200 $table->data = $modcheckbackup($id,$backupprefs->$var,$backupprefs->backup_unique_code,$instancestopass);
201 print_table($table);
202 echo "</td></tr>";
208 if (empty($to)) {
209 //Line
210 echo "<tr><td colspan=\"2\"><hr /></td></tr>";
212 //Now print the Users tr
213 echo "<tr>";
214 echo "<td colspan=\"2\"><b>";
215 $user_options[0] = get_string("includeallusers");
216 $user_options[1] = get_string("includecourseusers");
217 $user_options[2] = get_string("includenoneusers");
218 echo $user_options[$backupprefs->backup_users].'</b>';
219 //Print info
220 $table->data = user_check_backup($id,$backupprefs->backup_unique_code,$backupprefs->backup_users,$backupprefs->backup_messages, $backupprefs->backup_blogs);
221 print_table($table);
222 echo "</td></tr>";
226 //Now print the Logs tr conditionally
227 if ($backupprefs->backup_logs && empty($to)) {
228 echo "<tr>";
229 echo "<td colspan=\"2\"><b>";
230 echo get_string("includelogentries").'</b>';
231 //Print info
232 $table->data = log_check_backup($id);
233 print_table($table);
234 echo "</td></tr>";
237 //Now print the User Files tr conditionally
238 if ($backupprefs->backup_user_files) {
239 echo "<tr>";
240 echo "<td colspan=\"2\"><b>";
241 echo get_string("includeuserfiles").'</b>';
242 //Print info
243 $table->data = user_files_check_backup($id,$backupprefs->backup_unique_code);
244 print_table($table);
245 echo "</td></tr>";
248 //Now print the Course Files tr conditionally
249 if ($backupprefs->backup_course_files) {
250 echo "<tr>";
251 echo "<td colspan=\"2\"><b>";
252 echo get_string("includecoursefiles").'</b>';
253 //Print info
254 $table->data = course_files_check_backup($id,$backupprefs->backup_unique_code);
255 print_table($table);
256 echo "</td></tr>";
259 //Now print the site Files tr conditionally
260 if ($backupprefs->backup_site_files) {
261 echo "<tr>";
262 echo "<td colspan=\"2\"><b>";
263 echo get_string("includesitefiles").'</b>';
264 //Print info
265 $table->data = site_files_check_backup($id,$backupprefs->backup_unique_code);
266 print_table($table);
267 echo "</td></tr>";
270 //Now print the role assignments information conditionally
271 if (!empty($backupprefs->backuproleassignments)) {
272 echo "<tr>";
273 echo "<td colspan=\"2\"><b>";
274 echo get_string("includeroleassignments").'</b>';
275 //Print info
276 $table->data = array(array(get_string('roles'), count($backupprefs->backuproleassignments)));
277 print_table($table);
278 echo "</td></tr>";
282 // now keep it for next time.
283 $SESSION->backupprefs[$course->id] = $backupprefs;
286 </table>
287 <div style="text-align:center;margin-left:auto;margin-right:auto">
288 <input type="hidden" name="to" value="<?php p($to) ?>" />
289 <input type="hidden" name="id" value="<?php p($id) ?>" />
290 <input type="hidden" name="launch" value="execute" />
291 <input type="submit" value="<?php print_string("continue") ?>" />
292 <input type="submit" name="cancel" value="<?php print_string("cancel") ?>" />
293 </div>
294 </form>