diff options
-rw-r--r-- | includes/menu.inc | 9 | ||||
-rw-r--r-- | modules/search/search.module | 4 |
2 files changed, 8 insertions, 5 deletions
diff --git a/includes/menu.inc b/includes/menu.inc index eafad5831..0c7a2a928 100644 --- a/includes/menu.inc +++ b/includes/menu.inc @@ -336,7 +336,6 @@ function _menu_load_objects($item, &$map) { $path_map = $map; foreach ($load_functions as $index => $function) { if ($function) { - $return = $function(isset($path_map[$index]) ? $path_map[$index] : ''); // If callback returned an error or there is no callback, trigger 404. if ($return === FALSE) { @@ -478,14 +477,14 @@ function _menu_translate(&$router_item, $map, $to_arg = FALSE) { * @param map * An array of path arguments (ex: array('node', '5')) * @param $to_arg_functions - * An array of helper function (ex: array(1 => 'node_load')) + * An array of helper function (ex: array(2 => 'menu_tail_to_arg')) */ function _menu_link_map_translate(&$map, $to_arg_functions) { if ($to_arg_functions) { $to_arg_functions = unserialize($to_arg_functions); foreach ($to_arg_functions as $index => $function) { // Translate place-holders into real values. - $arg = $function(!empty($map[$index]) ? $map[$index] : ''); + $arg = $function(!empty($map[$index]) ? $map[$index] : '', $map, $index); if (!empty($map[$index]) || isset($arg)) { $map[$index] = $arg; } @@ -496,6 +495,10 @@ function _menu_link_map_translate(&$map, $to_arg_functions) { } } +function menu_tail_to_arg($arg, $map, $index) { + return implode('/', array_slice($map, $index)); +} + /** * This function is similar to _menu_translate() but does link-specific * preparation such as always calling to_arg functions diff --git a/modules/search/search.module b/modules/search/search.module index cff9314e3..326cff4a5 100644 --- a/modules/search/search.module +++ b/modules/search/search.module @@ -188,14 +188,14 @@ function search_menu() { ); foreach (module_implements('search') as $name) { - $items['search/'. $name .'/%'] = array( + $items['search/'. $name .'/%menu_tail'] = array( 'title callback' => 'module_invoke', 'title arguments' => array($name, 'search', 'name', TRUE), 'page callback' => 'search_view', 'page arguments' => array($name), 'access callback' => '_search_menu', 'access arguments' => array($name), - 'type' => $name == 'node' ? MENU_DEFAULT_LOCAL_TASK : MENU_LOCAL_TASK, + 'type' => MENU_LOCAL_TASK, 'parent' => 'search', ); } |