Esempio n. 1
0
 /**
  * Предиспетчер
  * 
  * @return void
  */
 public function preDispatch()
 {
     /**
      * Инициализируем класс материалов сайта и определяем текущий модуль
      */
     $this->Resource = new Phorm_Resource(null);
     if (isset($this->_params['moduleid'])) {
         $this->Resource->setModuleid($this->_params['moduleid']);
     }
     if (isset($this->_params['resourceid']) && ($this->ResourceInfo = $this->Resource->getResourceInfo($this->_params['resourceid']))) {
         $this->Resource->setModuleid($this->ResourceInfo['moduleid']);
     }
     /**
      * Проверяем существование MVC-ресурса (проще всего это сделать через ACl-таблицу пользователя)
      * Если запись есть, то делаем перенаправление на соответствующий Action
      */
     if (isset($this->_usersession->UserData['acl']['mvc']['control'][$this->Resource->getModuleid()][$this->_params['action']])) {
         return $this->_forward($this->_params['action'], $this->Resource->getModuleid(), null, array('controller' => $this->Resource->getModuleid(), 'action' => $this->_params['action'], 'isfwd' => true));
         /**
          * В противном случае работаем с текущим контроллером
          */
     } else {
         if ($this->ModuleInfo = $this->Resource->getModuleInfo($this->Resource->getModuleid())) {
             $this->view->assign('ModuleInfo', $this->ModuleInfo);
         } elseif (!in_array($this->_params['action'], array('index', 'generate'))) {
             return $this->composeErrorMessage('Материал с указанным Id не найден');
         }
     }
 }