libdir.'/questionlib.php'); $categoryid = optional_param('category',0, PARAM_INT); $courseid = required_param('courseid',PARAM_INT); $format = optional_param('format','', PARAM_CLEANFILE ); $exportfilename = optional_param('exportfilename','',PARAM_CLEANFILE ); if (! $course = get_record("course", "id", $courseid)) { error("Course does not exist!"); } if (!$categoryid) { // need to get category from modform $showcatmenu = true; // will ensure that user can choose category if (isset($SESSION->modform)) { $categoryid = $SESSION->modform->category; } } if (! $category = get_record("quiz_categories", "id", $categoryid)) { $category = quiz_get_default_category($courseid); } if (! $categorycourse = get_record("course", "id", $category->course)) { error("This category doesn't belong to a valid course!"); } require_login($course->id, false); if (!isteacher($course->id)) { error("Only the teacher can export quiz questions!"); } // ensure the files area exists for this course make_upload_directory( "$course->id" ); $strexportquestions = get_string("exportquestions", "quiz"); $strquestions = get_string("questions", "quiz"); $strquizzes = get_string('modulenameplural', 'quiz'); $streditingquiz = get_string(isset($SESSION->modform->instance) ? "editingquiz" : "editquestions", "quiz"); $dirname = get_string("exportfilename","quiz"); /// Header: if (isset($SESSION->modform->instance) and $quiz = get_record('quiz', 'id', $SESSION->modform->instance)) { $strupdatemodule = isteacheredit($course->id) ? update_module_button($SESSION->modform->cmid, $course->id, get_string('modulename', 'quiz')) : ""; print_header_simple($strexportquestions, '', "id\">".get_string('modulenameplural', 'quiz').''. " -> id\">".format_string($quiz->name).''. ' -> '.$strexportquestions, "", "", true, $strupdatemodule); $currenttab = 'edit'; $mode = 'export'; include('tabs.php'); } else { print_header_simple($strexportquestions, '', ''.get_string('editquestions', 'quiz').''. ' -> '.$strexportquestions); } if (!empty($format)) { /// Filename if (!confirm_sesskey()) { echo( 'Sesskey error' ); } if (! is_readable("format/$format/format.php")) { error('Format not known ('.clean_text($form->format).')'); } require("format.php"); // Parent class require("format/$format/format.php"); $classname = "quiz_format_$format"; $quiz_format = new $classname(); if (! $quiz_format->exportpreprocess($category, $course)) { // Do anything before that we need to error("Error occurred during pre-processing!", "$CFG->wwwroot/mod/quiz/export.php?category=$category->id"); } if (! $quiz_format->exportprocess($exportfilename)) { // Process the export data error("Error occurred during processing!", "$CFG->wwwroot/mod/quiz/export.php?category=$category->id"); } if (! $quiz_format->exportpostprocess()) { // In case anything needs to be done after error("Error occurred during post-processing!", "$CFG->wwwroot/mod/quiz/export.php?category=$category->id"); } echo "