set_pagelayout('standard'); list($thispageurl, $contexts, $cmid, $cm, $module, $pagevars) = question_edit_setup('export', '/question/export.php'); // get display strings $strexportquestions = get_string('exportquestions', 'quiz'); // make sure we are using the user's most recent category choice if (empty($categoryid)) { $categoryid = $pagevars['cat']; } // ensure the files area exists for this course make_upload_directory("$COURSE->id"); list($catid, $catcontext) = explode(',', $pagevars['cat']); if (!$category = $DB->get_record("question_categories", array("id" => $catid, 'contextid' => $catcontext))) { print_error('nocategory','quiz'); } /// Header $PAGE->set_url($thispageurl->out()); $PAGE->set_title($strexportquestions); $PAGE->set_heading($COURSE->fullname); echo $OUTPUT->header(); $exportfilename = default_export_filename($COURSE, $category); $export_form = new question_export_form($thispageurl, array('contexts'=>$contexts->having_one_edit_tab_cap('export'), 'defaultcategory'=>$pagevars['cat'], 'defaultfilename'=>$exportfilename)); if ($from_form = $export_form->get_data()) { /// Filename if (! is_readable("format/$from_form->format/format.php")) { print_error('unknowformat', '', '', $from_form->format); } // load parent class for import/export require_once("format.php"); // and then the class for the selected format require_once("format/$from_form->format/format.php"); $classname = "qformat_$from_form->format"; $qformat = new $classname(); $qformat->setContexts($contexts->having_one_edit_tab_cap('export')); $qformat->setCategory($category); $qformat->setCourse($COURSE); if (empty($from_form->exportfilename)) { $from_form->exportfilename = default_export_filename($COURSE, $category); } $qformat->setFilename($from_form->exportfilename); $canaccessbackupdata = has_capability('moodle/backup:backupcourse', $contexts->lowest()); $qformat->set_can_access_backupdata($canaccessbackupdata); $qformat->setCattofile(!empty($from_form->cattofile)); $qformat->setContexttofile(!empty($from_form->contexttofile)); if (! $qformat->exportpreprocess()) { // Do anything before that we need to print_error('exporterror', 'question', $thispageurl->out()); } if (! $qformat->exportprocess()) { // Process the export data print_error('exporterror', 'question', $thispageurl->out()); } if (! $qformat->exportpostprocess()) { // In case anything needs to be done after print_error('exporterror', 'question', $thispageurl->out()); } echo "
"; // link to download the finished file $file_ext = $qformat->export_file_extension(); $filename = $from_form->exportfilename . $file_ext; if ($canaccessbackupdata) { $efile = get_file_url($qformat->question_get_export_dir() . '/' . $filename, array('forcedownload' => 1)); echo '

' . get_string('download', 'quiz') . '

'; echo '

' . get_string('downloadextra', 'quiz') . '

'; } else { $efile = get_file_url($filename, null, 'questionfile'); echo '

' . get_string('yourfileshoulddownload', 'question', $efile) . '

'; $PAGE->requires->js_function_call('document.location.replace', array($efile), false, 1); } echo $OUTPUT->continue_button(new moodle_url('edit.php', $thispageurl->params())); echo $OUTPUT->footer(); exit; } /// Display export form echo $OUTPUT->heading_with_help($strexportquestions, 'export', 'quiz'); $export_form->display(); echo $OUTPUT->footer();