require_once(dirname(__FILE__) . '/previewlib.php'); // Get and validate question id. $id = required_param('id', PARAM_INT); $question = question_bank::load_question($id); require_login(); $category = $DB->get_record('question_categories', array('id' => $question->category), '*', MUST_EXIST); question_require_capability_on($question, 'use'); $PAGE->set_pagelayout('popup'); $PAGE->set_context(get_context_instance_by_id($category->contextid)); // Get and validate display options. $maxvariant = $question->get_num_variants(); $options = new question_preview_options($question); $options->load_user_defaults(); $options->set_from_request(); $PAGE->set_url(question_preview_url($id, $options->behaviour, $options->maxmark, $options)); // Get and validate exitsing preview, or start a new one. $previewid = optional_param('previewid', 0, PARAM_INT); if ($previewid) { if (!isset($SESSION->question_previews[$previewid])) { print_error('notyourpreview', 'question'); } try { $quba = question_engine::load_questions_usage_by_activity($previewid); } catch (Exception $e) { print_error('submissionoutofsequencefriendlymessage', 'question', question_preview_url($question->id, $options->behaviour,