diff --git a/mod/forum/lib.php b/mod/forum/lib.php index 02dd78fec9b..bafdeae38cf 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -1040,7 +1040,7 @@ function forum_search_posts($searchterms, $courseid, $page=0, $recordsperpage=50 /// Returns a list of posts found using an array of search terms /// eg word +word -word /// - global $CFG; + global $CFG, $USER; require_once($CFG->libdir.'/searchlib.php'); if (!isteacher($courseid)) { @@ -1078,6 +1078,12 @@ function forum_search_posts($searchterms, $courseid, $page=0, $recordsperpage=50 } } + $timelimit = ''; + if (!((isadmin() and !empty($CFG->admineditalways)) || isteacher($courseid))) { + $now = time(); + $timelimit = " AND (d.userid = $USER->id || ((d.timestart = 0 || d.timestart <= $now) && (d.timeend = 0 || d.timeend > $now))"; + } + $limit = sql_paging_limit($page, $recordsperpage); /// Some differences in syntax for PostgreSQL @@ -1119,7 +1125,7 @@ function forum_search_posts($searchterms, $courseid, $page=0, $recordsperpage=50 {$CFG->prefix}user u $onlyvisibletable $coursetable WHERE ($messagesearch) AND p.userid = u.id - AND p.discussion = d.id $selectcourse $notteacherforum $onlyvisible $selectgroup $extrasql"; + AND p.discussion = d.id $selectcourse $notteacherforum $onlyvisible $selectgroup $timelimit $extrasql"; $totalcount = count_records_sql("SELECT COUNT(*) FROM $selectsql"); diff --git a/mod/forum/search.php b/mod/forum/search.php index 6d6986f6f59..a94dd20c603 100644 --- a/mod/forum/search.php +++ b/mod/forum/search.php @@ -187,16 +187,6 @@ error("Could not find forum $discussion->forum"); } - if ($forum->type == "news") { // Skip if is hidden - if (!((isadmin() and !empty($CFG->admineditalways)) - || isteacher($course->id) - || $USER->id == $discussion->userid - || (($discussion->timestart == 0 || $discussion->timestart <= time()) - && ($discussion->timeend == 0 || $discussion->timeend > time())))) { - continue; - } - } - $post->subject = highlight($strippedsearch, $post->subject); $discussion->name = highlight($strippedsearch, $discussion->name);