if (!$cm->uservisible or !isset($forums[$forumid])) { continue; } $forum = $forums[$forumid]; if (!($context = context_module::instance($cm->id, IGNORE_MISSING))) { // Shouldn't happen. continue; } if (!has_capability('mod/forum:viewdiscussion', $context)) { // User can't view this one - skip it. continue; } // Determine whether subscription options should be displayed. $forum->cansubscribe = mod_forum\subscriptions::is_subscribable($forum); $forum->cansubscribe = $forum->cansubscribe || has_capability('mod/forum:managesubscriptions', $context); $forum->issubscribed = mod_forum\subscriptions::is_subscribed($USER->id, $forum, null, $cm); $showsubscriptioncolumns = $showsubscriptioncolumns || $forum->issubscribed || $forum->cansubscribe; // Fill two type array - order in modinfo is the same as in course. if ($forum->type == 'news' or $forum->type == 'social') { $generalforums[$forum->id] = $forum; } else { if ($course->id == SITEID or empty($cm->sectionnum)) { $generalforums[$forum->id] = $forum; } else { $learningforums[$forum->id] = $forum; } } } if ($showsubscriptioncolumns) { // The user can subscribe to at least one forum. $generaltable->head[] = $strsubscribed;
/** * @global object * @param int $userid * @param object $forum * @return bool * @deprecated since Moodle 2.8 use \mod_forum\subscriptions::is_subscribed() instead */ function forum_is_subscribed($userid, $forum) { global $DB; debugging("forum_is_subscribed() has been deprecated, please use \\mod_forum\\subscriptions::is_subscribed() instead.", DEBUG_DEVELOPER); // Note: The new function does not take an integer form of forum. if (is_numeric($forum)) { $forum = $DB->get_record('forum', array('id' => $forum)); } return mod_forum\subscriptions::is_subscribed($userid, $forum); }