ldc-legaulois/routes/breadcrumbs.php
2023-06-26 16:02:08 +02:00

302 lines
12 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
// phpcs:disable Generic.Files.LineLength.TooLong
use App\Enums\ArticleCategory;
use App\Enums\BreedingPageType;
use App\Enums\NutritionPageType;
use App\Models\Articles;
use App\Models\BreedingPage;
use App\Models\Moments;
use App\Models\NutritionPage;
use App\Models\OCBBreeder;
use App\Models\Products;
use App\Models\Recipes;
use Diglactic\Breadcrumbs\Breadcrumbs;
use Diglactic\Breadcrumbs\Generator;
// * Root
Breadcrumbs::for('home', function (Generator $trail) {
$trail->push(__('Accueil'), route('home'));
});
// * First Level
Breadcrumbs::for('contact-us', function (Generator $trail) {
$trail->parent('home');
$trail->push(__('Contact'), route('contact-us'));
});
Breadcrumbs::for('onsengage', function (Generator $trail) {
$trail->parent('home');
$trail->push(__('On s\'engage'));
});
Breadcrumbs::for('product-request', function (Generator $trail) {
$trail->parent('home');
$trail->push(__('Contact'), route('product-request'));
});
Breadcrumbs::for('faq', function (Generator $trail) {
$trail->parent('home');
$trail->push(__('Foire aux questions'), route('faq'));
});
Breadcrumbs::for('legal-notice', function (Generator $trail) {
$trail->parent('home');
$trail->push(__('Mentions légales'), route('legal-notice'));
});
// * Second level
// * Products
Breadcrumbs::for('products.index', function (Generator $trail) {
$trail->parent('home');
$trail->push(__('Produits'), route('products.index'));
});
Breadcrumbs::for('products.range', function (Generator $trail) {
$trail->parent('products.index');
$trail->push(__('Gammes'));
});
Breadcrumbs::for('products.range.show', function (Generator $trail, $slugRange) {
$trail->parent('products.range');
$trail->push(ucfirst($slugRange), route('products.range', compact('slugRange')));
});
Breadcrumbs::for('products.meat-type', function (Generator $trail) {
$trail->parent('products.index');
$trail->push(__('Types de viandes'));
});
Breadcrumbs::for('products.meat-type.show', function (Generator $trail, $slugMeatType) {
$trail->parent('products.meat-type');
$trail->push(ucfirst($slugMeatType), route('products.meat-type', compact('slugMeatType')));
});
Breadcrumbs::for('products.consumption-times', function (Generator $trail) {
$trail->parent('products.index');
$trail->push(__('Moments de consommation'));
});
Breadcrumbs::for('products.consumption-times.show', function (Generator $trail, $slugConsumptionTime) {
$trail->parent('products.consumption-times');
$trail->push(ucfirst($slugConsumptionTime), route('products.consumption-times', compact('slugConsumptionTime')));
});
Breadcrumbs::for('product.show', function (Generator $trail, Products $publishedProduct) {
$trail->parent('products.index');
$trail->push($publishedProduct->name, route('product.show', compact('publishedProduct')));
});
// * Kitchen side
Breadcrumbs::for('kitchen-side.index', function (Generator $trail) {
$trail->parent('home');
$trail->push(__('Coté Cuisine'), route('kitchen-side.index'));
});
// * Recipes
Breadcrumbs::for('recipes.index', function (Generator $trail) {
$trail->parent('kitchen-side.index');
$trail->push(__('Liste des Recettes'), route('recipes.index'));
});
Breadcrumbs::for('recipes.show', function (Generator $trail, Recipes $recipe) {
$trail->parent('recipes.index');
$trail->push(
$recipe->title,
route('recipes.show', compact('recipe')),
['image' => asset($recipe->picture)]
);
});
// * Health and nutrition
Breadcrumbs::for('kitchen-side.health-nutrition.index', function (Generator $trail) {
$trail->parent('kitchen-side.index');
$trail->push(__('Santé et Nutrition'));
});
Breadcrumbs::for('kitchen-side.health-nutrition.nutrition-poultry', function (Generator $trail) {
$trail->parent('kitchen-side.health-nutrition.index');
$trail->push(
NutritionPage::select(['menuTitle'])->where('type', NutritionPageType::poultry())->firstOrFail()->menuTitle,
route('kitchen-side.health-nutrition.nutrition-poultry')
);
});
Breadcrumbs::for('kitchen-side.health-nutrition.nutrition-quality', function (Generator $trail) {
$trail->parent('kitchen-side.health-nutrition.index');
$trail->push(
NutritionPage::select(['menuTitle'])->where('type', NutritionPageType::quality())->firstOrFail()->menuTitle,
route('kitchen-side.health-nutrition.nutrition-quality')
);
});
// * Kitchen side
Breadcrumbs::for('brand.index', function (Generator $trail) {
$trail->parent('home');
$trail->push(__('La marque'), route('brand.index'));
$trail->push(__('Le Gaulois, Français et Populaire'), route('brand.index'));
});
Breadcrumbs::for('brand.history', function (Generator $trail) {
$trail->parent('brand.index');
$trail->push(__('Notre histoire'), route('brand.history'));
});
Breadcrumbs::for('brand.pub', function (Generator $trail) {
$trail->parent('brand.index');
$trail->push(__('La Saga Publicitaire'), route('brand.pub'));
});
Breadcrumbs::for('brand.poultry', function (Generator $trail) {
$trail->parent('brand.index');
$trail->push(__('Volailles 100% Françaises'), route('brand.poultry'));
});
Breadcrumbs::for('brand.traceability', function (Generator $trail) {
$trail->parent('brand.index');
$trail->push(__('La Traçabilité'), route('brand.traceability'));
});
Breadcrumbs::for('brand.our-quality-commitments', function (Generator $trail) {
$trail->parent('brand.index');
$trail->push(__('Nos Engagements Qualité'), route('brand.our-quality-commitments'));
});
// * OCB
Breadcrumbs::for('ocb.index', function (Generator $trail) {
$trail->parent('home');
$trail->push(__('Oui c\'est Bon !'), route('ocb.index'));
});
Breadcrumbs::for('ocb.poultry', function (Generator $trail) {
$trail->parent('ocb.index');
$trail->push(__('Volaille'), route('ocb.poultry'));
});
Breadcrumbs::for('ocb.testimonials', function (Generator $trail) {
$trail->parent('ocb.index');
$trail->push(__('Témoignages des Éleveurs'), route('ocb.testimonials'));
});
Breadcrumbs::for('ocb.breeders', function (Generator $trail, OCBBreeder $breeder) {
$trail->parent('ocb.testimonials');
$trail->push(sprintf('%s %s', $breeder->last_name, $breeder->first_name), route('ocb.breeders', compact('breeder')));
});
Breadcrumbs::for('onsengage.marqueengage', function (Generator $trail) {
$trail->parent('onsengage');
$trail->push(__('Le Gaulois marque engagée et responsable'));
});
Breadcrumbs::for('onsengage.marqueengage.lagrandemarque', function (Generator $trail) {
$trail->parent('onsengage.marqueengage');
$trail->push(
__('Être la grande marque alimentaire français'),
route('onsengage.marqueengage.lagrandemarque')
);
});
Breadcrumbs::for('onsengage.marqueengage.biennourrir', function (Generator $trail) {
$trail->parent('onsengage.marqueengage');
$trail->push(
__('Bien nourrir tous les Français'),
route('onsengage.marqueengage.biennourrir')
);
});
Breadcrumbs::for('onsengage.marqueengage.eleverdurablement', function (Generator $trail) {
$trail->parent('onsengage.marqueengage');
$trail->push(
__('Élever durablement, en respectant les hommes, les animaux et la nature'),
route('onsengage.marqueengage.eleverdurablement')
);
});
Breadcrumbs::for('onsengage.marqueengage.respecterlaterre', function (Generator $trail) {
$trail->parent('onsengage.marqueengage');
$trail->push(
__('Respecter la terre'),
route('onsengage.marqueengage.respecterlaterre')
);
});
Breadcrumbs::for('onsengage.marqueengage.vivreensemble', function (Generator $trail) {
$trail->parent('onsengage.marqueengage');
$trail->push(
__('Favoriser le mieux vivre ensemble'),
route('onsengage.marqueengage.vivreensemble')
);
});
// * En ce moment
Breadcrumbs::for('moment', function (Generator $trail, Moments $moment) {
$trail->parent('home');
$trail->push(__('En ce moment'));
$trail->push($moment->description, route('moment', compact('moment')));
});
// * Élevage
Breadcrumbs::for('breeding-page.index', function (Generator $trail) {
$trail->parent('home');
$trail->push(__('Élevage et alimentation des volailles'), route('breeding-page.index'));
});
Breadcrumbs::for('breeding-page.list', function (Generator $trail, BreedingPageType $breedingPageType) {
$trail->parent('breeding-page.index');
$trail->push($breedingPageType->label, route('breeding-page.list', $breedingPageType . '#nav-breeding'));
});
Breadcrumbs::for('breeding-page.show', function (Generator $trail, BreedingPageType $breedingPageType, BreedingPage $publishedBreedingPage) {
$trail->parent('breeding-page.list', $breedingPageType);
$trail->push($publishedBreedingPage->title, route('breeding-page.show', [$breedingPageType, $publishedBreedingPage]));
});
// * Nous rejoindre
Breadcrumbs::for('joinus', function (Generator $trail) {
$trail->parent('home');
$trail->push(__('Nous rejoindre'), route('joinus'));
});
// * Club
Breadcrumbs::for('club.index', function (Generator $trail) {
$trail->parent('home');
$trail->push(__('Le Club des Gaulois'), route('club.index'));
});
Breadcrumbs::for('club.infos', function (Generator $trail) {
$trail->parent('club.index');
$trail->push(__('Les infos du club'));
});
Breadcrumbs::for('club.infos.indexByCategory', function (Generator $trail, ArticleCategory $articleTag) {
$trail->parent('club.infos');
$trail->push($articleTag->label, route('club.indexByCategory', [
'articleTag' => $articleTag,
]));
});
Breadcrumbs::for('club.infos.child', function (Generator $trail, Articles $publishedArticle) {
$trail->parent('club.infos.indexByCategory', $publishedArticle->type);
$trail->push($publishedArticle->title, route('club.infos.child', [
'articleTag' => $publishedArticle->type,
'publishedArticle' => $publishedArticle
]));
});
Breadcrumbs::for('club.reductions', function (Generator $trail) {
$trail->parent('club.index');
$trail->push(__('Les promos'), route('club.reductions'));
});
Breadcrumbs::for('club.bourse.index', function (Generator $trail) {
$trail->parent('club.index');
$trail->push(__('La Bourse au échanges'), route('club.bourse.index'));
});
Breadcrumbs::for('club.boutique.index', function (Generator $trail) {
$trail->parent('club.index');
$trail->push(__('La Boutique'), route('club.boutique.index'));
});
Breadcrumbs::for('account.infos', function (Generator $trail) {
$trail->parent('club.index');
$trail->push(__('Mon compte'), route('account.infos'));
});
Breadcrumbs::for('account.cart', function (Generator $trail) {
$trail->parent('account.infos');
$trail->push(__('Ma liste de courses'), route('account.cart'));
});
Breadcrumbs::for('account.messages', function (Generator $trail) {
$trail->parent('account.infos');
$trail->push(__('Mes messages'), route('account.messages'));
});
Breadcrumbs::for('account.reportCustomer', function (Generator $trail) {
$trail->parent('account.infos');
$trail->push(__('Signaler un abus'), route('account.reportCustomer'));
});
Breadcrumbs::for('account.notifications', function (Generator $trail) {
$trail->parent('account.infos');
$trail->push(__('Notifications'), route('account.notifications'));
});
Breadcrumbs::for('account.favs-recipes', function (Generator $trail) {
$trail->parent('account.infos');
$trail->push(__('Mes recettes favorites'), route('account.favs-recipes'));
});
// * Dans les prés
// * OCB
Breadcrumbs::for('danslespres.index', function (Generator $trail) {
$trail->parent('home');
$trail->push(__('Sortant à l’Extérieur Dans Les Prés'), route('danslespres.index'));
});
Breadcrumbs::for('danslespres.description', function (Generator $trail) {
$trail->parent('danslespres.index');
$trail->push(__('Découvrir notre démarche'), route('danslespres.description'));
});
Breadcrumbs::for('danslespres.media', function (Generator $trail) {
$trail->parent('danslespres.index');
$trail->push(__('La Démarche en photo et video'), route('danslespres.media'));
});