File: D:/HostingSpaces/SBogers104/angeliekly.nl/app/Komma/Routes/RouteResolver.php
<?php
namespace Komma\Routes;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Redirect;
use Komma\Kms\Categories\Models\Category;
class RouteResolver
{
/**
* Resolve route
*
* @return bool
*/
public function resolve()
{
// Return false when we are in the control panel
if($this->isControlPanel()) return false;
//$this->redirectToHttpsMain(); //Old HTTPS check
// Maybe we are receiving an alias
// Check for a REST-route that belongs to this alias and dispatch a new Request
\Route::get(\Request::path(), function ()
{
// Return a 404 when the alias is not found in the database
if( ! $dispatch = $this->dispatchRoute()) \App::abort(404);
return $dispatch;
});
\Route::post(\Request::path(), function ()
{
// Return a 404 when the alias is not found in the database
if( ! $dispatch = $this->dispatchPostRoute()) \App::abort(404);
return $dispatch;
});
//Project Routes
\Route::get('projects', 'Komma\Projects\ProjectController@index');
\Route::get('projects/{projectId}', 'Komma\Projects\ProjectController@show');
//Post Routes
\Route::get('blog', 'Komma\Posts\PostController@index');
\Route::get('blog/{blogId}', 'Komma\Posts\PostController@show');
//News Routes
\Route::get('news', 'Komma\Posts\PostController@index');
\Route::get('news/{newsId}', 'Komma\Posts\PostController@show');
// Page Routes
\Route::resource('pages', 'Komma\Pages\PageController');
// Forms
\Route::post('contact/process', [
'as' => 'contact.process',
'uses' => 'Komma\Contact\ContactController@contactFormProcess'
]);
\Route::get('contact', ['as' => 'contact.form',
'uses' => 'Komma\Contact\ContactController@contactForm'
]);
\Route::get('contact/success', ['as' => 'contact.success',
'uses' => 'Komma\Contact\ContactController@contactSuccess'
]);
\Route::any('trial', [
'as' => 'trial.page',
'uses' => 'Komma\Contact\ContactController@freeTrialForm']);
\Route::post('trial/process', [
'as' => 'trial.process',
'uses' => 'Komma\Contact\ContactController@freeTrialProcess'
]);
\Route::get('trial/in-use', [
'as' => 'trial.in-use',
'uses' => 'Komma\Contact\ContactController@freeTrialSuccess'
]);
\Route::get('trial/succes', [
'as' => 'trial.success',
'uses' => 'Komma\Contact\ContactController@freeTrialSuccess'
]);
\Route::get('trial/error', [
'as' => 'trial.error',
'uses' => 'Komma\Contact\ContactController@freeTrialSuccess'
]);
\Route::post('setLanguage', 'BaseController@setCurrentLanguage');
//Get content for website by ajax
\Route::post('loadPageContent', 'Komma\AjaxViews\AjaxViewController@show');
// SEO routes
\Route::get('robots.txt', 'Komma\Sitemap\SitemapController@robots');
\Route::get('sitemap.xml', 'Komma\Sitemap\SitemapController@sitemap');
\Route::get('sitemap', [
'as' => 'sitemap',
'uses' => 'Komma\Sitemap\SitemapController@showSitemap'
]);
//404 route for maps in wwwroot
\Route::get('404', 'BaseController@abortPage');
}
/**
* Dispatch new custom event with REST-route
*
* @return mixed
*/
private function dispatchRoute()
{
$requestUri = \Request::path();
// Check if route starts with blog
if(starts_with($requestUri, 'blog/'))
{
// Check if next segment is a category of the blog
$category = \Request::segment(2);
$categories = Category::where('code_name', $category)->get();
//if Category is found, dispatch to blog overview with Category stored in session routeCategory
if(count($categories) != 0)
{
$request = \Request::create('/blog', 'GET');
\Session::put('routeCategory', $categories->first()->code_name);
// Dispatch request
return \Route::dispatch($request);
}
}
// Get route by URI
if( ! $route = \DB::table('routes')
->where('route', '=', $requestUri)
->first()
) return false;
// Create get request
$request = \Request::create('/' . $route->rest_route, 'GET');
// Dispatch request
return \Route::dispatch($request);
}
private function dispatchPostRoute()
{
$requestUri = \Request::path();
// Get route by URI
if( ! $route = \DB::table('routes')
->where('route', '=', $requestUri)
->first()
) return false;
if( ! in_array($route->rest_route, ['contact', 'trial'])) return false;
// Create get request
$request = \Request::create('/' . $route->rest_route, 'POST');
// Dispatch request
return \Route::dispatch($request);
}
/**
* Check if the routes starts with "KMS"
*
* @return mixed
*/
private function isControlPanel()
{
return \Str::startsWith(\Request::path(), 'kms');
}
/**
* Check if the routes starts with "https"
*
* @return mixed
*/
private function redirectToHttpsMain()
{
if(\App::environment() == 'production')
{
$tail = \Request::path();
if( ! \Str::startsWith(\Request::root(), 'https://angeliekly.nl'))
{
//$redirect = str_replace('http', 'https', \Request::root());
$redirect = 'https://angeliekly.nl';
if($tail != '/') $tail = '/' . $tail;
return \Redirect::to($redirect . $tail)->send();
}
}
}
}