/** * (non-PHPdoc) * @see Zend_Controller_Plugin_Abstract::preDispatch() */ public function preDispatch(Zend_Controller_Request_Abstract $request) { try { #Zend_Debug::dump($request->getParams()); #die(); $mdlRole = new Acl_Model_Role(); $auth = Zend_Auth::getInstance(); $acl = Zend_Registry::get('ZendACL'); if ($auth->hasIdentity()) { $identity = $auth->getIdentity(); $this->role = $mdlRole->find($identity->role_id)->current(); } else { $this->role = $mdlRole->find(3)->current(); } $mdlMenuItem = new menu_Model_Item(); $mdlMenu = new menu_Model_Menu(); $navLinks = array(); $nav = new Zend_Navigation($navLinks); $menuList = $mdlMenu->getByStatus(1); foreach ($menuList as $menu) { $options = array('id' => 'menu-' . $menu->id, 'label' => $menu->name, 'uri' => ''); $page = Zend_Navigation_Page::factory($options); $nav->addPage($page); $menuitemList = $mdlMenuItem->getItemsForNavigationByMenu($menu); foreach ($menuitemList as $menuItem) { if ($menuItem->parent_id == 0) { if ($menuItem->external == 1) { $this->addExternalPage($page, $menuItem); } else { $this->addInternalPage($page, $menuItem); } } else { $parent = $nav->findBy('id', 'mii-' . $menuItem->parent_id); if ($menuItem->external == 1) { $this->addExternalPage($parent, $menuItem); } else { $this->addInternalPage($parent, $menuItem); } } } } $this->addCurrentPageUnregistered($nav, $request); $page = $nav->findBy("id", "mii-" . $request->getParam("mid")); if ($page) { $page->setActive(true); } Zend_Registry::set('Zend_Navigation', $nav); #Zend_Debug::dump($nav->toArray()); #die(); } catch (Exception $e) { try { $writer = new Zend_Log_Writer_Stream(APPLICATION_LOG_PATH . 'plugins.log'); $logger = new Zend_Log($writer); $logger->log($e->getMessage(), Zend_Log::ERR); } catch (Exception $e) { } } }