Я пытаюсь найти правильный способ создания компонента Twig, в котором есть разделы с глубиной вложенности 3.
У меня есть файл Twig, который просто создает заголовок с классом:
header.twig
<h2>{% block content %}{% endblock %}</h2>
, а затем файл ветки среднего уровня, который использует этот заголовок вместе с другими ветками низкого уровня:
раздел.twig
<div class="section">
{% block header %}
{% embed "components/header.twig" %}
{% block content %}
{{ header }}
{% endblock %}
{% endembed %}
{% endblock %}
</div>
и, наконец, высокоуровневый компонент страницы, потребляющий ветку раздела:
page.twig
<div class="page">
{{ include("mid/section.twig", { header: fields.header }) }}
</div>
Теперь, как вы можете видеть в section.twig
, я могу переопределить созданный мной блок, но на самом высоком уровне page.twig
Я не могу переопределить блок дважды, поэтому мне нужно использовать включение вместо встраивания.
Для меня это не правильно и очень многословно.Чтобы уточнить, я использую ACF, так что отсюда и fields.header
, и да, я знаю, что header.twig
может напрямую обращаться к этому значению, но я пытаюсь создать структуру, в которой компоненты низкого и среднего уровня являются "тупыми" иКомпонент высокого уровня контролирует данные.
Для моей конкретной ситуации я собираюсь сделать это наилучшим способом, которым я могу, или есть другой более чистый способ, который не включает в себя встраивание и включает в себя?