]> git.mjollnir.org Git - moodle.git/commitdiff
Restoring choices COMPLETED
authorstronk7 <stronk7>
Sun, 1 Jun 2003 18:19:09 +0000 (18:19 +0000)
committerstronk7 <stronk7>
Sun, 1 Jun 2003 18:19:09 +0000 (18:19 +0000)
backup/STATUS.txt
backup/mod/choice/restorelib.php

index db4093627163cd8889c896b3958bde4ccb5e9423..1c2df21354c37966a988051c788bb1b2682371ef 100644 (file)
@@ -6,7 +6,8 @@ This documment shows the current status of the backup/restore option.
 Backup:  WORKING. COMPLETED but only assignments, resources,
                   choices and surveys.
 
-Restore: WORKING. COMPLETED but only assignments and resources.
+Restore: WORKING. COMPLETED but only assignments, resources 
+                  and choices.
                   
 
 ========== ========== ========== ========== ========== ==========
@@ -159,10 +160,10 @@ Restore Details:
                  + course data..................................DONE
                  + user data....................................DONE
                  + files........................................DONE
-              x choices.........................................IN PROGRESS
-                 + course data..................................NO EXISTS
-                 + user data....................................NO EXISTS
-                 + files.(NOT EXISTS)...........................NO EXISTS
+              x choices.........................................DONE
+                 + course data..................................DONE
+                 + user data....................................DONE
+                 + files.(NOT EXISTS)...........................DONE
               x forums..........................................NO EXISTS
                  + course data..................................NO EXISTS
                  + user data....................................NO EXISTS
@@ -179,16 +180,16 @@ Restore Details:
                  + course data..................................DONE
                  + user data....................................DONE
                  + files.(ARE COURSE FILES !!!).................DONE
-              x surveys.........................................NO EXISTS
-                 + course data..................................NO EXISTS
-                 + user data....................................NO EXISTS
-                 + files.(NOT EXISTS)...........................NO EXISTS
+              x surveys.........................................IN PROGRESS
+                 + course data..................................IN PROGRESS
+                 + user data....................................IN PROGRESS
+                 + files.(NOT EXISTS)...........................IN PROGRESS
    - User files from temp.......................................DONE
    - Course files from temp.....................................DONE
    - Log entries................................................NO EXISTS
    - Readjust instance in course_modules........................DONE
    - Readjust modinfo in course (serialize).....................DONE
-   - Delete old entries at restore end.  .......................DONE   
+   - Delete old entries at restore end.  .......................DONE (COMMENTED !!!) 
       - From database...........................................DONE
       - From filesystem.........................................DONE
    - Upload backup files........................................DONE
index 56c244b0bb42097785a72992fdbfc3ffe16dcd16..3e859a66da81bb73d3fbddc54a79c43111f1b0f5 100644 (file)
     //
     //-----------------------------------------------------------
 
-    function cchoice_restore_mods($bf,$preferences) {
-        
+    //This function executes all the restore procedure about this mod
+    function choice_restore_mods($mod,$restore) {
+
         global $CFG;
 
         $status = true;
 
-        //Iterate over choice table
-        $choices = get_records ("choice","course",$preferences->backup_course,"id");
-        if ($choices) {
-            foreach ($choices as $choice) {
-                //Start mod
-                fwrite ($bf,start_tag("MOD",3,true));
-                //Print choice data
-                fwrite ($bf,full_tag("ID",4,false,$choice->id));
-                fwrite ($bf,full_tag("MODTYPE",4,false,"choice"));
-                fwrite ($bf,full_tag("NAME",4,false,$choice->name));
-                fwrite ($bf,full_tag("TEXT",4,false,$choice->text));
-                fwrite ($bf,full_tag("FORMAT",4,false,$choice->format));
-                fwrite ($bf,full_tag("ANSWER1",4,false,$choice->answer1));
-                fwrite ($bf,full_tag("ANSWER2",4,false,$choice->answer2));
-                fwrite ($bf,full_tag("ANSWER3",4,false,$choice->answer3));
-                fwrite ($bf,full_tag("ANSWER4",4,false,$choice->answer4));
-                fwrite ($bf,full_tag("ANSWER5",4,false,$choice->answer5));
-                fwrite ($bf,full_tag("ANSWER6",4,false,$choice->answer6));
-                fwrite ($bf,full_tag("PUBLISH",4,false,$choice->publish));
-                fwrite ($bf,full_tag("TIMEMODIFIED",4,false,$choice->timemodified));
-                //if we've selected to backup users info, then execute backup_choice_answers
-                if ($preferences->mods["choice"]->userinfo) {
-                    $status = backup_choice_answers($bf,$preferences,$choice->id);
+        //Get record from backup_ids
+        $data = backup_getid($restore->backup_unique_code,$mod->modtype,$mod->id);
+
+        if ($data) {
+            //We have info, get and unserialize info
+            //First strip slashes
+            $temp = stripslashes($data->info);
+            //Now get completed xmlized object
+            $info = unserialize($temp);
+            //traverse_xmlize($info);                                                                     //Debug
+            //print_object ($GLOBALS['traverse_array']);                                                  //Debug
+            //$GLOBALS['traverse_array']="";                                                              //Debug
+
+            //Now, build the CHOICE record structure
+            $choice->course = $restore->course_id;
+            $choice->name = backup_todb($info['MOD']['#']['NAME']['0']['#']);
+            $choice->text = backup_todb($info['MOD']['#']['TEXT']['0']['#']);
+            $choice->format = backup_todb($info['MOD']['#']['FORMAT']['0']['#']);
+            $choice->answer1 = backup_todb($info['MOD']['#']['ANSWER1']['0']['#']);
+            $choice->answer2 = backup_todb($info['MOD']['#']['ANSWER2']['0']['#']);
+            $choice->answer3 = backup_todb($info['MOD']['#']['ANSWER3']['0']['#']);
+            $choice->answer4 = backup_todb($info['MOD']['#']['ANSWER4']['0']['#']);
+            $choice->answer5 = backup_todb($info['MOD']['#']['ANSWER5']['0']['#']);
+            $choice->answer6 = backup_todb($info['MOD']['#']['ANSWER6']['0']['#']);
+            $choice->publish = backup_todb($info['MOD']['#']['PUBLISH']['0']['#']);
+            $choice->timemodified = backup_todb($info['MOD']['#']['TIMEMODIFIED']['0']['#']);
+
+            //The structure is equal to the db, so insert the choice
+            $newid = insert_record ("choice",$choice);
+            if ($newid) {
+                //We have the newid, update backup_ids
+                backup_putid($restore->backup_unique_code,$mod->modtype,$mod->id,
+                             $newid,$data->info);
+                //Now check if want to restore user data and do it.
+                if ($restore->mods[choice]->userinfo) {
+                    //Restore choice_answers
+                    $status = choice_answers_restore_mods ($newid,$info,$restore);
                 }
-                //End mod
-                $status =fwrite ($bf,end_tag("MOD",3,true));
+            } else {
+                $status = false;
             }
+
+        } else {
+            $status = false;
         }
+
+        return $status;
+    }
+
+    //This function restores the choice_answers
+    function choice_answers_restore_mods($choice_id,$info,$restore) {
+
+        global $CFG;
+
+        $status = true;
+
+        //Get the submissions array
+        $answers = $info['MOD']['#']['ANSWERS']['0']['#']['ANSWER'];
+
+        //Iterate over submissions
+        for($i = 0; $i < sizeof($answers); $i++) {
+            $sub_info = $answers[$i];
+            traverse_xmlize($sub_info);                                                                 //Debug
+            print_object ($GLOBALS['traverse_array']);                                                  //Debug
+            $GLOBALS['traverse_array']="";                                                              //Debug
+
+            //We'll need this later!!
+            $oldid = backup_todb($sub_info['#']['ID']['0']['#']);
+            $olduserid = backup_todb($sub_info['#']['USERID']['0']['#']);
+
+            //Now, build the CHOICE_ANSWERS record structure
+            $answer->choice = $choice_id;
+            $answer->userid = backup_todb($sub_info['#']['USERID']['0']['#']);
+            $answer->answer = backup_todb($sub_info['#']['CHOICE_ANSWER']['0']['#']);
+            $answer->timemodified = backup_todb($sub_info['#']['TIMEMODIFIED']['0']['#']);
+
+            //We have to recode the userid field
+            $user = backup_getid($restore->backup_unique_code,"user",$answer->userid);
+            if ($user) {
+                $answer->userid = $user->new_id;
+            }
+
+            //The structure is equal to the db, so insert the choice_answers
+            $newid = insert_record ("choice_answers",$answer);
+            if ($newid) {
+                //We have the newid, update backup_ids
+                backup_putid($restore->backup_unique_code,"choice_answers",$oldid,
+                             $newid);
+            } else {
+                $status = false;
+            }
+        }
+
         return $status;
     }