MDL-51624 mod_lti: New Web Service mod_lti_view_lti
[moodle.git] / mod / lti / lib.php
index ae723ee..cf9df60 100644 (file)
@@ -506,3 +506,31 @@ function lti_get_post_actions() {
 function lti_get_view_actions() {
     return array('view all', 'view');
 }
+
+/**
+ * Mark the activity completed (if required) and trigger the course_module_viewed event.
+ *
+ * @param  stdClass $lti        lti object
+ * @param  stdClass $course     course object
+ * @param  stdClass $cm         course module object
+ * @param  stdClass $context    context object
+ * @since Moodle 3.0
+ */
+function lti_view($lti, $course, $cm, $context) {
+
+    // Trigger course_module_viewed event.
+    $params = array(
+        'context' => $context,
+        'objectid' => $lti->id
+    );
+
+    $event = \mod_lti\event\course_module_viewed::create($params);
+    $event->add_record_snapshot('course_modules', $cm);
+    $event->add_record_snapshot('course', $course);
+    $event->add_record_snapshot('lti', $lti);
+    $event->trigger();
+
+    // Completion.
+    $completion = new completion_info($course);
+    $completion->set_module_viewed($cm);
+}