aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/search.php
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/search.php')
-rw-r--r--phpBB/search.php26
1 files changed, 24 insertions, 2 deletions
diff --git a/phpBB/search.php b/phpBB/search.php
index 7469daa49c..a0380590c1 100644
--- a/phpBB/search.php
+++ b/phpBB/search.php
@@ -320,7 +320,10 @@ if ($keywords || $author || $author_id || $search_id || $submit)
* @var array ex_fid_ary Array of excluded forum ids
* @var array author_id_ary Array of exclusive author ids
* @var string search_id The id of the search request
+ * @var array id_ary Array of post or topic ids for search result
+ * @var string show_results 'posts' or 'topics' type of ids
* @since 3.1.3-RC1
+ * @changed 3.1.10-RC1 Added id_ary, show_results
*/
$vars = array(
'keywords',
@@ -328,6 +331,8 @@ if ($keywords || $author || $author_id || $search_id || $submit)
'ex_fid_ary',
'author_id_ary',
'search_id',
+ 'id_ary',
+ 'show_results',
);
extract($phpbb_dispatcher->trigger_event('core.search_modify_param_before', compact($vars)));
@@ -1249,6 +1254,7 @@ if ($keywords || $author || $author_id || $search_id || $submit)
}
// Search forum
+$rowset = array();
$s_forums = '';
$sql = 'SELECT f.forum_id, f.forum_name, f.parent_id, f.forum_type, f.left_id, f.right_id, f.forum_password, f.enable_indexing, fa.user_id
FROM ' . FORUMS_TABLE . ' f
@@ -1257,11 +1263,27 @@ $sql = 'SELECT f.forum_id, f.forum_name, f.parent_id, f.forum_type, f.left_id, f
ORDER BY f.left_id ASC";
$result = $db->sql_query($sql);
+while ($row = $db->sql_fetchrow($result))
+{
+ $rowset[(int) $row['forum_id']] = $row;
+}
+$db->sql_freeresult($result);
+
$right = $cat_right = $padding_inc = 0;
$padding = $forum_list = $holding = '';
$pad_store = array('0' => '');
-while ($row = $db->sql_fetchrow($result))
+/**
+* Modify the forum select list for advanced search page
+*
+* @event core.search_modify_forum_select_list
+* @var array rowset Array with the forums list data
+* @since 3.1.10-RC1
+*/
+$vars = array('rowset');
+extract($phpbb_dispatcher->trigger_event('core.search_modify_forum_select_list', compact($vars)));
+
+foreach ($rowset as $row)
{
if ($row['forum_type'] == FORUM_CAT && ($row['left_id'] + 1 == $row['right_id']))
{
@@ -1333,8 +1355,8 @@ if ($holding)
$s_forums .= $holding;
}
-$db->sql_freeresult($result);
unset($pad_store);
+unset($rowset);
if (!$s_forums)
{