Bug #5909 - Fix use of user_group() because it returns arrays now - part 2 forum search fixed too; merged from MOODLE_16_STABLE
This commit is contained in:
+5
-4
@@ -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 .= ")";
|
||||
|
||||
|
||||
@@ -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", "",
|
||||
"<a href=\"index.php?id=$course->id\">$strforums</a> ->
|
||||
|
||||
+5
-10
@@ -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 '<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) {
|
||||
|
||||
Reference in New Issue
Block a user