/** * Function to backup an entire course silently and create a zipfile. * * @param int $courseid the id of the course * @param array $prefs see {@link backup_generate_preferences_artificially} */ function backup_course_silently($courseid, $prefs, &$errorstring) { global $CFG, $preferences, $DB; // global preferences here because something else wants it :( if (!defined('BACKUP_SILENTLY')) { define('BACKUP_SILENTLY', 1); } if (!($course = $DB->get_record('course', array('id' => $courseid)))) { debugging("Couldn't find course with id {$courseid} in backup_course_silently"); return false; } $preferences = backup_generate_preferences_artificially($course, $prefs); if (backup_execute($preferences, $errorstring)) { return $CFG->dataroot . '/' . $course->id . '/backupdata/' . $preferences->backup_name; } else { return false; } }
public function appendPreferencesForCourseBackup($preferences, $courseId) { if (empty($preferences)) { return null; } /* * We were using this manual process to enable backup and restore * for each module $preferences->exists_assignment = 1; $preferences->exists_chat = 1; $preferences->exists_choice = 1; $preferences->exists_data = 1; $preferences->exists_exercise = 1; $this->appendPreferencesForModulesBackup($preferences, $courseId); $preferences->exists_glossary = 1; $preferences->exists_hotpot = 1; $preferences->exists_journal = 1; $preferences->exists_label = 1; $preferences->exists_lesson = 1; $preferences->exists_quiz = 1; $preferences->exists_resource = 1; $preferences->exists_scorm = 1; $preferences->exists_survey = 1; $preferences->exists_wiki = 1; $preferences->exists_workshop = 1; $preferences->backup_course = $courseId; //1010000002; $preferences->backup_metacourse = 1; $preferences->backup_users = 1; $preferences->backup_logs = 1; $preferences->backup_user_files = 1; $preferences->backup_course_files = 1; $preferences->backup_messages = 1; */ global $Out; $prefs['backup_metacourse'] = 1; $prefs['backup_users'] = 1; $prefs['backup_logs'] = 1; $prefs['backup_user_files'] = 1; $prefs['backup_course_files'] = 1; $prefs['backup_messages'] = 1; $course = get_record('course', 'id', $courseId); /* * For now we're using the inbuilt method to automatically produce a * preferences object which includes all course content. */ $Out->print_r($preferences, '$preferences = ', 0, true); $preferencesNew = backup_generate_preferences_artificially($course, $prefs); $Out->print_r($preferencesNew, '$preferencesNew = ', 0, true); //$preferences = array_merge($preferences, $preferencesNew); foreach ($preferences as $key => $value) { $preferencesNew->{$key} = $value; } $preferences = $preferencesNew; if (!empty($preferences->mods)) { // Set each module restore flag foreach ($preferences->mods as $module) { $module->restore = 1; foreach ($module->instances as $instance) { $instance->restore = 1; } } } /* $date = new NumDate(); $preferences->backup_name = 'backup-teco1-'.$date->getDate().'-'.$date->getHour().$date->getMinute().'.zip'; $preferences->backup_unique_code = time(); //'1185376218'; $preferences->moodle_version = '2007071900'; $preferences->moodle_release = '1.9 dev'; $preferences->backup_version = '2007022100'; $preferences->backup_release = '1.9dev'; */ //$preferences->restoreto = 1; // Overwrite the course $preferences->restoreto = 2; // Restore to a new course $preferences->restore_restorecatto = 1; $preferences->restore_maintain_ids = true; $preferences->course_id = $courseId; //1010000002; $preferences->course_startdateoffset = 0; $preferences->metacourse = 1; $preferences->users = 1; $preferences->quiz = 1; $preferences->user_files = 1; $preferences->course_files = 1; $preferences->messages = 1; $preferences->deleting = 0; //delete contents of a course before restoring into it. global $SynchServerController; // Append the server id $serverId = $SynchServerController->getServerId(); $preferences->server_id = $serverId; global $SynchSessionController; if (isset($SynchSessionController)) { // Append the session id $sessionId = $SynchSessionController->getCurrentSessionId(); $preferences->session_id = $sessionId; } return $preferences; }