require_course_login($course);
$PAGE->set_pagelayout('incourse');
-add_to_log($course->id, "scorm", "view all", "index.php?id=$course->id", "");
+// Trigger instances list viewed event.
+$event = \mod_scorm\event\course_module_instance_list_viewed::create(array('context' => context_course::instance($course->id)));
+$event->trigger();
$strscorm = get_string("modulename", "scorm");
$strscorms = get_string("modulenameplural", "scorm");
$string['enter'] = 'Enter';
$string['entercourse'] = 'Enter course';
$string['errorlogs'] = 'Errors log';
+$string['eventattemptdeleted'] = 'Attempt deleted';
+$string['eventinteractionsviewed'] = 'Interactions viewed';
+$string['eventreportviewed'] = 'Report viewed';
+$string['eventscolaunched'] = 'Sco launched';
+$string['eventtracksviewed'] = 'Tracks viewed';
+$string['eventuserreportviewed'] = 'User report viewed';
$string['everyday'] = 'Every day';
$string['everytime'] = 'Every time it\'s used';
$string['exceededmaxattempts'] = 'You have reached the maximum number of attempts.';
$result = "$CFG->wwwroot/pluginfile.php/$context->id/mod_scorm/content/$scorm->revision/$launcher";
}
-add_to_log($course->id, 'scorm', 'launch', 'view.php?id='.$cm->id, $result, $cm->id);
+// Trigger a Sco launched event.
+$event = \mod_scorm\event\sco_launched::create(array(
+ 'objectid' => $sco->id,
+ 'context' => $context,
+ 'other' => array('instanceid' => $scorm->id, 'loadedcontent' => $result)
+));
+$event->add_record_snapshot('course_modules', $cm);
+$event->add_record_snapshot('scorm', $scorm);
+$event->add_record_snapshot('scorm_scoes', $sco);
+$event->trigger();
header('Content-Type: text/html; charset=UTF-8');
* Delete Scorm tracks for selected users
*
* @param array $attemptids list of attempts that need to be deleted
- * @param int $scorm instance
+ * @param stdClass $scorm instance
*
- * return bool true deleted all responses, false failed deleting an attempt - stopped here
+ * @return bool true deleted all responses, false failed deleting an attempt - stopped here
*/
function scorm_delete_responses($attemptids, $scorm) {
if (!is_array($attemptids) || empty($attemptids)) {
* Delete Scorm tracks for selected users
*
* @param int $userid ID of User
- * @param int $scormid ID of Scorm
+ * @param stdClass $scorm Scorm object
* @param int $attemptid user attempt that need to be deleted
*
- * return bool true suceeded
+ * @return bool true suceeded
*/
function scorm_delete_attempt($userid, $scorm, $attemptid) {
global $DB;
$DB->delete_records('scorm_scoes_track', array('userid' => $userid, 'scormid' => $scorm->id, 'attempt' => $attemptid));
+ $cm = get_coursemodule_from_instance('scorm', $scorm->id);
+
+ // Trigger instances list viewed event.
+ $event = \mod_scorm\event\attempt_deleted::create(array(
+ 'other' => array('attemptid' => $attemptid),
+ 'context' => context_module::instance($cm->instance),
+ 'relateduserid' => $userid
+ ));
+ $event->add_record_snapshot('course_modules', $cm);
+ $event->add_record_snapshot('scorm', $scorm);
+ $event->trigger();
+
include_once('lib.php');
scorm_update_grades($scorm, $userid, true);
return true;
exit;
}
-add_to_log($course->id, 'scorm', 'view', "player.php?cm=$cm->id&scoid=$sco->id", "$scorm->id", $cm->id);
-
-
$scoidstr = '&scoid='.$sco->id;
$modestr = '&mode='.$mode;
print_error('erroraccessingreport', 'scorm');
}
-add_to_log($course->id, 'scorm', 'report', 'report.php?id='.$cm->id, $scorm->id, $cm->id);
+// Trigger a report viewed event.
+$event = \mod_scorm\event\report_viewed::create(array(
+ 'objectid' => $scorm->id,
+ 'context' => $contextmodule,
+ 'other' => array('mode' => $mode)
+));
+$event->add_record_snapshot('course_modules', $cm);
+$event->add_record_snapshot('scorm', $scorm);
+$event->trigger();
+
$userdata = null;
if (!empty($download)) {
$noheader = true;
if ($action == 'delete' && has_capability('mod/scorm:deleteresponses', $contextmodule) && confirm_sesskey()) {
if (scorm_delete_responses($attemptids, $scorm)) { //delete responses.
- add_to_log($course->id, 'scorm', 'delete attempts', 'report.php?id=' . $cm->id, implode(",", $attemptids), $cm->id);
echo $OUTPUT->notification(get_string('scormresponsedeleted', 'scorm'), 'notifysuccess');
}
}
if ($action == 'delete' && has_capability('mod/scorm:deleteresponses', $contextmodule) && confirm_sesskey()) {
if (scorm_delete_responses($attemptids, $scorm)) { //delete responses.
- add_to_log($course->id, 'scorm', 'delete attempts', 'report.php?id=' . $cm->id, implode(",", $attemptids), $cm->id);
echo $OUTPUT->notification(get_string('scormresponsedeleted', 'scorm'), 'notifysuccess');
}
}
if ($action == 'delete' && has_capability('mod/scorm:deleteresponses', $contextmodule) && confirm_sesskey()) {
if (scorm_delete_responses($attemptids, $scorm)) { // Delete responses.
- add_to_log($course->id, 'scorm', 'delete attempts', 'report.php?id=' . $cm->id, implode(",", $attemptids), $cm->id);
echo $OUTPUT->notification(get_string('scormresponsedeleted', 'scorm'), 'notifysuccess');
}
}
$contextmodule = context_module::instance($cm->id);
require_capability('mod/scorm:viewreport', $contextmodule);
-add_to_log($course->id, 'scorm', 'userreport', 'userreport.php?id='.$id, $scorm->id, $id);
+// Trigger a user report viewed event.
+$event = \mod_scorm\event\user_report_viewed::create(array(
+ 'context' => $contextmodule,
+ 'relateduserid' => $userid,
+ 'other' => array('attemptid' => $attempt, 'instanceid' => $scorm->id)
+));
+$event->add_record_snapshot('course_modules', $cm);
+$event->add_record_snapshot('scorm', $scorm);
+$event->trigger();
// Print the page header.
$strreport = get_string('report', 'scorm');
$contextmodule = context_module::instance($cm->id);
require_capability('mod/scorm:viewreport', $contextmodule);
-add_to_log($course->id, 'scorm', 'userreportinteractions', 'userreportinteractions.php?id='.$cm->id, $scorm->id, $cm->id);
-
+// Trigger a user interactions viewed event.
+$event = \mod_scorm\event\interactions_viewed::create(array(
+ 'context' => $contextmodule,
+ 'relateduserid' => $userid,
+ 'other' => array('attemptid' => $attempt, 'instanceid' => $scorm->id)
+));
+$event->add_record_snapshot('course_modules', $cm);
+$event->add_record_snapshot('scorm', $scorm);
+$event->trigger();
$trackdata = $DB->get_records('scorm_scoes_track', array('userid' => $user->id, 'scormid' => $scorm->id,
'attempt' => $attempt));
$contextmodule = context_module::instance($cm->id);
require_capability('mod/scorm:viewreport', $contextmodule);
-add_to_log($course->id, 'scorm', 'userreporttracks', 'userreporttracks.php?id='.$id, $scorm->id, $id);
+// Trigger a tracks viewed event.
+$event = \mod_scorm\event\tracks_viewed::create(array(
+ 'context' => $contextmodule,
+ 'relateduserid' => $userid,
+ 'other' => array('attemptid' => $attempt, 'instanceid' => $scorm->id, 'scoid' => $scoid)
+));
+$event->add_record_snapshot('course_modules', $cm);
+$event->add_record_snapshot('scorm', $scorm);
+$event->trigger();
// Print the page header.
$strreport = get_string('report', 'scorm');
$shortname = format_string($course->shortname, true, array('context' => $context));
$pagetitle = strip_tags($shortname.': '.format_string($scorm->name));
-add_to_log($course->id, 'scorm', 'pre-view', 'view.php?id='.$cm->id, "$scorm->id", $cm->id);
+// Trigger module viewed event.
+$event = \mod_scorm\event\course_module_viewed::create(array(
+ 'objectid' => $scorm->id,
+ 'context' => $contextmodule,
+));
+$event->add_record_snapshot('scorm', $scorm);
+$event->add_record_snapshot('course_modules', $cm);
+$event->trigger();
if (empty($launch) && (has_capability('mod/scorm:skipview', $contextmodule))) {
scorm_simple_play($scorm, $USER, $contextmodule, $cm->id);