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 .= "";
- $output .= " |
";
+ if ($type == "plain") {
+ $output = "";
+ $output .= "";
+ $output .= " |
";
+ } else {
+ $output = "";
+ $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