<?php
namespace App\Form;
use App\Form\RecaptchaType;
use Symfony\Component\Form\AbstractType;
use Karser\Recaptcha3Bundle\Form\Recaptcha3Type;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Contracts\Translation\TranslatorInterface;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Karser\Recaptcha3Bundle\Validator\Constraints\Recaptcha3;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
class ResetPasswordRequestFormType extends AbstractType
{
private $translator;
private $requestStack;
private $session;
public function __construct(TranslatorInterface $translator,RequestStack $requestStack)
{
$this->setTranslator($translator);
$this->requestStack = $requestStack;
}
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$this->session = $this->getRequestStack()->getSession();
$locale = $this->getSession()->get('_locale', 'en');
$email= $this->getTranslator()->trans('email'. $locale);
$saissiemail= $this->getTranslator()->trans('saissiemail'. $locale);
$humanvalidation= $this->getTranslator()->trans('humanvalidation'. $locale);
// dd($email);
$builder
->add('email', EmailType::class, [
'label' => false,
'attr' => ['autocomplete' => $email,
'class' => 'p',
'placeholder' => $email,
'style' => 'border: 2px solid #4CAF50; border-radius: 5px; padding: 10px;'
],
'constraints' => [
new NotBlank([
'message' => $saissiemail,
]),
],
])
->add('captcha', RecaptchaType::class, [
'site_key' => $options['site_key'],
])
// ->add('recaptcha', RecaptchaType::class, [
// 'site_key' => $_ENV['RECAPTCHA3_SITE_KEY'],
// ]);
// ->add('recaptcha', RecaptchaType::class, [
// 'site_key' => $_ENV['RECAPTCHA3_SITE_KEY'],
// 'label' => $humanvalidation,
// ])
// ->add('g_recaptcha_response', HiddenType::class, [
// 'mapped'=>false,
// 'label' => $humanvalidation,
// ])
->add('submit', SubmitType::class)
;
// ->add('recaptcha', Recaptcha3Type::class, [
// 'constraints' => new Recaptcha3(),
// 'action_name' => 'app_forgot_password_request',
// ]);
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'site_key' => getenv('GOOGLE_RECAPTCHA_SITE_KEY'),
]);
}
/**
* Set the value of translator
*
* @return self
*/
public function setTranslator($translator)
{
$this->translator = $translator;
return $this;
}
/**
* Get the value of requestStack
*/
public function getRequestStack()
{
return $this->requestStack;
}
/**
* Get the value of session
*/
public function getSession()
{
return $this->session;
}
/**
* Get the value of translator
*/
public function getTranslator()
{
return $this->translator;
}
}