From 51c378b116116fd69759bec1561a3f2a11e99ab5 Mon Sep 17 00:00:00 2001 From: Juan Leyva Date: Thu, 26 Mar 2015 18:13:56 +0100 Subject: [PATCH] MDL-49502 forum: New API function forum_view --- mod/forum/lib.php | 30 ++++++++++++++++++++++++++++++ mod/forum/view.php | 21 +++++---------------- 2 files changed, 35 insertions(+), 16 deletions(-) diff --git a/mod/forum/lib.php b/mod/forum/lib.php index c0cb23c9707..613aa741ac9 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -7763,3 +7763,33 @@ function forum_get_context($forumid, $context = null) { return $context; } + +/** + * Mark the activity completed (if required) and trigger the course_module_viewed event. + * + * @param stdClass $forum forum object + * @param stdClass $course course object + * @param stdClass $cm course module object + * @param stdClass $context context object + * @since Moodle 2.9 + */ +function forum_view($forum, $course, $cm, $context) { + + // Completion. + $completion = new completion_info($course); + $completion->set_module_viewed($cm); + + // Trigger course_module_viewed event. + + $params = array( + 'context' => $context, + 'objectid' => $forum->id + ); + + $event = \mod_forum\event\course_module_viewed::create($params); + $event->add_record_snapshot('course_modules', $cm); + $event->add_record_snapshot('course', $course); + $event->add_record_snapshot('forum', $forum); + $event->trigger(); + +} diff --git a/mod/forum/view.php b/mod/forum/view.php index 6522d9f1bdc..af2c8d7ffb0 100644 --- a/mod/forum/view.php +++ b/mod/forum/view.php @@ -100,18 +100,12 @@ rss_add_http_header($context, 'mod_forum', $forum, $rsstitle); } - // Mark viewed if required - $completion = new completion_info($course); - $completion->set_module_viewed($cm); - /// Print header. $PAGE->set_title($forum->name); $PAGE->add_body_class('forumtype-'.$forum->type); $PAGE->set_heading($course->fullname); - echo $OUTPUT->header(); - /// Some capability checks. if (empty($cm->visible) and !has_capability('moodle/course:viewhiddenactivities', $context)) { notice(get_string("activityiscurrentlyhidden")); @@ -121,6 +115,11 @@ notice(get_string('noviewdiscussionspermission', 'forum')); } + // Mark viewed and trigger the course_module_viewed event. + forum_view($forum, $course, $cm, $context); + + echo $OUTPUT->header(); + echo $OUTPUT->heading(format_string($forum->name), 2); if (!empty($forum->intro) && $forum->type != 'single' && $forum->type != 'teacher') { echo $OUTPUT->box(format_module_intro('forum', $forum, $cm->id), 'generalbox', 'intro'); @@ -129,16 +128,6 @@ /// find out current groups mode groups_print_activity_menu($cm, $CFG->wwwroot . '/mod/forum/view.php?id=' . $cm->id); - $params = array( - 'context' => $context, - 'objectid' => $forum->id - ); - $event = \mod_forum\event\course_module_viewed::create($params); - $event->add_record_snapshot('course_modules', $cm); - $event->add_record_snapshot('course', $course); - $event->add_record_snapshot('forum', $forum); - $event->trigger(); - $SESSION->fromdiscussion = qualified_me(); // Return here if we post or set subscription etc