File: D:/HostingSpaces/SBogers10/honger.komma.pro/app/Providers/BreadcrumbServiceProvider.php
<?php
namespace App\Providers;
use App\KommaApp\Services\ServiceService;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\ServiceProvider;
use DaveJamesMiller\Breadcrumbs\Facade as Breadcrumbs;
use App\KommaApp\Facades\KommaCases;
use App\KommaApp\Pages\PageService;
class BreadcrumbServiceProvider extends ServiceProvider
{
/**
* Register all breadcrumbs we need on a specific page
*
* @param PageService $pageService
* @internal param Breadcrumbs $breadcrumbs
*/
public function boot(PageService $pageService)
{
// Fetch request path
$path = Request::path();
// Check what we need to register
$registerCases = starts_with($path,'cases');
$registerServices = starts_with($path,'diensten');
$registerPages = ! ($registerCases || $registerServices);
// Always register homepage
Breadcrumbs::register('home', function($breadcrumbs)
{
$breadcrumbs->push('Home', '/');
});
if($registerPages)
{
// Register all pages
foreach($pageService->getAllTranslatedPageRoutes() as $pageRoute)
{
// Skip empty code names and home
if(empty($pageRoute->node->code_name) || $pageRoute->node->code_name == 'home') continue;
// Register page
Breadcrumbs::register('' . $pageRoute->node->code_name, function($breadcrumbs) use ($pageRoute)
{
$breadcrumbs->parent('home');
$breadcrumbs->push($pageRoute->name, $pageRoute->route);
});
}
}
if($registerCases)
{
// Register case index
Breadcrumbs::register('cases', function($breadcrumbs)
{
$breadcrumbs->parent('home');
$breadcrumbs->push('Cases', '/cases');
});
// Register all cases
foreach(KommaCases::all() as $case)
{
Breadcrumbs::register('case.' . $case->translation->slug, function($breadcrumbs) use ($case)
{
$breadcrumbs->parent('cases');
$breadcrumbs->push($case->translation->name, '/cases/' . $case->translation->slug);
});
}
}
if($registerServices)
{
// Register service index
Breadcrumbs::register('services', function($breadcrumbs)
{
$breadcrumbs->parent('home');
$breadcrumbs->push('Diensten', '/diensten');
});
$serviceService = app(ServiceService::class);
$services = $serviceService->all();
// Register all services
foreach($services as $service)
{
Breadcrumbs::register('service.' . $service->translation->slug, function($breadcrumbs) use ($service)
{
$breadcrumbs->parent('services');
$breadcrumbs->push($service->translation->name, '/diensten/' . $service->translation->slug);
});
}
}
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}