public static function &getInstance()
 {
     if (self::$_instance == null) {
         self::$_instance = new __RouteManager();
     }
     return self::$_instance;
 }
Example #2
0
 public function getRouteToRedirectTo()
 {
     $return_value = null;
     $route_id_to_redirect_to = $this->_route_id_to_redirect_to;
     if (!empty($route_id_to_redirect_to)) {
         $route_manager = __RouteManager::getInstance();
         if ($route_manager->hasRoute($route_id_to_redirect_to)) {
             $return_value = $route_manager->getRoute($route_id_to_redirect_to);
         }
     }
     return $return_value;
 }
Example #3
0
 protected function _calculateUriComponents()
 {
     $route = __RouteManager::getInstance()->getValidRouteForUrl($this->_relative_url);
     if ($route == null) {
         throw new Exception('Route not found matching url: ' . $this->_relative_url);
     }
     $this->setRouteId($route->getId());
     $this->setFlowId($route->getFlowId());
     $url_variable_values = array();
     $variables_matched = array();
     if (preg_match('/' . $route->getUrlRegularExpression() . '/', $this->_relative_url, $variables_matched)) {
         $variables_order = $route->getVariablesOrder();
         $total_variables_matched = count($variables_matched);
         for ($i = 1; $i < $total_variables_matched; $i++) {
             $url_variable_values[$variables_order[$i - 1]] = $variables_matched[$i];
         }
         //Now will instantiate a valid front controller for the current request:
         $front_controller_class = $route->getFrontControllerClass();
         if ($front_controller_class != null) {
             if (key_exists($front_controller_class, $url_variable_values)) {
                 $this->setFrontControllerClass($url_variable_values[$front_controller_class]);
             } else {
                 $this->setFrontControllerClass($front_controller_class);
             }
         }
         $request_parameters = $route->getParameters($url_variable_values);
         $action_identity = $route->getActionIdentity();
         if ($action_identity != null) {
             $request_action_code = __ContextManager::getInstance()->getApplicationContext()->getPropertyContent('REQUEST_ACTION_CODE');
             if (!in_array($action_identity->getActionCode(), $variables_order)) {
                 $this->setActionCode($action_identity->getActionCode());
                 $request_parameters[$request_action_code] = $action_identity->getActionCode();
             } else {
                 if (key_exists($action_identity->getActionCode(), $url_variable_values)) {
                     $this->setActionCode($url_variable_values[$action_identity->getActionCode()]);
                     $request_parameters[$request_action_code] = $url_variable_values[$action_identity->getActionCode()];
                 }
             }
             $request_controller_code = __ContextManager::getInstance()->getApplicationContext()->getPropertyContent('REQUEST_CONTROLLER_CODE');
             if (!in_array($action_identity->getControllerCode(), $variables_order)) {
                 $this->setControllerCode($action_identity->getControllerCode());
                 $request_parameters[$request_controller_code] = $action_identity->getControllerCode();
             } else {
                 if (key_exists($action_identity->getControllerCode(), $url_variable_values)) {
                     $this->setControllerCode($url_variable_values[$action_identity->getControllerCode()]);
                     $request_parameters[$request_controller_code] = $url_variable_values[$action_identity->getControllerCode()];
                 }
             }
         }
         $this->setParameters($request_parameters);
     }
 }