File: D:/HostingSpaces/SBogers10/honger7.komma.pro/app/Providers/BreadcrumbServiceProvider.php
<?php
namespace App\Providers;
use Illuminate\Support\Facades\Request;
use Illuminate\Support\ServiceProvider;
use DaveJamesMiller\Breadcrumbs\Facade as Breadcrumbs;
use App\KommaApp\Facades\KommaCases;
use App\KommaApp\Facades\KommaServices;
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');
});
// Register all services
foreach(KommaServices::all() as $service)
{
Breadcrumbs::register('service.' . $service->slug, function($breadcrumbs) use ($service)
{
$breadcrumbs->parent('services');
$breadcrumbs->push($service->name, '/diensten/' . $service->slug);
});
}
}
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}