313 lines
15 KiB
PHP
313 lines
15 KiB
PHP
<?php
|
|
|
|
use App\Enums\GeneralConfigType;
|
|
use App\Http\Controllers\ActuController;
|
|
use App\Http\Controllers\AuthController;
|
|
use App\Http\Controllers\BourseController;
|
|
use App\Http\Controllers\BoutiqueController;
|
|
use App\Http\Controllers\BrandController;
|
|
use App\Http\Controllers\BreedingPageController;
|
|
use App\Http\Controllers\ClubController;
|
|
use App\Http\Controllers\ContactController;
|
|
use App\Http\Controllers\CustomerController;
|
|
use App\Http\Controllers\EngagementsController;
|
|
use App\Http\Controllers\FaqController;
|
|
use App\Http\Controllers\HomeController;
|
|
use App\Http\Controllers\KitchenSideController;
|
|
use App\Http\Controllers\MapController;
|
|
use App\Http\Controllers\MomentsController;
|
|
use App\Http\Controllers\OCBController;
|
|
use App\Http\Controllers\OnePageController;
|
|
use App\Http\Controllers\ProductsController;
|
|
use App\Http\Controllers\RecipesController;
|
|
use App\Http\Controllers\TraceabilityController;
|
|
use App\Http\Middleware\Authenticate;
|
|
use App\Http\Middleware\EncryptCookies;
|
|
use App\Http\Middleware\VerifyCsrfToken;
|
|
use App\Http\Middleware\XssSanitizer;
|
|
use App\Models\GeneralConfig;
|
|
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
|
|
use Illuminate\Session\Middleware\StartSession;
|
|
use Illuminate\Support\Facades\Route;
|
|
use Illuminate\Support\Str;
|
|
use Illuminate\View\Middleware\ShareErrorsFromSession;
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| 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!
|
|
|
|
|
* ATTENTION chaque route ajoutée peut se retrouver dans le Sitemap si la méthode est GET
|
|
* Merci de vérifier si elle doit être incluse, le cas échéant l'ajouter dans Jobs/RefreshSiteMap.php
|
|
* pour être exclue du sitemap
|
|
*/
|
|
|
|
require_once __DIR__ . '/web-bo.php';
|
|
|
|
Route::get('/', [HomeController::class, 'index'])->name('home');
|
|
Route::get('/de-smaak-om-te-delen', [OnePageController::class, 'index'])->name('home-nl');
|
|
|
|
Route::get('/faq', [FaqController::class, 'index'])->name('faq');
|
|
Route::post('/faq/{question?}', [FaqController::class, 'updateSatisfactionStat'])->name('faq.updateSatisfactionStat');
|
|
|
|
Route::view('/mentions-legales', 'front.legals')->name('legal-notice');
|
|
Route::view('/charte-de-confidentialite', 'front.charte')->name('chart-conf');
|
|
|
|
Route::prefix('/produits')
|
|
->name('products.')
|
|
->group(function () {
|
|
Route::get('/', [ProductsController::class, 'index'])->name('index');
|
|
Route::get('/departaimants', [ProductsController::class, 'departaimants'])->name('departaimants');
|
|
Route::get('/gamme/{slugRange}/{subRange?}', [ProductsController::class, 'filter'])->name('range');
|
|
Route::get('/moment-consommations/{slugConsumptionTime}', [ProductsController::class, 'filter'])
|
|
->name('consumption-times');
|
|
Route::get('/type-viande/{slugMeatType}', [ProductsController::class, 'filter'])->name('meat-type');
|
|
});
|
|
|
|
Route::prefix('/produit')
|
|
->name('product.')
|
|
->group(function () {
|
|
Route::get('/{product}', [ProductsController::class, 'show'])->name('show');
|
|
});
|
|
|
|
Route::prefix('/cote-cuisine')->name('kitchen-side.')->group(function () {
|
|
Route::get('/', [RecipesController::class, 'kitchenside'])->name('index');
|
|
Route::prefix('/sante-et-nutrition')->name('health-nutrition.')->group(function () {
|
|
// redirections Lot2
|
|
Route::redirect(
|
|
'/dechiffrez-valeurs-nutritionnelles',
|
|
'/cote-cuisine/sante-et-nutrition/bienfaits-nutritionnels-de-la-volaille',
|
|
301
|
|
);
|
|
Route::redirect(
|
|
'/menu-equilibre',
|
|
'/cote-cuisine/sante-et-nutrition/bienfaits-nutritionnels-de-la-volaille',
|
|
301
|
|
);
|
|
Route::redirect(
|
|
'/plaisir-et-equilibre',
|
|
'/cote-cuisine/sante-et-nutrition/bienfaits-nutritionnels-de-la-volaille',
|
|
301
|
|
);
|
|
Route::redirect(
|
|
'/engagement-nutrition',
|
|
'/cote-cuisine/sante-et-nutrition/qualite-nutritionelle-le-gaulois-s-engage',
|
|
301
|
|
);
|
|
Route::redirect(
|
|
'/',
|
|
'/cote-cuisine/sante-et-nutrition/qualite-nutritionelle-le-gaulois-s-engage'
|
|
)->name('index');
|
|
Route::get('/bienfaits-nutritionnels-de-la-volaille', [KitchenSideController::class, 'nutritionPoultry'])
|
|
->name('nutrition-poultry');
|
|
Route::get('/qualite-nutritionelle-le-gaulois-s-engage', [KitchenSideController::class, 'nutritionQuality'])
|
|
->name('nutrition-quality');
|
|
});
|
|
});
|
|
|
|
Route::prefix('/recettes')
|
|
->name('recipes.')
|
|
->group(function () {
|
|
Route::get('/proposer-une-recette', [ContactController::class, 'proposeRecipe'])->name('propose');
|
|
Route::post('/rate/{recipe:slug}', [RecipesController::class, 'rate'])->name('rate');
|
|
Route::get('/{recipe:slug}', [RecipesController::class, 'show'])->name('show');
|
|
Route::get('/{type?}/{value?}', [RecipesController::class, 'index'])->name('index');
|
|
});
|
|
|
|
Route::prefix('/la-marque')
|
|
->name('brand.')
|
|
->group(function () {
|
|
Route::get('/', [BrandController::class, 'index'])->name('index');
|
|
Route::get('/saga-publicitaire', [BrandController::class, 'ads'])->name('pub');
|
|
Route::get('/tracabilite/search', [TraceabilityController::class, 'search'])->name('traceability-search');
|
|
Route::view('/notre-histoire', 'front.brand.history')->name('history');
|
|
// redirections Lot2
|
|
Route::redirect('/tracabilite', '/la-marque/eleveurs-engagés', 301);
|
|
Route::redirect('/nos-engagements-qualite', '/la-marque/production-tracable', 301);
|
|
Route::get('/eleveurs-engagés', [BrandController::class, 'engage'])->name('engage');
|
|
Route::get('/production-tracable', [BrandController::class, 'tracable'])->name('tracable');
|
|
Route::view('/volailles-francaises', 'front.brand.poultry-page.poultry')->name('poultry');
|
|
Route::prefix('/actualites')
|
|
->name('news.')
|
|
->group(function () {
|
|
Route::get('/renderActu/{publishedActu}', [ActuController::class, 'renderActu'])->name('renderActu');
|
|
Route::get('/{publishedActu}', [ActuController::class, 'view'])->name('show');
|
|
Route::get('/', [ActuController::class, 'index'])->name('index');
|
|
});
|
|
});
|
|
|
|
Route::prefix('/oui-cest-bon')
|
|
->name('ocb.')
|
|
->group(function () {
|
|
Route::get('/eleveurs/{breeder}', [OCBController::class, 'breeder'])->name('breeders');
|
|
Route::get('/temoignages-eleveurs', [OCBController::class, 'testimonials'])->name('testimonials');
|
|
Route::get('/volaille', [OCBController::class, 'poultry'])->name('poultry');
|
|
Route::get('/volaille', [OCBController::class, 'poultry'])->name('poultry');
|
|
Route::get('/oeuf', [OCBController::class, 'egg'])->name('egg');
|
|
Route::view('/', 'front.ocb.index')->name('index');
|
|
});
|
|
|
|
Route::get('/map/breeders', [MapController::class, 'breeders'])->name('map.breeders');
|
|
|
|
Route::get('/en-ce-moment/{moment}', [MomentsController::class, 'index'])->name('moment');
|
|
Route::get('/nous-rejoindre', [HomeController::class, 'joinUs'])->name('joinus');
|
|
Route::view('/frame/{type}', 'front.frame')->name('front.frame');
|
|
|
|
Route::prefix('/on-s-engage')
|
|
->name('onsengage.')
|
|
->group(function () {
|
|
Route::prefix('/le-gaulois-marque-engagee-et-responsable')
|
|
->name('marqueengage.')
|
|
->group(function () {
|
|
// Onglet 100% Française
|
|
Route::get(
|
|
'/la-grande-marque-alimentaire-francaise',
|
|
[EngagementsController::class, 'lagrandemarque']
|
|
)->name('lagrandemarque');
|
|
// Onglet Bien nourrir
|
|
Route::get(
|
|
'/bien-nourrir-tous-les-francais',
|
|
[EngagementsController::class, 'biennourrir']
|
|
)->name('biennourrir');
|
|
// Onglet Elever durablement
|
|
Route::get(
|
|
'/elever-durablement',
|
|
[EngagementsController::class, 'eleverdurablement']
|
|
)->name('eleverdurablement');
|
|
// Onglet Restecpter la terre ^^
|
|
Route::get(
|
|
'/respecter-la-terre',
|
|
[EngagementsController::class, 'respecterlaterre']
|
|
)->name('respecterlaterre');
|
|
// Onglet Mieux vivre ensemble
|
|
Route::get(
|
|
'/favoriser-le-mieux-vivre-ensemble',
|
|
[EngagementsController::class, 'vivreensemble']
|
|
)->name('vivreensemble');
|
|
});
|
|
});
|
|
|
|
Route::prefix(Str::slug(GeneralConfig::where('type', GeneralConfigType::breedingPage())
|
|
->first()->data['breeding_header_title']['value']))
|
|
->name('breeding-page.')
|
|
->group(function () {
|
|
Route::get('/', [BreedingPageController::class, 'index'])->name('index');
|
|
Route::get('/{breeding_page_type}', [BreedingPageController::class, 'list'])->name('list');
|
|
Route::get('/{breeding_page_type}/{publishedBreedingPage}', [BreedingPageController::class, 'show'])->name('show');
|
|
});
|
|
|
|
// Unsubscribe from newsletter
|
|
Route::get('/{unsubscribe}', [CustomerController::class, 'unscribeNewsletter'])
|
|
->where('unsubscribe', 'unsubscribe|unsubscribe.php|unsubscribe.html|newsletter')
|
|
->name('unsubscribeNewsletter');
|
|
|
|
// Route ajax pour Single Optin
|
|
Route::post('/optin', [HomeController::class, 'addOptIn'])->name('add-single-optin');
|
|
|
|
Route::middleware('guest:customer')->group(function () {
|
|
Route::get('/connexion', [AuthController::class, 'authenticate'])->name('form-connexion');
|
|
Route::post('/connexion', [AuthController::class, 'authenticateSubmit'])->name('connexion');
|
|
Route::get('/inscription', [AuthController::class, 'register'])->name('form-inscription');
|
|
Route::post('/inscription', [AuthController::class, 'registerSubmit'])->name('inscription');
|
|
Route::get('/activer/{hashcode}', [AuthController::class, 'activate'])->name('activer');
|
|
Route::get('/reinitialiser-mot-de-passe/{token}', [AuthController::class, 'viewChangePassword'])
|
|
->name('form-change-mdp');
|
|
Route::post('/reinitialiser-mot-de-passe', [AuthController::class, 'passwordReset'])->name('reinit-mdp');
|
|
Route::post('/reinitialiser-mot-de-passe/{token}', [AuthController::class, 'changePassword'])
|
|
->name('change-mdp');
|
|
});
|
|
|
|
Route::get('/deconnexion', [AuthController::class, 'logout'])
|
|
->middleware('auth:customer')->name('deconnexion');
|
|
|
|
Route::get('/contactez-nous', [ContactController::class, 'contact'])->name('contact-us');
|
|
Route::get('/reclamation-produit', [ContactController::class, 'complain'])->name('product-request');
|
|
Route::post('/contactez-nous', [ContactController::class, 'contactSubmit'])->name('contact-us.submit');
|
|
Route::post('/reclamation-produit', [ContactController::class, 'complainSubmit'])->name('product-request.submit');
|
|
|
|
Route::prefix('/le-club-des-gaulois')
|
|
->name('club.')
|
|
->group(function () {
|
|
Route::get('/les-infos-du-club/{articleTag}/{publishedArticle}', [ClubController::class, 'article'])
|
|
->name('infos.child');
|
|
Route::post('/les-infos-du-club/repondre-sondage', [ClubController::class, 'answerSurvey'])
|
|
->name('infos.answer-survey');
|
|
Route::prefix('/la-bourse-aux-echanges')
|
|
->name('bourse.')
|
|
->middleware('auth:customer')
|
|
->group(function () {
|
|
Route::get('/', [BourseController::class, 'bourse'])->name('index');
|
|
Route::post('/save-state/{type}', [BourseController::class, 'bourseSaveState'])->name('saveState');
|
|
Route::post('/search/{type}', [BourseController::class, 'bourseSearch'])->name('search');
|
|
});
|
|
Route::get('/les-promos', [ClubController::class, 'reductions'])->name('reductions')
|
|
->middleware('auth:customer');
|
|
Route::post('/les-promos/get', [ClubController::class, 'reductionsGet'])->name('reductionsGet')
|
|
->middleware('auth:customer');
|
|
Route::prefix('/la-boutique')
|
|
->middleware('auth:customer') // Il faut être connecté pour acceder à la boutique
|
|
->name('boutique.')
|
|
->group(function () {
|
|
Route::get('/', [BoutiqueController::class, 'index'])->name('index');
|
|
Route::post('/validation', [BoutiqueController::class, 'validateBuy'])->name('validate');
|
|
Route::prefix('commande')
|
|
->group(function () {
|
|
Route::get('{order}/valide', [BoutiqueController::class, 'validatedBuy'])->name('validated');
|
|
Route::get('{order}/reglement', [BoutiqueController::class, 'payWithCb'])->name('payementCB');
|
|
});
|
|
Route::prefix('/reglement')
|
|
->name('reglement.')
|
|
->group(function () {
|
|
Route::post('/{order}/confirmServ', [BoutiqueController::class, 'confirmCbFromMercanet'])
|
|
->name('payementConfirmCBServ')->withoutMiddleware([
|
|
'auth:customer',
|
|
Authenticate::class,
|
|
AddQueuedCookiesToResponse::class,
|
|
EncryptCookies::class,
|
|
VerifyCsrfToken::class,
|
|
StartSession::class,
|
|
ShareErrorsFromSession::class,
|
|
XssSanitizer::class,
|
|
]);
|
|
Route::post('/{order}/confirm', [BoutiqueController::class, 'confirmCb'])
|
|
->name('payementConfirmCB')->withoutMiddleware([
|
|
'auth:customer',
|
|
Authenticate::class,
|
|
AddQueuedCookiesToResponse::class,
|
|
EncryptCookies::class,
|
|
VerifyCsrfToken::class,
|
|
StartSession::class,
|
|
ShareErrorsFromSession::class,
|
|
XssSanitizer::class,
|
|
]);
|
|
});
|
|
});
|
|
Route::get('/les-infos-du-club/{articleTag}', [ClubController::class, 'index'])->name('indexByCategory');
|
|
Route::get('/', [ClubController::class, 'index'])->name('index');
|
|
});
|
|
|
|
Route::prefix('/mon-compte')
|
|
->name('account.')
|
|
->middleware('auth:customer')
|
|
->group(function () {
|
|
Route::get('/liste-de-courses', [ClubController::class, 'cart'])->name('cart');
|
|
Route::get('/mes-informations', [ClubController::class, 'infos'])->name('infos');
|
|
Route::get('/messages', [ClubController::class, 'messages'])->name('messages');
|
|
Route::get('/messages/report', [ContactController::class, 'reportCustomer'])->name('reportCustomer');
|
|
Route::get('/notifications', [ClubController::class, 'notifications'])->name('notifications');
|
|
Route::get('/recettes-favorites', [ClubController::class, 'favoritesRecipes'])->name('favs-recipes');
|
|
Route::post('/liste-de-courses/{product}/{status}', [CustomerController::class, 'setItemInCart'])->name('set-cart');
|
|
Route::post('/mes-informations', [ClubController::class, 'updateInfos'])->name('update-infos');
|
|
Route::post('/mes-informations/change-password', [CustomerController::class, 'changePasswordWhenAuthenticated'])
|
|
->name('change-password');
|
|
Route::post('/messages/block/{status}', [ClubController::class, 'blockCustomer'])->name('blockCustomer');
|
|
Route::post('/messages/delete', [ClubController::class, 'deleteMessage'])->name('deleteMessage');
|
|
Route::post('/messages/send', [ClubController::class, 'sendMessage'])->name('sendMessage');
|
|
Route::post('/recettes-favorites/{recipe}/set-status/{status}', [CustomerController::class, 'setFavoriteRecipe'])
|
|
->name('set-favs-recipes');
|
|
Route::redirect('/', '/mon-compte/mes-informations');
|
|
});
|