. /** * Import backup file or select existing backup file from moodle * @package moodlecore * @copyright 2010 Dongsheng Cai * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require_once('../config.php'); require_once(dirname(__FILE__) . '/restorefile_form.php'); require_once($CFG->dirroot . '/backup/util/includes/restore_includes.php'); $contextid = required_param('contextid', PARAM_INT); // action $action = optional_param('action', '', PARAM_ALPHA); // file parameters // non js interface may require these parameters $component = optional_param('component', null, PARAM_ALPHAEXT); $filearea = optional_param('filearea', null, PARAM_ALPHAEXT); $itemid = optional_param('itemid', null, PARAM_INT); $filepath = optional_param('filepath', null, PARAM_PATH); $filename = optional_param('filename', null, PARAM_FILE); list($context, $course, $cm) = get_context_info_array($contextid); $url = new moodle_url('/backup/restorefile.php', array('contextid'=>$contextid)); switch ($context->contextlevel) { case CONTEXT_COURSE: $heading = get_string('restorecourse', 'backup'); break; case CONTEXT_MODULE: $heading = get_string('restoreactivity', 'backup'); break; // TODO } require_login($course); require_capability('moodle/restore:restorecourse', $context); $PAGE->set_url($url); $PAGE->set_context($context); $PAGE->set_title(get_string('course') . ': ' . $course->fullname); $PAGE->set_heading($heading); $PAGE->set_pagelayout('admin'); // choose the backup file from backup files tree if ($action == 'choosebackupfile') { $browser = get_file_browser(); if ($fileinfo = $browser->get_file_info($context, $component, $filearea, $itemid, $filepath, $filename)) { $filename = restore_controller::get_tempdir_name($course->id, $USER->id); $pathname = "$CFG->dataroot/temp/backup/".$filename; $fileinfo->copy_to_pathname($pathname); $restore_url = new moodle_url('/backup/restore.php', array('contextid'=>$contextid, 'filename'=>$filename)); redirect($restore_url); } else { redirect($url, get_string('filenotfound', 'error')); } die; } $form = new course_restore_form(null, array('contextid'=>$contextid)); $data = $form->get_data(); if ($data) { $filename = restore_controller::get_tempdir_name($course->id, $USER->id); $pathname = "$CFG->dataroot/temp/backup/".$filename; $form->save_file('backupfile', $pathname); $restore_url = new moodle_url('/backup/restore.php', array('contextid'=>$contextid, 'filename'=>$filename)); redirect($restore_url); die; } $browser = get_file_browser(); $fileinfo = $browser->get_file_info($context, $component, $filearea, $itemid, $filepath, $filename); echo $OUTPUT->header(); echo $OUTPUT->heading(get_string('choosefile', 'backup')); echo $OUTPUT->container_start(); $renderer = $PAGE->get_renderer('core', 'backup'); echo $renderer->backup_files_viewer($fileinfo, array()); echo $OUTPUT->container_end(); echo $OUTPUT->heading(get_string('importfile', 'backup')); echo $OUTPUT->container_start(); $form->display(); echo $OUTPUT->container_end(); echo $OUTPUT->footer();