From fa96ad2f97b1be5aacfbac58687553e9ad9ffaf7 Mon Sep 17 00:00:00 2001 From: stronk7 Date: Thu, 20 May 2004 18:36:59 +0000 Subject: [PATCH] New feature implemented allowing none-user course backups. See bug 1420. (http://moodle.org/bugs/bug.php?op=show&bugid=1420) --- backup/backup_check.html | 27 +++++++++ backup/backup_form.html | 3 +- backup/backuplib.php | 123 +++++++++++++++++++++------------------ backup/restore_form.html | 20 ++++--- 4 files changed, 106 insertions(+), 67 deletions(-) diff --git a/backup/backup_check.html b/backup/backup_check.html index 956f7c6662..226bff97e7 100644 --- a/backup/backup_check.html +++ b/backup/backup_check.html @@ -132,6 +132,32 @@ //Now print the To Do list echo ""; echo "

"; + + //Here we check if backup_users = None. Then, we switch off every module + //user info, user_files, logs and exercises and workshop backups. A Warning is showed to + //inform the user. + if ($backup_users == 2) { + if ($allmods = get_records("modules") ) { + foreach ($allmods as $mod) { + $modname = $mod->name; + $var = "backup_user_info_".$modname; + if (isset($$var)) { + $$var = 0; + } + $var = "backup_".$modname; + if (isset($$var)) { + if ($modname == "exercise" || $modname == "workshop") { + $$var = 0; + } + } + } + $backup_user_files = 0; + $backup_logs = 0; + } + print_simple_box("".get_string("backupnoneusersinfo")."","center", "70%", "$THEME->cellheading", "20", "noticebox"); + echo "


"; + } + echo get_string("backupdetails").":"; echo ""; @@ -180,6 +206,7 @@ echo "

"; $user_options[0] = get_string("includeallusers"); $user_options[1] = get_string("includecourseusers"); + $user_options[2] = get_string("includenoneusers"); echo "

  • ".$user_options[$backup_users]."

    "; //Add as hidden name echo ""; diff --git a/backup/backup_form.html b/backup/backup_form.html index 379b5bf49a..b93d490380 100644 --- a/backup/backup_form.html +++ b/backup/backup_form.html @@ -14,7 +14,6 @@ } } - //Check site if (!$site = get_site()) { error("Site not found!"); @@ -110,7 +109,7 @@ echo ""; $user_options[0] = get_string("all"); $user_options[1] = get_string("course"); - //$user_options[2] = get_string("needed");-->NOT IMPLEMENTED + $user_options[2] = get_string("none"); choose_from_menu($user_options, "backup_users", $backup_users, ""); echo ""; diff --git a/backup/backuplib.php b/backup/backuplib.php index 0b2e7b2374..93e2d1b9f1 100644 --- a/backup/backuplib.php +++ b/backup/backuplib.php @@ -33,79 +33,84 @@ function user_check_backup($course,$backup_unique_code,$backup_users) { //$backup_users=0-->all // 1-->course (needed + enrolled) + // 2-->none global $CFG; global $db; $count_users = 0; + + //If we've selected none, simply return 0 + if ($backup_users == 0 or $backup_users == 1) { - //Calculate needed users (calling every xxxx_get_participants function + scales users) - $needed_users = backup_get_needed_users($course); + //Calculate needed users (calling every xxxx_get_participants function + scales users) + $needed_users = backup_get_needed_users($course); - //Calculate enrolled users (students + teachers) - $enrolled_users = backup_get_enrolled_users($course); + //Calculate enrolled users (students + teachers) + $enrolled_users = backup_get_enrolled_users($course); - //Calculate all users (every record in users table) - $all_users = backup_get_all_users(); + //Calculate all users (every record in users table) + $all_users = backup_get_all_users(); - //Calculate course users (needed + enrolled) - //First, needed - $course_users = $needed_users; + //Calculate course users (needed + enrolled) + //First, needed + $course_users = $needed_users; - //Now, enrolled - if ($enrolled_users) { - foreach ($enrolled_users as $enrolled_user) { - $course_users[$enrolled_user->id]->id = $enrolled_user->id; + //Now, enrolled + if ($enrolled_users) { + foreach ($enrolled_users as $enrolled_user) { + $course_users[$enrolled_user->id]->id = $enrolled_user->id; + } } - } - //Now, depending of parameters, create $backupable_users - if ($backup_users == 0) { - $backupable_users = $all_users; - } else { - $backupable_users = $course_users; - } + //Now, depending of parameters, create $backupable_users + if ($backup_users == 0) { + $backupable_users = $all_users; + } else { + $backupable_users = $course_users; + } - //If we have backupable users - if ($backupable_users) { - //Iterate over users putting their roles - foreach ($backupable_users as $backupable_user) { - $backupable_user->info = ""; - //Is Admin in tables (not is_admin()) !! - if (record_exists("user_admins","userid",$backupable_user->id)) { - $backupable_user->info .= "admin"; - } - //Is Course Creator in tables (not is_coursecreator()) !! - if (record_exists("user_coursecreators","userid",$backupable_user->id)) { - $backupable_user->info .= "coursecreator"; - } - //Is Teacher in tables (not is_teacher()) !! - if (record_exists("user_teachers","course",$course,"userid",$backupable_user->id)) { - $backupable_user->info .= "teacher"; - } - //Is Student in tables (not is_student()) !! - if (record_exists("user_students","course",$course,"userid",$backupable_user->id)) { - $backupable_user->info .= "student"; - } - //Is needed user (exists in needed_users) - if (isset($needed_users[$backupable_user->id])) { - $backupable_user->info .= "needed"; + //If we have backupable users + if ($backupable_users) { + //Iterate over users putting their roles + foreach ($backupable_users as $backupable_user) { + $backupable_user->info = ""; + //Is Admin in tables (not is_admin()) !! + if (record_exists("user_admins","userid",$backupable_user->id)) { + $backupable_user->info .= "admin"; + } + //Is Course Creator in tables (not is_coursecreator()) !! + if (record_exists("user_coursecreators","userid",$backupable_user->id)) { + $backupable_user->info .= "coursecreator"; + } + //Is Teacher in tables (not is_teacher()) !! + if (record_exists("user_teachers","course",$course,"userid",$backupable_user->id)) { + $backupable_user->info .= "teacher"; + } + //Is Student in tables (not is_student()) !! + if (record_exists("user_students","course",$course,"userid",$backupable_user->id)) { + $backupable_user->info .= "student"; + } + //Is needed user (exists in needed_users) + if (isset($needed_users[$backupable_user->id])) { + $backupable_user->info .= "needed"; + } + //Now create the backup_id record + $backupids_rec->backup_code = $backup_unique_code; + $backupids_rec->table_name = "user"; + $backupids_rec->old_id = $backupable_user->id; + $backupids_rec->info = $backupable_user->info; + + //Insert the record id. backup_users decide it. + //When all users + $status = insert_record("backup_ids",$backupids_rec,false,"backup_code"); + $count_users++; } - //Now create the backup_id record - $backupids_rec->backup_code = $backup_unique_code; - $backupids_rec->table_name = "user"; - $backupids_rec->old_id = $backupable_user->id; - $backupids_rec->info = $backupable_user->info; - - //Insert the record id. backup_users decide it. - //When all users - $status = insert_record("backup_ids",$backupids_rec,false,"backup_code"); - $count_users++; + //Do some output + backup_flush(30); } - //Do some output - backup_flush(30); } - + //Prepare Info //Gets the user data $info[0][0] = get_string("users"); @@ -484,8 +489,10 @@ //The user in backup if ($preferences->backup_users == 1) { fwrite ($bf,full_tag("USERS",3,false,"course")); - } else { + } else if ($preferences->backup_users == 0) { fwrite ($bf,full_tag("USERS",3,false,"all")); + } else { + fwrite ($bf,full_tag("USERS",3,false,"none")); } //The logs in backup if ($preferences->backup_logs == 1) { diff --git a/backup/restore_form.html b/backup/restore_form.html index 0e1b4d9d9e..8bc2823651 100644 --- a/backup/restore_form.html +++ b/backup/restore_form.html @@ -203,14 +203,20 @@ function selectItemInMenuByName(formId, menuName, selectIndex ) { echo "

    "; echo get_string("users").":"; echo ""; - //If all users are in the backup file - if ($info->backup_users == "all") { - $user_options[0] = get_string("all"); + //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 ""; + } - $user_options[1] = get_string("course"); - $user_options[2] = get_string("none"); - //$user_options[2] = get_string("needed");-->NOT IMPLEMENTED - choose_from_menu($user_options, "restore_users", $restore_users, ""); echo ""; //Now print the Logs tr -- 2.39.5