You are here

public static function ToolbarController::preRenderAdministrationTray in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/toolbar/src/Controller/ToolbarController.php \Drupal\toolbar\Controller\ToolbarController::preRenderAdministrationTray()
  2. 9 core/modules/toolbar/src/Controller/ToolbarController.php \Drupal\toolbar\Controller\ToolbarController::preRenderAdministrationTray()

Renders the toolbar's administration tray.

Parameters

array $element: A renderable array.

Return value

array The updated renderable array.

See also

\Drupal\Core\Render\RendererInterface::render()

File

core/modules/toolbar/src/Controller/ToolbarController.php, line 69

Class

ToolbarController
Defines a controller for the toolbar module.

Namespace

Drupal\toolbar\Controller

Code

public static function preRenderAdministrationTray(array $element) {
  $menu_tree = \Drupal::service('toolbar.menu_tree');

  // Load the administrative menu. The first level is the "Administration"
  // link. In order to load the children of that link, start and end on the
  // second level.
  $parameters = new MenuTreeParameters();
  $parameters
    ->setMinDepth(2)
    ->setMaxDepth(2)
    ->onlyEnabledLinks();

  // @todo Make the menu configurable in https://www.drupal.org/node/1869638.
  $tree = $menu_tree
    ->load('admin', $parameters);
  $manipulators = [
    [
      'callable' => 'menu.default_tree_manipulators:checkAccess',
    ],
    [
      'callable' => 'menu.default_tree_manipulators:generateIndexAndSort',
    ],
    [
      'callable' => 'toolbar_menu_navigation_links',
    ],
  ];
  $tree = $menu_tree
    ->transform($tree, $manipulators);
  $element['administration_menu'] = $menu_tree
    ->build($tree);
  return $element;
}