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/signmania.komma.pro/app/Komma/Pages/PageController.php
<?php

namespace Komma\Pages;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Redirect;
use Komma\BaseController;
use Komma\Blocks\BlockService;
use Komma\Contact\ContactController;
use Komma\Pages\Models\Page;
use Komma\Posts\PostController;
use Komma\Sitemap\SitemapController;

class PageController extends \BaseController
{
    protected $pageService;
    protected $blockService;
    protected $contactController;
    protected $sitemapController;
    protected $postController;

    public function __construct(PageService $pageService, BlockService $blockService, ContactController $contactController, SitemapController $sitemapController, PostController $postController)
    {
        parent::__construct();

        $this->pageService = $pageService;
        $this->blockService = $blockService;
        $this->contactController = $contactController;
        $this->sitemapController = $sitemapController;
        $this->postController = $postController;
    }

    public function show($id = 2)
    {
        //get content of page
        $page = $this->pageService->getPageContent($id);

        //Check if needed to send to other location/controller
        if($page->code_name == 'sitemap') return $this->sitemapController->showSitemap($page);
        if($page->code_name == 'contact') return $this->contactController->contactForm($page);


        //get all page links
        $links = $this->pageService->getAllRoutes();

        //View is page unless view is defined
        //$view = 'page';
        //if(isset($page->view) && $page->view != '') $view = $page->view;

        return \View::make($this->getViewName($page))
            ->with('page', $page)
            ->with('links', $links);
    }

    /**
     * Return layout location
     *
     * @param Page $page
     */
    private function getViewName(Page $page)
    {

        $prefix = 'layouts.pages.';

        // Check if the depth is larger then a direct page
        if($page->depth >= 2)
        {

            // Store parent in page
            $page->parent = $page->getParent();

            // Find which Letter and Color Type this page is by checking the index in the parent
            $childrenCollection = $page->parent->findChildren();

            $page->siblings = $childrenCollection;

            $alphabet = range('A', 'Z');
            foreach ($childrenCollection as $key => $child)
            {
                if($child->code_name == $page->code_name)
                {


                    if(isset($childrenCollection[$key+1])) $page->next = $childrenCollection[$key+1];
                    else $page->next = $childrenCollection[0];

                    $page->letter = $alphabet[$key] . '.';

                    // Define color type on even or odd child
                    $page->colorType = 2;
                    if($key % 2 == 0) $page->colorType = 1;
                }
            }


            return $prefix . $page->parent->code_name . '.show';
        }

        // Check if this page is in the array, because they have other file locations then default
        elseif(in_array($page->code_name, ['services', 'ourStudio']))
        {
            $page->pageChildren = $page->findChildren();
            return $prefix . $page->code_name . '.index';
        }

        elseif(in_array($page->code_name, ['disclaimer'])){
            return $prefix . 'page';
        }

        else
        {
            return $prefix . $page->code_name;
        }

    }

}