]> git.mjollnir.org Git - moodle.git/commitdiff
Fixed bug in forum_search_posts(). More testing needed still.
authorvyshane <vyshane>
Fri, 15 Sep 2006 06:04:23 +0000 (06:04 +0000)
committervyshane <vyshane>
Fri, 15 Sep 2006 06:04:23 +0000 (06:04 +0000)
mod/forum/lib.php
mod/forum/user.php

index 30fc460c211f93f7c9c023f18782d9451951dbda..1d400ea8ea014b54483545dcbebb863a256f2c98 100644 (file)
@@ -1195,6 +1195,9 @@ function forum_get_readable_forums($userid, $courseid=0) {
         }
     } // End foreach $courses
     
+    //print_object($courses);
+    //print_object($readableforums);
+    
     return $readableforums;
 }
 
@@ -1208,13 +1211,16 @@ function forum_get_readable_forums($userid, $courseid=0) {
  * @param $extrasql
  * @return array of posts found
  */
-function forum_search_posts($searchterms, $courseid=0, $page=0, $recordsperpage=50, 
+function forum_search_posts($searchterms, $courseid=0, $limitfrom=0, $limitnum=50, 
                             &$totalcount, $extrasql='') {
     global $CFG, $USER;
     require_once($CFG->libdir.'/searchlib.php');
 
     $forums = forum_get_readable_forums($USER->id, $courseid);
-
+    
+    if (count($forums) == 0) {
+        return false;
+    }
 
     for ($i=0; $i<count($forums); $i++) {
         if ($i == 0) {
@@ -1294,7 +1300,7 @@ function forum_search_posts($searchterms, $courseid=0, $page=0, $recordsperpage=
                    FROM $fromsql
                   WHERE $selectsql";
 
-    $searchsql = "SELECT p.*,
+    $searchsql = "SELECT DISTINCT(p.id), p.*,
                          d.forum,
                          u.firstname,
                          u.lastname,
@@ -1304,10 +1310,9 @@ function forum_search_posts($searchterms, $courseid=0, $page=0, $recordsperpage=
                    WHERE $selectsql
                 ORDER BY p.modified DESC";
 
-    //print_object($searchsql);  // Debug.
-
     $totalcount = count_records_sql($countsql);
-    return get_records_sql($searchsql, $page, $recordsperpage);
+    
+    return get_records_sql($searchsql, $limitfrom, $limitnum);
 }
 
 
index 59383cc7ba19134ee16148f154c91a9b437954bc..9ff87c7bdd056e40ed19b6b4167ef0b5dfec84b7 100644 (file)
     }
     
     echo '<div class="user-content">';
-    // Get the posts regardless of group first.
-    if ($posts = forum_search_posts($searchterms, $course->id, $page*$perpage, $perpage, 
+    
+    
+    if ($course->id == SITEID) {
+        // Search throughout the whole site.
+        $searchcourse = 0;
+    } else {
+        // Search only for posts the user made in this course.
+        $searchcourse = $course->id;
+    }
+    
+    // Get the posts.
+    if ($posts = forum_search_posts($searchterms, $searchcourse, $page*$perpage, $perpage, 
                                     $totalcount, $extrasql)) {
         
         print_paging_bar($totalcount, $page, $perpage, 
                          "user.php?id=$user->id&amp;course=$course->id&amp;mode=$mode&amp;perpage=$perpage&amp;");
+        
         foreach ($posts as $post) {
     
             if (! $discussion = get_record('forum_discussions', 'id', $post->discussion)) {
                          get_string("postincontext", "forum")."</a>";
 
             forum_print_post($post, $course->id, false, false, false, false, $fulllink);
-
             echo "<br />";
         }
     
     echo '</div>';
     print_footer($course);
 
-?>
-
+?>
\ No newline at end of file