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();
}
}