2 //Prints course's messages info (tables message, message_read and message_contacts)
3 function backup_messages ($bf,$preferences) {
8 /// Check we have something to backup
9 $unreads = $DB->count_records ('message');
10 $reads = $DB->count_records ('message_read');
11 $contacts= $DB->count_records ('message_contacts');
13 if ($unreads ||
$reads ||
$contacts) {
16 fwrite ($bf,start_tag("MESSAGES",2,true));
19 $rs_unreads = $DB->get_recordset('message');
20 /// Iterate over every unread
21 foreach ($rs_unreads as $unread) {
23 fwrite($bf, start_tag("MESSAGE",3,true));
24 fwrite ($bf,full_tag("ID",4,false,$unread->id
));
25 fwrite ($bf,full_tag("STATUS",4,false,"UNREAD"));
26 fwrite ($bf,full_tag("USERIDFROM",4,false,$unread->useridfrom
));
27 fwrite ($bf,full_tag("USERIDTO",4,false,$unread->useridto
));
28 fwrite ($bf,full_tag("MESSAGE",4,false,$unread->message
));
29 fwrite ($bf,full_tag("FORMAT",4,false,$unread->format
));
30 fwrite ($bf,full_tag("TIMECREATED",4,false,$unread->timecreated
));
31 fwrite ($bf,full_tag("MESSAGETYPE",4,false,$unread->messagetype
));
33 fwrite ($bf,end_tag("MESSAGE",3,true));
37 if ($counter %
20 == 0) {
39 if ($counter %
400 == 0) {
49 $rs_reads = $DB->get_recordset('message_read');
50 /// Iterate over every unread
51 foreach ($rs_reads as $read) {
53 fwrite($bf, start_tag("MESSAGE",3,true));
54 fwrite ($bf,full_tag("ID",4,false,$read->id
));
55 fwrite ($bf,full_tag("STATUS",4,false,"READ"));
56 fwrite ($bf,full_tag("USERIDFROM",4,false,$read->useridfrom
));
57 fwrite ($bf,full_tag("USERIDTO",4,false,$read->useridto
));
58 fwrite ($bf,full_tag("MESSAGE",4,false,$read->message
));
59 fwrite ($bf,full_tag("FORMAT",4,false,$read->format
));
60 fwrite ($bf,full_tag("TIMECREATED",4,false,$read->timecreated
));
61 fwrite ($bf,full_tag("MESSAGETYPE",4,false,$read->messagetype
));
62 fwrite ($bf,full_tag("TIMEREAD",4,false,$read->timeread
));
63 fwrite ($bf,full_tag("MAILED",4,false,$read->mailed
));
65 fwrite ($bf,end_tag("MESSAGE",3,true));
69 if ($counter %
20 == 0) {
71 if ($counter %
400 == 0) {
81 fwrite($bf, start_tag("CONTACTS",3,true));
82 $rs_contacts = $DB->get_recordset('message_contacts');
83 /// Iterate over every contact
84 foreach ($rs_contacts as $contact) {
86 fwrite($bf, start_tag("CONTACT",4,true));
87 fwrite ($bf,full_tag("ID",5,false,$contact->id
));
88 fwrite ($bf,full_tag("USERID",5,false,$contact->userid
));
89 fwrite ($bf,full_tag("CONTACTID",5,false,$contact->contactid
));
90 fwrite ($bf,full_tag("BLOCKED",5,false,$contact->blocked
));
92 fwrite ($bf,end_tag("CONTACT",4,true));
96 if ($counter %
20 == 0) {
98 if ($counter %
400 == 0) {
104 $rs_contacts->close();
105 fwrite($bf, end_tag("CONTACTS",3,true));
108 /// messages close tag
109 $status = fwrite ($bf,end_tag("MESSAGES",2,true));
116 //Print blogs info (post table, module=blog, course=0)
117 function backup_blogs($bf, $preferences) {
122 /// Check we have something to backup
123 $siteblogs = $DB->count_records('post', array('module'=>'blog', 'courseid'=>0));
128 fwrite ($bf, start_tag("BLOGS",2,true));
131 $rs_blogs = $DB->get_records('post', array('module'=>'blog', 'courseid'=>0));
132 /// Iterate over every blog
133 foreach ($rs_blogs as $blog) {
134 backup_blog($bf, $blog->id
, 3);
138 if ($counter %
20 == 0) {
140 if ($counter %
400 == 0) {
149 $status = fwrite($bf, end_tag("BLOGS",2,true));
156 function backup_blog($bf, $blogid, $level) {
158 $blog = $DB->get_record('post', array('module'=>'blog', 'id'=>$blogid));
161 fwrite($bf, start_tag("BLOG",$level,true));
163 fwrite ($bf,full_tag("ID",$level+
1,false,$blog->id
));
164 fwrite ($bf,full_tag("MODULE",$level+
1,false,$blog->module
));
165 fwrite ($bf,full_tag("USERID",$level+
1,false,$blog->userid
));
166 fwrite ($bf,full_tag("COURSEID",$level+
1,false,$blog->courseid
));
167 fwrite ($bf,full_tag("GROUPID",$level+
1,false,$blog->groupid
));
168 fwrite ($bf,full_tag("MODULEID",$level+
1,false,$blog->moduleid
));
169 fwrite ($bf,full_tag("COURSEMODULEID",$level+
1,false,$blog->coursemoduleid
));
170 fwrite ($bf,full_tag("SUBJECT",$level+
1,false,$blog->subject
));
171 fwrite ($bf,full_tag("SUMMARY",$level+
1,false,$blog->summary
));
172 fwrite ($bf,full_tag("CONTENT",$level+
1,false,$blog->content
));
173 fwrite ($bf,full_tag("UNIQUEHASH",$level+
1,false,$blog->uniquehash
));
174 fwrite ($bf,full_tag("RATING",$level+
1,false,$blog->rating
));
175 fwrite ($bf,full_tag("FORMAT",$level+
1,false,$blog->format
));
176 fwrite ($bf,full_tag("ATTACHMENT",$level+
1,false,$blog->attachment
));
177 fwrite ($bf,full_tag("PUBLISHSTATE",$level+
1,false,$blog->publishstate
));
178 fwrite ($bf,full_tag("LASTMODIFIED",$level+
1,false,$blog->lastmodified
));
179 fwrite ($bf,full_tag("CREATED",$level+
1,false,$blog->created
));
180 fwrite ($bf,full_tag("USERMODIFIED",$level+
1,false,$blog->usermodified
));
183 /// Check if we have blog tags to backup
184 if (!empty($CFG->usetags
)) {
185 if ($tags = tag_get_tags('post', $blog->id
)) { //This return them ordered by default
186 /// Start BLOG_TAGS tag
187 fwrite ($bf,start_tag("BLOG_TAGS",$level+
1,true));
188 /// Write blog tags fields
189 foreach ($tags as $tag) {
190 fwrite ($bf,start_tag("BLOG_TAG",$level+
2,true));
191 fwrite ($bf,full_tag("NAME",$level+
3,false,$tag->name
));
192 fwrite ($bf,full_tag("RAWNAME",$level+
3,false,$tag->rawname
));
193 fwrite ($bf,end_tag("BLOG_TAG",$level+
2,true));
195 /// End BLOG_TAGS tag
196 fwrite ($bf,end_tag("BLOG_TAGS",$level+
1,true));
200 fwrite($bf, end_tag("BLOG",$level,true));
203 //Prints course's format data (any data the format might want to save).
204 function backup_format_data ($bf,$preferences) {
207 // Check course format
208 if(!($format = $DB->get_field('course','format', array('id'=>$preferences->backup_course
)))) {
211 // Write appropriate tag. Note that we always put this tag there even if
212 // blank, it makes parsing easier
213 fwrite ($bf,start_tag("FORMATDATA",2,true));
215 $file=$CFG->dirroot
."/course/format/$format/backuplib.php";
216 if(file_exists($file)) {
217 // If the file is there, the function must be or it's an error.
219 $function=$format.'_backup_format_data';
220 if(!function_exists($function)) {
223 if(!$function($bf,$preferences)) {
228 // This last return just checks the file writing has been ok (ish)
229 return fwrite ($bf,end_tag("FORMATDATA",2,true));
232 function backup_gradebook_categories_history_info($bf, $preferences) {
237 // find all grade categories history
238 if ($chs = $DB->get_records('grade_categories_history', array('courseid'=>$preferences->backup_course
))) {
239 fwrite ($bf,start_tag("GRADE_CATEGORIES_HISTORIES",3,true));
240 foreach ($chs as $ch) {
241 fwrite ($bf,start_tag("GRADE_CATEGORIES_HISTORY",4,true));
242 fwrite ($bf,full_tag("ID",5,false,$ch->id
));
243 fwrite ($bf,full_tag("ACTION",5,false,$ch->action
));
244 fwrite ($bf,full_tag("OLDID",5,false,$ch->oldid
));
245 fwrite ($bf,full_tag("SOURCE",5,false,$ch->source
));
246 fwrite ($bf,full_tag("TIMEMODIFIED",5,false,$ch->timemodified
));
247 fwrite ($bf,full_tag("LOGGEDUSER",5,false,$ch->loggeduser
));
248 fwrite ($bf,full_tag("PARENT",5,false,$ch->parent
));
249 fwrite ($bf,full_tag("DEPTH",5,false,$ch->depth
));
250 fwrite ($bf,full_tag("PATH",5,false,$ch->path
));
251 fwrite ($bf,full_tag("FULLNAME",5,false,$ch->fullname
));
252 fwrite ($bf,full_tag("AGGRETGATION",5,false,$ch->aggregation
));
253 fwrite ($bf,full_tag("KEEPHIGH",5,false,$ch->keephigh
));
254 fwrite ($bf,full_tag("DROPLOW",5,false,$ch->droplow
));
255 fwrite ($bf,full_tag("AGGREGATEONLYGRADED",5,false,$ch->aggregateonlygraded
));
256 fwrite ($bf,full_tag("AGGREGATEOUTCOMES",5,false,$ch->aggregateoutcomes
));
257 fwrite ($bf,full_tag("AGGREGATESUBCATS",5,false,$ch->aggregatesubcats
));
258 fwrite ($bf,end_tag("GRADE_CATEGORIES_HISTORY",4,true));
260 $status = fwrite ($bf,end_tag("GRADE_CATEGORIES_HISTORIES",3,true));
265 function backup_gradebook_grades_history_info($bf, $preferences) {
269 // find all grade categories history
270 if ($chs = $DB->get_records_sql("SELECT ggh.*
271 FROM {grade_grades_history} ggh
272 JOIN {grade_item} gi ON gi.id = ggh.itemid
273 WHERE gi.courseid = ?", array($preferences->backup_course
))) {
274 fwrite ($bf,start_tag("GRADE_GRADES_HISTORIES",3,true));
275 foreach ($chs as $ch) {
276 /// Grades are only sent to backup if the user is one target user
277 if (backup_getid($preferences->backup_unique_code
, 'user', $ch->userid
)) {
278 fwrite ($bf,start_tag("GRADE_GRADES_HISTORY",4,true));
279 fwrite ($bf,full_tag("ID",5,false,$ch->id
));
280 fwrite ($bf,full_tag("ACTION",5,false,$ch->action
));
281 fwrite ($bf,full_tag("OLDID",5,false,$ch->oldid
));
282 fwrite ($bf,full_tag("SOURCE",5,false,$ch->source
));
283 fwrite ($bf,full_tag("TIMEMODIFIED",5,false,$ch->timemodified
));
284 fwrite ($bf,full_tag("LOGGEDUSER",5,false,$ch->loggeduser
));
285 fwrite ($bf,full_tag("ITEMID",5,false,$ch->itemid
));
286 fwrite ($bf,full_tag("USERID",5,false,$ch->userid
));
287 fwrite ($bf,full_tag("RAWGRADE",5,false,$ch->rawgrade
));
288 fwrite ($bf,full_tag("RAWGRADEMAX",5,false,$ch->rawgrademax
));
289 fwrite ($bf,full_tag("RAWGRADEMIN",5,false,$ch->rawgrademin
));
290 fwrite ($bf,full_tag("RAWSCALEID",5,false,$ch->rawscaleid
));
291 fwrite ($bf,full_tag("USERMODIFIED",5,false,$ch->usermodified
));
292 fwrite ($bf,full_tag("FINALGRADE",5,false,$ch->finalgrade
));
293 fwrite ($bf,full_tag("HIDDEN",5,false,$ch->hidden
));
294 fwrite ($bf,full_tag("LOCKED",5,false,$ch->locked
));
295 fwrite ($bf,full_tag("LOCKTIME",5,false,$ch->locktime
));
296 fwrite ($bf,full_tag("EXPORTED",5,false,$ch->exported
));
297 fwrite ($bf,full_tag("OVERRIDDEN",5,false,$ch->overridden
));
298 fwrite ($bf,full_tag("EXCLUDED",5,false,$ch->excluded
));
299 fwrite ($bf,full_tag("FEEDBACK",5,false,$ch->feedback
));
300 fwrite ($bf,full_tag("FEEDBACKFORMAT",5,false,$ch->feedbackformat
));
301 fwrite ($bf,full_tag("INFORMATION",5,false,$ch->information
));
302 fwrite ($bf,full_tag("INFORMATIONFORMAT",5,false,$ch->informationformat
));
303 fwrite ($bf,end_tag("GRADE_GRADES_HISTORY",4,true));
306 $status = fwrite ($bf,end_tag("GRADE_GRADES_HISTORIES",3,true));
311 function backup_gradebook_items_history_info($bf, $preferences) {
315 // find all grade categories history
316 if ($chs = $DB->get_records('grade_items_history', array('courseid'=>$preferences->backup_course
))) {
317 fwrite ($bf,start_tag("GRADE_ITEM_HISTORIES",3,true));
318 foreach ($chs as $ch) {
319 fwrite ($bf,start_tag("GRADE_ITEM_HISTORY",4,true));
320 fwrite ($bf,full_tag("ID",5,false,$ch->id
));
321 fwrite ($bf,full_tag("ACTION",5,false,$ch->action
));
322 fwrite ($bf,full_tag("OLDID",5,false,$ch->oldid
));
323 fwrite ($bf,full_tag("SOURCE",5,false,$ch->source
));
324 fwrite ($bf,full_tag("TIMEMODIFIED",5,false,$ch->timemodified
));
325 fwrite ($bf,full_tag("LOGGEDUSER",5,false,$ch->loggeduser
));
326 fwrite ($bf,full_tag("CATEGORYID",5,false,$ch->categoryid
));
327 fwrite ($bf,full_tag("ITEMNAME",5,false,$ch->itemname
));
328 fwrite ($bf,full_tag("ITEMTYPE",5,false,$ch->itemtype
));
329 fwrite ($bf,full_tag("ITEMMODULE",5,false,$ch->itemmodule
));
330 fwrite ($bf,full_tag("ITEMINSTANCE",5,false,$ch->iteminstance
));
331 fwrite ($bf,full_tag("ITEMNUMBER",5,false,$ch->itemnumber
));
332 fwrite ($bf,full_tag("ITEMINFO",5,false,$ch->iteminfo
));
333 fwrite ($bf,full_tag("IDNUMBER",5,false,$ch->idnumber
));
334 fwrite ($bf,full_tag("CALCULATION",5,false,$ch->calculation
));
335 fwrite ($bf,full_tag("GRADETYPE",5,false,$ch->gradetype
));
336 fwrite ($bf,full_tag("GRADEMAX",5,false,$ch->grademax
));
337 fwrite ($bf,full_tag("GRADEMIN",5,false,$ch->grademin
));
338 fwrite ($bf,full_tag("SCALEID",5,false,$ch->scaleid
));
339 fwrite ($bf,full_tag("OUTCOMEID",5,false,$ch->outcomeid
));
340 fwrite ($bf,full_tag("GRADEPASS",5,false,$ch->gradepass
));
341 fwrite ($bf,full_tag("MULTFACTOR",5,false,$ch->multfactor
));
342 fwrite ($bf,full_tag("PLUSFACTOR",5,false,$ch->plusfactor
));
343 fwrite ($bf,full_tag("AGGREGATIONCOEF",5,false,$ch->aggregationcoef
));
344 fwrite ($bf,full_tag("SORTORDER",5,false,$ch->sortorder
));
345 //fwrite ($bf,full_tag("DISPLAY",7,false,$ch->display));
346 //fwrite ($bf,full_tag("DECIMALS",7,false,$ch->decimals));
347 fwrite ($bf,full_tag("HIDDEN",5,false,$ch->hidden
));
348 fwrite ($bf,full_tag("LOCKED",5,false,$ch->locked
));
349 fwrite ($bf,full_tag("LOCKTIME",5,false,$ch->locktime
));
350 fwrite ($bf,full_tag("NEEDSUPDATE",5,false,$ch->needsupdate
));
351 fwrite ($bf,end_tag("GRADE_ITEM_HISTORY",4,true));
353 $status = fwrite ($bf,end_tag("GRADE_ITEM_HISTORIES",3,true));
359 function backup_gradebook_outcomes_history($bf, $preferences) {
363 // find all grade categories history
364 if ($chs = $DB->get_records('grade_outcomes_history', array('courseid'=>$preferences->backup_course
))) {
365 fwrite ($bf,start_tag("GRADE_OUTCOME_HISTORIES",3,true));
366 foreach ($chs as $ch) {
367 fwrite ($bf,start_tag("GRADE_OUTCOME_HISTORY",4,true));
368 fwrite ($bf,full_tag("ID",5,false,$ch->id
));
369 fwrite ($bf,full_tag("OLDID",5,false,$ch->oldid
));
370 fwrite ($bf,full_tag("ACTION",5,false,$ch->action
));
371 fwrite ($bf,full_tag("SOURCE",5,false,$ch->source
));
372 fwrite ($bf,full_tag("TIMEMODIFIED",5,false,$ch->timemodified
));
373 fwrite ($bf,full_tag("LOGGEDUSER",5,false,$ch->loggeduser
));
374 fwrite ($bf,full_tag("SHORTNAME",5,false,$ch->shortname
));
375 fwrite ($bf,full_tag("FULLNAME",5,false,$ch->fullname
));
376 fwrite ($bf,full_tag("SCALEID",5,false,$ch->scaleid
));
377 fwrite ($bf,full_tag("DESCRIPTION",5,false,$ch->description
));
378 fwrite ($bf,end_tag("GRADE_OUTCOME_HISTORY",4,true));
380 $status = fwrite ($bf,end_tag("GRADE_OUTCOME_HISTORIES",3,true));
385 //Backup events info (course events)
386 function backup_events_info($bf,$preferences) {
391 //Counter, points to current record
394 //Get events (course events)
395 $events = $DB->get_records("event", array("courseid"=>$preferences->backup_course
, 'instance'=>0),"id");
397 //Pring events header
399 //Pring events header
400 fwrite ($bf,start_tag("EVENTS",2,true));
402 foreach ($events as $event) {
404 fwrite ($bf,start_tag("EVENT",3,true));
406 fwrite ($bf,full_tag("ID",4,false,$event->id
));
407 fwrite ($bf,full_tag("NAME",4,false,$event->name
));
408 fwrite ($bf,full_tag("DESCRIPTION",4,false,$event->description
));
409 fwrite ($bf,full_tag("FORMAT",4,false,$event->format
));
410 fwrite ($bf,full_tag("GROUPID",4,false,$event->groupid
));
411 fwrite ($bf,full_tag("USERID",4,false,$event->userid
));
412 fwrite ($bf,full_tag("REPEATID",4,false,$event->repeatid
));
413 fwrite ($bf,full_tag("EVENTTYPE",4,false,$event->eventtype
));
414 fwrite ($bf,full_tag("MODULENAME",4,false,$event->modulename
));
415 fwrite ($bf,full_tag("TIMESTART",4,false,$event->timestart
));
416 fwrite ($bf,full_tag("TIMEDURATION",4,false,$event->timeduration
));
417 fwrite ($bf,full_tag("VISIBLE",4,false,$event->visible
));
418 fwrite ($bf,full_tag("TIMEMODIFIED",4,false,$event->timemodified
));
420 fwrite ($bf,end_tag("EVENT",3,true));
423 $status = fwrite ($bf,end_tag("EVENTS",2,true));