src/Form/Type/ContactType.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Form\Type;
  3. use Karser\Recaptcha3Bundle\Form\Recaptcha3Type;
  4. use Karser\Recaptcha3Bundle\Validator\Constraints\Recaptcha3;
  5. use Symfony\Component\Form\AbstractType;
  6. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  7. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  8. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  9. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  10. use Symfony\Component\Form\Extension\Core\Type\TelType;
  11. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  12. use Symfony\Component\Form\Extension\Core\Type\TextType;
  13. use Symfony\Component\Form\FormBuilderInterface;
  14. use Symfony\Component\OptionsResolver\OptionsResolver;
  15. class ContactType extends AbstractType
  16. {
  17.     public function buildForm(FormBuilderInterface $builder, array $options): void
  18.     {
  19.         if ($options['service'] === TRUE) {
  20.             $builder->add('Service'ChoiceType::class, [
  21.                 'label'    => 'form.destinataire.label',
  22.                 'attr'     => [
  23.                     'group'       => 'group_destinataire',
  24.                     'group_class' => 'col-12'
  25.                 ],
  26.                 'choices'  => [
  27.                     'form.destinataire.options.sav'     => 'EMAIL_CONTACT_SAV',
  28.                     'form.destinataire.options.contact' => 'EMAIL_CONTACT',
  29.                 ],
  30.                 'required' => TRUE
  31.             ]);
  32.         }
  33.         $builder->add('Prenom'TextType::class, [
  34.             'label'    => 'form.prenom.label',
  35.             'required' => FALSE,
  36.             'attr'     => [
  37.                 'group'       => 'group_identite',
  38.                 'group_class' => 'col-md-6'
  39.             ]
  40.         ])->add('Nom'TextType::class, [
  41.             'label'    => 'form.nom.label',
  42.             'required' => TRUE,
  43.             'attr'     => [
  44.                 'group'       => 'group_identite'//group pour mettre plusieurs champs sur  une ligne
  45.                 'group_class' => 'col-md-6' //group_class pour ajouter des classes au champ
  46.             ]
  47.         ])->add('Telephone'TelType::class, [
  48.             'label'    => 'form.phone.label',
  49.             'required' => TRUE,
  50.             'attr'     => [
  51.                 'group'       => 'group_contact',
  52.                 'group_class' => 'col-md-3'
  53.             ]
  54.         ])->add('Email'EmailType::class, [
  55.             'label'    => 'form.email.label',
  56.             'required' => TRUE,
  57.             'attr'     => [
  58.                 'group'       => 'group_contact',
  59.                 'group_class' => 'col-md-6'
  60.             ]
  61.         ])->add('code_postal'TextType::class, [
  62.             'label'    => 'form.cp.label',
  63.             'required' => TRUE,
  64.             'attr'     => [
  65.                 'group'       => 'group_contact',
  66.                 'group_class' => 'col-md-3'
  67.             ]
  68.         ])->add('Demande'TextareaType::class, [
  69.             'label'    => 'form.message.label',
  70.             'required' => FALSE
  71.         ])->add('rgpd'CheckboxType::class, [
  72.             'label'    => 'form.rgpd.label',
  73.             'required' => TRUE
  74.         ]);
  75.     }
  76.     public function configureOptions(OptionsResolver $resolver)
  77.     {
  78.         $attr = [
  79.             'class' => 'form_material_dw'
  80.         ];
  81.         $resolver->setDefault('attr'$attr);
  82.         $resolver->setDefault('translation_domain''form');
  83.         $resolver->setDefault('service'TRUE);
  84.     }
  85. }