В моем приложении есть страницы, которые составляют дерево навигации.Я хотел бы динамически вставлять страницы в мою навигацию, используя значения запроса.У меня уже есть логика, чтобы найти страницу и затем вызвать метод addPage()
на ней.То, что я ищу, - это как легко передать значения Zend_Controller_Request
в Zend_Navigation_Page::factory()
, чтобы я мог добавить эту страницу.Может быть, даже написано как плагин?
Решение
AngelP получил самое близкое, так что я ему благодарен, но вот мое решение:
$request = $this->getRequest();
if ($page = $this->view->siteNav->findBy('id', $page_id)) {
$page->addPage(Zend_Navigation_Page::factory($request->getParams())
->setParams($request->getParams())
->setLabel($this->view->title)
->setVisible(false));
}
Этот код выполняется из действия контроллера.$this->view->siteNav
- это экземпляр Zend_Navigation
, который я имею в виду.getParams()
из экземпляра Zend_Controller_Request
легко передается в Zend_Navigation_Page::factory()
, а затем в метод setParams()
экземпляра Zend_Navigation_Page_Mvc
.