Класс к ссылке в выпадающем меню.
Как добавить класс в шаблоне?
Главные вкладки
Лучший ответ
Так нужно?
{{ menus.menu_links(items, attributes, 0) }}
{% macro menu_links(items, attributes, menu_level) %}
{% import _self as menus %}
{% if items %}
{% if menu_level == 0 %}
<ul{{ attributes.addClass('navbar-nav', 'mr-auto') }}>
{% else %}
<ul class="dropdown-menu">
{% endif %}
{% for item in items %}
{% set classes = [
'nav-item',
item.below ? 'dropdown',
item.is_expanded ? '',
item.is_collapsed ? 'show',
item.in_active_trail ? 'active',
] %}
<li{{ item.attributes.addClass(classes) }}>
{% if item.below %}
{{ link(item.title, item.url, {'class': 'nav-link dropdown-toggle',
'data-toggle': 'dropdown', 'aria-expanded': 'true'}) }}
{{ menus.menu_links(item.below, attributes, menu_level + 1) }}
{% else %}
{% if menu_level == 0 %}
{{ link(item.title, item.url, {'class': 'nav-link'}) }}
{% else %}
{{ link(item.title, item.url, {'class': 'dropdown-item'}) }}
{% endif %}
{% endif %}
</li>
{% endfor %}
</ul>
{% endif %}
{% endmacro %}
Комментарии
https://red-route.org/articles/how-add-classes-links-drupal-8
https://stackoverflow.com/questions/39500222/drupal-8-adding-classes-to-...
https://gist.github.com/blackice2999/a473099551dd4445c4dd
https://drupal.stackexchange.com/questions/229142/how-to-add-classes-to-...
К ссылкам пункта меню у меня добавлены классы. Не знаю, как добавить к ссылкам вложенного списка в пункт меню. Не могу найти примеры.
План Б. Выводите меню вьюхой и там задавайте любые классы.
А есть тут на сайте кнопка "дать по ушам за неразумные советы"?
Чем же плохо? Большая часть информации выводится через views (у меня). Бeз views мне и Drupal не нужен.
Скриншоты кстати не вижу. Мне партия не разрешает на такие сайты ходить, ВПН лень включать.
У меня меню таксономии. Шаблон и код в вопросе, дополнила.
По скринам сложно что то сказать. Приложите исходный код своего twig шаблона меню и верстку, которая должна получиться на выходе.
Дополнила.
{{ menus.menu_links(items, attributes, 0) }}
{% macro menu_links(items, attributes, menu_level) %}
{% import _self as menus %}
{% if items %}
{% if menu_level == 0 %}
<ul{{ attributes.addClass('navbar-nav', 'mr-auto') }}>
{% else %}
<ul class="dropdown-menu">
{% endif %}
{% for item in items %}
{% set classes = [
'nav-item',
item.below ? 'dropdown',
item.is_expanded ? '',
item.is_collapsed ? 'show',
item.in_active_trail ? 'active',
] %}
<li{{ item.attributes.addClass(classes) }}>
{% if item.below %}
{# В link() передаем нужные аттрибуты и класс .dropdown-item #}
{{ link(item.title, item.url, {'class': 'dropdown-item',
'data-toggle': 'dropdown', 'aria-expanded': 'true'}) }}
{{ menus.menu_links(item.below, attributes, menu_level + 1) }}
{% else %}
{{ link(item.title, item.url, {'class': 'nav-link'}) }}
{% endif %}
</li>
{% endfor %}
</ul>
{% endif %}
{% endmacro %}
Это link пункта меню. Он должен оставаться "nav-link dropdown-toggle".
Нужно передать атрибуты в link li внутри ul "dropdown-menu".
Нужно ещё какое-то условие для пунктов в ul "dropdown-menu".
Так нужно?
{{ menus.menu_links(items, attributes, 0) }}
{% macro menu_links(items, attributes, menu_level) %}
{% import _self as menus %}
{% if items %}
{% if menu_level == 0 %}
<ul{{ attributes.addClass('navbar-nav', 'mr-auto') }}>
{% else %}
<ul class="dropdown-menu">
{% endif %}
{% for item in items %}
{% set classes = [
'nav-item',
item.below ? 'dropdown',
item.is_expanded ? '',
item.is_collapsed ? 'show',
item.in_active_trail ? 'active',
] %}
<li{{ item.attributes.addClass(classes) }}>
{% if item.below %}
{{ link(item.title, item.url, {'class': 'nav-link dropdown-toggle',
'data-toggle': 'dropdown', 'aria-expanded': 'true'}) }}
{{ menus.menu_links(item.below, attributes, menu_level + 1) }}
{% else %}
{% if menu_level == 0 %}
{{ link(item.title, item.url, {'class': 'nav-link'}) }}
{% else %}
{{ link(item.title, item.url, {'class': 'dropdown-item'}) }}
{% endif %}
{% endif %}
</li>
{% endfor %}
</ul>
{% endif %}
{% endmacro %}
Да, работает. Спасибо.)
Вот так https://yadi.sk/i/lV5vdCtO3S8kCV.
И че? Делаем 2 вьюхи. Одна выводит термины 1-го уровня, вторая 2-го. Cоединяем через https://www.drupal.org/project/views_field_view
А про модуль taxonomy_menu есть информация (от бывшего вождя Gor-a) что он, к каким--то ужасам приводит.
Значит самопис
А зачем Drupal без views?