Есть twig шаблон, который принимает на вход переменную tree
в формате:
$tree = [
0 => [
'data' => 'Item 1',
'childrens' => [
0 => ['data' => 'Item 1.1'],
1 => ['data' => 'Item 1.2'],
],
],
1 => ['data' => 'Item 2'],
2 => [...]
];
Нужно вывести эту переменную в виде дерева состоящего из вложенных списков ul/li.
Один из способов это макросы:
{% macro render_tree(tree) %}
{% import _self as macros %}
<ul>
{% for item in tree %}
<li>
{{ item.data }}
{% if item.childrens %}
{{ macros.render_tree(item.childrens) }}
{% endif %}
</li>
{% endfor %}
</ul>
{% endmacro %}
{% import _self as macros %}
{{ macros.render_tree(tree) }}
Так выводятся например системные меню — menu.html.twig.
Написанное актуально для
Drupal 8
Похожие записи
- Функции для работы с адресами в twig
- Интересные доклады с DrupalCon Austin 2014
- Темизация группы чекбоксов или радио-кнопок (#type=>checkboxes, #type=>radios)
- Как в Views программно изменить view mode выводимых сущностей по данным из cookie?
- Добавляем на страницу управления отображением материала поля "Заголовок" и "Дата создания"
Добавить комментарий