ldc-doux/routes/web.php
Olivier Legat 2d30fde360 localized front routes
set lang for localized routes
redirect user to saved lang
keep previous lang feature on Back Office
2022-02-02 18:37:10 +01:00

138 lines
6.3 KiB
PHP

<?php
/**
* Routes file
*
* @category Description
* @package Category
* @author Name <email@email.com>
* @license www.url.com MIT
* @link Tag
* phpcs:ignore PEAR.Commenting.FileComment.MissingVersion
*/
use App\Http\Controllers\Bo\AdviceController;
use App\Http\Controllers\Bo\EncartsController;
use App\Http\Controllers\Bo\GammesController;
use App\Http\Controllers\Bo\HomeController;
use App\Http\Controllers\Bo\MomentsController;
use App\Http\Controllers\Bo\PictoBrandsController;
use App\Http\Controllers\Bo\PictosController;
use App\Http\Controllers\Bo\PostsController;
use App\Http\Controllers\Bo\ProductsController;
use App\Http\Controllers\Bo\SlidersController;
use App\Http\Controllers\Bo\SlidesController;
use App\Http\Controllers\Bo\TextsController;
use App\Http\Controllers\Bo\TitlesController;
use App\Http\Controllers\HomeController as ControllersHomeController;
use App\Http\Controllers\GammesController as ControllersGammesController;
use App\Http\Controllers\ProductsController as ControllersProductsController;
use App\Http\Controllers\ContactController as ControllersContactController;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Auth;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::prefix('bo')
->name('bo.')
->group(
function () {
Route::middleware([])
->group(
function () {
// guest:web middleware specified in AuthController
Auth::routes(
[
'login' => true,
'logout' => true,
'register' => false,
'reset' => false, // for resetting passwords
'confirm' => false, // for additional password confirmations
'verify' => false, // for email verification
]
);
}
);
Route::middleware(['auth:web', 'init-vars','lang-check'])
->group(
function () {
Route::get(
'/',
[
HomeController::class,
'home'
]
)->name('home');
Route::resources(
[
'sliders' => SlidersController::class,
'slides' => SlidesController::class,
]
);
Route::resource('moments', MomentsController::class)
->except(['create', 'store', 'destroy', 'show']);
Route::resource('encarts', EncartsController::class)
->except(['index', 'create', 'store', 'destroy', 'show']);
Route::resource('pictos', PictosController::class)->except(['show']);
Route::resource('posts', PostsController::class)->except(['show']);
Route::resource('pictobrands', PictoBrandsController::class)->except(['show']);
Route::resource('gammes', GammesController::class)->except(['show']);
Route::resource('products', ProductsController::class)->except(['show']);
Route::resource('advice', AdviceController::class)
->except(['index', 'create', 'store', 'destroy', 'show']);
Route::resource('texts', TextsController::class)->except(['show']);
Route::resource('titles', TitlesController::class)
->except(['index', 'create', 'store', 'destroy', 'show']);
Route::get(
'/slide/change-order/{slide}/{action}',
[
SlidesController::class,
'changeOrder'
]
)->name('slides.change-order');
Route::get('/pictos/{page}', [PictosController::class, 'index'])->name('pictos.content');
Route::get('/texts/{page}', [TextsController::class, 'index'])->name('texts.content');
}
);
}
);
$langs = ['en','es',''];
foreach ($langs as $lang) {
Route::middleware(['init-vars','lang-check'])
->prefix($lang)
->name($lang == '' ? '' : $lang .'.')
->group(
function () {
Route::get('/', [ControllersHomeController::class, 'index'])->name('home');
Route::view('/notre-marque', 'front.a-propos')->name('wasup');
Route::get('/nos-gammes', [ControllersGammesController::class, 'index'])->name('gammes.index');
Route::get('/gamme/{gammeSlug}', [ControllersGammesController::class, 'show'])->name('gammes.show');
Route::get(
'/produit/{gammeSlug}/{productSlug}',
[ControllersProductsController::class, 'show']
)->name('product.show');
Route::view('/nos-actualites', 'front.news')->name('news');
Route::view('/food-service', 'front.food-service')->name('food');
Route::view('/mentions-legales', 'front.legals')->name('cgu');
Route::view('/charte-confidentialite', 'front.policy')->name('policy');
Route::view('/plan-site', 'front.site-map')->name('site-map');
Route::get('/recherche', [ControllersProductsController::class, 'search'])->name('search');
//Classic
Route::get('/contact', [ControllersContactController::class, 'contact'])->name('contact');
Route::post('/contact', [ControllersContactController::class, 'contactSubmit'])->name('contact.submit');
}
);
}