}
-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
///
$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 .= ")";
$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", "",
"<a href=\"index.php?id=$course->id\">$strforums</a> ->
$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);
echo '<div class="user-content">';
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) {