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/shop.komma.nl/app/Pages/PageController.php
<?php

namespace App\Pages;

use App\Base\Controller;
use App\Categories\Kms\CategoryTreeService;
use App\Categories\Models\Category;
use App\Pages\Models\Page;
use Illuminate\Support\Str;

final class PageController extends Controller
{

    /**
     * @param Page $page
     * @return \Illuminate\Contracts\View\View
     */
    public function show(Page $page)
    {
        $page = $this->links->{$page->code_name}->node ?? null;
        if(!$page) throw new \RuntimeException('There is no page with code name ' . $page->code_name . ' in the links object');

        // Generate view name based on the code name
        $viewName = 'templates.' . $page->code_name;
        if(!view()->exists($viewName)) $viewName = 'templates.default';

        //Prepare the data that is always send to the views
        $viewData = [
            'links' => $this->links,
            'page' => $page,
            'showAllLink' => true,
        ];

        if($page->code_name == 'home') {
            // Fetch categories for assortment on homepage
            $rootCategory = (new CategoryTreeService())->treeWithTranslationsLinksAndActiveStates(1);
            $categories = collect($rootCategory->getChildren())->sortBy(function(Category $category) {
                return $category->getDisplayName();
            });

            $viewData['categories'] = $categories;
        }


        // Return view
        return view($viewName, $viewData);
    }
}