TWIG переопределить блок в INCLUDE шаблоне

Author Роман Чернышов    Category HTML, PHP     Tags , Комментариев 0 Дата 26 Сен

tpl TWIG переопределить блок в INCLUDE шаблонеСтранный получился заголовок поста, но думаю тем кто столкнулся со следующей проблемой, в процессе работы с шаблонизатором TWIG, будет всё понятно. (О самом шаблонизаторе, его преимуществах и недостатков коих не так их и много, напишу в следующем посте, а пока забегая вперед, обсуждаем проблему)
Имеем следующую структуру шаблона:

Шаблон main.twig:

{% include header.twig %}
{% block block1 %}
{% endblock %}

Шаблон header.twig:

{% block block2 %}
header
{% endblock %}

Шаблон index.twig:

{% extends "main.twig" %}
{% block block1 %} text for block 1 {% endblock %}
{% block block2 %} text for block 2 {% endblock %}

При вызове шаблона index.twig, блок block1 в родительском шаблоне main.twig заменяется на блок из шаблона index.twig. По логике следует также, что блок block2 находящийся в шаблоне header.twig (который инклудится в шаблоне main.twig) так же заменится на блок из шаблона index.twig, но этого не происходит.

Длительные поиски решения, ни к чему толковому не привели. Заменить блок в подключенном INCLUDE шаблоне так и не получилось. Единственное решение в данной ситуации видится пока следующим:

Шаблон main.twig:

{% block block2 %}{% include header.twig %}{% endblock %}
{% block block1 %}
{% endblock %}

Шаблон header.twig:

header

Шаблон index.twig:

{% extends "main.twig" %}
{% block block1 %} text for block 1 {% endblock %}
{% block block2 %} text for block 2 {% endblock %}

Т.е. мы перенесли теги блока в родительский шаблон main.twig, и переопределяем подключаемый файл. У этого способа есть свои недостатки, но тем не менее он работает.

Если у вас есть свои идеи, буду рад выслушать.

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

Консультации

Консультант Чернышов Р.В. Зайдайте вопрос на любую из тем:
Бесплатно и без регистрации!

Задать вопрос
Все вопросы
Последние вопросы
Поиск по блогу
Категории
Архив
Новое на сайте
Портфолио Все работы


www.detskiy-mir.net
www.detskydoctor.ru
www.betelit.ru
www.all-alliance.ru
www.videogonok.ru
www.carpfishing.by
www.property-greek.com
www.domcons.ru

с 2009 года по сегодняшний день, создано более 300 сайтов...