mirror of
https://github.com/moodle/moodle.git
synced 2025-01-19 06:18:28 +01:00
fa96ad2f97
See bug 1420. (http://moodle.org/bugs/bug.php?op=show&bugid=1420)
282 lines
11 KiB
HTML
282 lines
11 KiB
HTML
<?PHP //$Id$
|
|
//This page prints the restore form to select everything yo want
|
|
//to restore. Form is dinamically buid, depending of "info" object
|
|
//that contains the backup contents and depending of every mod
|
|
//capabilities.
|
|
|
|
//Get objects from session
|
|
$info = $SESSION->info;
|
|
$course_header = $SESSION->course_header;
|
|
|
|
//Check that we have all we need
|
|
//backup_unique_code
|
|
require_variable($backup_unique_code);
|
|
//file
|
|
require_variable($file);
|
|
//info
|
|
require_variable($info);
|
|
//course_header
|
|
require_variable($course_header);
|
|
|
|
//Check login
|
|
require_login();
|
|
|
|
//Check admin
|
|
if (!empty($id)) {
|
|
if (!isteacheredit($id)) {
|
|
error("You need to be a teacher or admin user to use this page.", "$CFG->wwwroot/login/index.php");
|
|
}
|
|
} else {
|
|
if (!isadmin()) {
|
|
error("You need to be an admin user to use this page.", "$CFG->wwwroot/login/index.php");
|
|
}
|
|
}
|
|
|
|
//Check site
|
|
if (!$site = get_site()) {
|
|
error("Site not found!");
|
|
}
|
|
|
|
//Checks for the required files/functions to restore every mod
|
|
$count = 0;
|
|
if ($allmods = get_records("modules") ) {
|
|
foreach ($allmods as $mod) {
|
|
$modname = $mod->name;
|
|
$modfile = "$CFG->dirroot/mod/$modname/restorelib.php";
|
|
$modrestore = $modname."_restore_mods";
|
|
if (file_exists($modfile)) {
|
|
include_once($modfile);
|
|
if (function_exists($modrestore)) {
|
|
$var = "exists_".$modname;
|
|
$$var = true;
|
|
$count++;
|
|
}
|
|
}
|
|
//Check data
|
|
//Check module info
|
|
$var = "restore_".$modname;
|
|
if (!isset($$var)) {
|
|
$$var = 1;
|
|
}
|
|
//Check include user info
|
|
$var = "restore_user_info_".$modname;
|
|
if (!isset($$var)) {
|
|
$$var = 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Check other parameters
|
|
if (!isset($restore_users)) {
|
|
$restore_users = 1;
|
|
}
|
|
|
|
if (!isset($restore_logs)) {
|
|
$restore_logs = 1;
|
|
}
|
|
|
|
if (!isset($restore_user_files)) {
|
|
$restore_user_files = 1;
|
|
}
|
|
|
|
if (!isset($restore_course_files)) {
|
|
$restore_course_files = 1;
|
|
}
|
|
|
|
if (!isset($restore_restoreto)) {
|
|
if (isteacheredit($id) and !isadmin()) {
|
|
$restore_restoreto = 1;
|
|
}
|
|
if (isadmin()) {
|
|
$restore_restoreto = 2;
|
|
}
|
|
}
|
|
|
|
if ($count == 0) {
|
|
notice("No restorable modules are installed!");
|
|
}
|
|
|
|
?>
|
|
|
|
<SCRIPT LANGUAGE="JavaScript">
|
|
<!--
|
|
function selectItemInMenuByName(formId, menuName, selectIndex ) {
|
|
myForm = document.getElementById(formId)
|
|
for (i=0,n=myForm.elements.length;i<n;i++) {
|
|
myLen = menuName.length;
|
|
myName = myForm.elements[i].name;
|
|
if (myName.substring(0,myLen) == menuName)
|
|
myForm.elements[i].options[selectIndex].selected = true;
|
|
}
|
|
}
|
|
-->
|
|
</script>
|
|
|
|
<form name="form1" id="form1" method="post" action="<?php echo $ME ?>">
|
|
<table cellpadding=5>
|
|
<?php
|
|
|
|
//First, course destination
|
|
//Print the full tr
|
|
echo "<tr>";
|
|
echo "<td align=\"right\"><P><b>";
|
|
echo get_string("restoreto").":</b>";
|
|
echo "</td><td>";
|
|
if (isteacheredit($id) and !isadmin()) {
|
|
$restore_restoreto_options[0] = get_string("currentcoursedeleting");
|
|
$restore_restoreto_options[1] = get_string("currentcourseadding");
|
|
}
|
|
if (isadmin()) {
|
|
$restore_restoreto_options[0] = get_string("existingcoursedeleting");
|
|
$restore_restoreto_options[1] = get_string("existingcourseadding");
|
|
$restore_restoreto_options[2] = get_string("newcourse");
|
|
}
|
|
choose_from_menu($restore_restoreto_options, "restore_restoreto", $restore_restoreto, "");
|
|
echo "</td></tr>";
|
|
//Line
|
|
echo "<tr><td colspan=\"2\"><hr noshade size=\"1\"></td></tr>";
|
|
//Now, check modules and info and show posibilities
|
|
if ($allmods = get_records("modules") ) {
|
|
//Print option to select/deselect every "with user info" popup. For Gustav, lol, Eloy :-)
|
|
echo "<tr>";
|
|
echo "<td colspan=\"2\" align=\"right\"><font size=\"-1\">";
|
|
echo get_string("userdata").":";
|
|
echo "<a href=\"javascript:void(0);\" onclick=\"selectItemInMenuByName('form1', 'restore_user_info_', '1');\">".
|
|
get_string("all")."</a>/";
|
|
echo "<a href=\"javascript:void(0);\" onclick=\"selectItemInMenuByName('form1', 'restore_user_info_', '0');\">".
|
|
get_string("none")."</a>";
|
|
echo "</font></td>";
|
|
echo "</tr>";
|
|
echo "<tr><td colspan=\"2\"><hr noshade size=\"1\"></td></tr>";
|
|
foreach ($allmods as $mod) {
|
|
$modname = $mod->name;
|
|
$modrestore = $modname."_restore_mods";
|
|
//If exists the lib & function
|
|
$exist = "exists_".$modname;
|
|
$restore_var = "restore_".$modname;
|
|
$user_info_var = "restore_user_info_".$modname;
|
|
if (isset($$exist)) {
|
|
if ($$exist) {
|
|
//Now check that we have that module info in the backup file
|
|
if (isset($info->mods[$modname]) && $info->mods[$modname]->backup == "true") {
|
|
//Print the full tr
|
|
echo "<tr>";
|
|
echo "<td align=\"right\"><P><B>";
|
|
echo get_string("include")." ". get_string("modulenameplural",$modname).":";
|
|
echo "</td><td>";
|
|
$restore_options[0] = get_string("no");
|
|
$restore_options[1] = get_string("yes");
|
|
choose_from_menu($restore_options, $restore_var, $$restore_var, "");
|
|
//If backup contains user data, then show menu, else fix it to
|
|
//without user data
|
|
if ($info->mods[$modname]->userinfo == "true") {
|
|
$restore_user_options[0] = get_string("withoutuserdata");
|
|
$restore_user_options[1] = get_string("withuserdata");
|
|
choose_from_menu($restore_user_options, $user_info_var, $$user_info_var, "");
|
|
} else {
|
|
//Module haven't userdata
|
|
echo get_string("withoutuserdata");
|
|
echo "<input type=\"hidden\" name=\"$user_info_var\" value=\"0\">";
|
|
}
|
|
echo "</td></tr>";
|
|
} else {
|
|
//Module isn't restorable
|
|
echo "<input type=\"hidden\" name=\"$restore_var\" value=\"0\">";
|
|
echo "<input type=\"hidden\" name=\"$user_info_var\" value=\"0\">";
|
|
}
|
|
} else {
|
|
//Module isn't restorable
|
|
echo "<input type=\"hidden\" name=\"$restore_var\" value=\"0\">";
|
|
echo "<input type=\"hidden\" name=\"$user_info_var\" value=\"0\">";
|
|
}
|
|
} else {
|
|
//Module isn't restorable
|
|
echo "<input type=\"hidden\" name=\"$restore_var\" value=\"0\">";
|
|
echo "<input type=\"hidden\" name=\"$user_info_var\" value=\"0\">";
|
|
}
|
|
}
|
|
//Line
|
|
echo "<tr><td colspan=\"2\"><hr noshade size=\"1\"></td></tr>";
|
|
|
|
//Now print the Users tr
|
|
echo "<tr>";
|
|
echo "<td align=\"right\"><P><B>";
|
|
echo get_string("users").":";
|
|
echo "</td><td>";
|
|
//If some user is present in the backup file
|
|
if ($info->backup_users == "all" or $info->backup_users == "course") {
|
|
//If all users are in the backup file
|
|
if ($info->backup_users == "all") {
|
|
$user_options[0] = get_string("all");
|
|
}
|
|
$user_options[1] = get_string("course");
|
|
$user_options[2] = get_string("none");
|
|
choose_from_menu($user_options, "restore_users", $restore_users, "");
|
|
} else {
|
|
echo get_string("none");
|
|
echo "<input type=\"hidden\" name=\"restore_users\" value=\"2\">";
|
|
|
|
}
|
|
echo "</td></tr>";
|
|
|
|
//Now print the Logs tr
|
|
echo "<tr>";
|
|
echo "<td align=\"right\"><P><B>";
|
|
echo get_string("logs").":";
|
|
echo "</td><td>";
|
|
//If logs are in the backup file, show menu, else fixed to no
|
|
if ($info->backup_logs == "true") {
|
|
$log_options[0] = get_string("no");
|
|
$log_options[1] = get_string("yes");
|
|
choose_from_menu($log_options, "restore_logs", $restore_logs, "");
|
|
} else {
|
|
echo get_string("no");
|
|
echo "<input type=\"hidden\" name=\"restore_logs\" value=\"0\">";
|
|
}
|
|
echo "</td></tr>";
|
|
|
|
//Now print the User Files tr
|
|
echo "<tr>";
|
|
echo "<td align=\"right\"><P><B>";
|
|
echo get_string ("userfiles").":";
|
|
echo "</td><td>";
|
|
//If user files are in the backup file, show menu, else fixed to no
|
|
if ($info->backup_user_files == "true") {
|
|
$user_file_options[0] = get_string("no");
|
|
$user_file_options[1] = get_string("yes");
|
|
choose_from_menu($user_file_options, "restore_user_files", $restore_user_files, "");
|
|
} else {
|
|
echo get_string("no");
|
|
echo "<input type=\"hidden\" name=\"restore_user_files\" value=\"0\">";
|
|
}
|
|
echo "</td></tr>";
|
|
|
|
//Now print the Course Files tr
|
|
echo "<tr>";
|
|
echo "<td align=\"right\"><P><B>";
|
|
echo get_string ("coursefiles").":";
|
|
echo "</td><td>";
|
|
//If course files are in the backup file, show menu, else fixed to no
|
|
if ($info->backup_course_files == "true") {
|
|
$course_file_options[0] = get_string("no");
|
|
$course_file_options[1] = get_string("yes");
|
|
choose_from_menu($course_file_options, "restore_course_files", $restore_course_files, "");
|
|
} else {
|
|
echo get_string("no");
|
|
echo "<input type=\"hidden\" name=\"restore_course_files\" value=\"0\">";
|
|
}
|
|
echo "</td></tr>";
|
|
echo "<input type=\"hidden\" name=\"backup_unique_code\" value=\"$backup_unique_code\">";
|
|
echo "<input type=\"hidden\" name=\"file\" value=\"$file\">";
|
|
}
|
|
?>
|
|
</table>
|
|
<BR>
|
|
<CENTER>
|
|
<input type="hidden" name=id value="<?php p($id) ?>">
|
|
<input type="hidden" name=launch value="check">
|
|
<input type="submit" value="<?php print_string("continue") ?>">
|
|
<input type="submit" name=cancel value="<?php print_string("cancel") ?>">
|
|
</CENTER>
|
|
</FORM>
|