]> git.mjollnir.org Git - moodle.git/commitdiff
Changed to support the backup_ids table in all modules (to store and
authorstronk7 <stronk7>
Sat, 3 May 2003 23:15:43 +0000 (23:15 +0000)
committerstronk7 <stronk7>
Sat, 3 May 2003 23:15:43 +0000 (23:15 +0000)
convert ids in backup/restore.
Added a check_version (copied from main moodle auto-update) to mantain
changes in backup/restore system.

backup/backup.php
backup/check.html
backup/mod/assignment/backuplib.php
backup/mod/choice/backuplib.php
backup/mod/forum/backuplib.php
backup/mod/journal/backuplib.php
backup/mod/pgassignment/backuplib.php
backup/mod/quiz/backuplib.php
backup/mod/resource/backuplib.php
backup/mod/survey/backuplib.php

index 4ed292d5afd1a4e08f85d8e6af41147c36c0f2a7..e03c7fa24d832287d7568d95aadaed3a848f29b6 100644 (file)
@@ -13,6 +13,9 @@
 
     //Units used
     require_once ("$moodle_home/config.php");
+    require_once ("backup_version.php");
+    require_once ("db/backup_$CFG->dbtype.php");
+    require_once ("lib.php");
 
     //Optional variables    
     optional_variable($id);       // course id
     if (!$site = get_site()) {
         error("Site not found!");
     }
+    
+    //Check backup_version
+    if ($CFG->backup_version) {
+        if ($backup_version > $CFG->backup_version) {  // upgrade
+            $a->oldversion = $CFG->backup_version;
+            $a->newversion = $backup_version;
+            $strdatabasechecking = get_string("databasechecking", "", $a);
+            $strdatabasesuccess  = get_string("databasesuccess");
+            print_header($strdatabasechecking, $strdatabasechecking, $strdatabasechecking);
+            print_heading($strdatabasechecking);
+            $db->debug=true;
+            if (backup_upgrade($a->oldversion)) {
+                $db->debug=false;
+                if (set_config("backup_version", $a->newversion)) {
+                    notify($strdatabasesuccess, "green");
+                    print_continue("backup.php");
+                    die;
+                } else {
+                    notify("Upgrade failed!  (Could not update version in config table)");
+                    die;
+                }
+            } else {
+                $db->debug=false;
+                notify("Upgrade failed!  See backup_version.php");
+                die;
+            }
+        } else if ($backup_version < $CFG->backup_version) {
+            notify("WARNING!!!  The code you are using is OLDER than the version that made these databases!");
+        }
+    //Not exists. Starting installation
+    } else {
+        $strdatabaseupgrades = get_string("databaseupgrades");
+        print_header($strdatabaseupgrades, $strdatabaseupgrades, $strdatabaseupgrades);
+
+        if (set_config("backup_version", "2003010100")) {
+            print_heading("You are currently going to install the needed structures to Backup/Recover");
+            print_continue("backup.php");
+            die;
+        }
+    }
 
     //Get strings
     $strcoursebackup = get_string("coursebackup");
index 9a4f371b8dc7375dfc9854df6dc17e536f99e976..378962326376968808eab6e760f79108782c7b3b 100644 (file)
@@ -63,7 +63,7 @@
     echo "<tr>";
     echo "<td align=\"right\"><P><B>";
     echo get_string("name").":";
-    echo "</td><td>";
+    echo "</B></td><td>";
     //Calculate the backup string
     $backup_name = strtolower(get_string("backup"));
     //If non-translated, use "backup"
     if (substr($backup_name_format,0,1) == "[") {
         $backup_name_format = "%%Y%%m%%d-%%H%%M";
     }
-    $backup_name .= "-".userdate(time(),$backup_name_format,99,false).".zip";
+    $backup_name .= "-".strtolower($course->shortname)."-".userdate(time(),$backup_name_format,99,false).".zip";
     echo $backup_name;
     //Add as hidden name
     echo "<input type=\"hidden\" name=\"backup_name\" value=\"".$backup_name."\">";
     echo "</td></tr>";
 
-    //Calculate the temp dir name to do all the work
-    $tempdir_name = userdate(time(),"%Y%m%d%H%M",99,false);
+    //Calculate the backup unique code to allow simultaneus backups (to define
+    //the temp-directory name and records in backup temp tables
+    $backup_unique_code = time();
     //Add as hidden name
-    echo "<input type=\"hidden\" name=\"tempdir_name\" value=\"".$tempdir_name."\">";
+    echo "<input type=\"hidden\" name=\"backup_unique_code\" value=\"".$backup_unique_code."\">";
     
     //Line
     echo "<tr><td colspan=\"2\"><hr noshade size=\"1\"></td></tr>";
                     echo $backup_user_options[$$var]."<P>";
                     //Call the check function to show more info
                     $modcheckbackup = $modname."_check_backup_mods";
-                    $table->data = $modcheckbackup($id,$$var);
+                    $table->data = $modcheckbackup($id,$$var,$backup_unique_code);
                     print_table($table); 
                     echo "</td></tr>";
                 }
index e6767afbb6d6c8b835f7fb886ae6f19252874a6c..0412a76854d7588971267878f0490556b05722cf 100644 (file)
     //
     //-----------------------------------------------------------
 
-    function assignment_backup_mods($course,$user_data=false) {
+    function assignment_backup_mods($course,$user_data=false,$backup_unique_code) {
         print "hola";
     }
 
     //Return an array of info (name,value)
-    function assignment_check_backup_mods($course,$user_data=false) {
+    function assignment_check_backup_mods($course,$user_data=false,$backup_unique_code) {
         //First the course data
         $info[0][0] = get_string("modulenameplural","assignment");
         if ($ids = assignment_ids ($course)) {
index 7a41c9acee39325c9bedc1f8954da4d551ba23b9..3fdf518bfaf9b323b0ae59c8c9dc1e5b395386b7 100644 (file)
     //
     //-----------------------------------------------------------
 
-    function choice_backup_mods($course,$user_data=false) {
+    function choice_backup_mods($course,$user_data=false,$backup_unique_code) {
         print "hola";
     }
    
    ////Return an array of info (name,value)
-   function choice_check_backup_mods($course,$user_data=false) {
+   function choice_check_backup_mods($course,$user_data=false,$backup_unique_code) {
         //First the course data
         $info[0][0] = get_string("modulenameplural","choice");
         if ($ids = choice_ids ($course)) {
index 023ae99296f4ca3cdd3b9756c5141f2694ced145..33a4b86cd307dca6f441409944976ff02ad9d88c 100644 (file)
@@ -36,7 +36,7 @@
     }
 
    ////Return an array of info (name,value)
-   function forum_check_backup_mods($course,$user_data=false) {
+   function forum_check_backup_mods($course,$user_data=false,$backup_unique_code) {
         //First the course data
         $info[0][0] = get_string("modulenameplural","forum");
         if ($ids = forum_ids ($course)) {
index ae22a46ac5302375e8dfc4adea6660e6c41cf6b2..519a601b576702c1f11e0b6a9a631b8d69697292 100644 (file)
     //
     //-----------------------------------------------------------
 
-    function journal_backup_mods($course,$user_data=false) {
+    function journal_backup_mods($course,$user_data=false,$backup_unique_code) {
         print "hola";
     }
    
    ////Return an array of info (name,value)
-   function journal_check_backup_mods($course,$user_data=false) {
+   function journal_check_backup_mods($course,$user_data=false,$backup_unique_code) {
         //First the course data
         $info[0][0] = get_string("modulenameplural","journal");
         if ($ids = journal_ids ($course)) {
index 267ce4735d06812dd65f06a25efd8b90c3650a45..fbe2a908101a03bff1918931e03fb33227f03c26 100644 (file)
     //
     //-----------------------------------------------------------
 
-    function pgassignment_backup_mods($course,$user_data=false) {
+    function pgassignment_backup_mods($course,$user_data=false,$backup_unique_code) {
         print "hola";
     }
 
    ////Return an array of info (name,value)
-   function pgassignment_check_backup_mods($course,$user_data=false) {
+   function pgassignment_check_backup_mods($course,$user_data=false,$backup_unique_code) {
         //First the course data
         $info[0][0] = get_string("modulenameplural","pgassignment");
         if ($ids = pgassignment_ids ($course)) {
index e67e439d5342598bf196079bd195b54a3370ba3d..405083b35dfcd2b517fd13f1cc76db1bd2ddaf6f 100644 (file)
     //
     //-----------------------------------------------------------
 
-    function quiz_backup_mods() {
+    //THIS MOD BACKUP NEEDS TO USE THE mdl_backup_ids TABLE
+
+    function quiz_backup_mods($course,$user_data=false,$backup_unique_code) {
         print "hola";
     }
 
    ////Return an array of info (name,value)
-   function quiz_check_backup_mods($course,$user_data=false) {
+   function quiz_check_backup_mods($course,$user_data=false,$backup_unique_code) {
+        //Deletes data from mdl_backup_ids (categories section)
+        delete_category_ids ($backup_unique_code);
+        //Create date into mdl_backup_ids (categories section)
+        insert_category_ids ($course,$backup_unique_code);
         //First the course data
         $info[0][0] = get_string("modulenameplural","quiz");
         if ($ids = quiz_ids ($course)) {
         }
         //Categories
         $info[1][0] = get_string("categories","quiz");
-        if ($ids = quiz_category_ids_by_course ($course)) {
+        if ($ids = quiz_category_ids_by_backup ($backup_unique_code)) {
             $info[1][1] = count($ids);
         } else {
             $info[1][1] = 0;
         }
         //Questions
         $info[2][0] = get_string("questions","quiz");
-        if ($ids = quiz_question_ids_by_course ($course)) {
+        if ($ids = quiz_question_ids_by_backup ($backup_unique_code)) {
             $info[2][1] = count($ids);
         } else {
             $info[2][1] = 0;
     }
 
     //Returns an array of categories id
-    function quiz_category_ids_by_course ($course) {
+    function quiz_category_ids_by_backup ($backup_unique_code) {
 
         global $CFG;
 
-        return get_records_sql ("SELECT a.id, a.course
-                                 FROM {$CFG->prefix}quiz_categories a
-                                 WHERE a.course = '$course'");
+        return get_records_sql ("SELECT a.old_id, a.backup_code
+                                 FROM {$CFG->prefix}backup_ids a
+                                 WHERE a.backup_code = '$backup_unique_code'");
     }
 
-    function quiz_question_ids_by_course ($course) {
+    function quiz_question_ids_by_backup ($backup_unique_code) {
 
         global $CFG;
 
         return get_records_sql ("SELECT q.id, q.category
-                                 FROM {$CFG->prefix}quiz_categories a,
+                                 FROM {$CFG->prefix}backup_ids a,
                                       {$CFG->prefix}quiz_questions q
-                                 WHERE a.course = '$course' and
-                                       q.category = a.id");
+                                 WHERE a.backup_code = '$backup_unique_code' and
+                                       q.category = a.old_id");
     }
 
     function quiz_grade_ids_by_course ($course) {
index f7581496304cdb992b296465f9818bc2589fa2bb..4915763c6beb74f71b9079d0fc347a2ca687cb5f 100644 (file)
     //
     //-----------------------------------------------------------
 
-    function resource_backup_mods($course,$user_data=false) {
+    function resource_backup_mods($course,$user_data=false,$backup_unique_code) {
         print "hola";
     }
    
    ////Return an array of info (name,value)
-   function resource_check_backup_mods($course,$user_data=false) {
+   function resource_check_backup_mods($course,$user_data=false,$backup_unique_code) {
         //First the course data
         $info[0][0] = get_string("modulenameplural","resource");
         if ($ids = resource_ids ($course)) {
index f407402578a8a32b81f6da2e0c3bfef3cb8b9c8f..e1b35338954b93b3691db4debe2bcaed0e9929b0 100644 (file)
@@ -27,7 +27,7 @@
     }
 
    ////Return an array of info (name,value)
-   function survey_check_backup_mods($course,$user_data=false) {
+   function survey_check_backup_mods($course,$user_data=false,$backup_unique_code) {
         //First the course data
         $info[0][0] = get_string("modulenameplural","survey");
         if ($ids = survey_ids ($course)) {