From ce15ad15ba00c63aa3e13c5c97f9dc471593b9b5 Mon Sep 17 00:00:00 2001 From: smk-ka Date: Tue, 6 Mar 2018 18:06:16 +0500 Subject: [PATCH] Issue #2945085 by smk-ka: Add option to expand menu items --- src/TwigExtension.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/TwigExtension.php b/src/TwigExtension.php index d20bf40..787e955 100644 --- a/src/TwigExtension.php +++ b/src/TwigExtension.php @@ -206,11 +206,13 @@ class TwigExtension extends \Twig_Extension { * (optional) Initial menu level. * @param int $depth * (optional) Maximum number of menu levels to display. + * @param bool $expand + * (optional) Expand all menu links. * * @return array * A render array for the menu. */ - public function drupalMenu($menu_name, $level = 1, $depth = 0) { + public function drupalMenu($menu_name, $level = 1, $depth = 0, $expand = FALSE) { /** @var \Drupal\Core\Menu\MenuLinkTreeInterface $menu_tree */ $menu_tree = \Drupal::service('menu.link_tree'); $parameters = $menu_tree->getCurrentRouteMenuTreeParameters($menu_name); @@ -225,6 +227,11 @@ class TwigExtension extends \Twig_Extension { $parameters->setMaxDepth(min($level + $depth - 1, $menu_tree->maxDepth())); } + // If expandedParents is empty, the whole menu tree is built. + if ($expand) { + $parameters->expandedParents = []; + } + $tree = $menu_tree->load($menu_name, $parameters); $manipulators = [ ['callable' => 'menu.default_tree_manipulators:checkAccess'],