Частично, вероятно, лучший путь.
Но слоты действительно полезны, если то, что вы хотите добавить в макет, присутствует только для некоторых действий, а не для всех.
Вы сказалиВы создали модуль для верхнего и нижнего колонтитула.Я предпочитаю просто создавать частичное в папке шаблонов приложений для каждого из них.
/apps
/yourapp
/templates
_header.php
_footer.php
layout.php
Боковая панель категорий звучит как компонент, но от того, как вы ее реализуете, зависит, хотите ли вы, чтобы один и тот же компонент отображался на каждой страницеили иметь возможность контролировать, какая боковая панель отображается (если она вообще есть) на разных страницах.
Если вы хотите, чтобы один и тот же компонент на каждой странице, просто включите компонент (с include_component) в файл layout.php.Если вы хотите больше контроля, включите компонент из в шаблон каждого из действий, которые вы хотите, чтобы он был показан.
Более сложное решение для боковой панели будет включать его из вашего макета, если конкретный атрибутзадавать.Итак, у вас actions.class.php:
public function preExecute()
{
$this->getRequest()->setAttribute('show_categories_sidebar', true);
}
Тогда у тебя layout.php:
<?php if ($sf_request->hasAttribute('show_categories_sidebar')): ?>
<div id="sidebar">
<?php include_component('category', 'sidebar') ?>
</div>
<?php endif; ?>