$attemptid,'question'=>$questionid)); if ($stateid !== 0) { $url->param('state', $stateid); } $PAGE->set_url($url); $attemptobj = quiz_attempt::create($attemptid); /// Check login. require_login($attemptobj->get_courseid(), false, $attemptobj->get_cm()); $attemptobj->check_review_capability(); /// Permissions checks for normal users who do not have quiz:viewreports capability. if (!$attemptobj->has_capability('mod/quiz:viewreports')) { /// Can't review during the attempt - send them back to the attempt page. if (!$attemptobj->is_finished()) { echo $OUTPUT->notification(get_string('cannotreviewopen', 'quiz')); echo $OUTPUT->close_window_button(); } /// Can't review other users' attempts. if (!$attemptobj->is_own_attempt()) { echo $OUTPUT->notification(get_string('notyourattempt', 'quiz')); echo $OUTPUT->close_window_button(); } /// Can't review unless Students may review -> Responses option is turned on. if (!$options->responses) { $accessmanager = $attemptobj->get_access_manager(time()); echo $OUTPUT->notification($accessmanager->cannot_review_message($attemptobj->get_review_options())); echo $OUTPUT->close_window_button(); } } /// Load the questions and states. $questionids = array($questionid); $attemptobj->load_questions($questionids); $attemptobj->load_question_states($questionids); /// If it was asked for, load another state, instead of the latest. if ($stateid) { $attemptobj->load_specific_question_state($questionid, $stateid); } /// Work out the base URL of this page. $baseurl = $CFG->wwwroot . '/mod/quiz/reviewquestion.php?attempt=' . $attemptobj->get_attemptid() . '&question=' . $questionid; /// Log this review. add_to_log($attemptobj->get_courseid(), 'quiz', 'review', 'reviewquestion.php?attempt=' . $attemptobj->get_attemptid() . '&question=' . $questionid . ($stateid ? '&state=' . $stateid : ''), $attemptobj->get_quizid(), $attemptobj->get_cmid()); $PAGE->requires->js('/lib/overlib/overlib.js', true); $PAGE->requires->js('/lib/overlib/overlib_cssstyle.js', true); /// Print the page header $attemptobj->get_question_html_head_contributions($questionid); $PAGE->set_title($attemptobj->get_course()->shortname . ': '.format_string($attemptobj->get_quiz_name())); $PAGE->set_heading($COURSE->fullname); echo $OUTPUT->header(); echo '
'; // for overlib /// Print infobox $rows = array(); /// User picture and name. if ($attemptobj->get_userid() <> $USER->id) { // Print user picture and name $student = $DB->get_record('user', array('id' => $attemptobj->get_userid())); $picture = $OUTPUT->user_picture($student, array('courseid'=>$attemptobj->get_courseid())); $rows[] = '