/** * Tests for course module viewed event. * * There is no api involved so the best we can do is test legacy data by triggering event manually. */ public function test_course_module_viewed_event() { $this->resetAfterTest(); $event = \mod_scorm\event\course_module_viewed::create(array('objectid' => $this->eventscorm->id, 'context' => context_module::instance($this->eventcm->id), 'courseid' => $this->eventcourse->id)); // Trigger and capture the event. $sink = $this->redirectEvents(); $event->trigger(); $events = $sink->get_events(); $event = reset($events); // Check that the legacy log data is valid. $expected = array($this->eventcourse->id, 'scorm', 'pre-view', 'view.php?id=' . $this->eventcm->id, $this->eventscorm->id, $this->eventcm->id); $this->assertEventLegacyLogData($expected, $event); $this->assertEventContextNotUsed($event); }
/** * Trigger the course_module_viewed event. * * @param stdClass $scorm scorm object * @param stdClass $course course object * @param stdClass $cm course module object * @param stdClass $context context object * @since Moodle 3.0 */ function scorm_view($scorm, $course, $cm, $context) { // Trigger course_module_viewed event. $params = array('context' => $context, 'objectid' => $scorm->id); $event = \mod_scorm\event\course_module_viewed::create($params); $event->add_record_snapshot('course_modules', $cm); $event->add_record_snapshot('course', $course); $event->add_record_snapshot('scorm', $scorm); $event->trigger(); }
$courseurl = course_get_url($course, $sectionid)->out(false); } $PAGE->requires->data_for_js('scormplayerdata', array('launch' => $launch, 'currentorg' => $orgidentifier, 'sco' => $scoid, 'scorm' => $scorm->id, 'courseurl' => $courseurl, 'cwidth' => $scorm->width, 'cheight' => $scorm->height, 'popupoptions' => $scorm->options), true); $PAGE->requires->string_for_js('popupsblocked', 'scorm'); $PAGE->requires->string_for_js('popuplaunched', 'scorm'); $PAGE->requires->js('/mod/scorm/view.js', true); } if (isset($SESSION->scorm)) { unset($SESSION->scorm); } $strscorms = get_string("modulenameplural", "scorm"); $strscorm = get_string("modulename", "scorm"); $shortname = format_string($course->shortname, true, array('context' => $context)); $pagetitle = strip_tags($shortname . ': ' . format_string($scorm->name)); // Trigger module viewed event. $event = \mod_scorm\event\course_module_viewed::create(array('objectid' => $scorm->id, 'context' => $contextmodule)); $event->add_record_snapshot('course', $course); $event->add_record_snapshot('scorm', $scorm); $event->add_record_snapshot('course_modules', $cm); $event->trigger(); if (empty($preventskip) && empty($launch) && has_capability('mod/scorm:skipview', $contextmodule)) { scorm_simple_play($scorm, $USER, $contextmodule, $cm->id); } // Print the page header. $PAGE->set_title($pagetitle); $PAGE->set_heading($course->fullname); echo $OUTPUT->header(); echo $OUTPUT->heading(format_string($scorm->name)); if (!empty($action) && confirm_sesskey() && has_capability('mod/scorm:deleteownresponses', $contextmodule)) { if ($action == 'delete') { $confirmurl = new moodle_url($PAGE->url, array('action' => 'deleteconfirm'));