Конфигурационные переменные всего пакета в Symfony 2 и TWIG - PullRequest
0 голосов
/ 15 февраля 2012

Я программирую в 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

, но не для всего приложения, а для всего пакета!Есть намеки?

1 Ответ

2 голосов
/ 15 февраля 2012

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

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

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

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

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

И заголовок будет волшебным образом отображаться как заголовокcontent.

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

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