ORDER BY f.name ASC";
if ($forums = get_records_sql($selectforums)) {
-
- $group = groups_get_all_groups($course->id, $userid);
+
+ $groups = array();
+ if ($group = groups_get_all_groups($course->id, $userid)) {
+ foreach($group as $grp) {
+ if (isset($grp->id)) {
+ $groups[] = $grp->id;
+ }
+ }
+ }
foreach ($forums as $forum) {
$forumcontext = get_context_instance(CONTEXT_MODULE, $forum->cmid);
if ($forum->cmgroupmode == SEPARATEGROUPS
&& !has_capability('moodle/site:accessallgroups', $forumcontext)) {
$forum->accessallgroups = false;
- $forum->accessgroup = $group->id; // The user can only access
+ $forum->accessgroup = $groups; // The user can only access
// discussions for this group.
} else {
$forum->accessallgroups = true;
}
if (!$forums[$i]->accessallgroups) {
if (!empty($forums[$i]->accessgroup)) {
- $selectdiscussion .= " AND (d.groupid = {$forums[$i]->accessgroup}";
+ $groups = rtrim(implode(",", $forums[$i]->accessgroup),",");
+ $selectdiscussion .= " AND (d.groupid in ($groups)";
$selectdiscussion .= ' OR d.groupid = -1)'; // -1 means open for all groups.
} else {
// User isn't in any group. Only search discussions that are