<?php
/*
*
* Plugin Name : Google reCAPTCHA v3 by FirstNetJapan
*
* Copyright (C) First Net Japan co.,Ltd All Rights Reserved.
* https://www.1st-net.jp/
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
*/
namespace Customize\Event;
use Eccube\Event\TemplateEvent;
use GuzzleHttp\Client as HttpClient;
use Plugin\FNJ_GoogleReCaptcha\Entity\GoogleReCaptchaConfig;
use Plugin\FNJ_GoogleReCaptcha\Repository\GoogleReCaptchaConfigRepository;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;
class CustomGoogleReCaptchaEvent implements EventSubscriberInterface
{
/**
* @var GoogleReCaptchaConfigRepository
*/
protected $GoogleReCaptchaConfigRepository;
private $requestStack;
/**
* ProductReview constructor.
*
* @param GoogleReCaptchaConfigRepository $GoogleReCaptchaConfigRepository
*/
public function __construct(GoogleReCaptchaConfigRepository $GoogleReCaptchaConfigRepository, RequestStack $requestStack)
{
$this->GoogleReCaptchaConfigRepository = $GoogleReCaptchaConfigRepository;
$this->requestStack = $requestStack;
}
/**
* @return array
*/
public static function getSubscribedEvents()
{
return [
'EstimateRequest/login.twig' => 'customGoogleReCaptchaViews',
];
}
/**
* @param TemplateEvent $event
* @param GoogleReCaptchaConfig $GoogleReCaptchaConfig
*/
public function customGoogleReCaptchaViews(TemplateEvent $event)
{
$Config = $this->GoogleReCaptchaConfigRepository->get();
if ($Config === null) {
return;
}
$request = Request::createFromGlobals();
$currentUrl = $request->getRequestUri();
$twig = 'FNJ_GoogleReCaptcha/Resource/template/default/set_google_re_captcha.twig';
$event->addSnippet($twig);
$parameters = $event->getParameters();
$parameters['BadgeDisplay'] = $Config->getBadgeDisplay();
$parameters['BadgePosition'] = $Config->getBadgePosition();
$parameters['ScoreJudgement'] = $Config->getScoreJudgement();
$parameters['GoogleReCaptchaSiteKey'] = $Config->getGoogleReCaptchaSiteKey();
if (strpos($currentUrl, "/estimate_request/login") !== false) {
$parameters['SetCheck'] = $Config->getLoginPage();
}
$event->setParameters($parameters);
}
}