ldc-le-gaulois-pro/routes/breadcrumbs-bo.php
2026-01-19 14:47:29 +01:00

189 lines
7.1 KiB
PHP

<?php
use App\Enums\Advices\AdviceTypeEnum;
use App\Models\Advice;
use App\Models\BrigadeSection;
use App\Models\ExpertiseProduct;
use App\Models\News;
use App\Models\NewsCategory;
use App\Models\Product;
use App\Models\Range;
use App\Models\Slide;
use App\Models\StaticPage;
use App\Models\Tag;
use Diglactic\Breadcrumbs\Breadcrumbs;
use Diglactic\Breadcrumbs\Generator;
use Illuminate\Support\Str;
// * HOME
Breadcrumbs::for('bo.dashboard', function (Generator $trail) {
$trail->push(trans('Tableau de bord'), route('bo.dashboard'));
});
// * SLIDES
Breadcrumbs::for('bo.slides.index', function (Generator $trail) {
$trail->push(
trans('models.classes.slides'),
route('bo.slides.index', ['sort_col' => 'updated_at', 'sort_way' => 'desc'])
);
});
Breadcrumbs::for('bo.slides.create', function (Generator $trail) {
$trail->parent('bo.slides.index');
$trail->push(trans('crud.actions.create'), route('bo.slides.create'));
});
Breadcrumbs::for('bo.slides.edit', function (Generator $trail, Slide $slide) {
$trail->parent('bo.slides.index');
$trail->push(trans('crud.actions.edit'), route('bo.slides.edit', $slide->id));
});
// * VIPS
Breadcrumbs::for('bo.vips.index', function (Generator $trail) {
$trail->push(
trans_choice('models.classes.vips', 2),
route('bo.vips.index', ['sort_col' => 'updated_at', 'sort_way' => 'desc'])
);
});
Breadcrumbs::for('bo.vips.create', function (Generator $trail) {
$trail->parent('bo.vips.index');
$trail->push(trans('crud.actions.create'), route('bo.vips.create'));
});
Breadcrumbs::for('bo.vips.edit', function (Generator $trail, ExpertiseProduct $vip) {
$trail->parent('bo.vips.index');
$trail->push(trans('crud.actions.edit'), route('bo.vips.edit', $vip->id));
});
// * RANGES
Breadcrumbs::for('bo.ranges.index', function (Generator $trail) {
$trail->push(
trans('models.classes.ranges'),
route('bo.ranges.index', ['sort_col' => 'updated_at', 'sort_way' => 'desc'])
);
});
Breadcrumbs::for('bo.ranges.create', function (Generator $trail) {
$trail->parent('bo.ranges.index');
$trail->push(trans('crud.actions.create'), route('bo.ranges.create'));
});
Breadcrumbs::for('bo.ranges.edit', function (Generator $trail, Range $range) {
$trail->parent('bo.ranges.index');
$trail->push(trans('crud.actions.edit'), route('bo.ranges.edit', $range->id));
});
// * PRODUCTS
Breadcrumbs::for('bo.products.index', function (Generator $trail) {
$trail->push(
trans('models.classes.products'),
route('bo.products.index', ['sort_col' => 'updated_at', 'sort_way' => 'desc'])
);
});
Breadcrumbs::for('bo.products.create', function (Generator $trail) {
$trail->parent('bo.products.index');
$trail->push(trans('crud.actions.create'), route('bo.products.create'));
});
Breadcrumbs::for('bo.products.edit', function (Generator $trail, Product $product) {
$trail->parent('bo.products.index');
$trail->push(trans('crud.actions.edit'), route('bo.products.edit', $product->id));
});
// * NEWS
Breadcrumbs::for('bo.news.index', function (Generator $trail) {
$trail->push(
trans('models.classes.news'),
route('bo.news.index', ['sort_col' => 'updated_at', 'sort_way' => 'desc'])
);
});
Breadcrumbs::for('bo.news.create', function (Generator $trail) {
$trail->parent('bo.news.index');
$trail->push(trans('crud.actions.create'), route('bo.news.create'));
});
Breadcrumbs::for('bo.news.edit', function (Generator $trail, News $news) {
$trail->parent('bo.news.index');
$trail->push(trans('crud.actions.edit'), route('bo.news.edit', $news->id));
});
// * NEWSCATEGORIES
Breadcrumbs::for('bo.newscategories.index', function (Generator $trail) {
$trail->push(
trans('models.classes.newscategories'),
route('bo.newscategories.index', ['sort_col' => 'updated_at', 'sort_way' => 'desc'])
);
});
Breadcrumbs::for('bo.newscategories.edit', function (Generator $trail, NewsCategory $newscategory) {
$trail->parent('bo.newscategories.index');
$trail->push(trans('crud.actions.edit'), route('bo.news.edit', $newscategory->id));
});
// * ADVICE
Breadcrumbs::for('bo.advice.index', function (Generator $trail, AdviceTypeEnum $currentType) {
switch ($currentType->value()) {
case AdviceTypeEnum::recipes->value():
$string = AdviceTypeEnum::recipes->label();
break;
case AdviceTypeEnum::tips->value:
$string = AdviceTypeEnum::tips->label();
break;
default:
$string = AdviceTypeEnum::all->label();
break;
}
$trail->push(
$string,
route('bo.advice.index', ['type' => $currentType->value(), 'sort_col' => 'updated_at', 'sort_way' => 'desc'])
);
});
Breadcrumbs::for('bo.advice.create', function (Generator $trail, AdviceTypeEnum $currentType, Advice $advice) {
$trail->parent('bo.advice.index', $currentType);
$trail->push(trans('crud.actions.create'), route('bo.advice.create', [
'type' => $currentType,
'advice' => $advice
]));
});
Breadcrumbs::for('bo.advice.edit', function (Generator $trail, AdviceTypeEnum $currentType, Advice $advice) {
$trail->parent('bo.advice.index', $currentType);
$trail->push(trans('crud.actions.edit'), route('bo.advice.edit', [
'advice' => $advice
]));
});
// * TAGS
Breadcrumbs::for('bo.tags.index', function (Generator $trail) {
$trail->push(
trans('models.classes.tags'),
route('bo.tags.index', ['sort_col' => 'updated_at', 'sort_way' => 'desc'])
);
});
Breadcrumbs::for('bo.tags.create', function (Generator $trail) {
$trail->parent('bo.tags.index');
$trail->push(trans('crud.actions.create'), route('bo.tags.create'));
});
Breadcrumbs::for('bo.tags.edit', function (Generator $trail, Tag $tag) {
$trail->parent('bo.tags.index');
$trail->push(trans('crud.actions.edit'), route('bo.tags.edit', $tag->id));
});
// * STATIC PAGES
Breadcrumbs::for('bo.static_pages.index', function (Generator $trail) {
$trail->push(
Str::of(trans_choice('models.classes.static_page', '*'))->ucfirst(),
route('bo.static_pages.index', ['sort_col' => 'updated_at', 'sort_way' => 'desc'])
);
});
Breadcrumbs::for('bo.static_pages.edit', function (Generator $trail, StaticPage $static_page) {
$trail->parent('bo.static_pages.index');
$trail->push(Str::ucfirst(trans('crud.actions.edit')), route('bo.static_pages.edit', $static_page));
});
// * BRIGADE SECTIONS
Breadcrumbs::for('bo.brigade_sections.index', function (Generator $trail) {
$trail->push(
trans_choice('models.classes.brigade_section', \INF),
route('bo.brigade_sections.index', ['sort_col' => 'updated_at', 'sort_way' => 'desc'])
);
});
Breadcrumbs::for('bo.brigade_sections.create', function (Generator $trail) {
$trail->parent('bo.brigade_sections.index');
$trail->push(trans('crud.actions.create'), route('bo.brigade_sections.create'));
});
Breadcrumbs::for('bo.brigade_sections.edit', function (Generator $trail, BrigadeSection $brigadeSection) {
$trail->parent('bo.brigade_sections.index');
$trail->push(trans('crud.actions.edit'), route('bo.brigade_sections.edit', $brigadeSection->id));
});