Просто регулярное повторное использование блока с Twig - как? - PullRequest
0 голосов
/ 27 сентября 2019

Представьте, что у нас есть шаблон блока, который мы хотим использовать много раз на странице.И каждый раз нам нужно сделать три вещи:

  • установить класс на верхнем уровне
  • установить заголовок
  • добавить немного контента

Как этого добиться на 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

1 Ответ

0 голосов
/ 27 сентября 2019

Вы можете использовать include with:

{% include 'template.html' with {'class': 'class', 'title': 'title', 'content: 'content'} %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...