MDL-57915 mod_data: Move view completion and event code to function

This commit is contained in:
Juan Leyva 2017-02-09 15:04:17 +01:00
parent 1034421264
commit 023ffa656d
3 changed files with 74 additions and 14 deletions

View file

@ -4101,3 +4101,33 @@ function data_set_config(&$database, $key, $value) {
$DB->set_field('data', 'config', $database->config, ['id' => $database->id]);
}
}
/**
* Mark the activity completed (if required) and trigger the course_module_viewed event.
*
* @param stdClass $data data object
* @param stdClass $course course object
* @param stdClass $cm course module object
* @param stdClass $context context object
* @since Moodle 3.3
*/
function data_view($data, $course, $cm, $context) {
global $CFG;
require_once($CFG->libdir . '/completionlib.php');
// Trigger course_module_viewed event.
$params = array(
'context' => $context,
'objectid' => $data->id
);
$event = \mod_data\event\course_module_viewed::create($params);
$event->add_record_snapshot('course_modules', $cm);
$event->add_record_snapshot('course', $course);
$event->add_record_snapshot('data', $data);
$event->trigger();
// Completion.
$completion = new completion_info($course);
$completion->set_module_viewed($cm);
}