Error message

You are browsing documentation for drupal 7.x, which is not supported anymore. Read the updated version of this page for drupal 11.x (the latest version).

function menu_router_build

Collects and alters the menu definitions.

Related topics

Menu system
Define the navigation menus, and route page requests to code based on URLs.
2 calls to menu_router_build()
menu_get_router in includes/menu.inc
Gets the menu router.
menu_rebuild in includes/menu.inc
Populates the database tables used by various menu functions.

File

includes/menu.inc, line 2826

Code

function menu_router_build () {
 // We need to manually call each module so that we can know which module
 // a given item came from.
 $callbacks = array();
 foreach (module_implements ('menu') as $module) {
 $router_items = call_user_func ($module . '_menu');
 if (isset($router_items) && is_array ($router_items)) {
 foreach (array_keys ($router_items) as $path) {
 $router_items[$path]['module'] = $module;
 }
 $callbacks = array_merge ($callbacks, $router_items);
 }
 }
 // Alter the menu as defined in modules, keys are like user/%user.
 drupal_alter ('menu', $callbacks);
 list($menu, $masks) = _menu_router_build ($callbacks);
 _menu_router_cache ($menu);
 return array(
 $menu,
 $masks,
 );
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.