]> git.mjollnir.org Git - moodle.git/commitdiff
Messages backup improvement. MDL-13473 ; merged from 19_STABLE
authorstronk7 <stronk7>
Thu, 14 Feb 2008 23:35:03 +0000 (23:35 +0000)
committerstronk7 <stronk7>
Thu, 14 Feb 2008 23:35:03 +0000 (23:35 +0000)
backup/backuplib.php

index c1e429b5efdb55c2d836f1898e3e97a8387f4958..3d6297e698866322b03bcae56912197c87720e4c 100644 (file)
 
         $status = true;
 
-        //Get info from messages
-        $unreads = get_records ('message');
-        $reads   = get_records ('message_read');
-        $contacts= get_records ('message_contacts');
+    /// Check we have something to backup
+        $unreads = count_records ('message');
+        $reads   = count_records ('message_read');
+        $contacts= count_records ('message_contacts');
 
         if ($unreads || $reads || $contacts) {
             $counter = 0;
-            //message open tag
+        /// message open tag
             fwrite ($bf,start_tag("MESSAGES",2,true));
+
             if ($unreads) {
-                //Iterate over every unread
-                foreach ($unreads as $unread) {
-                    //start message
+                $rs_unreads = get_recordset('message');
+            /// Iterate over every unread
+                while ($unread = rs_fetch_next_record($rs_unreads)) {
+                /// start message
                     fwrite($bf, start_tag("MESSAGE",3,true));
                     fwrite ($bf,full_tag("ID",4,false,$unread->id));
                     fwrite ($bf,full_tag("STATUS",4,false,"UNREAD"));
                     fwrite ($bf,full_tag("FORMAT",4,false,$unread->format));
                     fwrite ($bf,full_tag("TIMECREATED",4,false,$unread->timecreated));
                     fwrite ($bf,full_tag("MESSAGETYPE",4,false,$unread->messagetype));
-                    //end message
+                /// end message
                     fwrite ($bf,end_tag("MESSAGE",3,true));
 
-                    //Do some output
+                /// Do some output
                     $counter++;
                     if ($counter % 20 == 0) {
                         echo ".";
                         backup_flush(300);
                     }
                 }
+                rs_close($rs_unreads);
             }
 
             if ($reads) {
-                //Iterate over every read
-                foreach ($reads as $read) {
-                    //start message
+                $rs_reads = get_recordset('message_read');
+            /// Iterate over every unread
+                while ($read = rs_fetch_next_record($rs_reads)) {
+                /// start message
                     fwrite($bf, start_tag("MESSAGE",3,true));
                     fwrite ($bf,full_tag("ID",4,false,$read->id));
                     fwrite ($bf,full_tag("STATUS",4,false,"READ"));
                     fwrite ($bf,full_tag("MESSAGETYPE",4,false,$read->messagetype));
                     fwrite ($bf,full_tag("TIMEREAD",4,false,$read->timeread));
                     fwrite ($bf,full_tag("MAILED",4,false,$read->mailed));
-                    //end message
+                /// end message
                     fwrite ($bf,end_tag("MESSAGE",3,true));
 
-                    //Do some output
+                /// Do some output
                     $counter++;
                     if ($counter % 20 == 0) {
                         echo ".";
                         backup_flush(300);
                     }
                 }
+                rs_close($rs_reads);
             }
 
             if ($contacts) {
                 fwrite($bf, start_tag("CONTACTS",3,true));
-                //Iterate over every contact
-                foreach ($contacts as $contact) {
-                    //start contact
+                $rs_contacts = get_recordset('message_contacts');
+            /// Iterate over every contact
+                while ($contact = rs_fetch_next_record($rs_contacts)) {
+                /// start contact
                     fwrite($bf, start_tag("CONTACT",4,true));
                     fwrite ($bf,full_tag("ID",5,false,$contact->id));
                     fwrite ($bf,full_tag("USERID",5,false,$contact->userid));
                     fwrite ($bf,full_tag("CONTACTID",5,false,$contact->contactid));
                     fwrite ($bf,full_tag("BLOCKED",5,false,$contact->blocked));
-                    //end contact
+                /// end contact
                     fwrite ($bf,end_tag("CONTACT",4,true));
 
-                    //Do some output
+                /// Do some output
                     $counter++;
                     if ($counter % 20 == 0) {
                         echo ".";
                         backup_flush(300);
                     }
                 }
+                rs_close($rs_contacts);
                 fwrite($bf, end_tag("CONTACTS",3,true));
             }
-            //messages close tag
+
+        /// messages close tag
             $status = fwrite ($bf,end_tag("MESSAGES",2,true));
         }