Esempio n. 1
0
 /**
  * Get controller class name
  *
  * Try request first; if not found, try pulling from request parameter;
  * if still not found, fallback to default
  *
  * @param Zend_Controller_Request_Abstract $request
  *
  * @return string|false Returns class name on success
  */
 public function getControllerClass(Zend_Controller_Request_Abstract $request)
 {
     $controllerName = $request->getControllerName();
     if (empty($controllerName)) {
         if (!$this->getParam('useDefaultControllerAlways')) {
             return false;
         }
         $controllerName = $this->getDefaultControllerName();
         $request->setControllerName($controllerName);
     }
     // Zend 1.10+ changes
     $className = $this->formatControllerName($controllerName);
     $controllerDirs = $this->getControllerDirectory();
     $module = $request->getModuleName();
     if ($this->isValidModule($module)) {
         $this->_curModule = $module;
         $this->_curDirectory = $controllerDirs[$module];
     } elseif ($this->isValidModule($this->_defaultModule)) {
         $request->setModuleName($this->_defaultModule);
         $this->_curModule = $this->_defaultModule;
         $this->_curDirectory = $controllerDirs[$this->_defaultModule];
     } else {
         require_once 'Zend/Controller/Exception.php';
         throw new Zend_Controller_Exception('No default module defined for this application');
     }
     // PATCH
     // if component manager has controller registered
     // redirect to specific controller dir index
     if (null !== $this->_extensionManager) {
         if ($this->_extensionManager->isComponentRegistered($controllerName)) {
             $dir = $this->_extensionManager->getComponentPrefix() . $controllerName;
             $this->_curDirectory = $controllerDirs[$dir];
         }
     }
     return $className;
 }