Переменные конфигурации для всего пакета в Symfony 2 и TWIG

Я программирую на Symfony 2, где мне нужно поддерживать два пакета. Их представления расширяют base.html.twig (шаблон приложения), например:

{% extends '::base.html.twig' %}
...

Теперь base.html.twig выглядит так:

...
<title>{{ page_title }}</title>
...

Теперь мой вопрос заключается в том, как и где я могу определить переменную page_titel, чтобы два пакета имели разные заголовки страниц. Я знаю, я мог бы установить переменную в рендеринге шаблона в каждом методе действия контроллера, но из-за того, что заголовок страницы является статическим в одном пакете, я ищу подход, в котором мне нужно только определить переменная один раз. Что-то типа:

#app/config/config.yml
twig:
  global:
    foo: bar

но не для всего приложения, а для всего пакета! Любые подсказки?


person Davincho    schedule 14.02.2012    source источник


Ответы (1)


Учитывая чтение блоков TWIG. http://symfony.com/doc/current/book/templating.html

В базовом шаблоне используйте:

<title>{% block title %}{% endblock %}</title>

Затем в шаблонах приложений используйте:

{% block title %}Bundle 1 Title{% endblock %}

И заголовок волшебным образом появится в качестве содержимого заголовка.

И я не уверен на 100%, что понял ваш вопрос. Но вы можете дать каждому пакету собственный файл base.html, который расширяет основной файл base.html и устанавливает заголовок. Все в этом наборе будет расширять базу пакетов. Таким образом, заголовок нужно будет установить только в одном месте.

person Cerad    schedule 15.02.2012