X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=web%2Fcore%2Fprofiles%2Fdemo_umami%2Fthemes%2Fumami%2Ftemplates%2Fcomponents%2Fnavigation%2Fmenu.html.twig;fp=web%2Fcore%2Fprofiles%2Fdemo_umami%2Fthemes%2Fumami%2Ftemplates%2Fcomponents%2Fnavigation%2Fmenu.html.twig;h=8202518c4457e28c601d22240e32975b4258ae95;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hp=0000000000000000000000000000000000000000;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0;p=yaffs-website diff --git a/web/core/profiles/demo_umami/themes/umami/templates/components/navigation/menu.html.twig b/web/core/profiles/demo_umami/themes/umami/templates/components/navigation/menu.html.twig new file mode 100644 index 000000000..8202518c4 --- /dev/null +++ b/web/core/profiles/demo_umami/themes/umami/templates/components/navigation/menu.html.twig @@ -0,0 +1,85 @@ +{# +/** + * @file + * Theme override to display a menu. + * + * Available variables: + * - menu_name: The machine name of the menu. + * - items: A nested list of menu items. Each menu item contains: + * - attributes: HTML attributes for the menu item. + * - below: The menu item child items. + * - title: The menu link title. + * - url: The menu link url, instance of \Drupal\Core\Url + * - localized_options: Menu link localized options. + * - is_expanded: TRUE if the link has visible children within the current + * menu tree. + * - is_collapsed: TRUE if the link has children within the current menu tree + * that are not currently visible. + * - in_active_trail: TRUE if the link is in the active trail. + */ +#} + +{% import _self as menus %} + +{# + We call a macro which calls itself to render the full tree. + @see http://twig.sensiolabs.org/doc/tags/macro.html + + 1. We use menu_name (see above) to create a CSS class name from it. + See https://www.drupal.org/node/2649076 +#} +{{ menus.menu_links(items, attributes, 0, menu_name) }} {# 1. #} + +{% macro menu_links(items, attributes, menu_level, menu_name) %} {# 1. #} + {% import _self as menus %} + {# 1. #} + {% + set menu_classes = [ + 'menu-' ~ menu_name|clean_class, + ] + %} + {# 1. #} + {% + set submenu_classes = [ + 'menu-' ~ menu_name|clean_class ~ '__submenu', + ] + %} + {% if items %} + {% if menu_level == 0 %} + {# 1. #} + {% else %} + {# 1. #} + {% endif %} + {% for item in items %} + {# 1. #} + {% + set item_classes = [ + 'menu-' ~ menu_name|clean_class ~ '__item', + item.is_expanded ? 'menu-' ~ menu_name|clean_class ~ '__item--expanded', + item.is_collapsed ? 'menu-' ~ menu_name|clean_class ~ '__item--collapsed', + item.in_active_trail ? 'menu-' ~ menu_name|clean_class ~ '__item--active-trail', + ] + %} + {# 1. #} + {% + set link_classes = [ + 'menu-' ~ menu_name|clean_class ~ '__link', + ] + %} + {# 1. #} + {# 1. #} + {{ + link( + item.title, + item.url, + item.attributes.removeClass(item_classes).addClass(link_classes) + ) + }} + {% if item.below %} + {{ menus.menu_links(item.below, attributes, menu_level + 1, menu_name) }} {# 1. #} + {% endif %} + + {% endfor %} + + {% endif %} +{% endmacro %}