<?php
namespace Plugin\NZCustompg\Event;
use Eccube\Event\TemplateEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\RequestStack;
class MypageEventSubscriber implements EventSubscriberInterface
{
private $requestStack;
public function __construct(RequestStack $requestStack)
{
$this->requestStack = $requestStack;
}
public static function getSubscribedEvents()
{
return [
'Mypage/index.twig' => 'onMypageIndex',
'@admin/login.twig' => 'onRenderTemplate',
];
}
public function onMypageIndex(TemplateEvent $event)
{
$request = $this->requestStack->getCurrentRequest();
if ($request) {
$session = $request->getSession();
$formKey = $session->get('nzcustompg_form_key');
if ($formKey) {
// JavaScriptで自動リダイレクト
$snippet = sprintf(
'<script>window.location.href = "/nzcustompg/%s";</script>',
htmlspecialchars($formKey, ENT_QUOTES, 'UTF-8')
);
$event->addSnippet($snippet);
// セッションをクリア
$session->remove('nzcustompg_form_key');
$session->remove('nzcustompg_redirect_url');
}
}
}
public function onRenderTemplate(TemplateEvent $event)
{
// 何もしない(エラー回避用)
}
}