2012-02-14 2 views
0

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

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

Теперь base.html.twig выглядит следующим образом:

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

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

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

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

ответ

2

Рассмотрение чтения на блоках 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 и устанавливает заголовок. Тогда все в этом пакете расширяет базу связки. Таким образом, заголовок должен быть установлен только в одном месте.