Как мне получить все шаблоны веток для наследования от мастера? - PullRequest
2 голосов
/ 19 марта 2012

Примечание: я использую Twig в не-Symfony контексте.

Я хочу зарегистрировать мастер-макет, который должны наследовать все шаблоны, чтобы мне не пришлось забывать вводить их предв:

{% extends 'layout.html.twig' %}

Я знаю, что где-то видел это, и Symfony использует это.

1 Ответ

1 голос
/ 20 марта 2012

Это возможно!

После некоторых экспериментов я придумал это решение:

{# index.html.twig #}   
{% block title %}Hello world{% endblock%}

Обернуть глобальный макет в блок:

{# layout.html.twig #}
{% block layout %}
    <html>
        <head>
            <title>{% block title %}{% endblock%}</title>
        </head>
    <html>
{% endblock %}

Передать дочерний шаблон ветке:

// index.php
...
$twig->display(array('template'=>'index.html.twig'));
...

Внедрить дочерний шаблон через прокси-шаблон:

{# proxy.twig #}
{% extends 'layout.html.twig' %}
{% block layout %}
    {# Get extended block #}
    {{ parent() }}
    {# inject template into master layout #}
    {% include template %}
{% endblock %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...