2 //This page prints the backup form to select everything
7 if (!empty($course->id
)) {
8 if (!has_capability('moodle/site:backup', get_context_instance(CONTEXT_COURSE
, $course->id
))) {
10 error("You need to be a teacher or admin user to use this page.", "$CFG->wwwroot/login/index.php");
12 if (!has_capability('moodle/site:backup', get_context_instance(CONTEXT_COURSE
, $to))) {
13 error("You need to be a teacher or admin user to use this page.", "$CFG->wwwroot/login/index.php");
18 if (!has_capability('moodle/site:backup', get_context_instance(CONTEXT_SYSTEM
, SITEID
))) {
19 error("You need to be an admin user to use this page.", "$CFG->wwwroot/login/index.php");
24 if (!$site = get_site()) {
25 error("Site not found!");
28 //Checks for the required files/functions to backup every mod
29 //And check if there is data about it
31 if ($allmods = get_records("modules") ) {
32 foreach ($allmods as $mod) {
33 $modname = $mod->name
;
34 $modfile = "$CFG->dirroot/mod/$modname/backuplib.php";
35 $modbackup = $modname."_backup_mods";
36 $modbackupone = $modname.'_backup_one_mod';
37 $modcheckbackup = $modname."_check_backup_mods";
38 if (file_exists($modfile)) {
39 include_once($modfile);
40 if (function_exists($modbackup) and function_exists($modcheckbackup)) {
41 $var = "exists_".$modname;
44 // check that there are instances and we can back them up individually
45 if (count_records('course_modules','course',$course->id
,'module',$mod->id
) && function_exists($modbackupone)) {
46 $var = 'exists_one_'.$modname;
53 $var = "backup_".$modname;
54 $
$var = optional_param( $var,1);
55 //Check include user info
56 $var = "backup_user_info_".$modname;
57 $
$var = optional_param( $var,1);
61 //Check other parameters
62 $backup_metacourse = optional_param('backup_metacourse',1);
63 $backup_users = optional_param('backup_users',1);
64 $backup_logs = optional_param('backup_logs',0);
65 $backup_user_files = optional_param('backup_user_files',1);
66 $backup_course_files = optional_param('backup_course_files',1);
67 $backup_site_files = optional_param('backup_site_files',1);
68 $backup_gradebook_history = optional_param('backup_gradebook_history', 1, PARAM_INT
);
69 $backup_messages = optional_param('backup_messages',1);
72 notice("No backupable modules are installed!");
77 <script type=
"text/javascript">
79 function selectItemInMenuByName(formId
, menuName
, selectIndex
) {
80 myForm
= document
.getElementById(formId
)
81 for (i
=0,n
=myForm
.elements
.length
;i
<n
;i
++) {
82 myLen
= menuName
.length
;
83 myName
= myForm
.elements
[i
].name
;
84 myType
= myForm
.elements
[i
].type
;
85 if (myName
.substring(0,myLen
) == menuName
&& myType
== "select-one") {
86 myForm
.elements
[i
].options
[selectIndex
].selected
= true;
91 function selectItemInRadioByName(formId
, radioName
, selectIndex
) {
92 myForm
= document
.getElementById(formId
)
93 for (i
=0,n
=myForm
.elements
.length
;i
<n
;i
++) {
94 myLen
= radioName
.length
;
95 myName
= myForm
.elements
[i
].name
;
96 myType
= myForm
.elements
[i
].type
;
97 if (myName
.substring(0,myLen
) == radioName
&& myType
== "radio") {
98 myRadioGroup
= myForm
.elements
[myName
];
99 myRadioGroup
[selectIndex
].checked
= true;
104 function selectItemInCheckboxByName(formId
, checkName
, checked
) {
105 myForm
= document
.getElementById(formId
);
106 for (i
=0,n
=myForm
.elements
.length
;i
<n
;i
++) {
107 myLen
= checkName
.length
;
108 myName
= myForm
.elements
[i
].name
;
109 myType
= myForm
.elements
[i
].type
;
110 if (myName
.substring(0,myLen
) == checkName
&& myType
== "checkbox") {
111 myForm
.elements
[i
].checked
= checked
;
117 <form id=
"form1" method=
"post" action=
"backup.php">
118 <table cellpadding=
"5" style=
"margin-left:auto;margin-right:auto;">
120 /// Acummulator for hidden options and proper XHTML output
121 $hidden_options = '';
122 //Now, check modules and info and show posibilities
123 if ($allmods = get_records("modules") ) {
124 //Print option to select/deselect everything with 1 click.
126 echo "<td align=\"right\">";
127 echo '<b>'.get_string("include").":</b>";
129 echo "<a href=\"javascript:void(0);\" onclick=\"selectItemInCheckboxByName('form1', 'backup_', true);\">". get_string("all")."</a>/";
130 echo "<a href=\"javascript:void(0);\" onclick=\"selectItemInCheckboxByName('form1', 'backup_', false);\">". get_string("none")."</a>";
132 echo "<td align=\"right\">";
133 echo '<b> </b>';
135 echo "<a href=\"javascript:void(0);\" onclick=\"selectItemInCheckboxByName('form1', 'backup_user_info_', true);\">". get_string("all")."</a>/";
136 echo "<a href=\"javascript:void(0);\" onclick=\"selectItemInCheckboxByName('form1', 'backup_user_info_', false);\">". get_string("none")."</a>";
139 echo "<tr><td colspan=\"4\"><hr /></td></tr>";
141 foreach ($allmods as $mod) {
142 $modname = $mod->name
;
143 $modbackup = $modname."_backup_mods";
144 //If exists the lib & function
145 $var = "exists_".$modname;
146 if (isset($
$var) && $
$var) {
148 echo "<tr class=\"r".$currentrow."\">";
149 echo " <td align=\"right\"> ";
151 $backup_options[0] = get_string("no");
152 $backup_options[1] = get_string("yes");
153 $var = "backup_".$modname;
154 //choose_from_menu($backup_options, $var, $$var, "");
156 print_checkbox($var, $
$var, $
$var, get_string("modulenameplural",$modname),'','selectItemInCheckboxByName(\'form1\',\'backup_'.$modname.'\',this.checked)');
157 echo "</td><td align=\"right\"> ";
159 $var = "backup_user_info_".$modname;
161 $backup_user_options[0] = get_string("withoutuserdata");
162 $backup_user_options[1] = get_string("withuserdata");
163 //choose_from_menu($backup_user_options, $var, $$var, "");
164 print_checkbox($var, $
$var, $
$var, get_string("userdata"),'','selectItemInCheckboxByName(\'form1\',\'backup_user_info_'.$modname.'\',this.checked)');
166 echo '<input type="hidden" name="'.$var.'" value="0" />';
169 // if we have the backup_one_mod function, loop here.
170 $var = 'exists_one_'.$modname;
172 echo '<tr><td></td><td colspan="3"><table class="backup-form-instances">';
173 $instances = get_all_instances_in_course($modname,$course);
174 foreach ($instances as $instance) {
176 $var = 'backup_'.$modname.'_instance_'.$instance->id
;
177 $
$var = optional_param($var,1);
178 print_checkbox($var,$
$var,$
$var,$instance->name
,$instance->name
,'this.form.elements[\'backup_'.$modname.'\'].checked=1;');
179 echo '</td><td align="right"> ';
180 $var = 'backup_user_info_'.$modname.'_instance_'.$instance->id
;
181 $
$var = optional_param($var,1);
183 print_checkbox($var,$
$var,$
$var,get_string('userdata'),'','this.form.elements[\'backup_user_info_'.$modname.'\'].checked=1;');
185 echo '<input type="hidden" name="'.$var.'" value="0" />';
189 echo '</table></td></tr>';
195 echo "<tr><td colspan=\"4\"><hr /></td></tr>\n";
197 if (empty($to) && !empty($course->metacourse
)) {
198 //Now print the Metacourse tr
200 echo "<td align=\"right\" colspan=\"2\"><b>";
201 echo get_string ("metacourse").":";
202 echo "</b></td><td colspan=\"2\">";
203 $meta_options[0] = get_string("no");
204 $meta_options[1] = get_string("yes");
205 choose_from_menu($meta_options, "backup_metacourse", $backup_metacourse, "");
209 $hidden_options .= '<input type="hidden" name="backup_metacourse" value="0" />';
213 //Now print the Users tr
215 echo "<td align=\"right\" colspan=\"2\"><b>";
216 echo get_string("users").":";
217 echo "</b></td><td colspan=\"2\">";
218 $user_options[0] = get_string("all");
219 $user_options[1] = get_string("course");
220 $user_options[2] = get_string("none");
221 choose_from_menu($user_options, "backup_users", $backup_users, "");
225 $hidden_options .= '<input type="hidden" name="backup_users" value="0" />';
229 //Now print the Logs tr
231 echo "<td align=\"right\" colspan=\"2\"><b>";
232 echo get_string("logs").":";
233 echo "</b></td><td colspan=\"2\">";
234 $log_options[0] = get_string("no");
235 $log_options[1] = get_string("yes");
236 choose_from_menu($log_options, "backup_logs", $backup_logs, "");
240 $hidden_options .= '<input type="hidden" name="backup_logs" value="0" />';
244 //Now print the User Files tr
246 echo "<td align=\"right\" colspan=\"2\"><b>";
247 echo get_string ("userfiles").":";
248 echo "</b></td><td colspan=\"2\">";
249 $user_file_options[0] = get_string("no");
250 $user_file_options[1] = get_string("yes");
251 choose_from_menu($user_file_options, "backup_user_files", $backup_user_files, "");
255 $hidden_options .= '<input type="hidden" name="backup_user_files" value="0" />';
257 //Now print the Course Files tr
259 echo "<td align=\"right\" colspan=\"2\"><b>";
260 echo get_string ("coursefiles").":";
261 echo "</b></td><td colspan=\"2\">";
262 $course_file_options[0] = get_string("no");
263 $course_file_options[1] = get_string("yes");
264 choose_from_menu($course_file_options, "backup_course_files", $backup_course_files, "");
268 if ($course->id
!= SITEID
){
269 //Now print the site Files tr
271 echo "<td align=\"right\" colspan=\"2\"><b>";
272 echo get_string ("sitefilesused").":";
273 helpbutton('sitefilesused', get_string('sitefilesused'));
274 echo "</b></td><td colspan=\"2\">";
275 $course_file_options[0] = get_string("no");
276 $course_file_options[1] = get_string("yes");
277 choose_from_menu($course_file_options, "backup_site_files", $backup_site_files, "");
281 // do you want grade histories to be backed up?
283 echo "<td align=\"right\" colspan=\"2\"><b>";
284 echo get_string ('gradebookhistories', 'grades').":";
285 echo "</b></td><td colspan=\"2\">";
286 $gradebook_history_options[0] = get_string("no");
287 $gradebook_history_options[1] = get_string("yes");
288 choose_from_menu($gradebook_history_options, "backup_gradebook_history", $backup_gradebook_history, "");
291 if (empty($to) && $course->id
== SITEID
) {
292 //If we are in a SITEID backup print the Messages tr
294 echo "<td align=\"right\" colspan=\"2\"><b>";
295 echo get_string ('messages','message').":";
296 echo "</b></td><td colspan=\"2\">";
297 $mess_options[0] = get_string("no");
298 $mess_options[1] = get_string("yes");
299 choose_from_menu($mess_options, "backup_messages", $backup_messages, "");
303 $hidden_options .= '<input type="hidden" name="backup_messages" value="0" />';
307 $backup_unique_code = time();
309 //Calculate the backup string
310 //Calculate the backup unique code to allow simultaneus backups (to define
311 //the temp-directory name and records in backup temp tables
312 $backup_name = backup_get_zipfile_name($course, $backup_unique_code);
318 /// Print captured hidden options, now that we have closed the table
319 echo $hidden_options;
322 <div style=
"text-align:center;margin-left:auto;margin-right:auto">
323 <input type=
"hidden" name=
"id" value=
"<?php p($id) ?>" />
324 <input type
="hidden" name
="to" value
="<?php p($to) ?>" />
325 <input type
="hidden" name
="backup_unique_code" value
="<?php p($backup_unique_code); ?>" />
326 <input type
="hidden" name
="backup_name" value
="<?php p($backup_name); ?>" />
327 <input type
="hidden" name
="launch" value
="check" />
328 <input type
="submit" value
="<?php print_string("continue") ?>" />
329 <input type
="submit" name
="cancel" value
="<?php print_string("cancel
") ?>" />