diff core/modules/toolbar/src/Menu/ToolbarMenuLinkTree.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/modules/toolbar/src/Menu/ToolbarMenuLinkTree.php	Wed Nov 29 16:09:58 2017 +0000
@@ -0,0 +1,37 @@
+<?php
+
+namespace Drupal\toolbar\Menu;
+
+use Drupal\Core\Menu\MenuLinkTree;
+
+/**
+ * Extends MenuLinkTree to add specific theme suggestions for the toolbar.
+ */
+class ToolbarMenuLinkTree extends MenuLinkTree {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function build(array $tree, $level = 0) {
+    if ($level == 0) {
+      if (!$tree) {
+        return [];
+      }
+      $build = parent::build($tree, $level);
+
+      /** @var \Drupal\Core\Menu\MenuLinkInterface $link */
+      $first_link = reset($tree)->link;
+      // Get the menu name of the first link.
+      $menu_name = $first_link->getMenuName();
+      // Add a more specific theme suggestion to differentiate this rendered
+      // menu from others.
+      $build['#menu_name'] = $menu_name;
+      $build['#theme'] = 'menu__toolbar__' . strtr($menu_name, '-', '_');
+      return $build;
+    }
+    else {
+      return parent::build($tree, $level);
+    }
+  }
+
+}