Example #1
0
 public static function viaJavaScript($url, $parent = false)
 {
     if ($link = Filter::with('core.redirect', $url)) {
         Response::type('text/html');
         Response::add('<script>' . ($parent ? 'parent.' : '') . 'location.href="', addslashes($link), '"</script>');
         Response::send();
         exit;
     }
 }
Example #2
0
 /**
  * Add execution time to response
  *
  * @return void
  */
 public static function showExecutionTime()
 {
     $time = Timer::stop();
     if (Response::$outJson) {
         Response::add(['executionTime' => $time . 'ms']);
     } else {
         Response::add("<!-- executionTime {$time}ms -->");
     }
 }
Example #3
0
 /**
  * Render template as JSON, add render result to Response output
  * Set Response[status] as $status
  *
  * @param string $name
  * @param string $status
  * @return void
  */
 public static function renderJson($template, $status = 'ok', $data = null)
 {
     $template = new Template($template);
     $output = ['status' => $status, 'data' => $template->render()];
     if (is_array($data)) {
         $output = array_merge($output, $data);
     }
     Response::setJson();
     Response::add($output);
 }
Example #4
0
 /**
  * Start the route dispatcher and resolve the URL request.
  * @param  string $URL The URL to match onto.
  * @param  string $method The HTTP method.
  * @param  bool $return_route If setted to true it will *NOT* execute the route but it will return her.
  * @return boolean true if a route callback was executed.
  */
 public static function dispatch($URL = null, $method = null, $return_route = false)
 {
     if (!$URL) {
         $URL = Request::URI();
     }
     if (!$method) {
         $method = Request::method();
     }
     $__deferred_send = new Deferred(function () {
         if (Options::get('core.response.autosend', true)) {
             Response::send();
         }
     });
     if (empty(static::$optimized_tree)) {
         foreach ((array) static::$routes as $group => $routes) {
             foreach ($routes as $route) {
                 if (is_a($route, 'Route') && $route->match($URL, $method)) {
                     if ($return_route) {
                         return $route;
                     } else {
                         $route->run($route->extractArgs($URL), $method);
                         return true;
                     }
                 }
             }
         }
     } else {
         $routes =& static::$optimized_tree;
         foreach (explode('/', trim($URL, '/')) as $segment) {
             if (is_array($routes) && isset($routes[$segment])) {
                 $routes =& $routes[$segment];
             } else {
                 if (is_array($routes) && isset($routes[''])) {
                     $routes =& $routes[''];
                 } else {
                     break;
                 }
             }
         }
         if (is_array($routes) && isset($routes[0]) && !is_array($routes[0])) {
             foreach ((array) $routes as $route) {
                 if (is_a($route, __CLASS__) && $route->match($URL, $method)) {
                     if ($return_route) {
                         return $route;
                     } else {
                         $route->run($route->extractArgs($URL), $method);
                         return true;
                     }
                 }
             }
         }
     }
     Response::status(404, '404 Resource not found.');
     foreach (array_filter(array_merge(static::trigger(404) ?: [], Event::trigger(404) ?: [])) as $res) {
         Response::add($res);
     }
     return false;
 }
Example #5
0
 /**
  * Show queries number for debug
  * Add queries count to response (json or plain)
  *
  * @return void
  */
 public static function showResources()
 {
     $count = self::$queries;
     if (Response::$outJson) {
         Response::add(['db queries' => $count]);
     } else {
         Response::add("<!-- db queries {$count} -->");
     }
 }
Example #6
0
 /**
  * @param $key
  * @param $value
  */
 public function setOutput($key, $value)
 {
     Response::add($value, $key);
 }