From bc1544bfc73d22b39ba52d80062b25d5f89ccce0 Mon Sep 17 00:00:00 2001 From: skodak Date: Tue, 4 Jul 2006 08:32:05 +0000 Subject: [PATCH] Bug #5909 - Fix use of user_group() because it returns arrays now - part 2 forum search fixed too; merged from MOODLE_16_STABLE --- mod/forum/lib.php | 9 +++++---- mod/forum/search.php | 8 ++++---- mod/forum/user.php | 15 +++++---------- 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/mod/forum/lib.php b/mod/forum/lib.php index e7493e4d21..f552f212be 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -1104,7 +1104,7 @@ function forum_get_child_posts($parent, $forumid) { } -function forum_search_posts($searchterms, $courseid, $page=0, $recordsperpage=50, &$totalcount, $groupid=0, $extrasql='') { +function forum_search_posts($searchterms, $courseid, $page=0, $recordsperpage=50, &$totalcount, $sepgroups=0, $extrasql='') { /// Returns a list of posts found using an array of search terms /// eg word +word -word /// @@ -1116,12 +1116,13 @@ function forum_search_posts($searchterms, $courseid, $page=0, $recordsperpage=50 $forummodule = get_record("modules", "name", "forum"); $onlyvisible = "AND d.forum = f.id AND f.id = cm.instance AND cm.visible = 1 AND cm.module = $forummodule->id"; $onlyvisibletable = ", {$CFG->prefix}course_modules cm, {$CFG->prefix}forum f"; - if ($groupid) { + if (!empty($sepgroups)) { $separategroups = SEPARATEGROUPS; $selectgroup = " AND ( NOT (cm.groupmode='$separategroups'". " OR (c.groupmode='$separategroups' AND c.groupmodeforce='1') )";//. - foreach ($groupid as $index => $value){ - $selectgroup .= " OR d.groupid = '$value'"; + $selectgroup .= " OR d.groupid = '-1'"; //search inside discussions for all groups too + foreach ($sepgroups as $sepgroup){ + $selectgroup .= " OR d.groupid = '$sepgroup->id'"; } $selectgroup .= ")"; diff --git a/mod/forum/search.php b/mod/forum/search.php index 6d8e36ce4f..727743e3a2 100644 --- a/mod/forum/search.php +++ b/mod/forum/search.php @@ -114,13 +114,13 @@ $searchform = forum_search_form($course, $search); - if ($group = user_group($course->id, $USER->id)) { - $groupid = $group->id; + if ((!isteacheredit($course->id)) and forum_get_separate_modules($course->id)) { + $sepgroups = user_group($course->id, $USER->id); } else { - $groupid = 0; + $sepgroups = false; } - if (!$posts = forum_search_posts($searchterms, $course->id, $page*$perpage, $perpage, $totalcount, $groupid)) { + if (!$posts = forum_search_posts($searchterms, $course->id, $page*$perpage, $perpage, $totalcount, $sepgroups)) { print_header_simple("$strsearchresults", "", "id\">$strforums -> diff --git a/mod/forum/user.php b/mod/forum/user.php index 185921f584..424b287c59 100644 --- a/mod/forum/user.php +++ b/mod/forum/user.php @@ -49,17 +49,12 @@ $currenttab = $mode; include($CFG->dirroot.'/user/tabs.php'); /// Prints out tabs as part of user page - $isseparategroups = /*(($course->groupmode == SEPARATEGROUPS and - $course->groupmodeforce and - !isteacheredit($course->id))*/forum_get_separate_modules($course->id); - - //editting teacher can view everything so do not pass in groupid - if (isteacheredit ($course->id)){ - $isseparategroups = false; + if ((!isteacheredit($course->id)) and forum_get_separate_modules($course->id)) { + $sepgroups = user_group($course->id, $USER->id); + } else { + $sepgroups = false; } - $groupid = $isseparategroups ? /*get_current_group*/mygroupid($course->id) : NULL; - switch ($mode) { case 'posts' : $searchterms = array('userid:'.$user->id); @@ -74,7 +69,7 @@ echo '
'; if ($posts = forum_search_posts($searchterms, $course->id, $page*$perpage, $perpage, - $totalcount, $groupid, $extrasql)) { + $totalcount, $sepgroups, $extrasql)) { print_paging_bar($totalcount, $page, $perpage, "user.php?id=$user->id&course=$course->id&mode=$mode&perpage=$perpage&"); foreach ($posts as $post) { -- 2.39.5