function ToolbarHandler::toolbar
Same name in other branches
- 5.x src/ToolbarHandler.php \Drupal\devel\ToolbarHandler::toolbar()
Hook bridge.
Return value
array The devel toolbar items render array.
See also
File
-
src/
ToolbarHandler.php, line 86
Class
- ToolbarHandler
- Toolbar integration handler.
Namespace
Drupal\develCode
public function toolbar() {
$items['devel'] = [
'#cache' => [
'contexts' => [
'user.permissions',
],
],
];
if ($this->account
->hasPermission('access devel information')) {
$items['devel'] += [
'#type' => 'toolbar_item',
'#weight' => 999,
'tab' => [
'#type' => 'link',
'#title' => $this->t('Devel'),
'#url' => Url::fromRoute('devel.admin_settings'),
'#attributes' => [
'title' => $this->t('Development menu'),
'class' => [
'toolbar-icon',
'toolbar-icon-devel',
],
],
],
'tray' => [
'#heading' => $this->t('Development menu'),
'devel_menu' => [
// Currently devel menu is uncacheable, so instead of poisoning the
// entire page cache we use a lazy builder.
// @see \Drupal\devel\Plugin\Menu\DestinationMenuLink
// @see \Drupal\devel\Plugin\Menu\RouteDetailMenuItem
'#lazy_builder' => [
ToolbarHandler::class . ':lazyBuilder',
[],
],
// Force the creation of the placeholder instead of rely on the
// automatical placeholdering or otherwise the page results
// uncacheable when max-age 0 is bubbled up.
'#create_placeholder' => TRUE,
],
'configuration' => [
'#type' => 'link',
'#title' => $this->t('Configure'),
'#url' => Url::fromRoute('devel.toolbar.settings_form'),
'#options' => [
'attributes' => [
'class' => [
'edit-devel-toolbar',
],
],
],
],
],
'#attached' => [
'library' => 'devel/devel-toolbar',
],
];
}
return $items;
}