diff --git a/course/lib.php b/course/lib.php index 8a043f18cb8..e49bdf1cc84 100644 --- a/course/lib.php +++ b/course/lib.php @@ -3756,3 +3756,23 @@ function course_change_sortorder_after_course($courseorid, $moveaftercourseid) { cache_helper::purge_by_event('changesincourse'); return true; } + +/** + * Trigger course viewed event. This API function is used when course view actions happens, + * usually in course/view.php but also in external functions. + * + * @param stdClass $context course context object + * @param int $sectionnumber section number + * @since Moodle 2.9 + */ +function course_view($context, $sectionnumber = 0) { + + $eventdata = array('context' => $context); + + if (!empty($sectionnumber)) { + $eventdata['other']['coursesectionnumber'] = $sectionnumber; + } + + $event = \core\event\course_viewed::create($eventdata); + $event->trigger(); +} diff --git a/course/view.php b/course/view.php index f406a06b5e3..e15a0226b89 100644 --- a/course/view.php +++ b/course/view.php @@ -285,12 +285,7 @@ // Trigger course viewed event. // We don't trust $context here. Course format inclusion above executes in the global space. We can't assume // anything after that point. - $eventdata = array('context' => context_course::instance($course->id)); - if (!empty($section) && (int)$section == $section) { - $eventdata['other'] = array('coursesectionnumber' => $section); - } - $event = \core\event\course_viewed::create($eventdata); - $event->trigger(); + course_view(context_course::instance($course->id), $section); // Include course AJAX include_course_ajax($course, $modnamesused); diff --git a/index.php b/index.php index 5d5e0f74078..a54e202c8b5 100644 --- a/index.php +++ b/index.php @@ -78,9 +78,8 @@ if (get_home_page() != HOMEPAGE_SITE) { } } -$eventparams = array('context' => context_course::instance(SITEID)); -$event = \core\event\course_viewed::create($eventparams); -$event->trigger(); +// Trigger event. +course_view(context_course::instance(SITEID)); // If the hub plugin is installed then we let it take over the homepage here. if (file_exists($CFG->dirroot.'/local/hub/lib.php') and get_config('local_hub', 'hubenabled')) {