DevGang
Авторизоваться

Twig

Русскоязычная документация по Twig - PHP шаблонизатору. Руководство по Твиг на русском языке

Оператор Include включает в себя шаблон и возвращает отображаемое содержимое этого файла в текущее пространство имен:

{% include 'header.html' %}
    Body
{% include 'footer.html' %}

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

Если используется подгрузчик filesystem , шаблоны ищутся в путях, определяемых ею.
Можно добавить дополнительные переменные, передавая их после with:

{# template.html will have access to the variables from the current context and the additional ones provided #}
{% include 'template.html' with {'foo': 'bar'} %}

{% set vars = {'foo': 'bar'} %}
{% include 'template.html' with vars %}

Или можно отключить доступ к контексту путем добавления only.

{# only the foo variable will be accessible #}
{% include 'template.html' with {'foo': 'bar'} only %}

{# no variables will be accessible #}
{% include 'template.html' only %}

Когда шаблон был создан конечным пользователем, его нужно рассматривать уже в паре с атрибутом sandbox. Более детальная информация об этом находится в документации этого тега.

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

{% include some_var %}
{% include ajax ? 'ajax.html' : 'not_ajax.html' %}

И если выражение относится к объекту Twig_Template, Twig будет использовать непосредственно его.

// {% include template %}

$template = $twig->loadTemplate('some_template.twig');

$twig->loadTemplate('template.twig')->display(array('template' => $template));

Вы можете отменить Include при помощи инструкции ignore missing , и тогда Twig будет игнорировать подключение несуществующего шаблона.
Помещают его сразу за именем шаблона:

{% include 'sidebar.html' ignore missing %}
{% include 'sidebar.html' ignore missing with {'foo': 'bar'} %}
{% include 'sidebar.html' ignore missing only %}

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

{% include ['page_detailed.html', 'page.html'] %}
{% include ['special_sidebar.html', 'sidebar.html'] ignore missing %}

Первый же шаблон, который существует, будут включен. Также можно добавить ignore missing для того чтобы подавить исключение если ни один из шаблонов не существует, в противном же случае он будет выдавать исключение.

Комментарии
Чтобы оставить комментарий, необходимо авторизоваться