Рейтинг:0

Как получить пункты меню в шаблоне Twig в виде массива/объекта?

флаг gb

Мне нужно получить (например, по имени машины меню) и управлять данными пунктов меню, чтобы использовать их в шаблоне Drupal Twig, например:

<ul>
{% for item in items %}
    <li><a href="{{ item.url }}">{{ item.title }}</a></li>
{% endfor %}
</ul>

Но я не могу найти информацию о том, как это сделать.

Единственное, что я нашел, это как

{% import _self как меню %}
{{ menus.menu_links(элементы, атрибуты, 0) }}
{% макрос menu_links(элементы, атрибуты, меню_уровень) %}
...

Но я не понимаю, как использовать такой код. Например, где указано имя машины меню? Могу ли я использовать его в заголовок.html.twig или только в меню.html.twig? И т.д...

флаг ru
1) Доступные переменные ВСЕГДА ограничены их соответствующим предложением шаблона Twig, вы не можете получить отдельные пункты меню, например.`head.html.twig` (и это верно для каждого шаблона и каждой переменной) 2) Прочтите [документы](https://twig.symfony.com/doc/2.x/tags/macro.html) 3 ) Установите [модуль Twig Tweak](https://www.drupal.org/project/twig_tweak), а затем выполните `{{ dd(_context) }}`, чтобы выполнить var_dump всех доступных переменных в этом шаблоне.
Kevin avatar
флаг in
Я сэкономлю вам время, вам не нужны имена компьютеров меню в twig, потому что вы можете создать файл twig с определенным шаблоном именования, который всегда будет использоваться для определенных меню по имени их компьютера.
stckvrw avatar
флаг gb
@Kevin, я назвал свой шаблон как `menu--main.html.twig` (main — это машинное имя моего меню), поместив в файл код из `core/modules/system/templates/menu.html .twig` и включил этот файл в свой `header.html.twig`. Но меню по-прежнему не отображается на странице. Что не так?
Kevin avatar
флаг in
Как говорится в первом комментарии, вы не можете просто включить такие файлы шаблонов и заставить их «работать». Вам нужно поместить блок меню в правильную область вашей темы, чтобы меню отобразилось.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.