public function handle(Route $route) { $factory = $this->factory($route->controller()); $controller = $factory->invoke(); $controller->context = $this->httpContext; $view = $this->view($controller, $this->action($route->action()), $route->parameters()); $view->context = $this->httpContext; $this->header($view); $this->render($view); }
<?php /* Filters */ Route::action('check', function () { /* Check if you have installed credit to Striker */ if (file_exists(APP . 'install.lock')) { return Layout::create('installed', array('installed' => true)); } }); /* Start (Language Select) */ Route::get(array('/', 'start'), array('before' => 'check', 'main' => function () { $vars['languages'] = languages(); $vars['prefered_languages'] = prefered_languages(); $vars['timezones'] = timezones(); $vars['current_timezone'] = current_timezone(); return Layout::create('start', $vars); })); Route::post('start', array('before' => 'check', 'main' => function () { $i18n = Input::get(array('language', 'timezone')); $validator = new Validator($i18n); $validator->check('language')->is_max(2, 'Please select a language'); $validator->check('timezone')->is_max(2, 'Please select a timezone'); if ($errors = $validator->errors()) { Input::flash(); Notify::error($errors); return Response::redirect('start'); }
* Admin actions */ Route::action('auth', function () { if (Auth::guest()) { return Response::redirect('admin/login'); } }); Route::action('guest', function () { if (Auth::user()) { return Response::redirect('admin/accueil'); } }); Route::action('csrf', function () { if (Request::method() == 'POST') { if (!Csrf::check(Input::get('token'))) { Notify::error(array('Invalid token')); return Response::redirect('admin/login'); } } }); /** * Admin routing */ Route::get('admin', function () { if (Auth::guest()) { return Response::redirect('admin/login'); } return Response::redirect('admin/accueil'); }); /* Log in */
<?php /* Filters */ Route::action('check', function () { }); /* Start (Language Select) */ Route::get(array('/', 'start'), array('before' => 'check', 'main' => function () { $vars['messages'] = Notify::read(); $vars['languages'] = languages(); $vars['prefered_languages'] = prefered_languages(); $vars['timezones'] = timezones(); $vars['current_timezone'] = current_timezone(); return Layout::create('start', $vars); })); Route::post('start', array('before' => 'check', 'main' => function () { $i18n = Input::get(array('language', 'timezone')); $validator = new Validator($i18n); $validator->check('language')->is_max(2, 'Please select a language'); $validator->check('timezone')->is_max(2, 'Please select a timezone'); if ($errors = $validator->errors()) { Input::flash(); Notify::error($errors); return Response::redirect('start'); } Session::put('install.i18n', $i18n); return Response::redirect('database'); }));
Route::action('guest', function () { if (Auth::user()) { return Response::redirect('admin/posts'); } }); Route::action('csrf', function () { if (Request::method() == 'POST') { if (!Csrf::check(Input::get('token'))) { Notify::error(array('Invalid token')); return Response::redirect('admin/login'); } } }); Route::action('install_exists', function () { if (file_exists('install') && !Session::get('messages.error')) { Notify::error(array('Please remove the install directory before publishing your site')); } }); /** * Admin routing */ Route::get('admin', function () { if (Auth::guest()) { return Response::redirect('admin/login'); } return Response::redirect('admin/posts'); }); /* Log in */ Route::get('admin/login', array('before' => 'install_exists', 'main' => function () {