general: add BEM classes on menus (#68106)

This commit is contained in:
Corentin Sechet 2022-08-10 17:38:02 +02:00
parent bc5e0ae5f3
commit 11310342cf
2 changed files with 12 additions and 5 deletions

View File

@ -1,13 +1,17 @@
{% load i18n %}
{% if menuitems %}
<ul>
<ul class="{{ is_submenu|yesno:"submenu,menu" }}">
{% spaceless %}
{% for menuitem in menuitems %}
<li data-menu-page-id="{{ menuitem.page.id }}" class="menu-{{ menuitem.page.slug }} {% if menuitem.selected %}selected{% endif %}"><a
<li data-menu-page-id="{{ menuitem.page.id }}" class="{{ is_submenu|yesno:"submenu,menu" }}--item menu-{{ menuitem.page.slug }} {% if menuitem.selected %}selected{% endif %}">
<a
{% if menuitem.selected %}title="{{ menuitem.page.title }} - {% trans "active page" %}"{% endif %}
href="{% page_absolute_url menuitem.page %}"><span>{{ menuitem.page.title }}</span></a>
href="{% page_absolute_url menuitem.page %}"
class="{{ is_submenu|yesno:"submenu,menu" }}--link">
<span class="{{ is_submenu|yesno:"submenu,menu" }}--label">{{ menuitem.page.title }}</span>
</a>
{% if depth > 1 %}
{% show_menu current_page=menuitem.page level=-1 depth=depth reduce_depth=True ignore_visibility=ignore_visibility %}
{% show_menu current_page=menuitem.page level=-1 depth=depth reduce_depth=True ignore_visibility=ignore_visibility is_submenu=True %}
{% endif %}
</li>
{% endfor %}

View File

@ -214,13 +214,16 @@ class ExtraPlaceholderNode(template.Node):
@register.inclusion_tag('combo/menu.html', takes_context=True)
def show_menu(context, level=0, current_page=None, depth=1, ignore_visibility=True, reduce_depth=False):
def show_menu(
context, level=0, current_page=None, depth=1, ignore_visibility=True, reduce_depth=False, is_submenu=False
):
if reduce_depth:
depth -= 1
new_context = {
'page': context['page'],
'render_skeleton': context.get('render_skeleton'),
'request': context['request'],
'is_submenu': is_submenu,
}
return get_menu_context(
new_context, level=level, current_page=current_page, depth=depth, ignore_visibility=ignore_visibility