Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Toolbar.php

function Toolbar::preRenderToolbar

Builds the Toolbar as a structured array ready for rendering.

Since building the toolbar takes some time, it is done just prior to rendering to ensure that it is built only if it will be displayed.

Parameters

array $element: A renderable array.

Return value

array A renderable array.

See also

toolbar_page_top()

File

core/modules/toolbar/src/Element/Toolbar.php, line 63

Class

Toolbar
Provides a render element for the default Drupal toolbar.

Namespace

Drupal\toolbar\Element

Code

public static function preRenderToolbar($element) {
    // Get the configured breakpoints to switch from vertical to horizontal
    // toolbar presentation.
    $breakpoints = static::breakpointManager()->getBreakpointsByGroup('toolbar');
    if (!empty($breakpoints)) {
        $media_queries = [];
        foreach ($breakpoints as $id => $breakpoint) {
            $media_queries[$id] = $breakpoint->getMediaQuery();
        }
        $element['#attached']['drupalSettings']['toolbar']['breakpoints'] = $media_queries;
    }
    $module_handler = static::moduleHandler();
    // Get toolbar items from all modules that implement hook_toolbar().
    $items = $module_handler->invokeAll('toolbar');
    // Allow for altering of hook_toolbar().
    $module_handler->alter('toolbar', $items);
    // Sort the children.
    uasort($items, [
        '\\Drupal\\Component\\Utility\\SortArray',
        'sortByWeightProperty',
    ]);
    // Merge in the original toolbar values.
    $element = array_merge($element, $items);
    // Assign each item a unique ID, based on its key.
    foreach (Element::children($element) as $key) {
        $element[$key]['#id'] = Html::getId('toolbar-item-' . $key);
    }
    return $element;
}
RSS feed
Powered by Drupal