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/SBogers79/artofeinstein.be/app/Komma/Pages/PageService.php
<?php


namespace Komma\Pages;
use Carbon\Carbon;

class PageService {

    protected $pageRepository;

    public function __construct(PageRepository $pageRepository)
    {
        $this->pageRepository = $pageRepository;
    }

    public function getPageContent($id){
        return $this->pageRepository->getPageContent($id);
    }

    public function getUrl($code_name){
        return $this->pageRepository->getUrl($code_name);
    }

    public function getLocations(){

        $locations = $this->pageRepository->getLocations();

        foreach ($locations as $key => $location){

            $location->images = $this->pageRepository->getLocationImages($location->location_id);

            //determine the next location
            if($key == (sizeof($locations)-1)){
                $location->nextLocation = null;
            }
            else{
                $location->nextLocation = $locations[($key+1)]->code_name;
                $location->nextLocationName = $locations[($key+1)]->menu;
            }

            //determine the previous location
            if($key == 0){
                $location->prevLocation = null;
            }
            else{
                $location->prevLocation = $locations[($key-1)]->code_name;
            }


            $locations[$key] = $location;
        }

        return $locations;
    }

    public function getTextBlocks(){
        $text = $this->pageRepository->getTextBlocks();

        $textArray = [];

        $roomImages = $this->pageRepository->getRoomImages();

        foreach($text as $block){
            if($block->code_name == "side_building"){

                $imagesLink= [];

                foreach ($roomImages->get($block->id) as $image){
                    $imagesLink[] = $image->large_image_url;  //TODO Set to medium and upload new foto's
                }

                $textArray[$block->code_name] = (object)[
                    'title' => $block->name,
                    'text'  => $block->description,
                    'lft'   => $block->lft,
                    'rgt'   => $block->rgt,
                    'images' => $imagesLink
                ];
            }
            else
            {
                $textArray[$block->code_name] = (object)[
                    'title' => $block->name,
                    'text'  => $block->description,
                    'lft'   => $block->lft,
                    'rgt'   => $block->rgt,
                ];
            }
        }

        $mainBuilding = [];
        $sideBuilding = [];

        foreach($text as $key => $block){

            $images = $roomImages->get($block->id);

            $imagesLink = [];
            if($images!=null)
            {
                foreach ($images as $image){
                    $imagesLink[] = $image->large_image_url;
                }
            }



            if($block->lft > $textArray['main_building']->lft && $block->lft < $textArray['main_building']->rgt){
                $mainBuilding[$block->code_name] = (object)[
                    'title' => $block->name,
                    'text' => $block->description,
                    'next' => $text[($key+1)]->code_name,
                    'next_name' => $text[($key+1)]->name,
                    'images' => $imagesLink
                ];
            }
            if($block->lft > $textArray['side_building']->lft && $block->lft < $textArray['side_building']->rgt){
                $sideBuilding[$block->code_name] = (object)[
                    'title' => $block->name,
                    'next' => $text[($key+1)]->code_name,
                    'next_name' => $text[($key+1)]->name,
                    'images' => $imagesLink
                ];
            }
        }
        return ['all' => $textArray, 'main_building' => $mainBuilding, 'side_building' => $sideBuilding];
    }
}