You are here

function admin_toolbar_search_toolbar_alter in Admin Toolbar 3.x

Same name and namespace in other branches
  1. 8.2 admin_toolbar_search/admin_toolbar_search.module \admin_toolbar_search_toolbar_alter()

Implements hook_toolbar_alter().

File

admin_toolbar_search/admin_toolbar_search.module, line 30
Functionality for search of Admin Toolbar.

Code

function admin_toolbar_search_toolbar_alter(&$items) {
  if (!\Drupal::currentUser()
    ->hasPermission('use admin toolbar search')) {
    return;
  }
  $admin_toolbar_tools_enabled = \Drupal::service('module_handler')
    ->moduleExists('admin_toolbar_tools');
  $config = \Drupal::config('admin_toolbar_search.settings');
  $display_menu_item = $config
    ->get('display_menu_item');
  if (!$display_menu_item) {
    $items['administration_search'] = [
      "#type" => "toolbar_item",
      '#weight' => 100,
      'tab' => [
        'search' => [
          '#title' => t('Search'),
          '#title_display' => 'invisible',
          '#type' => 'search',
          '#size' => 30,
          '#attributes' => [
            'placeholder' => new TranslatableMarkup('Admin Toolbar quick search'),
          ],
          '#id' => 'admin-toolbar-search-input',
        ],
      ],
      '#attached' => [
        'library' => [
          'admin_toolbar_search/search',
        ],
        'drupalSettings' => [
          'adminToolbarSearch' => [
            'loadExtraLinks' => $admin_toolbar_tools_enabled,
          ],
        ],
      ],
      '#wrapper_attributes' => [
        'id' => 'admin-toolbar-search-tab',
      ],
      '#cache' => [
        'contexts' => [
          'user.permissions',
        ],
        'tags' => [
          'config:admin_toolbar_search.settings',
        ],
      ],
    ];
  }
  else {
    $items['administration_search'] = [
      "#type" => "toolbar_item",
      'tab' => [
        '#type' => 'link',
        '#title' => new TranslatableMarkup('Search'),
        '#url' => URL::fromRoute('system.admin'),
        '#attributes' => [
          'class' => [
            'toolbar-icon',
          ],
        ],
      ],
      'tray' => [
        'search' => [
          '#title' => t('Search'),
          '#type' => 'search',
          '#size' => 60,
          '#id' => 'admin-toolbar-search-input',
        ],
      ],
      '#attached' => [
        'library' => [
          'admin_toolbar_search/search',
        ],
        'drupalSettings' => [
          'adminToolbarSearch' => [
            'loadExtraLinks' => $admin_toolbar_tools_enabled,
          ],
        ],
      ],
      '#wrapper_attributes' => [
        "id" => "admin-toolbar-search-tab",
      ],
      '#cache' => [
        'contexts' => [
          'user.permissions',
        ],
        'tags' => [
          'config:admin_toolbar_search.settings',
        ],
      ],
    ];
  }
}