if ($forum = forum_get_course_forum($course->id, 'social')) {
$cm = get_coursemodule_from_instance('forum', $forum->id);
- $context = context_module::instance($cm->id);
+ $modcontext = context_module::instance($cm->id);
/// Print forum intro above posts MDL-18483
if (trim($forum->intro) != '') {
$options->para = false;
$introcontent = format_module_intro('forum', $forum, $cm->id);
- if ($PAGE->user_is_editing() && has_capability('moodle/course:update', $context)) {
+ if ($PAGE->user_is_editing() && has_capability('moodle/course:update', $modcontext)) {
$streditsummary = get_string('editsummary');
$introcontent .= '<div class="editinglink"><a title="'.$streditsummary.'" '.
' href="modedit.php?update='.$cm->id.'&sesskey='.sesskey().'">'.
echo $OUTPUT->box($introcontent, 'generalbox', 'intro');
}
- echo '<div class="subscribelink">', forum_get_subscribe_link($forum, $context), '</div>';
+ echo '<div class="subscribelink">', forum_get_subscribe_link($forum, $modcontext), '</div>';
forum_print_latest_discussions($course, $forum, 10, 'plain', '', false);
} else {
echo html_writer::end_tag('div');
// Trigger course viewed event.
- $eventdata = array('context' => $context);
- if (!empty($section)) {
+ // 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('coursesectionid' => $section);
}
$event = \core\event\course_viewed::create($eventdata);