From 572248937e90c9af855c742e5df563d16c7f3fd5 Mon Sep 17 00:00:00 2001 From: stronk7 Date: Fri, 4 Feb 2005 14:33:51 +0000 Subject: [PATCH] Now metacourse in supported in manual and scheduled backups. It can be configured in both backups. Please check if the used structure and exported data has sense! --- backup/CHANGES_14_15.txt | 4 +- backup/backup_check.html | 9 ++++- backup/backup_execute.html | 12 ++++++ backup/backup_form.html | 19 ++++++++++ backup/backup_scheduled.php | 10 +++++ backup/backuplib.php | 76 ++++++++++++++++++++++++++++++++++++- backup/config.html | 12 ++++++ 7 files changed, 137 insertions(+), 5 deletions(-) diff --git a/backup/CHANGES_14_15.txt b/backup/CHANGES_14_15.txt index 8fef95fa078..5f9f1d258be 100644 --- a/backup/CHANGES_14_15.txt +++ b/backup/CHANGES_14_15.txt @@ -36,10 +36,10 @@ Now I show the specific detailed status of every item in the process: mimic it. 22. TODO: Review the wiki module fully (if possible, try to make binary uploaded contents to work). -23. TODO: Add support for metacourses in backup and restore. Show a new option +23. PROG: Add support for metacourses in backup and restore. Show a new option to decide what to do (ignore, process). 24. DONE: Take out THEME from backup directory. 25. TODO: Add support for forum_read table in backup and restore. -26. TODO: chat_users->course and chat_users->lang. +26. DONE: chat_users->course and chat_users->lang. No changes required! Eloy (stronk7) 23-01-2004 diff --git a/backup/backup_check.html b/backup/backup_check.html index 32ecf8b5a9c..525585188f2 100644 --- a/backup/backup_check.html +++ b/backup/backup_check.html @@ -58,6 +58,10 @@ } //Check other parameters + if (!isset($backup_metacourse)) { + $backup_metacourse = 1; + } + if (!isset($backup_users)) { $backup_users = 1; } @@ -215,10 +219,13 @@ } } + //Write metacourse hidden field + echo ""; + if (empty($to)) { //Line echo "
"; - + //Now print the Users tr echo ""; echo "

"; diff --git a/backup/backup_execute.html b/backup/backup_execute.html index fad9a5c0184..41fb9a1d457 100644 --- a/backup/backup_execute.html +++ b/backup/backup_execute.html @@ -66,6 +66,11 @@ } //Check other parameters + if (!isset($backup_metacourse)) { + $backup_metacourse = 1; + } + $preferences->backup_metacourse = $backup_metacourse; + if (!isset($backup_users)) { $backup_users = 1; } @@ -175,6 +180,13 @@ notify("An error occurred while backing up course start"); } } + //Metacourse information + if ($status && $preferences->backup_metacourse) { + echo "

  • ".get_string("metacourse"); + if (!$status = backup_course_metacourse($backup_file,$preferences)) { + notify("An error occurred while backing up metacourse info"); + } + } echo "
  • ".get_string("blocks"); //Blocks information if ($status) { diff --git a/backup/backup_form.html b/backup/backup_form.html index 7c542858b83..23b54cab253 100644 --- a/backup/backup_form.html +++ b/backup/backup_form.html @@ -57,6 +57,10 @@ } //Check other parameters + if (!isset($backup_metacourse)) { + $backup_metacourse = 1; + } + if (!isset($backup_users)) { $backup_users = 1; } @@ -113,6 +117,21 @@ //Line echo "
    "; + if (empty($to)) { + //Now print the Metacourse tr + echo ""; + echo "

    "; + echo get_string ("metacourse").":"; + echo ""; + $meta_options[0] = get_string("no"); + $meta_options[1] = get_string("yes"); + choose_from_menu($meta_options, "backup_metacourse", $backup_metacourse, ""); + echo ""; + } + else { + echo ''; + } + if (empty($to)) { //Now print the Users tr echo ""; diff --git a/backup/backup_scheduled.php b/backup/backup_scheduled.php index 5df07623378..3dfd083186b 100644 --- a/backup/backup_scheduled.php +++ b/backup/backup_scheduled.php @@ -307,6 +307,9 @@ function schedule_backup_course_configure($course,$starttime = 0) { if (!isset($backup_config->backup_sche_withuserdata)) { $backup_config->backup_sche_withuserdata = 1; } + if (!isset($backup_config->backup_sche_metacourse)) { + $backup_config->backup_sche_metacourse = 1; + } if (!isset($backup_config->backup_sche_users)) { $backup_config->backup_sche_users = 1; } @@ -381,6 +384,7 @@ function schedule_backup_course_configure($course,$starttime = 0) { //Convert other parameters if ($status) { + $preferences->backup_metacourse = $backup_config->backup_sche_metacourse; $preferences->backup_users = $backup_config->backup_sche_users; $preferences->backup_logs = $backup_config->backup_sche_logs; $preferences->backup_user_files = $backup_config->backup_sche_userfiles; @@ -558,6 +562,12 @@ function schedule_backup_course_execute($preferences,$starttime = 0) { $status = backup_course_start($backup_file,$preferences); } + //Metacourse information + if ($status && $preferences->backup_metacourse) { + schedule_backup_log($starttime,$preferences->backup_course," metacourse info"); + $status = backup_course_metacourse($backup_file,$preferences); + } + //Block info if ($status) { schedule_backup_log($starttime,$preferences->backup_course," blocks info"); diff --git a/backup/backuplib.php b/backup/backuplib.php index 7187f65dd30..b1026a79586 100644 --- a/backup/backuplib.php +++ b/backup/backuplib.php @@ -495,6 +495,12 @@ //Print the end fwrite ($bf,end_tag("MOD",3,true)); } + //The metacourse in backup + if ($preferences->backup_metacourse == 1) { + fwrite ($bf,full_tag("METACOURSE",3,false,"true")); + } else { + fwrite ($bf,full_tag("METACOURSE",3,false,"false")); + } //The user in backup if ($preferences->backup_users == 1) { fwrite ($bf,full_tag("USERS",3,false,"course")); @@ -586,7 +592,14 @@ fwrite ($bf,full_tag("VISIBLE",3,false,$course->visible)); fwrite ($bf,full_tag("HIDDENSECTIONS",3,false,$course->hiddensections)); fwrite ($bf,full_tag("TIMECREATED",3,false,$course->timecreated)); - $status = fwrite ($bf,full_tag("TIMEMODIFIED",3,false,$course->timemodified)); + fwrite ($bf,full_tag("TIMEMODIFIED",3,false,$course->timemodified)); + //If not selected, force metacourse to 0 + if (!$preferences->backup_metacourse) { + $status = fwrite ($bf,full_tag("METACOURSE",3,false,'0')); + //else, export the field as is in DB + } else { + $status = fwrite ($bf,full_tag("METACOURSE",3,false,$course->metacourse)); + } //Print header end fwrite ($bf,end_tag("HEADER",2,true)); } else { @@ -606,7 +619,66 @@ } - //Prints course's sections info (table block_instance) + //Prints course's metacourse info (table course_meta) + function backup_course_metacourse ($bf,$preferences) { + + global $CFG; + + $status = true; + + //Get info from meta + $parents = get_records_sql ("SELECT m.*, c.idnumber, c.shortname + FROM {$CFG->prefix}course_meta m, + {$CFG->prefix}course c + WHERE m.child_course = '$preferences->backup_course' AND + m.parent_course = c.id"); + $childs = get_records_sql ("SELECT m.*, c.idnumber, c.shortname + FROM {$CFG->prefix}course_meta m, + {$CFG->prefix}course c + WHERE m.parent_course = '$preferences->backup_course' AND + m.child_course = c.id"); + + if ($parents || $childs) { + //metacourse open tag + fwrite ($bf,start_tag("METACOURSE",2,true)); + if ($parents) { + fwrite($bf, start_tag("PARENTS",3,true)); + //Iterate over every parent + foreach ($parents as $parent) { + //Begin parent + fwrite ($bf,start_tag("PARENT",4,true)); + fwrite ($bf,full_tag("ID",5,false,$parent->parent_course)); + fwrite ($bf,full_tag("IDNUMBER",5,false,$parent->idnumber)); + fwrite ($bf,full_tag("SHORTNAME",5,false,$parent->shortname)); + //End parent + fwrite ($bf,end_tag("PARENT",4,true)); + } + fwrite ($bf,end_tag("PARENTS",3,true)); + } + if ($childs) { + fwrite($bf, start_tag("CHILDS",3,true)); + //Iterate over every child + foreach ($childs as $child) { + //Begin parent + fwrite ($bf,start_tag("CHILD",4,true)); + fwrite ($bf,full_tag("ID",5,false,$child->child_course)); + fwrite ($bf,full_tag("IDNUMBER",5,false,$child->idnumber)); + fwrite ($bf,full_tag("SHORTNAME",5,false,$child->shortname)); + //End parent + fwrite ($bf,end_tag("CHILD",4,true)); + } + fwrite ($bf,end_tag("CHILDS",3,true)); + } + //metacourse close tag + $status = fwrite ($bf,end_tag("METACOURSE",3,true)); + } + + return $status; + + } + + + //Prints course's blocks info (table block_instance) function backup_course_blocks ($bf,$preferences) { global $CFG; diff --git a/backup/config.html b/backup/config.html index 5bf164a91e4..3ce9151d440 100644 --- a/backup/config.html +++ b/backup/config.html @@ -20,6 +20,9 @@ if (!isset($backup_config->backup_sche_withuserdata)) { $backup_config->backup_sche_withuserdata = 1; } + if (!isset($backup_config->backup_sche_metacourse)) { + $backup_config->backup_sche_metacourse = 1; + } if (!isset($backup_config->backup_sche_users)) { $backup_config->backup_sche_users = 1; } @@ -98,6 +101,15 @@ + +

    : + + backup_sche_metacourse, "") ?> + + + + +

    :