function _menu_find_router_path
_menu_find_router_path($link_path)
Finds the router path which will serve this path.
Parameters
$link_path: The path for we are looking up its router path.
Return value
A path from $menu keys or empty if $link_path points to a nonexisting place.
Related topics
File
- includes/menu.inc, line 3407
- API for the Drupal menu system.
Code
function _menu_find_router_path($link_path) { // $menu will only have data during a menu rebuild. $menu = _menu_router_cache(); $router_path = $link_path; $parts = explode('/', $link_path, MENU_MAX_PARTS); $ancestors = menu_get_ancestors($parts); if (empty($menu)) { // Not during a menu rebuild, so look up in the database. $router_path = (string) db_select('menu_router') ->fields('menu_router', array('path')) ->condition('path', $ancestors, 'IN') ->orderBy('fit', 'DESC') ->range(0, 1) ->execute()->fetchField(); } elseif (!isset($menu[$router_path])) { // Add an empty router path as a fallback. $ancestors[] = ''; foreach ($ancestors as $key => $router_path) { if (isset($menu[$router_path])) { // Exit the loop leaving $router_path as the first match. break; } } // If we did not find the path, $router_path will be the empty string // at the end of $ancestors. } return $router_path; }
© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/includes!menu.inc/function/_menu_find_router_path/7.x