<?php/** * Studienkreis Tourismus | Custom Module for Contao Open Source CMS * * Copyright (C) 2017 47GradNord - Agentur für Internetlösungen * * @license commercial * @author Holger Neuner */namespace CustomModule\AffilliatePartner;use Contao\Model;use Contao\PageModel;use Contao\Session;use CustomModule\Models\AffilliatePartnerModel;class SessionService{ /** @var Model*/ protected $affilliatePartner; /** @var null */ protected $affilliateId = null; /** * SessionService constructor. * @param null $affilliateId * */ public function __construct($affilliateId = null) { if ( null !== $affilliateId ) { $affilliatePartner = AffilliatePartnerModel::findOnePublishedByAlias($affilliateId); if ( null !== $affilliatePartner ) { $this->affilliateId = $affilliateId; $this->affilliatePartner = $affilliatePartner; } } $this->sessionEnsure(); } /** * session Ensure */ private function sessionEnsure() { // Session not exists if ( !Session::getInstance()->get('affilliatePartnerId') ) { // Session initiate and redirect $this->sessionInitiate(); if ( null !== $this->affilliateId) { \Controller::redirect(PageModel::findById($this->affilliatePartner->target_shop)->alias.'.html'); } } // Session exists if ( Session::getInstance()->get('affilliatePartnerId') ) { $this->affilliateId = Session::getInstance()->get('affilliatePartnerId'); $affilliatePartner = AffilliatePartnerModel::findOnePublishedByAlias($this->affilliateId); if ( null !== $affilliatePartner ) { $this->affilliatePartner = $affilliatePartner; } } } /** * Session initiate */ private function sessionInitiate() { if ( null !== $this->affilliateId ) { Session::getInstance()->set('affilliatePartnerId',$this->affilliateId); } } /** * get Affilliate Partner * * @return Model */ public function getAffilliatePartner() { return $this->affilliatePartner; } /** * @return null */ public function getAffilliateId() { return $this->affilliateId; }}