diff options
author | Andreas Gohr <andi@splitbrain.org> | 2010-06-26 13:38:10 +0200 |
---|---|---|
committer | Andreas Gohr <andi@splitbrain.org> | 2010-06-26 13:42:11 +0200 |
commit | 8d22f1e96be5aa2c65ecb6ee934debbfe0f8f4cc (patch) | |
tree | 1d582c848d55a3f49b715049264550e9ee3c04d0 /inc/fulltext.php | |
parent | a992042bb4cc85fc90ec35a868ed14b3a3bfd7b7 (diff) | |
download | rpg-8d22f1e96be5aa2c65ecb6ee934debbfe0f8f4cc.tar.gz rpg-8d22f1e96be5aa2c65ecb6ee934debbfe0f8f4cc.tar.bz2 |
Changes to the ft_pageLookup and related event FS#1978
This patch changes the ft_pageLookup function to always return the
title of pages with the result. This makes it easier to work with the
array, as it no longer changes between numeric and key indexes depending
on useheading.
This also means that action plugins subscribed to
SEARCH_QUERY_PAGELOOKUP need to be adjusted. The event contains a new
data field called 'has_titles' which plugins can use to check for
backwards compatibility.
Diffstat (limited to 'inc/fulltext.php')
-rw-r--r-- | inc/fulltext.php | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/inc/fulltext.php b/inc/fulltext.php index 950e7f7d3..1c9981812 100644 --- a/inc/fulltext.php +++ b/inc/fulltext.php @@ -215,29 +215,29 @@ function ft_mediause($id,$max){ * By default it only matches the pagename and ignores the * namespace. This can be changed with the second parameter. * The third parameter allows to search in titles as well. - * If the function should search in titles as well, the return array - * has the ids as key and the titles as value. * - * refactored into ft_pageLookup(), _ft_pageLookup() and trigger_event() + * The function always returns titles as well * + * @triggers SEARCH_QUERY_PAGELOOKUP * @author Andreas Gohr <andi@splitbrain.org> + * @author Adrian Lang <lang@cosmocode.de> */ -function ft_pageLookup($id, $not_in_ns=true, $not_in_title=true){ - $data = compact('id', 'not_in_ns', 'not_in_title'); +function ft_pageLookup($id, $in_ns=false, $in_title=false){ + $data = compact('id', 'in_ns', 'in_title'); + $data['has_titles'] = true; // for plugin backward compatibility check return trigger_event('SEARCH_QUERY_PAGELOOKUP', $data, '_ft_pageLookup'); } function _ft_pageLookup(&$data){ // split out original parameters - $id = $data['id']; if (preg_match('/(?:^| )@(\w+)/', $id, $matches)) { $ns = cleanID($matches[1]) . ':'; $id = str_replace($matches[0], '', $id); } - $in_ns = !$data['not_in_ns']; - $in_title = !$data['not_in_title']; + $in_ns = $data['in_ns']; + $in_title = $data['in_title']; $pages = array_map('rtrim', idx_getIndex('page', '')); $titles = array_map('rtrim', idx_getIndex('title', '')); @@ -267,7 +267,7 @@ function _ft_pageLookup(&$data){ } uasort($pages,'ft_pagesorter'); - return $in_title ? $pages : array_keys($pages); + return $pages; } /** |