Представьте, что у нас есть шаблон блока, который мы хотим использовать много раз на странице.И каждый раз нам нужно сделать три вещи:
- установить класс на верхнем уровне
- установить заголовок
- добавить немного контента
Как этого добиться на Twig?
Я знаю о макросе, но он не принимает контент.Я знаю о блоке, но он не принимает параметры.
Итак ... как это сделать обычным способом?
Так как я не знаю как, я буду использоватьмнимые конструкции позже «blockdef» и «blockuse» демонстрируют задачу (что является абсолютно обычным).
Итак, допустим, у нас есть этот симпатичный шаблон блока Twig:
blocks.twig:
{% blockdef myblock(class, title) %}
<div class="block {{class}}">
<div class="inner">
<div class="title">{{title}}</div>
<div class="content">{{content}}</div>
</div>
</div>
{% endgoodblock %}
И мы хотим использовать его следующим образом:
main.twig:
{% blockuse myblock('c1', 'Title1' %}
<p>Block 1 content</p>
{% endblockuse %}
{% blockuse myblock('c2', 'Title2' %}
<p>Block 2 content</p>
{% endblockuse %}
{% blockuse myblock('c3', 'Title3' %}
<p>Block 3 content</p>
{% endblockuse %}
Есть что-нибудь подобное?
ОБНОВЛЕНИЕ.Например, вот как это решается на Jade :
mixin myblock(cls, title)
.block(class=cls)
.inner
.title= title
.content
block
+myblock('c1', 'Title1')
p Block 1 content
+myblock('c2', 'Title2')
p Block 2 content
+myblock('c3', 'Title3')
p Block 3 content