app/Customize/EventListener/TwigInitializeListener.php line 152

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of EC-CUBE
  4.  *
  5.  * Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
  6.  *
  7.  * http://www.ec-cube.co.jp/
  8.  *
  9.  * For the full copyright and license information, please view the LICENSE
  10.  * file that was distributed with this source code.
  11.  */
  12. namespace Customize\EventListener;
  13. use Detection\MobileDetect;
  14. use Doctrine\ORM\NoResultException;
  15. use Eccube\Common\EccubeConfig;
  16. use Eccube\Entity\AuthorityRole;
  17. use Eccube\Entity\Layout;
  18. use Eccube\Entity\Master\DeviceType;
  19. use Eccube\Entity\Member;
  20. use Eccube\Entity\Page;
  21. use Eccube\Entity\PageLayout;
  22. use Eccube\Repository\AuthorityRoleRepository;
  23. use Eccube\Repository\BaseInfoRepository;
  24. use Eccube\Repository\BlockPositionRepository;
  25. use Eccube\Repository\LayoutRepository;
  26. use Eccube\Repository\Master\DeviceTypeRepository;
  27. use Eccube\Repository\PageLayoutRepository;
  28. use Eccube\Repository\PageRepository;
  29. use Eccube\Request\Context;
  30. use Eccube\Service\SystemService;
  31. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  32. use Symfony\Component\HttpKernel\Event\RequestEvent;
  33. use Symfony\Component\HttpKernel\KernelEvents;
  34. use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
  35. use Twig\Environment;
  36. class TwigInitializeListener implements EventSubscriberInterface
  37. {
  38.     /**
  39.      * @var bool 初期化済かどうか.
  40.      */
  41.     protected $initialized false;
  42.     /**
  43.      * @var Environment
  44.      */
  45.     protected $twig;
  46.     /**
  47.      * @var BaseInfoRepository
  48.      */
  49.     protected $baseInfoRepository;
  50.     /**
  51.      * @var DeviceTypeRepository
  52.      */
  53.     protected $deviceTypeRepository;
  54.     /**
  55.      * @var PageRepository
  56.      */
  57.     protected $pageRepository;
  58.     /**
  59.      * @var PageLayoutRepository
  60.      */
  61.     protected $pageLayoutRepository;
  62.     /**
  63.      * @var BlockPositionRepository
  64.      */
  65.     protected $blockPositionRepository;
  66.     /**
  67.      * @var Context
  68.      */
  69.     protected $requestContext;
  70.     /**
  71.      * @var AuthorityRoleRepository
  72.      */
  73.     private $authorityRoleRepository;
  74.     /**
  75.      * @var EccubeConfig
  76.      */
  77.     private $eccubeConfig;
  78.     /**
  79.      * @var MobileDetect
  80.      */
  81.     private $mobileDetector;
  82.     /**
  83.      * @var UrlGeneratorInterface
  84.      */
  85.     private $router;
  86.     /**
  87.      * @var LayoutRepository
  88.      */
  89.     private $layoutRepository;
  90.     /**
  91.      * @var SystemService
  92.      */
  93.     protected $systemService;
  94.     /**
  95.      * TwigInitializeListener constructor.
  96.      */
  97.     public function __construct(
  98.         Environment $twig,
  99.         BaseInfoRepository $baseInfoRepository,
  100.         PageRepository $pageRepository,
  101.         PageLayoutRepository $pageLayoutRepository,
  102.         BlockPositionRepository $blockPositionRepository,
  103.         DeviceTypeRepository $deviceTypeRepository,
  104.         AuthorityRoleRepository $authorityRoleRepository,
  105.         EccubeConfig $eccubeConfig,
  106.         Context $context,
  107.         MobileDetect $mobileDetector,
  108.         UrlGeneratorInterface $router,
  109.         LayoutRepository $layoutRepository,
  110.         SystemService $systemService
  111.     ) {
  112.         $this->twig $twig;
  113.         $this->baseInfoRepository $baseInfoRepository;
  114.         $this->pageRepository $pageRepository;
  115.         $this->pageLayoutRepository $pageLayoutRepository;
  116.         $this->blockPositionRepository $blockPositionRepository;
  117.         $this->deviceTypeRepository $deviceTypeRepository;
  118.         $this->authorityRoleRepository $authorityRoleRepository;
  119.         $this->eccubeConfig $eccubeConfig;
  120.         $this->requestContext $context;
  121.         $this->mobileDetector $mobileDetector;
  122.         $this->router $router;
  123.         $this->layoutRepository $layoutRepository;
  124.         $this->systemService $systemService;
  125.     }
  126.     public static function getSubscribedEvents(): array
  127.     {
  128.         return [
  129.             KernelEvents::REQUEST => 'onKernelRequest',
  130.         ];
  131.     }
  132.     public function onKernelRequest(RequestEvent $event): void
  133.     {
  134.         $request $event->getRequest();
  135.         // 獲取 URL 參數
  136.         $dzx_app_use $request->query->get('dzx_app_use');
  137.         $dzx_app_os $request->query->get('dzx_app_os');
  138.         $dzx_app_ver $request->query->get('dzx_app_ver');
  139.         // 獲取 Session
  140.         if($dzx_app_use == "1"){
  141.             $session $request->getSession();
  142.             $session->set("dzx_app_use"$dzx_app_use);
  143.             $session->set("dzx_app_os"$dzx_app_os);
  144.             $session->set("dzx_app_ver"$dzx_app_ver);
  145.         }
  146.     }
  147. }