public static function GinToolbar::preRenderTray in Gin Toolbar 8
Renders the toolbar's administration tray.
This is a clone of core's toolbar_prerender_toolbar_administration_tray() function, which adds active trail information and which uses setMaxDepth(4) instead of setTopLevelOnly() in case the Admin Toolbar module is installed.
Parameters
array $build: A renderable array.
Return value
array The updated renderable array.
See also
toolbar_prerender_toolbar_administration_tray()
File
- src/
Render/ Element/ GinToolbar.php, line 37
Class
- GinToolbar
- Class GinToolbar.
Namespace
Drupal\gin_toolbar\Render\ElementCode
public static function preRenderTray(array $build) {
$menu_tree = \Drupal::service('toolbar.menu_tree');
$activeTrail = \Drupal::service('gin_toolbar.active_trail')
->getActiveTrailIds('admin');
$parameters = (new MenuTreeParameters())
->setActiveTrail($activeTrail)
->setRoot('system.admin')
->excludeRoot()
->setTopLevelOnly()
->onlyEnabledLinks();
if (\Drupal::moduleHandler()
->moduleExists('admin_toolbar')) {
$parameters
->setMaxDepth(4);
}
$tree = $menu_tree
->load('admin', $parameters);
$manipulators = [
[
'callable' => 'menu.default_tree_manipulators:checkAccess',
],
[
'callable' => 'menu.default_tree_manipulators:generateIndexAndSort',
],
[
'callable' => 'gin_toolbar_tools_menu_navigation_links',
],
];
$tree = $menu_tree
->transform($tree, $manipulators);
$build['administration_menu'] = $menu_tree
->build($tree);
$build['#cache']['contexts'][] = 'route.menu_active_trails:admin';
return $build;
}