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/vebon.komma.pro/app/KommaApp/Sites/Site.php
<?php

namespace KommaApp\Site;

use KommaApp\Site\Checkout\CheckoutSession\CheckoutSession;
use KommaApp\Site\Pages\PageService;


class Site
{ 
    protected $id;
    protected $site;

    protected $siteRepository;
    protected $languageService;
    protected $cart;
    protected $siteResolver;
    protected $routeData;
    protected $pageService;

    function __construct(SiteRepository $siteRepository,
                         SiteResolver $siteResolver,
                         LanguageService $languageService,
                         PageService $pageService,
                         CheckoutSession $checkoutSession)
    {
        $this->siteRepository = $siteRepository;
        $this->siteResolver = $siteResolver;
        $this->languageService = $languageService;
        $this->pageService = $pageService;
        $this->cart = $checkoutSession->cart();

        $this->id = $this->siteResolver->getSiteId();
        $this->site = $this->siteRepository->getSite($this->id);;

        \View::share('site', $this);
    }

    public function get()
    {
        return $this;
    }

    /*
     * @return Int id
     */
    public function getId()
    {
        return $this->id;
    }

    public function getSite()
    {
        return $this->site;
    }

    public function setSite($site_id){
        $this->site = $this->siteRepository->getSite($site_id);;
    }

    public function getCountryId()
    {
        return $this->getSite()->country_id;
    }

    public function getCountry()
    {
        return $this->siteRepository->getSiteCountry($this->id);
    }

    /**
     * @param $currentLanguageId
     */
    public function setLanguageService($currentLanguageId)
    {
        // Set the available languages for the Language object
        $sites = $this->siteRepository->getSitesWithLanguageById($this->id);
        $this->languageService->setAvailableLanguages($sites);

        // Set current language id
        $this->languageService->setCurrentLanguage($currentLanguageId);

        // Update Cart when switching Language
        if(\Input::has('switch'))
        {
            if(\Input::get('switch') == 'language')
                $this->cart->reloadProducts();
        }
    }

    /*
     * @return Object Languages
     */
    public function getLanguageService()
    {
        return $this->languageService;
    }

    /*
     * @return Object Cart
     */
    public function getCart()
    {
        return $this->cart;
    }

    /**
     * @param $routeData
     */
    public function setRouteData($routeData)
    {
        $this->routeData = $routeData;
    }

    /**
     * @return Route
     */
    public function getRouteData()
    {
        return $this->routeData;
    }

    /**
     * @return PageService
     */
    public function getPageService()
    {
        return $this->pageService;
    }

    public function siteRepository()
    {
        return $this->siteRepository;
    }

    public function getDomainCountry($field = 'iso_2')
    {
        return $this->siteResolver->getDomainCountry($field);
    }

    public function getLinkedDomains()
    {
        return $this->siteResolver->getLinkedDomains();

    }
}