diff options
Diffstat (limited to 'modules/search')
-rw-r--r-- | modules/search/search.module | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/modules/search/search.module b/modules/search/search.module index 7e8d21d44..282aef95d 100644 --- a/modules/search/search.module +++ b/modules/search/search.module @@ -168,30 +168,19 @@ function search_menu() { foreach (module_implements('search') as $name) { $items['search/'. $name] = array( + 'title' => module_invoke($name, 'search', 'name', TRUE), 'page callback' => 'search_view', 'page arguments' => array($name), - 'access callback' => FALSE, - 'type' => MENU_LOCAL_TASK, + 'access callback' => '_search_menu', + 'access arguments' => array($name), + 'type' => $name == 'node' ? MENU_DEFAULT_LOCAL_TASK : MENU_LOCAL_TASK, ); } return $items; } -function search_init() { - // To remember the user's search keywords when switching across tabs, - // we dynamically add the keywords to the search tabs' paths. - if (arg(0) == 'search') { - $keys = search_get_keys(); - $keys = strlen($keys) ? '/'. $keys : ''; - foreach (module_implements('search') as $name) { - $title = module_invoke($name, 'search', 'name'); - $item = menu_get_item('search/'. $name); - $item->title = $title; - $item->access = user_access('search content') && $title; - menu_set_item('search/'. $name, $item); - menu_set_item('search/'. $name . $keys, $item); - } - } +function _search_menu($name) { + return user_access('search content') && module_invoke($name, 'search', 'name'); } /** |