В настоящее время я создаю приложение, в котором у меня есть несколько способов доступа к одному и тому же контроллеру.
E.g.:
Presenters -> access controller user/index with param user_type : presenters Attendees -> access controller user/index with param user_type : attendees
В моем навигационном .ini я определил оба пути (я удалил метку, модуль и ACL, чтобы облегчить чтение):
dashboard.pages.presenter.controller = "user"
dashboard.pages.presenter.action = "index"
dashboard.pages.presenter.pages.create.controller = "user"
dashboard.pages.presenter.pages.create.action = "create"
dashboard.pages.presenter.pages.edit.controller = "user"
dashboard.pages.presenter.pages.edit.action = "edit"
dashboard.pages.attendee.controller = "user"
dashboard.pages.attendee.action = "index"
dashboard.pages.attendee.pages.create.controller = "user"
dashboard.pages.attendee.pages.create.action = "create"
dashboard.pages.attendee.pages.edit.controller = "user"
dashboard.pages.attendee.pages.edit.action = "edit"
Проблема, с которой я сталкиваюсь, заключается в том, что когда я иду в раздел участников, отображаемая навигационная цепочка предназначена для докладчиков. Я понимаю, что это работает по назначению, но я ищу способ установить правильный «узел» активным на основе параметра URL-адреса user_type
.
Используя это:
$page = $this->view->navigation()->findOneByLabel($label);
if ($page) {
$page->setActive();
}
Мне удалось сделать страницу активной, но я ищу способ «сбросить» состояние Zend_Navigation
до нуля.