Лучший способ справиться с несколькими макетами в symfony

Эй, ребята. Я ищу лучший способ сделать что-то простое в symfony.

По сути, у меня есть модуль, в котором все страницы будут содержать одинаковый верхний и нижний колонтитулы. Этот модуль также имеет ту же общую компоновку, что и другие модули.

Мне просто интересно, должен ли я создать один файл, и мои страницы контента будут вызываться как частичные, или все файлы должны иметь свое собственное содержимое и каким-то образом вызывать два других шаблона.

Я сделал краткий пример своей настройки: http://grab.by/3Riy

Надеюсь, это поможет понять, что я пытаюсь сделать.

Спасибо!


person Pierre    schedule 19.04.2010    source источник


Ответы (2)


Вы должны сделать это следующим образом:

  1. Create layout.php file that will contain:
    1. Website header
    2. include_slot (для заголовка модуля)
    3. echo $sf_content (шаблон/контент модуля)
    4. include_slot (для нижнего колонтитула модуля)
    5. Нижний колонтитул сайта
  2. В шаблонах модуля вы определяете слоты для верхнего и нижнего колонтитула модуля.
person Crozin    schedule 19.04.2010

Я решил пойти с частичными вместо этого.

indexSuccess.php

<?php include_partial("header"); ?>
Content
<?php include_partial("footer"); ?>

Таким образом, он все еще работает с моим оригинальным layout.php.

person Pierre    schedule 19.04.2010
comment
Если вы можете передать все необходимые переменные в партиалы из всех действий в рассматриваемом модуле (или не нужно ничего передавать), я бы также пошел с партиалами. Я думаю, что решение Крозина тоже подходит, но требует, чтобы вы всегда определяли слот или использовали значение по умолчанию, которое может подходить или не подходить для всех ваших модулей, в зависимости от общей структуры сайта. - person Tom; 20.04.2010