function menu_build_tree

Builds a menu tree, translates links, and checks access.

Parameters

$menu_name: The name of the menu.

$parameters: (optional) An associative array of build parameters. Possible keys:

  • expanded: An array of parent link ids to return only menu links that are children of one of the plids in this list. If empty, the whole menu tree is built, unless 'only_active_trail' is TRUE.
  • active_trail: An array of mlids, representing the coordinates of the currently active menu link.
  • only_active_trail: Whether to only return links that are in the active trail. This option is ignored, if 'expanded' is non-empty. Internally used for breadcrumbs.
  • min_depth: The minimum depth of menu links in the resulting tree. Defaults to 1, which is the default to build a whole tree for a menu (excluding menu container itself).
  • max_depth: The maximum depth of menu links in the resulting tree.
  • conditions: An associative array of custom database select query condition key/value pairs; see _menu_build_tree() for the actual query.

Return value

A fully built menu tree.

Related topics

3 calls to menu_build_tree()
menu_tree_all_data in includes/menu.inc
Gets the data structure representing a named menu tree.
menu_tree_page_data in includes/menu.inc
Gets the data structure for a named menu tree, based on the current page.
toolbar_get_menu_tree in modules/toolbar/toolbar.module
Gets only the top level items below the 'admin' path.

File

includes/menu.inc, line 1362

Code

function menu_build_tree($menu_name, array $parameters = array()) {
    // Build the menu tree.
    $data = _menu_build_tree($menu_name, $parameters);
    // Check access for the current user to each item in the tree.
    menu_tree_check_access($data['tree'], $data['node_links']);
    return $data['tree'];
}

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