예제 #1
0
 // went really wrong in backup, throw error. Note that backup::MODE_IMPORT
 // backups don't store resulting files ever
 $tempdestination = $CFG->tempdir . '/backup/' . $backupid;
 if (!file_exists($tempdestination) || !is_dir($tempdestination)) {
     print_error('unknownbackupexporterror');
     // shouldn't happen ever
 }
 // Prepare the restore controller. We don't need a UI here as we will just use what
 // ever the restore has (the user has just chosen).
 $rc = new restore_controller($backupid, $course->id, backup::INTERACTIVE_YES, backup::MODE_IMPORT, $USER->id, $restoretarget);
 // Start a progress section for the restore, which will consist of 2 steps
 // (the precheck and then the actual restore).
 $progress->start_progress('Restore process', 2);
 $rc->set_progress($progress);
 // Set logger for restore.
 $rc->add_logger($logger);
 // Convert the backup if required.... it should NEVER happed
 if ($rc->get_status() == backup::STATUS_REQUIRE_CONV) {
     $rc->convert();
 }
 // Mark the UI finished.
 $rc->finish_ui();
 // Execute prechecks
 $warnings = false;
 if (!$rc->execute_precheck()) {
     $precheckresults = $rc->get_precheck_results();
     if (is_array($precheckresults)) {
         if (!empty($precheckresults['errors'])) {
             // If errors are found, terminate the import.
             fulldelete($tempdestination);
             echo $OUTPUT->header();