diff options
Diffstat (limited to 'phpBB/search.php')
-rw-r--r-- | phpBB/search.php | 26 |
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) { |