<?php
/*
* This file is part of MembersOnly
*
* Copyright(c) Akira Kurozumi <info@a-zumi.net>
*
* https://a-zumi.net
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Plugin\MembersOnly42;
use Eccube\Event\TemplateEvent;
use Plugin\MembersOnly42\Repository\AccessControlRepository;
use Plugin\MembersOnly42\Repository\ConfigRepository;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
class Event implements EventSubscriberInterface
{
/**
* @var AccessControlRepository
*/
private AccessControlRepository $accessControlRepository;
/**
* @var ConfigRepository
*/
private ConfigRepository $configRepository;
public function __construct(
AccessControlRepository $accessControlRepository,
ConfigRepository $configRepository
) {
$this->accessControlRepository = $accessControlRepository;
$this->configRepository = $configRepository;
}
/**
* @param TemplateEvent $templateEvent
*
* @return void
*/
public function onTemplateMyPageLogin(TemplateEvent $templateEvent): void
{
$templateEvent->addSnippet('@MembersOnly42/default/Mypage/login_message.twig');
}
/**
* @param TemplateEvent $templateEvent
*
* @return void
*
* @throws \Exception
*/
public function onTemplateProductList(TemplateEvent $templateEvent): void
{
$Config = $this->configRepository->get();
if ($Config && $Config->getOptionPriceHidden()) {
$templateEvent->addSnippet('@MembersOnly42/default/Product/list.twig');
}
}
/**
* @param TemplateEvent $templateEvent
*
* @return void
*
* @throws \Exception
*/
public function onTemplateProductDetail(TemplateEvent $templateEvent): void
{
$Config = $this->configRepository->get();
if ($Config && $Config->getOptionPriceHidden()) {
$templateEvent->addSnippet('@MembersOnly42/default/Product/detail.twig');
}
}
/**
* @return array[]
*/
public static function getSubscribedEvents(): array
{
return [
'Mypage/login.twig' => ['onTemplateMyPageLogin', -256],
'Product/list.twig' => ['onTemplateProductList', -256],
'Product/detail.twig' => ['onTemplateProductDetail', -256],
];
}
}