MDL-10263, enable forum search for multiple groups

This commit is contained in:
toyomoyo
2007-11-28 07:51:48 +00:00
parent f6ae5aee7c
commit 53bbf98533
+12 -4
View File
@@ -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