src/Form/MessageClientFormType.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\MessageClient;
  4. use ReCaptcha\ReCaptcha;
  5. use Symfony\Component\Form\AbstractType;
  6. use Symfony\Component\Form\FormBuilderInterface;
  7. use Symfony\Component\OptionsResolver\OptionsResolver;
  8. use Symfony\Component\Validator\Constraints\NotBlank;
  9. use Symfony\Component\Form\Extension\Core\Type\TextType;
  10. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  11. use Symfony\Component\HttpFoundation\RequestStack;
  12. use Symfony\Component\Validator\Constraints\Email;
  13. class MessageClientFormType extends AbstractType
  14. {
  15.     private $requestStack;
  16.     public function __construct(RequestStack $requestStack)
  17.     {
  18.         $this->requestStack $requestStack;
  19.     } 
  20.     
  21.     public function buildForm(FormBuilderInterface $builder, array $options): void
  22.     {
  23.         $subject_contact $this->requestStack->getCurrentRequest()->query->get('price'
  24.                             ? "Obtenir un devis pour "$this->requestStack->getCurrentRequest()->query->get('product')." "$this->requestStack->getCurrentRequest()->query->get('price') . " €" 
  25.                             ''
  26.         ;        
  27.         
  28.         $builder
  29.             ->add('name'TextType::class, [
  30.                 "label" => "Votre nom",
  31.                 "trim" => true,
  32.                 "required" => true,
  33.                 "constraints" => [
  34.                     new NotBlank(["message" => "Nom obligatoire"])
  35.                 ]
  36.             ])
  37.             ->add('email'TextType::class, [
  38.                 "label" => "Votre adresse email",
  39.                 "trim" => true,
  40.                 "required" => true,
  41.                 "constraints" => [
  42.                     new NotBlank(["message" => "Adresse email obligatoire"]),
  43.                     new Email(["message" => "Adresse email invalide"])
  44.                 ]
  45.             ])
  46.             ->add('phoneNumber'TextType::class, [
  47.                 "label" => "Votre numéro de téléphone",
  48.                 "trim" => true,
  49.                 "required" => true,
  50.                 "constraints" => [
  51.                     new NotBlank(["message" => "Numéro de téléphone obligatoire"])
  52.                 ]
  53.             ])
  54.             ->add('subject'TextType::class, [
  55.                 "label" => "Sujet",
  56.                 "trim" => true,
  57.                 "required" => true,
  58.                 "constraints" => [
  59.                     new NotBlank(["message" => "Sujet obligatoire"])
  60.                 ],
  61.                 "attr" => [
  62.                     "value" => $subject_contact
  63.                 ]
  64.             ])
  65.             ->add('message'TextareaType::class, [
  66.                 "label" => "Parlez-nous de votre projet",
  67.                 "trim" => true,
  68.                 "required" => true,
  69.                 "attr" => ["rows" => "10"],
  70.                 "constraints" => [
  71.                     new NotBlank(["message" => "Message obligatoire"])
  72.                 ]
  73.             ])
  74.             // ->add('captcha', TextType::class, [
  75.             //     'label' => 'Veuillez valider le captcha',
  76.             //     'mapped'=>false,
  77.             //     'constraints' => [
  78.             //         new NotBlank([
  79.             //             'message' => 'Captcha invalide',
  80.             //         ]),
  81.             //     ],
  82.             // ])
  83.             // ->add('recaptcha', HiddenType::class, [
  84.             //     'mapped' => false,
  85.             //     'constraints' => [
  86.             //         new ReCaptcha("6LcMoRwlAAAAAEiR0XT8_QNyAVm8YCR-8BxC2eGr"),
  87.             //     ],
  88.             // ])
  89.             
  90.         ;
  91.     }
  92.     public function configureOptions(OptionsResolver $resolver): void
  93.     {
  94.         $resolver->setDefaults([
  95.             'data_class' => MessageClient::class,
  96.         ]);
  97.     }
  98. }