system/modules/47_CustomModule/library/CustomModule/AffilliatePartner/SessionService.php line 33

Open in your IDE?
  1. <?php
  2. /**
  3.  * Studienkreis Tourismus | Custom Module for Contao Open Source CMS
  4.  *
  5.  * Copyright (C) 2017 47GradNord - Agentur für Internetlösungen
  6.  *
  7.  * @license    commercial
  8.  * @author     Holger Neuner
  9.  */
  10. namespace CustomModule\AffilliatePartner;
  11. use Contao\Model;
  12. use Contao\PageModel;
  13. use Contao\Session;
  14. use CustomModule\Models\AffilliatePartnerModel;
  15. class SessionService
  16. {
  17.     /** @var   Model*/
  18.     protected $affilliatePartner;
  19.     /** @var null  */
  20.     protected $affilliateId null;
  21.     /**
  22.      * SessionService constructor.
  23.      * @param null $affilliateId
  24.      *
  25.      */
  26.     public function __construct($affilliateId null)
  27.     {
  28.         if ( null !== $affilliateId )
  29.         {
  30.             $affilliatePartner AffilliatePartnerModel::findOnePublishedByAlias($affilliateId);
  31.             if ( null !== $affilliatePartner )
  32.             {
  33.                 $this->affilliateId $affilliateId;
  34.                 $this->affilliatePartner $affilliatePartner;
  35.             }
  36.         }
  37.         $this->sessionEnsure();
  38.     }
  39.     /**
  40.      * session Ensure
  41.      */
  42.     private function sessionEnsure()
  43.     {
  44.         // Session not exists
  45.         if ( !Session::getInstance()->get('affilliatePartnerId') ) {
  46.             // Session initiate and redirect
  47.             $this->sessionInitiate();
  48.             if ( null !== $this->affilliateId)
  49.             {
  50.                 \Controller::redirect(PageModel::findById($this->affilliatePartner->target_shop)->alias.'.html');
  51.             }
  52.         }
  53.         // Session exists
  54.         if ( Session::getInstance()->get('affilliatePartnerId') ) {
  55.             $this->affilliateId Session::getInstance()->get('affilliatePartnerId');
  56.             $affilliatePartner AffilliatePartnerModel::findOnePublishedByAlias($this->affilliateId);
  57.             if ( null !== $affilliatePartner )
  58.             {
  59.                 $this->affilliatePartner $affilliatePartner;
  60.             }
  61.         }
  62.     }
  63.     /**
  64.      * Session initiate
  65.      */
  66.     private function sessionInitiate()
  67.     {
  68.         if ( null !== $this->affilliateId )
  69.         {
  70.             Session::getInstance()->set('affilliatePartnerId',$this->affilliateId);
  71.         }
  72.     }
  73.     /**
  74.      * get Affilliate Partner
  75.      *
  76.      * @return Model
  77.      */
  78.     public function getAffilliatePartner()
  79.     {
  80.         return $this->affilliatePartner;
  81.     }
  82.     /**
  83.      * @return null
  84.      */
  85.     public function getAffilliateId()
  86.     {
  87.         return $this->affilliateId;
  88.     }
  89. }