Ejemplo n.º 1
0
 /**
  * (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) {
         }
     }
 }