function NavigationHooks::pageTop
Implements hook_page_top().
File
-
core/
modules/ navigation/ src/ Hook/ NavigationHooks.php, line 46
Class
- NavigationHooks
- Hook implementations for navigation.
Namespace
Drupal\navigation\HookCode
public function pageTop(array &$page_top) : void {
if (!\Drupal::currentUser()->hasPermission('access navigation')) {
return;
}
$navigation_renderer = \Drupal::service('navigation.renderer');
assert($navigation_renderer instanceof NavigationRenderer);
$navigation_renderer->removeToolbar($page_top);
if (\Drupal::routeMatch()->getRouteName() !== 'layout_builder.navigation.view') {
// Don't render the admin toolbar if in layout edit mode.
$navigation_renderer->buildNavigation($page_top);
$navigation_renderer->buildTopBar($page_top);
return;
}
// But if in layout mode, add an empty element to leave space. We need to use
// an empty .admin-toolbar element because the css uses the adjacent sibling
// selector. The actual rendering of the navigation blocks/layout occurs in
// the layout form.
$page_top['navigation'] = [
'#type' => 'html_tag',
'#tag' => 'aside',
'#attributes' => [
'class' => 'admin-toolbar',
],
];
$navigation_renderer->buildTopBar($page_top);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.