function DemoUmamiHooks::toolbar

Same name and namespace in other branches
  1. 11.x core/profiles/demo_umami/src/Hook/DemoUmamiHooks.php \Drupal\demo_umami\Hook\DemoUmamiHooks::toolbar()

Implements hook_toolbar().

Attributes

#[Hook('toolbar')]

File

core/profiles/demo_umami/src/Hook/DemoUmamiHooks.php, line 91

Class

DemoUmamiHooks
Hook implementations for demo_umami.

Namespace

Drupal\demo_umami\Hook

Code

public function toolbar() : array {
  // Add a warning about using an experimental profile.
  // @todo This can be removed once a generic warning for experimental
  //   profiles has been introduced in
  //   https://www.drupal.org/project/drupal/issues/2934374
  $items['experimental-profile-warning'] = [
    '#weight' => 3400,
    '#cache' => [
      'contexts' => [
        'route',
      ],
    ],
  ];
  // Show warning only on administration pages.
  if ($this->adminContext
    ->isAdminRoute()) {
    $link_to_help_page = $this->moduleHandler
      ->moduleExists('help') && $this->currentUser
      ->hasPermission('access help pages');
    $items['experimental-profile-warning']['#type'] = 'toolbar_item';
    $items['experimental-profile-warning']['tab'] = [
      '#type' => 'inline_template',
      '#template' => '<a class="toolbar-warning" href="{{ more_info_link }}">This site is intended for demonstration purposes.</a>',
      '#context' => [
        // Link directly to the drupal.org documentation if the help pages
        // aren't available.
'more_info_link' => $link_to_help_page ? Url::fromRoute('help.page', [
          'name' => 'demo_umami',
        ]) : 'https://www.drupal.org/node/2941833',
      ],
      '#attached' => [
        'library' => [
          'demo_umami/toolbar-warning',
        ],
      ],
    ];
  }
  return $items;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.