ToolbarMenuLinkTree.php

Same filename in other branches
  1. 9 core/modules/toolbar/src/Menu/ToolbarMenuLinkTree.php
  2. 8.9.x core/modules/toolbar/src/Menu/ToolbarMenuLinkTree.php
  3. 10 core/modules/toolbar/src/Menu/ToolbarMenuLinkTree.php

Namespace

Drupal\toolbar\Menu

File

core/modules/toolbar/src/Menu/ToolbarMenuLinkTree.php

View source
<?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);
            
            /** @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);
        }
    }

}

Classes

Title Deprecated Summary
ToolbarMenuLinkTree Extends MenuLinkTree to add specific theme suggestions for the toolbar.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.