HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
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()
    {
        //
    }

}