Example #1
0
/**
 * 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;
    }
}
Example #2
0
 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;
 }