コード例 #1
0
ファイル: Widget.php プロジェクト: rogercastaneda/owlsys
 /**
  * (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) {
         }
     }
 }