<?php
/*
* This file is part of EC-CUBE
*
* Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
*
* http://www.ec-cube.co.jp/
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Customize\EventListener;
use Detection\MobileDetect;
use Doctrine\ORM\NoResultException;
use Eccube\Common\EccubeConfig;
use Eccube\Entity\AuthorityRole;
use Eccube\Entity\Layout;
use Eccube\Entity\Master\DeviceType;
use Eccube\Entity\Member;
use Eccube\Entity\Page;
use Eccube\Entity\PageLayout;
use Eccube\Repository\AuthorityRoleRepository;
use Eccube\Repository\BaseInfoRepository;
use Eccube\Repository\BlockPositionRepository;
use Eccube\Repository\LayoutRepository;
use Eccube\Repository\Master\DeviceTypeRepository;
use Eccube\Repository\PageLayoutRepository;
use Eccube\Repository\PageRepository;
use Eccube\Request\Context;
use Eccube\Service\SystemService;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Twig\Environment;
class TwigInitializeListener implements EventSubscriberInterface
{
/**
* @var bool 初期化済かどうか.
*/
protected $initialized = false;
/**
* @var Environment
*/
protected $twig;
/**
* @var BaseInfoRepository
*/
protected $baseInfoRepository;
/**
* @var DeviceTypeRepository
*/
protected $deviceTypeRepository;
/**
* @var PageRepository
*/
protected $pageRepository;
/**
* @var PageLayoutRepository
*/
protected $pageLayoutRepository;
/**
* @var BlockPositionRepository
*/
protected $blockPositionRepository;
/**
* @var Context
*/
protected $requestContext;
/**
* @var AuthorityRoleRepository
*/
private $authorityRoleRepository;
/**
* @var EccubeConfig
*/
private $eccubeConfig;
/**
* @var MobileDetect
*/
private $mobileDetector;
/**
* @var UrlGeneratorInterface
*/
private $router;
/**
* @var LayoutRepository
*/
private $layoutRepository;
/**
* @var SystemService
*/
protected $systemService;
/**
* TwigInitializeListener constructor.
*/
public function __construct(
Environment $twig,
BaseInfoRepository $baseInfoRepository,
PageRepository $pageRepository,
PageLayoutRepository $pageLayoutRepository,
BlockPositionRepository $blockPositionRepository,
DeviceTypeRepository $deviceTypeRepository,
AuthorityRoleRepository $authorityRoleRepository,
EccubeConfig $eccubeConfig,
Context $context,
MobileDetect $mobileDetector,
UrlGeneratorInterface $router,
LayoutRepository $layoutRepository,
SystemService $systemService
) {
$this->twig = $twig;
$this->baseInfoRepository = $baseInfoRepository;
$this->pageRepository = $pageRepository;
$this->pageLayoutRepository = $pageLayoutRepository;
$this->blockPositionRepository = $blockPositionRepository;
$this->deviceTypeRepository = $deviceTypeRepository;
$this->authorityRoleRepository = $authorityRoleRepository;
$this->eccubeConfig = $eccubeConfig;
$this->requestContext = $context;
$this->mobileDetector = $mobileDetector;
$this->router = $router;
$this->layoutRepository = $layoutRepository;
$this->systemService = $systemService;
}
public static function getSubscribedEvents(): array
{
return [
KernelEvents::REQUEST => 'onKernelRequest',
];
}
public function onKernelRequest(RequestEvent $event): void
{
$request = $event->getRequest();
// 獲取 URL 參數
$dzx_app_use = $request->query->get('dzx_app_use');
$dzx_app_os = $request->query->get('dzx_app_os');
$dzx_app_ver = $request->query->get('dzx_app_ver');
// 獲取 Session
if($dzx_app_use == "1"){
$session = $request->getSession();
$session->set("dzx_app_use", $dzx_app_use);
$session->set("dzx_app_os", $dzx_app_os);
$session->set("dzx_app_ver", $dzx_app_ver);
}
}
}