Активные пункты меню

d1gi

Новичок
Предположим есть 2-х колоночный макет: контент и меню с навигацией следующего содержания:

1. главная
2. о компании
2.1. история
2.2. руководство
3. новости
3.1. акции компании
3.2. в мире
4. контакты

Если рассматривать паттерн MVC, то например при запросе /about/history/ допустим роутер должен выполнить класс About и метод historyAction, в прицнипе он должен вернуть только текстовку и поместить её в макет в блок контента, вроде всё хорошо, но как заставить при этом меню с навигацией на пунктах «о компании» и «история» установить css классы «selected»?

Вообще подход «виджетов» мне ненравится... мне ближе, когда сначала генерируются ВСЕ данные, а потом они только отображается т.е. применить метод запуска контроллера менюшки прямо из шаблона имхо некрасиво :(

Посоветуйте какие еще есть варианты решения? в идеале меню должен генерировать специально обученный для этих целей класс ;) но тогда как настроить роутинг приложения, чтобы он вызывал 2 экшена и получал 2 ответа для 2-х блоков макете? вводить какой-нить «управляющий контроллер»?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
мне ближе, когда сначала генерируются ВСЕ данные, а потом они только отображается т.е. применить метод запуска контроллера менюшки прямо из шаблона имхо некрасиво :(
Параметры запроса — вполне себе данные. Передавай их в шаблон, на основании этих данных меняй отображение — в чем проблема-то?
 

Redjik

Джедай-мастер
Считаю, что глупая идея изначально, и не существует четких правил (Zend View и его helper - navigation, в их реализации вполне оправдано кидать формирование меню в вид), но если совсем не хочется, то наследуем все контроллеры от какого-то абстрактного и в нем уже возвращаем все данные для меню в зависимости от инициализированного потомка и его метода.
 
Сверху