function _menu_tree_data


Error message

User warning: The following module is missing from the file system: theme/theme. For information about how to fix this, see the documentation page. in _drupal_trigger_error_with_delayed_logging() (line 1156 of /var/www/html/elmsln_community/
cis7 _menu_tree_data(&$links, $parents, $depth)
cle7 _menu_tree_data(&$links, $parents, $depth)
elmsmedia7 _menu_tree_data(&$links, $parents, $depth)
icor7 _menu_tree_data(&$links, $parents, $depth)
meedjum_blog7 _menu_tree_data(&$links, $parents, $depth)
mooc7 _menu_tree_data(&$links, $parents, $depth)

Builds the data representing a menu tree.

The function is a bit complex because the rendering of a link depends on the next menu link.

Related topics

1 call to _menu_tree_data()
menu_tree_data in includes/
Sorts and returns the built data representing a menu tree.


includes/, line 1566
API for the Drupal menu system.


function _menu_tree_data(&$links, $parents, $depth) {
  $tree = array();
  while ($item = array_pop($links)) {
    // We need to determine if we're on the path to root so we can later build
    // the correct active trail and breadcrumb.
    $item['in_active_trail'] = in_array($item['mlid'], $parents);
    // Add the current link to the tree.
    $tree[$item['mlid']] = array(
      'link' => $item,
      'below' => array(),
    // Look ahead to the next link, but leave it on the array so it's available
    // to other recursive function calls if we return or build a sub-tree.
    $next = end($links);
    // Check whether the next link is the first in a new sub-tree.
    if ($next && $next['depth'] > $depth) {
      // Recursively call _menu_tree_data to build the sub-tree.
      $tree[$item['mlid']]['below'] = _menu_tree_data($links, $parents, $next['depth']);
      // Fetch next link after filling the sub-tree.
      $next = end($links);
    // Determine if we should exit the loop and return.
    if (!$next || $next['depth'] < $depth) {
  return $tree;