Здравствуйте.
Недавно начал изучать Twig, и совсем не понимаю как работать с дочерними шаблонами (лайаутами).
Как мне отправлять данные в дочерний лайаут, чтобы после вывода основного лайаута, дочерние отображались с переданными данными. Или тут надо все лайауты с данными строить по кусочкам а потом собирать?
Ну вот как тут, к примеру, передать массив menu лайауту menu.twig
index.php/*...CODE...*/
Twig_Autoloader::register();
$loader = new Twig_Loader_Filesystem($twig_filesystem);
$twig = new Twig_Environment($loader, array(
'cache' => TWIG_CACHE,
'debug' => TWIG_DEBUG));
$twig->display('main.twig', array());
/*...CODE...*/
main.twig /*...CODE...*/
{% include "header.twig" %}
/*...CODE...*/
header.twig /*...CODE...*/
{% include "menu.twig" %}
/*...CODE...*/
menu.twig /*...CODE...*/
{% for link in menu %}
Помогите, пожалуйста. Заранее спасибо!
UPD: хотя бы ссылок дайте, пожалуйста)
Ответ
Как то сложно вы страницу строите. Посмотрите раздел Extends http://twig.sensiolabs.org/doc/tags/extends.html
Проще создать один главный (или пару) шаблон, наследоваться от него и создавать похожие шаблоны переопределяя блоки.
А про переменные в include смотрите http://x-twig.ru/tags/include/ они передаются
{% include 'template.html' with {'foo': 'bar'} %}
Т.е. передаете в основной шаблон переменные, в основном шаблоне указываете какие переменные передать дочернему при include
Комментариев нет:
Отправить комментарий