diff --git a/core/modules/toolbar/src/Element/Toolbar.php b/core/modules/toolbar/src/Element/Toolbar.php index fac39e2..660ce32 100644 --- a/core/modules/toolbar/src/Element/Toolbar.php +++ b/core/modules/toolbar/src/Element/Toolbar.php @@ -7,7 +7,9 @@ namespace Drupal\toolbar\Element; +use Drupal\Component\Utility\Html; use Drupal\Core\Render\Element\RenderElement; +use Drupal\Core\Render\Element; /** * Provides a render element for the default Drupal toolbar. @@ -97,6 +99,11 @@ public static function preRenderToolbar($element) { // 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); + } + // Render the children. $element['#children'] = drupal_render_children($element); diff --git a/core/modules/toolbar/src/Element/ToolbarItem.php b/core/modules/toolbar/src/Element/ToolbarItem.php index e596687..929dac4 100644 --- a/core/modules/toolbar/src/Element/ToolbarItem.php +++ b/core/modules/toolbar/src/Element/ToolbarItem.php @@ -7,7 +7,6 @@ namespace Drupal\toolbar\Element; -use Drupal\Component\Utility\Html; use Drupal\Core\Render\Element\RenderElement; use Drupal\Core\Url; @@ -50,8 +49,7 @@ public function getInfo() { * A renderable array. */ public static function preRenderToolbarItem($element) { - // Assign each item a unique ID. - $id = Html::getUniqueId('toolbar-item'); + $id = $element['#id']; // Provide attributes for a toolbar item. $attributes = array(