function adobeconnect_pages_restore_mods($adobeconnectid, $info, $restore) { global $CFG; $status = true; //Get the lesson_elements array $meetgroups = $info['MOD']['#']['MEETINGGROUPS']['0']['#']['MEETINGGROUP']; //Iterate over lesson pages (they are held in their logical order) $prevpageid = 0; for ($i = 0; $i < sizeof($meetgroups); $i++) { $meetgroup_info = $meetgroups[$i]; //traverse_xmlize($ele_info); //Debug //print_object ($GLOBALS['traverse_array']); //Debug //$GLOBALS['traverse_array']=""; //Debug //Now, build the lesson_pages record structure $oldid = backup_todb($meetgroup_info['#']['ID']['0']['#']); $meeting = new stdClass(); $meeting->instanceid = $adobeconnectid; $meeting->meetingscoid = backup_todb($meetgroup_info['#']['MEETINGSCOID']['0']['#']); $meeting->groupid = backup_todb($meetgroup_info['#']['GROUPID']['0']['#']); //We have to recode the groupid field $group = restore_group_getid($restore, $meeting->groupid); if ($group) { $meeting->groupid = $group->new_id; } //The structure is equal to the db, so insert the certificate_issue $newid = insert_record("adobeconnect_meeting_groups", $meeting); //Do some output if (($i + 1) % 10 == 0) { if (!defined('RESTORE_SILENTLY')) { echo "."; if (($i + 1) % 200 == 0) { echo "<br/>"; } } backup_flush(300); } if ($newid) { //We have the newid, update backup_ids (restore logs will use it!!) backup_putid($restore->backup_unique_code, "adobeconnect_meeting_groups", $oldid, $newid); } else { $status = false; } } return $status; }
function data_records_restore_mods($old_data_id, $new_data_id, $info, $restore) { global $CFG, $fieldids; $status = true; $records = isset($info['MOD']['#']['RECORDS']['0']['#']['RECORD']) ? $info['MOD']['#']['RECORDS']['0']['#']['RECORD'] : array(); if (empty($records)) { // no records to restore return true; } for ($i = 0; $i < sizeof($records); $i++) { $rec_info = $records[$i]; $oldid = backup_todb($rec_info['#']['ID']['0']['#']); $record = new object(); $record->dataid = $new_data_id; $record->userid = backup_todb($rec_info['#']['USERID']['0']['#']); $record->groupid = backup_todb($rec_info['#']['GROUPID']['0']['#']); $record->timecreated = backup_todb($rec_info['#']['TIMECREATED']['0']['#']); $record->timemodified = backup_todb($rec_info['#']['TIMEMODIFIED']['0']['#']); $record->approved = backup_todb($rec_info['#']['APPROVED']['0']['#']); $user = backup_getid($restore->backup_unique_code, "user", $record->userid); $group = restore_group_getid($restore, $record->groupid); if ($user) { $record->userid = $user->new_id; } if ($group) { $record->groupid = $group->new_id; } $newid = insert_record("data_records", $record); //Do some output if (($i + 1) % 50 == 0) { if (!defined('RESTORE_SILENTLY')) { echo "."; if (($i + 1) % 1000 == 0) { echo "<br />"; } } backup_flush(300); } if ($newid) { //We have the newid, update backup_ids $status = $status and backup_putid($restore->backup_unique_code, "data_records", $oldid, $newid); $status = $status and data_content_restore_mods($oldid, $newid, $old_data_id, $new_data_id, $rec_info, $restore); $status = $status and data_ratings_restore_mods($oldid, $newid, $info, $rec_info); $status = $status and data_comments_restore_mods($oldid, $newid, $info, $rec_info); } else { $status = false; } } return $status; }
function wiki_entries_restore_mods($old_wiki_id, $new_wiki_id, $info, $restore) { global $CFG, $DB; $status = true; //Get the entries array $entries = $info['MOD']['#']['ENTRIES']['0']['#']['ENTRY']; //Iterate over entries for ($i = 0; $i < sizeof($entries); $i++) { $ent_info = $entries[$i]; //traverse_xmlize($ent_info); //Debug //print_object ($GLOBALS['traverse_array']); //Debug //$GLOBALS['traverse_array']=""; //Debug //We'll need this later!! $oldid = backup_todb($ent_info['#']['ID']['0']['#']); //Now, build the wiki_ENTRIES record structure $entry = new object(); $entry->wikiid = $new_wiki_id; $entry->course = $restore->course_id; $entry->userid = backup_todb($ent_info['#']['USERID']['0']['#']); $entry->groupid = backup_todb($ent_info['#']['GROUPID']['0']['#']); $entry->pagename = backup_todb($ent_info['#']['PAGENAME']['0']['#']); $entry->timemodified = backup_todb($ent_info['#']['TIMEMODIFIED']['0']['#']); $entry->timemodified += $restore->course_startdateoffset; //We have to recode the userid field $user = backup_getid($restore->backup_unique_code, "user", $entry->userid); if ($user) { $entry->userid = $user->new_id; } //We have to recode the groupid field $group = restore_group_getid($restore, $entry->groupid); if ($group) { $entry->groupid = $group->new_id; } //The structure is equal to the db, so insert the wiki_entries $newid = $DB->insert_record("wiki_entries", $entry); //Do some output if (($i + 1) % 50 == 0) { if (!defined('RESTORE_SILENTLY')) { echo "."; if (($i + 1) % 1000 == 0) { echo "<br />"; } } backup_flush(300); } if ($newid) { //We have the newid, update backup_ids backup_putid($restore->backup_unique_code, "wiki_entries", $oldid, $newid); //Restore wiki_pages $status = wiki_pages_restore_mods($oldid, $newid, $ent_info, $restore); //Now copy moddata associated files $status = wiki_restore_files($old_wiki_id, $new_wiki_id, $oldid, $newid, $restore); } else { $status = false; } } return $status; }
function forum_discussions_restore_mods($forum_id, $info, $restore) { global $CFG, $DB; $status = true; //Get the discussions array $discussions = array(); if (!empty($info['MOD']['#']['DISCUSSIONS']['0']['#']['DISCUSSION'])) { $discussions = $info['MOD']['#']['DISCUSSIONS']['0']['#']['DISCUSSION']; } //Iterate over discussions for ($i = 0; $i < sizeof($discussions); $i++) { $dis_info = $discussions[$i]; //traverse_xmlize($dis_info); //Debug //print_object ($GLOBALS['traverse_array']); //Debug //$GLOBALS['traverse_array']=""; //Debug //We'll need this later!! $oldid = backup_todb($dis_info['#']['ID']['0']['#']); $olduserid = backup_todb($dis_info['#']['USERID']['0']['#']); //Now, build the FORUM_DISCUSSIONS record structure $discussion = new object(); $discussion->forum = $forum_id; $discussion->course = $restore->course_id; $discussion->name = backup_todb($dis_info['#']['NAME']['0']['#']); $discussion->firstpost = backup_todb($dis_info['#']['FIRSTPOST']['0']['#']); $discussion->userid = backup_todb($dis_info['#']['USERID']['0']['#']); $discussion->groupid = backup_todb($dis_info['#']['GROUPID']['0']['#']); $discussion->assessed = backup_todb($dis_info['#']['ASSESSED']['0']['#']); $discussion->timemodified = backup_todb($dis_info['#']['TIMEMODIFIED']['0']['#']); $discussion->timemodified += $restore->course_startdateoffset; $discussion->usermodified = backup_todb($dis_info['#']['USERMODIFIED']['0']['#']); $discussion->timestart = backup_todb($dis_info['#']['TIMESTART']['0']['#']); $discussion->timestart += $restore->course_startdateoffset; $discussion->timeend = backup_todb($dis_info['#']['TIMEEND']['0']['#']); $discussion->timeend += $restore->course_startdateoffset; //We have to recode the userid field $user = backup_getid($restore->backup_unique_code, "user", $discussion->userid); if ($user) { $discussion->userid = $user->new_id; } //We have to recode the groupid field $group = restore_group_getid($restore, $discussion->groupid); if ($group) { $discussion->groupid = $group->new_id; } //We have to recode the usermodified field $user = backup_getid($restore->backup_unique_code, "user", $discussion->usermodified); if ($user) { $discussion->usermodified = $user->new_id; } //The structure is equal to the db, so insert the forum_discussions $newid = $DB->insert_record("forum_discussions", $discussion); //Do some output if (($i + 1) % 50 == 0) { if (!defined('RESTORE_SILENTLY')) { echo "."; if (($i + 1) % 1000 == 0) { echo "<br />"; } } backup_flush(300); } if ($newid) { //We have the newid, update backup_ids backup_putid($restore->backup_unique_code, "forum_discussions", $oldid, $newid); //Restore forum_posts $status = forum_posts_restore_mods($forum_id, $newid, $dis_info, $restore); //Now recalculate firstpost field $old_firstpost = $discussion->firstpost; //Get its new post_id from backup_ids table $rec = backup_getid($restore->backup_unique_code, "forum_posts", $old_firstpost); if ($rec) { //Put its new firstpost $discussion->firstpost = $rec->new_id; if ($post = $DB->get_record("forum_posts", array("id" => $discussion->firstpost))) { $discussion->userid = $post->userid; } } else { $discussion->firstpost = 0; $discussion->userid = 0; } //Create temp discussion record $temp_discussion->id = $newid; $temp_discussion->firstpost = $discussion->firstpost; $temp_discussion->userid = $discussion->userid; //Update discussion (only firstpost and userid will be changed) $status = $DB->update_record("forum_discussions", $temp_discussion); //echo "Updated firstpost ".$old_firstpost." to ".$temp_discussion->firstpost."<br />"; //Debug } else { $status = false; } } return $status; }
function chat_messages_restore_mods($old_chat_id, $new_chat_id, $info, $restore) { global $CFG; $status = true; //Get the messages array $messages = $info['MOD']['#']['MESSAGES']['0']['#']['MESSAGE']; //Iterate over messages for ($i = 0; $i < sizeof($messages); $i++) { $mes_info = $messages[$i]; //traverse_xmlize($mes_info); //Debug //print_object ($GLOBALS['traverse_array']); //Debug //$GLOBALS['traverse_array']=""; //Debug //We'll need this later!! $oldid = backup_todb($mes_info['#']['ID']['0']['#']); $olduserid = backup_todb($mes_info['#']['USERID']['0']['#']); //Now, build the CHAT_MESSAGES record structure $message = new object(); $message->chatid = $new_chat_id; $message->userid = backup_todb($mes_info['#']['USERID']['0']['#']); $message->groupid = backup_todb($mes_info['#']['GROUPID']['0']['#']); $message->system = backup_todb($mes_info['#']['SYSTEM']['0']['#']); $message->message = backup_todb($mes_info['#']['MESSAGE_TEXT']['0']['#']); $message->timestamp = backup_todb($mes_info['#']['TIMESTAMP']['0']['#']); //We have to recode the userid field $user = backup_getid($restore->backup_unique_code, "user", $message->userid); if ($user) { $message->userid = $user->new_id; } //We have to recode the groupid field $group = restore_group_getid($restore, $message->groupid); if ($group) { $message->groupid = $group->new_id; } //The structure is equal to the db, so insert the chat_message $newid = insert_record("chat_messages", $message); //Do some output if (($i + 1) % 50 == 0) { if (!defined('RESTORE_SILENTLY')) { echo "."; if (($i + 1) % 1000 == 0) { echo "<br />"; } } backup_flush(300); } } return $status; }