<?php
namespace App\Form;
use App\Entity\MessageClient;
use ReCaptcha\ReCaptcha;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\Validator\Constraints\Email;
class MessageClientFormType extends AbstractType
{
private $requestStack;
public function __construct(RequestStack $requestStack)
{
$this->requestStack = $requestStack;
}
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$subject_contact = $this->requestStack->getCurrentRequest()->query->get('price')
? "Obtenir un devis pour ". $this->requestStack->getCurrentRequest()->query->get('product')." ". $this->requestStack->getCurrentRequest()->query->get('price') . " €"
: ''
;
$builder
->add('name', TextType::class, [
"label" => "Votre nom",
"trim" => true,
"required" => true,
"constraints" => [
new NotBlank(["message" => "Nom obligatoire"])
]
])
->add('email', TextType::class, [
"label" => "Votre adresse email",
"trim" => true,
"required" => true,
"constraints" => [
new NotBlank(["message" => "Adresse email obligatoire"]),
new Email(["message" => "Adresse email invalide"])
]
])
->add('phoneNumber', TextType::class, [
"label" => "Votre numéro de téléphone",
"trim" => true,
"required" => true,
"constraints" => [
new NotBlank(["message" => "Numéro de téléphone obligatoire"])
]
])
->add('subject', TextType::class, [
"label" => "Sujet",
"trim" => true,
"required" => true,
"constraints" => [
new NotBlank(["message" => "Sujet obligatoire"])
],
"attr" => [
"value" => $subject_contact
]
])
->add('message', TextareaType::class, [
"label" => "Parlez-nous de votre projet",
"trim" => true,
"required" => true,
"attr" => ["rows" => "10"],
"constraints" => [
new NotBlank(["message" => "Message obligatoire"])
]
])
// ->add('captcha', TextType::class, [
// 'label' => 'Veuillez valider le captcha',
// 'mapped'=>false,
// 'constraints' => [
// new NotBlank([
// 'message' => 'Captcha invalide',
// ]),
// ],
// ])
// ->add('recaptcha', HiddenType::class, [
// 'mapped' => false,
// 'constraints' => [
// new ReCaptcha("6LcMoRwlAAAAAEiR0XT8_QNyAVm8YCR-8BxC2eGr"),
// ],
// ])
;
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => MessageClient::class,
]);
}
}