aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/search.php
diff options
context:
space:
mode:
authorAndreas Fischer <bantu@phpbb.com>2010-06-17 19:10:59 +0200
committerAndreas Fischer <bantu@phpbb.com>2010-06-17 19:10:59 +0200
commit4eac7dca6df00a6378d84d5f87dae7604142ec06 (patch)
tree9fed41b999cfed2aea85b5c9e92f3f45a7076d89 /phpBB/search.php
parent876a6e4686bbad12c456c87a7c96bc4486bd3d17 (diff)
parentd819ee343a3a6dc6282f709e67454cd2f0d1afcf (diff)
downloadforums-4eac7dca6df00a6378d84d5f87dae7604142ec06.tar
forums-4eac7dca6df00a6378d84d5f87dae7604142ec06.tar.gz
forums-4eac7dca6df00a6378d84d5f87dae7604142ec06.tar.bz2
forums-4eac7dca6df00a6378d84d5f87dae7604142ec06.tar.xz
forums-4eac7dca6df00a6378d84d5f87dae7604142ec06.zip
Merge branch 'ticket/rxu/9606' into develop-olympus
* ticket/rxu/9606: [ticket/9606] Optimize unread search option.
Diffstat (limited to 'phpBB/search.php')
-rw-r--r--phpBB/search.php19
1 files changed, 7 insertions, 12 deletions
diff --git a/phpBB/search.php b/phpBB/search.php
index 7a9ab82f93..1e1e42d01f 100644
--- a/phpBB/search.php
+++ b/phpBB/search.php
@@ -387,18 +387,6 @@ if ($keywords || $author || $author_id || $search_id || $submit)
gen_sort_selects($limit_days, $sort_by_text, $sort_days, $sort_key, $sort_dir, $s_limit_days, $s_sort_key, $s_sort_dir, $u_sort_param);
$s_sort_key = $s_sort_dir = $u_sort_param = $s_limit_days = '';
-
- $unread_list = array();
- $unread_list = get_unread_topics($user->data['user_id'], $sql_where, $sql_sort);
-
- if (!empty($unread_list))
- {
- $sql = 'SELECT t.topic_id
- FROM ' . TOPICS_TABLE . ' t
- WHERE ' . $db->sql_in_set('t.topic_id', array_keys($unread_list)) . "
- $sql_sort";
- $field = 'topic_id';
- }
break;
case 'newposts':
@@ -476,6 +464,13 @@ if ($keywords || $author || $author_id || $search_id || $submit)
$total_match_count = sizeof($id_ary) + $start;
$id_ary = array_slice($id_ary, 0, $per_page);
}
+ else if ($search_id == 'unreadposts')
+ {
+ $id_ary = array_keys(get_unread_topics($user->data['user_id'], $sql_where, $sql_sort, 1001 - $start, $start));
+
+ $total_match_count = sizeof($id_ary) + $start;
+ $id_ary = array_slice($id_ary, 0, $per_page);
+ }
else
{
$search_id = '';