/** * Handle the quiz_attempt_submitted event. * * This sends the confirmation and notification messages, if required. * * @param object $event the event object. */ function quiz_attempt_submitted_handler($event) { global $DB; $course = $DB->get_record('course', array('id' => $event->courseid)); $quiz = $DB->get_record('quiz', array('id' => $event->quizid)); $cm = get_coursemodule_from_id('quiz', $event->cmid, $event->courseid); $attempt = $DB->get_record('quiz_attempts', array('id' => $event->attemptid)); if (!($course && $quiz && $cm && $attempt)) { // Something has been deleted since the event was raised. Therefore, the // event is no longer relevant. return true; } return quiz_send_notification_messages($course, $quiz, $attempt, context_module::instance($cm->id), $cm); }
/** * Handle the quiz_attempt_submitted event. * * This sends the confirmation and notification messages, if required. * * @param object $event the event object. */ function quiz_attempt_submitted_handler($event) { global $DB; $course = $DB->get_record('course', array('id' => $event->courseid)); $attempt = $event->get_record_snapshot('quiz_attempts', $event->objectid); $quiz = $event->get_record_snapshot('quiz', $attempt->quiz); $cm = get_coursemodule_from_id('quiz', $event->get_context()->instanceid, $event->courseid); if (!($course && $quiz && $cm && $attempt)) { // Something has been deleted since the event was raised. Therefore, the // event is no longer relevant. return true; } // Update completion state. $completion = new completion_info($course); if ($completion->is_enabled($cm) && ($quiz->completionattemptsexhausted || $quiz->completionpass)) { $completion->update_state($cm, COMPLETION_COMPLETE, $event->userid); } return quiz_send_notification_messages($course, $quiz, $attempt, context_module::instance($cm->id), $cm); }