Example #1
0
 /**
  * Add chain routes from a config route
  *
  * @param  string                                 $name
  * @param  Zend_Controller_Router_Route_Interface $route
  * @param  Zend_Config                            $childRoutesInfo
  * @return void
  */
 protected function _addChainRoutesFromConfig($name, Zend_Controller_Router_Route_Interface $route, Zend_Config $childRoutesInfo)
 {
     foreach ($childRoutesInfo as $childRouteName => $childRouteInfo) {
         if (is_string($childRouteInfo)) {
             $childRouteName = $childRouteInfo;
             $childRoute = $this->getRoute($childRouteName);
         } else {
             $childRoute = $this->_getRouteFromConfig($childRouteInfo);
         }
         if ($route instanceof Zend_Controller_Router_Route_Chain) {
             $chainRoute = clone $route;
             $chainRoute->chain($childRoute);
         } else {
             $chainRoute = $route->chain($childRoute);
         }
         $chainName = $childRouteName;
         if (isset($childRouteInfo->chains)) {
             $this->_addChainRoutesFromConfig($chainName, $chainRoute, $childRouteInfo->chains);
         } else {
             $this->addRoute($chainName, $chainRoute);
         }
     }
 }
Example #2
0
 /**
  * Add chain routes from a config route
  *
  * @todo   Add recursive chaining (not required yet, but later when path
  *         route chaining is done) 
  * 
  * @param  string                                 $name
  * @param  Zend_Controller_Router_Route_Interface $route
  * @param  Zend_Config                            $childRoutesInfo
  * @return void
  */
 protected function _addChainRoutesFromConfig($name, Zend_Controller_Router_Route_Interface $route, Zend_Config $childRoutesInfo)
 {
     foreach ($childRoutesInfo as $childRouteName => $childRouteInfo) {
         $childRoute = $this->_getRouteFromConfig($childRouteInfo);
         $chainRoute = $route->chain($childRoute);
         $chainName = $name . '-' . $childRouteName;
         $this->addRoute($chainName, $chainRoute);
     }
 }