Использование Twig для объявления шаблона и передачи дополнительного содержимого между блоком родительского шаблона - PullRequest
0 голосов
/ 26 марта 2020

У меня есть следующий код, который я повторяю несколько раз в своем макете:

<div id="hi">
    <div class="howAreYou">
        <p class="fineTYForAsking">
            <!-- additional HTML logic goes here -->
        </p>
    </div>
</div>

Как я могу вставить вышеприведенное html в один шаблон Twig, а затем использовать этот шаблон и вставить в мои дополнительные параметры c html в разделе <!-- additional HTML logic goes here -->?

1 Ответ

0 голосов
/ 26 марта 2020

Вы можете просто определить блоки и встроить шаблон в любое удобное для вас место.

part.twig. html

<div id="{{ id | default('hi') }}">
    <div class="howAreYou">
        <p class="fineTYForAsking">
             {% block content %}
             {% endblock %}
        </p>
    </div>
</div>

template.twig . html

{% embed "partial.html.twig" with { 'id' : 'foo' } %}
    {% block content %}
         Lorem Ipsum
    {% endblock %}
{% endembed %}

Вы также можете использовать вставку в for-l oop. Переменные, известные внутри l oop, также известны во встроенном файле, например,

item. html .twig

<div{% if item.id|default %} id="{{ item.id }}"{% endif %}>
    <div class="howAreYou">
        <p class="fineTYForAsking">
             {% block title %}
                 {% if item.title is defined %}
                 <h1>{{ item.title }}</h1>
                 {% endif %}
             {% endblock %}
             {% block content %}
                 {% if item.content is defined %}
                 <p>{{ item.content }}</p>
                 {% endif %}             
             {% endblock %}            
        </p>
    </div>
</div>

template . html .twig

{% for item in items %}
    {% embed "item.twig" %}
    {% endembed %}
{% endfor %}

демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...