From 2f60b31e9023d4b7a3156158eb8a4a9a363b365a Mon Sep 17 00:00:00 2001 From: toyomoyo Date: Wed, 28 Nov 2007 07:53:44 +0000 Subject: [PATCH] MDL-10263, enable forum search for multiple groups --- mod/forum/lib.php | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/mod/forum/lib.php b/mod/forum/lib.php index 0e37bf503f..ea277a04ce 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -1417,8 +1417,15 @@ function forum_get_readable_forums($userid, $courseid=0) { 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); @@ -1439,7 +1446,7 @@ function forum_get_readable_forums($userid, $courseid=0) { 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; @@ -1521,7 +1528,8 @@ function forum_search_posts($searchterms, $courseid=0, $limitfrom=0, $limitnum=5 } 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 -- 2.39.5