getTable())) { return; } $currentLocale = app()->getLocale(); $supportedLocales = LaravelLocalization::getSupportedLanguagesKeys(); $pageHome = DynamicPage::getModelsCached() ->where('status', PageStatusEnum::published) ->where('isRoot', true) ->first(); DynamicPage::getModelsCached()->map(function (DynamicPage $dynamicPageModel) use ($supportedLocales, $pageHome) { collect($supportedLocales)->map(function (string $locale) use ($dynamicPageModel, $pageHome) { Breadcrumbs::for( sprintf('front.dynamic-pages.%s.%s', $dynamicPageModel->id_key, $locale), function (Generator $trail) use ($locale, $dynamicPageModel, $pageHome) { if (! is_null($dynamicPageModel->page_id)) { $trail->parent(sprintf( 'front.dynamic-pages.%s.%s', $dynamicPageModel->parentPage->id_key, $locale, )); } elseif (isset($pageHome) && $dynamicPageModel->id_key !== $pageHome->id_key) { $trail->parent(sprintf('front.dynamic-pages.%s.%s', $pageHome->id_key, $locale)); } $trail->push( $dynamicPageModel->title, RouteHelper::routeNameChecker(sprintf('front.dynamic-pages.%s', $dynamicPageModel->id_key)) ); } ); }); }); Breadcrumbs::for('front.engage', function (Generator $trail) { $currentLocale = app()->getLocale(); $pageHome = DynamicPage::getModelsCached() ->where('status', PageStatusEnum::published) ->where('isRoot', true) ->first(); $trail->parent(sprintf('front.dynamic-pages.%s.%s', $pageHome->id_key, $currentLocale)); $trail->push( ucfirst(__('front.ovoteam_commit')), route('front.engage') ); }); Breadcrumbs::for('front.made-in-france', function (Generator $trail) use ($pageHome, $currentLocale) { $currentLocale = app()->getLocale(); $pageHome = DynamicPage::getModelsCached() ->where('status', PageStatusEnum::published) ->where('isRoot', true) ->first(); $trail->parent(sprintf('front.dynamic-pages.%s.%s', $pageHome->id_key, $currentLocale)); $trail->push( ucfirst(__('front.ovoteam_commit')), route('front.engage') ); $trail->push( trans('front.made-in-france'), route('front.made-in-france') ); }); Breadcrumbs::for('front.expertise', function (Generator $trail) use ($currentLocale, $pageHome) { $trail->parent(sprintf('front.dynamic-pages.%s.%s', $pageHome->id_key, $currentLocale)); $trail->push( ucfirst(__('front.ovoteam_commit')), route('front.engage') ); $trail->push( trans('front.expertise'), route('front.expertise') ); }); Breadcrumbs::for('front.gamme', function (Generator $trail) use ($pageHome, $currentLocale) { $trail->parent(sprintf('front.dynamic-pages.%s.%s', $pageHome->id_key, $currentLocale)); $trail->push( ucfirst(__('front.ovoteam_commit')), route('front.engage') ); $trail->push( trans('front.gamme'), route('front.gamme') ); }); Breadcrumbs::for('front.contact-us', function (Generator $trail) use ($currentLocale, $pageHome) { $trail->parent(sprintf('front.dynamic-pages.%s.%s', $pageHome->id_key, $currentLocale)); $trail->push( trans('front.contactpage'), route('front.contact-us') ); }); Breadcrumbs::for('front.search', function (Generator $trail) use ($currentLocale, $pageHome) { $trail->parent(sprintf('front.dynamic-pages.%s.%s', $pageHome->id_key, $currentLocale)); $trail->push( trans('front.search'), route('front.search') ); }); Breadcrumbs::for('front.products.index', function (Generator $trail) use ($pageHome, $currentLocale) { $trail->parent(sprintf('front.dynamic-pages.%s.%s', $pageHome->id_key, $currentLocale)); $trail->push( trans('front.titles.products'), route('front.products.index') ); }); Breadcrumbs::for('front.products.show', function (Generator $trail) use ($pageHome, $currentLocale) { $product = request()->route('frontProduct'); if (! $product instanceof ProductDto) { Log::warning('Product not found for breadcrumb generation.'); return; } $trail->parent(sprintf('front.dynamic-pages.%s.%s', $pageHome->id_key, $currentLocale)); $trail->push( trans('front.titles.products'), route('front.products.index') ); $trail->push( $product->name, route('front.products.show', ['frontProduct' => $product->slug]) ); }); Breadcrumbs::for('front.recipes.index', function (Generator $trail) use ($pageHome, $currentLocale) { $trail->parent(sprintf('front.dynamic-pages.%s.%s', $pageHome->id_key, $currentLocale)); $trail->push( trans('front.titles.recipes'), route('front.recipes.index') ); }); Breadcrumbs::for('front.recipes.show', function (Generator $trail) use ($pageHome, $currentLocale) { $recipe = request()->route('frontRecipe'); if (! $recipe instanceof RecipeDto) { Log::warning('Recipe not found for breadcrumb generation.'); return; } $trail->parent(sprintf('front.dynamic-pages.%s.%s', $pageHome->id_key, $currentLocale)); $trail->push( trans('front.titles.recipes'), route('front.recipes.index') ); $trail->push( $recipe->name, route('front.recipes.show', ['frontRecipe' => $recipe->slug]) ); });