summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/search/search.module17
1 files changed, 9 insertions, 8 deletions
diff --git a/modules/search/search.module b/modules/search/search.module
index 70cd29d4d..6df0ed436 100644
--- a/modules/search/search.module
+++ b/modules/search/search.module
@@ -169,14 +169,15 @@ function search_menu($may_cache) {
// we dynamically add the keywords to the search tabs' paths.
$keys = search_get_keys();
$keys = strlen($keys) ? '/'. $keys : '';
- foreach (module_list() as $name) {
- if (module_hook($name, 'search') && $title = module_invoke($name, 'search', 'name')) {
- $items[] = array('path' => 'search/'. $name . $keys, 'title' => $title,
- 'callback' => 'search_view',
- 'callback arguments' => array($name),
- 'access' => user_access('search content'),
- 'type' => MENU_LOCAL_TASK);
- }
+ foreach (module_implements('search') as $name) {
+ $title = module_invoke($name, 'search', 'name');
+ $items[] = array('path' => 'search/'. $name . $keys, 'title' => $title,
+ 'callback' => 'search_view',
+ 'callback arguments' => array($name),
+ // Only allow access if the search hook returned a valid title.
+ 'access' => user_access('search content') && $title,
+ 'type' => MENU_LOCAL_TASK,
+ );
}
}