You are here

public static function ToolbarMenuPrerender::prerenderToolbarTray in Toolbar Menu 8.2

Pre-render the toolbar_menu tray element.

Parameters

array $element: The tray element to pre-render.

Return value

array The pre-rendered tray element.

1 call to ToolbarMenuPrerender::prerenderToolbarTray()
toolbar_menu_prerender_toolbar_tray in ./toolbar_menu.module
Pre-render the toolbar_menu tray element.

File

src/ToolbarMenuPrerender.php, line 31

Class

ToolbarMenuPrerender
Defines a service for toolbar menu prerender elements.

Namespace

Drupal\toolbar_menu

Code

public static function prerenderToolbarTray(array $element) {

  /** @var \Drupal\toolbar\Menu\ToolbarMenuLinkTree $menu_tree */
  $menu_tree = \Drupal::service('toolbar.menu_tree');
  $parameters = new MenuTreeParameters();
  $parameters
    ->excludeRoot()
    ->onlyEnabledLinks();
  $tree = $menu_tree
    ->load($element['#id'], $parameters);
  $manipulators = [
    [
      'callable' => 'menu.default_tree_manipulators:checkAccess',
    ],
    [
      'callable' => 'menu.default_tree_manipulators:generateIndexAndSort',
    ],
    [
      'callable' => 'toolbar_menu.menu_link_tree_manipulators:addIcons',
    ],
  ];
  $tree = $menu_tree
    ->transform($tree, $manipulators);
  $element['toolbar_menu_' . $element['#id']] = $menu_tree
    ->build($tree);
  return $element;
}