From 97485d07268ce03fc079e74d40e80252693ee11d Mon Sep 17 00:00:00 2001 From: moodler Date: Mon, 23 Dec 2002 15:33:40 +0000 Subject: [PATCH] More database tweaks and improved access to forum search engine --- admin/user.php | 2 -- lib/datalib.php | 3 ++- mod/forum/discuss.php | 6 ++++-- mod/forum/index.php | 19 ++++++++++--------- mod/forum/lib.php | 43 +++++++++++++++++++++++++++++++------------ mod/forum/search.php | 14 +++++++------- mod/forum/view.php | 3 +++ 7 files changed, 57 insertions(+), 33 deletions(-) diff --git a/admin/user.php b/admin/user.php index 593a239b9f..4749cd64f5 100644 --- a/admin/user.php +++ b/admin/user.php @@ -6,8 +6,6 @@ $recordsperpage = 30; - $db->debug = true; - optional_variable($newuser, ""); optional_variable($delete, ""); optional_variable($confirm, ""); diff --git a/lib/datalib.php b/lib/datalib.php index 69d8eb50d2..32f94d0998 100644 --- a/lib/datalib.php +++ b/lib/datalib.php @@ -754,7 +754,8 @@ function get_users_longtimenosee($cutofftime) { {$CFG->prefix}user_students s WHERE u.lastaccess > '0' AND u.lastaccess < '$cutofftime' - AND u.id = s.userid"); + AND u.id = s.userid + GROUP BY u.id"); } diff --git a/mod/forum/discuss.php b/mod/forum/discuss.php index ed619bcd11..e5668d5580 100644 --- a/mod/forum/discuss.php +++ b/mod/forum/discuss.php @@ -58,13 +58,15 @@ $navmiddle = "id\">".get_string("forums", "forum")." -> id\">$forum->name"; + $searchform = forum_print_search_form($course, $search, true, "plain"); + if ($course->category) { print_header("$course->shortname: $discussion->name", "$course->fullname", "id>$course->shortname -> - $navmiddle -> $navtail", "", "", true, "", navmenu($course, $cm)); + $navmiddle -> $navtail", "", "", true, $searchform, navmenu($course, $cm)); } else { print_header("$course->shortname: $discussion->name", "$course->fullname", - "$navmiddle -> $navtail", "", "", true); + "$navmiddle -> $navtail", "", "", true, $searchform, navmenu($course, $cm)); } forum_print_discussion($course, $forum, $discussion, $post, $displaymode); diff --git a/mod/forum/index.php b/mod/forum/index.php index cdff4345f8..672aebf71d 100644 --- a/mod/forum/index.php +++ b/mod/forum/index.php @@ -25,18 +25,22 @@ add_to_log($course->id, "forum", "view forums", "index.php?id=$course->id"); $strforums = get_string("forums", "forum"); + $strforum = get_string("forum", "forum"); + $strdescription = get_string("description"); + $strdiscussions = get_string("discussions", "forum"); + $strsubscribed = get_string("subscribed", "forum"); + + $searchform = forum_print_search_form($course, "", true, "plain"); if ($course->category) { print_header("$course->shortname: $strforums", "$course->fullname", "id>$course->shortname -> $strforums", - "", "", true, "", navmenu($course)); + "", "", true, $searchform, navmenu($course)); } else { - print_header("$course->shortname: $strforums", "$course->fullname", "$strforums"); + print_header("$course->shortname: $strforums", "$course->fullname", "$strforums", + "", "", true, $searchform, navmenu($course)); } - $strforum = get_string("forum", "forum"); - $strdescription = get_string("description"); - $strdiscussions = get_string("discussions", "forum"); - $strsubscribed = get_string("subscribed", "forum"); + $table->head = array ($strforum, $strdescription, $strdiscussions); $table->align = array ("LEFT", "LEFT", "CENTER"); @@ -145,9 +149,6 @@ } } - echo "
"; - forum_print_search_form($course, $search); - echo "
"; print_footer($course); diff --git a/mod/forum/lib.php b/mod/forum/lib.php index 40271e4449..f96685b8f4 100644 --- a/mod/forum/lib.php +++ b/mod/forum/lib.php @@ -408,7 +408,7 @@ function forum_get_child_posts($parent) { } -function forum_search_posts($search, $courseid) { +function forum_search_posts($search, $courseid, $page=0, $recordsperpage=50) { /// Returns a list of posts that were found global $CFG; @@ -418,6 +418,13 @@ function forum_search_posts($search, $courseid) { $notteacherforum = ""; } + if ($CFG->dbtype == "mysql") { + $limit = "LIMIT $page,$recordsperpage"; + } else { + $limit = "LIMIT $recordsperpage,$page"; + } + + return get_records_sql("SELECT p.*,u.firstname,u.lastname,u.email,u.picture FROM {$CFG->prefix}forum_posts p, {$CFG->prefix}forum_discussions d, @@ -429,7 +436,7 @@ function forum_search_posts($search, $courseid) { AND d.course = '$courseid' AND d.forum = f.id $notteacherforum - ORDER BY p.modified DESC LIMIT 0, 50"); + ORDER BY p.modified DESC $limit"); } function forum_get_ratings($postid, $sort="u.firstname ASC") { @@ -1016,18 +1023,30 @@ function forum_print_mode_form($discussion, $mode) { echo "

\n"; } -function forum_print_search_form($course, $search="", $return=false) { +function forum_print_search_form($course, $search="", $return=false, $type="") { global $CFG; - $output = "
"; - $output .= "
wwwroot/mod/forum/search.php\">"; - $output .= ""; - $output .= "
"; - $output .= ""; - $output .= "
"; - $output .= "id\">"; - $output .= "
"; - $output .= "
"; + if ($type == "plain") { + $output = "
"; + $output .= "
wwwroot/mod/forum/search.php\">"; + $output .= ""; + $output .= ""; + $output .= ""; + $output .= ""; + $output .= "id\">"; + $output .= "
"; + $output .= "
"; + } else { + $output = "
"; + $output .= "
wwwroot/mod/forum/search.php\">"; + $output .= ""; + $output .= "
"; + $output .= ""; + $output .= "
"; + $output .= "id\">"; + $output .= "
"; + $output .= "
"; + } if ($return) { return $output; diff --git a/mod/forum/search.php b/mod/forum/search.php index ab0cf48aca..09314ceaf2 100644 --- a/mod/forum/search.php +++ b/mod/forum/search.php @@ -22,25 +22,25 @@ $strsearch = get_string("search", "forum"); $strsearchresults = get_string("searchresults", "forum"); + $searchform = forum_print_search_form($course, $search, true, "plain"); + if ($search) { print_header("$course->shortname: $strsearchresults", "$course->fullname", "id\">$course->shortname -> id\">$strforums -> - id\">$strsearch -> \"$search\"", "search.search"); + id\">$strsearch -> \"$search\"", "search.search", + "", "", $searchform); } else { print_header("$course->shortname: $strsearch", "$course->fullname", "id\">$course->shortname -> - id\">$strforums -> $strsearch", "search.search"); + id\">$strforums -> $strsearch", "search.search", + "", "", $searchform); } - echo "
"; - forum_print_search_form($course, $search); - echo "
"; - if ($search) { if (!$posts = forum_search_posts($search, $course->id)) { - print_heading("
".get_string("nopostscontaining", "forum", $search)); + print_heading(get_string("nopostscontaining", "forum", $search)); } else { foreach ($posts as $post) { diff --git a/mod/forum/view.php b/mod/forum/view.php index 3b0ba90618..0d616090dc 100644 --- a/mod/forum/view.php +++ b/mod/forum/view.php @@ -40,6 +40,9 @@ error("Must specify a course module or a forum ID"); } + if (!$buttontext) { + $buttontext = forum_print_search_form($course, $search, true, "plain"); + } if ($course->category) { require_login($course->id); -- 2.39.5