/** * (non-PHPdoc) * @see Zend_Controller_Plugin_Abstract::preDispatch() */ public function preDispatch(Zend_Controller_Request_Abstract $request) { try { $viewHelperAction = new Zend_View_Helper_Action(); $navigation = Zend_Registry::get('Zend_Navigation'); $navItem = $navigation->findBy('active', true); $auth = Zend_Auth::getInstance(); $acl = Zend_Registry::get('ZendACL'); $mdlRole = new Acl_Model_Role(); if ($auth->hasIdentity()) { $identity = $auth->getIdentity(); $role = $mdlRole->find($identity->role_id)->current(); } else { $role = $mdlRole->find(3)->current(); } // Zend_Debug::dump($acl); //Zend_Debug::dump($role->id); $mdlWidget = new System_Model_Widget(); $hookXml = APPLICATION_PATH . '/configs/hooks.xml'; $sxeHook = new SimpleXMLElement($hookXml, null, true); $mdlResource = new Acl_Model_Resource(); $mdlWidgetDetail = new System_Model_Widgetdetail(); foreach ($sxeHook as $hook) { #/* #Zend_Debug::dump($hook); $widgets = $mdlWidgetDetail->getWidgetsByHookAndItemId($navItem->id, $hook); $hookContent = ''; foreach ($widgets as $widget) { #Zend_Debug::dump($widget->title); $params = array(); $widgetParams = Zend_Json::decode($widget->params); foreach ($widgetParams as $strParam => $valParam) { $params[$strParam] = $valParam; } $rsACL = strtolower($widget->module . ':' . $widget->controller); $prvACL = strtolower($widget->actioncontroller); if ($acl->isAllowed($role->id, $rsACL, $prvACL)) { #if ( $widget->position == "menu_registrado" ) #var_dump($widget->params, $widget->actioncontroller, $widget->id); $hookContent .= $widget->showtitle == 1 ? "<h3>" . $widget->title . "</h3>" : ""; $hookContent .= $viewHelperAction->action($widget->actioncontroller, $widget->controller, $widget->module, $params); } } #*/ Zend_Layout::getMvcInstance()->assign(strval($hook), $hookContent); } } 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) { } } }