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\ElementCode
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;
}