/** * Recursively add pages to the container * * @param Zoo_Object_Tree $tree * @param Zend_Navigation_Container $container * @param int $key * @return void */ function treeToPageContainer(&$tree, Zend_Navigation_Page $container, $key = 0) { $children = $tree->getFirstChild($key); foreach ($children as $child) { $page = $this->nodeToPage($child); $container->addPage($page); $this->treeToPageContainer($tree, $page, $child->id); } }
/** * * @param Zend_Navigation_Page $pageParent * @param Zend_Db_Table_Row_Abstract $menuItem * @return Ambigous <Zend_Navigation_Page, Zend_Navigation_Page_Mvc, Zend_Navigation_Page_Uri, unknown> */ private function addInternalPage(Zend_Navigation_Page $pageParent, Zend_Db_Table_Row_Abstract $menuItem) { $options = array('id' => 'mii-' . $menuItem->id, 'label' => $menuItem->title, 'title' => $menuItem->title, 'target' => $menuItem->wtype, 'resource' => strtolower($menuItem->module . ':' . $menuItem->controller), 'privilege' => strtolower($menuItem->actioncontroller), 'order' => $menuItem->ordering, 'visible' => $menuItem->isvisible, 'class' => $menuItem->css_class, 'module' => $menuItem->module, 'controller' => $menuItem->controller, 'action' => $menuItem->actioncontroller); $params = array(); $subItemsParams = Zend_Json::decode($menuItem->params); if (!is_null($subItemsParams)) { $params = $subItemsParams; } $page = Zend_Navigation_Page::factory($options); $page->addParams($params); $pageParent->addPage($page); if (strlen($menuItem->id_alias) > 0) { $page->setRoute($menuItem->id_alias); } else { $page->setRoute(strtolower($menuItem->module . '-' . $menuItem->controller . '-' . $menuItem->actioncontroller)); } return $page; }