src/Form/ContactPromoFormType.php line 23

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\Evosimul;
  4. use App\Entity\SimulSitePanneaux;
  5. use Karser\Recaptcha3Bundle\Form\Recaptcha3Type;
  6. use Karser\Recaptcha3Bundle\Validator\Constraints\Recaptcha3;
  7. use Symfony\Component\Form\AbstractType;
  8. use Symfony\Component\Form\Extension\Core\Type\ButtonType;
  9. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  10. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  11. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  12. use Symfony\Component\Form\Extension\Core\Type\IntegerType;
  13. use Symfony\Component\Form\Extension\Core\Type\NumberType;
  14. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  15. use Symfony\Component\Form\FormBuilderInterface;
  16. use Symfony\Component\OptionsResolver\OptionsResolver;
  17. use Symfony\Component\Form\Extension\Core\Type\DateType;
  18. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  19. use Symfony\Component\Form\Extension\Core\Type\TextType;
  20. class ContactPromoFormType extends AbstractType
  21. {
  22.     public function buildForm(FormBuilderInterface $builder, array $options)
  23.     {
  24.         $builder
  25.             ->add('nom',TextType::Class)
  26.             ->add('prenom',TextType::Class)
  27.             ->add('cp',TextType::Class,[
  28.                 'label'=>'Code postal',
  29.             ])
  30.             ->add('ville',TextType::Class)
  31.             ->add('comments',TextareaType::Class,[
  32.                 'label'=>'Commentaire',
  33.             ])
  34.             ->add('email',EmailType::Class,[
  35.                 'required'=>false
  36.             ])
  37.             ->add('tel',TextType::Class,[
  38.                 'required'=>false,
  39.                 'label'=>'Téléphone',
  40.             ])
  41.             ->add('captcha'Recaptcha3Type::class, [
  42.                 'constraints' => new Recaptcha3(),
  43.                 'action_name' => 'contact',
  44.             ])
  45.             ->add('type'ChoiceType::Class,[
  46.                 'label'=>'Vous êtes :',
  47.                 'choices' =>[
  48.                     'Particulier'=> 'Particulier',
  49.                     'PME'=> 'PME',
  50.                     'Collectivité'=> 'Collectivité'
  51.                 ],
  52.                 'choice_attr'=>['class' => 'form-check-inline'],
  53.                 'expanded'=> true
  54.             ])
  55.             ->add('sujet'ChoiceType::Class,[
  56.                 'label'=>'Je contacte Evo-Logis pour :',
  57.                 'choices' =>[
  58.                     'Demander un devis'=> 'Devis',
  59.                     'Une demande d\'information '=> 'Demande information',
  60.                     'Prendre rendez-vous avec un conseiller'=> 'RDV conseillé',
  61.                     'Être rappelé par téléphone'=> 'Rappel téléphone',
  62.                     'Obtenir des précisions sur les aides disponibles'=> 'Précision aides disponibles',
  63.                     'Autres'=> 'Autres'
  64.                 ],
  65.             ])
  66.             ->add('projet'ChoiceType::Class,[
  67.                 'label'=>'Type de projet',
  68.                 'choices' =>[
  69.                     'Panneaux solaires'=> 'Panneaux solaires',
  70.                     'Pompe à chaleur / climatisation'=> 'Pompe à chaleur / clim',
  71.                     'Isolation'=> 'Isolation',
  72.                     'Borne de recharge'=> 'Borne de recharge',
  73.                     'Autre'=> 'Autre'
  74.                 ],
  75.             ])
  76.             ->add('rappel'CheckboxType::class,[
  77.                 'label' => 'J\'accepte d\'être recontacté(e) par Evo-Logis',
  78.             ])
  79.             ->add('submit',SubmitType::class,[
  80.                 'label' => 'Envoyer',
  81.                 'attr' => ['class' => 'form-send-button'],
  82.                 'row_attr' => ['class' => 'text-center mt-4']
  83.             ])
  84.         ;
  85.     }
  86.     public function configureOptions(OptionsResolver $resolver)
  87.     {
  88.         $resolver->setDefaults([
  89.             'data_class' => Evosimul::class,
  90.             'csrf_protection' => false,
  91.             // the name of the hidden HTML field that stores the token
  92.             'csrf_field_name' => '_token',
  93.             // an arbitrary string used to generate the value of the token
  94.             // using a different string for each form improves its security
  95.             'csrf_token_id'   => 'simul'
  96.         ]);
  97.     }
  98. }