KumbiaPHP  beta2
Framework PHP
 Todo Estructuras de Datos Namespaces Archivos Funciones Variables Páginas
redirect.php
Ir a la documentación de este archivo.
1 <?php
27 class Redirect
28 {
29 
38  public static function to($route = null, $seconds = null, $statusCode = 302)
39  {
40  $route OR $route = Router::get('controller_path') . '/';
41 
42  $route = PUBLIC_PATH . ltrim($route, '/');
43 
44  if ($seconds) {
45  header("Refresh: $seconds; url=$route");
46  } else {
47  header('HTTP/1.1 ' . $statusCode);
48  header("Location: $route");
49  $_SESSION['KUMBIA.CONTENT'] = ob_get_clean();
50  View::select(null, null);
51  }
52  }
53 
62  public static function toAction($action, $seconds = null, $statusCode = 302)
63  {
64  self::to(Router::get('controller_path') . "/$action", $seconds, $statusCode);
65  }
66 
73  public static function route_to()
74  {
75  static $cyclic = 0;
76  $url = Util::getParams(func_get_args());
77  $vars = array();
78 
79  if (isset($url['module'])) {
80  $vars['module'] = $url['module'];
81  $vars['controller'] = 'index';
82  $vars['action'] = 'index';
83  $vars['parameters'] = array();
84  $vars['controller_path'] = $url['module'] . '/index';
85  }
86 
87  if (isset($url['controller'])) {
88  $vars['controller'] = $url['controller'];
89  $vars['action'] = 'index';
90  $vars['parameters'] = array();
91  $vars['controller_path'] = (isset($url['module'])) ? $url['module'] . '/' . $url['controller'] : $url['controller'];
92  }
93 
94  if (isset($url['action'])) {
95  $vars['action'] = $url['action'];
96  $vars['parameters'] = array();
97  }
98 
99  if (isset($url['parameters'])) {
100  $vars['parameters'] = explode('/', $url['parameters']);
101  } elseif (isset($url['id'])) {
102  // Deprecated
103  $vars['parameters'] = array($url['id']);
104  } else {
105  $vars['parameters'] = array();
106  }
107 
108  if (++$cyclic > 1000)
109  throw new KumbiaException('Se ha detectado un enrutamiento cíclico. Esto puede causar problemas de estabilidad');
110 
111  Router::to($vars, TRUE);
112  }
113 }