function demo_umami_toolbar

Same name and namespace in other branches
  1. 9 core/profiles/demo_umami/demo_umami.profile \demo_umami_toolbar()
  2. 8.9.x core/profiles/demo_umami/demo_umami.profile \demo_umami_toolbar()
  3. 10 core/profiles/demo_umami/demo_umami.profile \demo_umami_toolbar()

Implements hook_toolbar().

File

core/profiles/demo_umami/demo_umami.profile, line 75

Code

function demo_umami_toolbar() {
    // Add a warning about using an experimental profile.
    // @todo This can be removed once a generic warning for experimental profiles
    //   has been introduced. https://www.drupal.org/project/drupal/issues/2934374
    $items['experimental-profile-warning'] = [
        '#weight' => 3400,
        '#cache' => [
            'contexts' => [
                'route',
            ],
        ],
    ];
    // Show warning only on administration pages.
    $admin_context = \Drupal::service('router.admin_context');
    if ($admin_context->isAdminRoute()) {
        $link_to_help_page = \Drupal::moduleHandler()->moduleExists('help') && \Drupal::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.