ToolbarMenuLinkTree::build

public ToolbarMenuLinkTree::build(array $tree, $level = 0)

Builds a renderable array from a menu tree.

The menu item's LI element is given one of the following classes:

  • expanded: The menu item is showing its submenu.
  • collapsed: The menu item has a submenu that is not shown.
  • leaf: The menu item has no submenu.

Parameters

\Drupal\Core\Menu\MenuLinkTreeElement[] $tree: A data structure representing the tree, as returned from MenuLinkTreeInterface::load().

Return value

array A renderable array.

Overrides MenuLinkTree::build

File

core/modules/toolbar/src/Menu/ToolbarMenuLinkTree.php, line 15

Class

ToolbarMenuLinkTree
Extends MenuLinkTree to add specific theme suggestions for the toolbar.

Namespace

Drupal\toolbar\Menu

Code

public function build(array $tree, $level = 0) {
  if ($level == 0) {
    if (!$tree) {
      return array();
    }
    $build = parent::build($tree, $level);

    /** @var \Drupal\Core\Menu\MenuLinkInterface $link */
    $first_link = reset($tree)->link;
    // Get the menu name of the first link.
    $menu_name = $first_link->getMenuName();
    // Add a more specific theme suggestion to differentiate this rendered
    // menu from others.
    $build['#menu_name'] = $menu_name;
    $build['#theme'] = 'menu__toolbar__' . strtr($menu_name, '-', '_');
    return $build;
  }
  else {
    return parent::build($tree, $level);
  }
}
doc_Drupal
2016-10-29 09:48:41
Comments
Leave a Comment

Please login to continue.