public function MenuLinkTree::build in Drupal 10
Same name and namespace in other branches
- 8 core/lib/Drupal/Core/Menu/MenuLinkTree.php \Drupal\Core\Menu\MenuLinkTree::build()
- 9 core/lib/Drupal/Core/Menu/MenuLinkTree.php \Drupal\Core\Menu\MenuLinkTree::build()
1 method overrides MenuLinkTree::build()
- ToolbarMenuLinkTree::build in core/modules/toolbar/src/Menu/ToolbarMenuLinkTree.php
- Builds a renderable array from a menu tree.
File
- core/lib/Drupal/Core/Menu/MenuLinkTree.php, line 158
Class
- MenuLinkTree
- Implements the loading, transforming and rendering of menu link trees.
Namespace
Drupal\Core\Menu
Code
public function build(array $tree) {
$tree_access_cacheability = new CacheableMetadata();
$tree_link_cacheability = new CacheableMetadata();
$items = $this
->buildItems($tree, $tree_access_cacheability, $tree_link_cacheability);
$build = [];
$tree_cacheability = $tree_access_cacheability
->merge($tree_link_cacheability);
$tree_cacheability
->applyTo($build);
if ($items) {
$build['#sorted'] = TRUE;
$item = end($items);
$link = $item['original_link'];
$menu_name = $link
->getMenuName();
$build['#theme'] = 'menu__' . strtr($menu_name, '-', '_');
$build['#menu_name'] = $menu_name;
$build['#items'] = $items;
$build['#cache']['tags'][] = 'config:system.menu.' . $menu_name;
}
return $build;
}