src/Form/ContactFormType.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. // Voir https://symfony.com/doc/current/reference/forms/types.html
  4. use Symfony\Component\Form\AbstractType;
  5. use Symfony\Component\Form\FormBuilderInterface;
  6. use Symfony\Component\Form\Extension\Core\Type\TextType;
  7. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  8. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  9. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  10. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  11. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  12. use Symfony\Component\Form\Extension\Core\Type\FileType;
  13. use Symfony\Component\Form\Extension\Core\Type\BirthdayType;
  14. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  15. use Symfony\Component\OptionsResolver\OptionsResolver;
  16. use Symfony\Component\Translation\TranslatorInterface;
  17. class ContactFormType extends AbstractType
  18. {
  19.     /**
  20.      * @inheritDoc
  21.      */
  22.     public function buildForm(FormBuilderInterface $builder, array $options)
  23.     {
  24.         /*
  25.          * Si vous créez un formulaire en "dur" dans votre vue (ex: demo-contact-sans-formbuilder.html.php),
  26.          * alors vous pouvez laisser les lignes ci-dessous en commentaire.
  27.          * Si vous créez un formulaire avec le formbuilder dans votre vue (ex: demo-contact-avec-formbuilder.html.php),
  28.          * alors décommentez les lignes ci-dessous et créez vos propres champs.
  29.          */
  30.             $builder
  31.             ->add('lastname'TextType::class, [
  32.                 'label' => false,
  33.                 'required' => true,
  34.                 'attr'        => [
  35.                     'class' => 'uk-form-controls uk-input input-style',
  36.                     'placeholder' => 'Nom'
  37.                 ]
  38.            ])
  39.            ->add('firstname'TextType::class, [
  40.             'label' => false,
  41.             'required' => true,
  42.             'attr'        => [
  43.                 'class' => 'uk-form-controls uk-input input-style',
  44.                 'placeholder' => 'Prénom'
  45.             ]
  46.             ])
  47.             ->add('email'EmailType::class, [
  48.                 'label' => false,
  49.                 'required'    => true,
  50.                 'attr'        => [
  51.                     'class' => 'uk-form-controls uk-input input-style',
  52.                     'placeholder' => 'Email'
  53.                 ]
  54.             ])
  55.             ->add('choixmultiple'ChoiceType::class, [
  56.                 'label' => 'ConcoursQuestion',
  57.                 'multiple' => false,
  58.                 'expanded' => true,
  59.                 'required'    => true,
  60.                 'choices' => [
  61.                     'ConcoursReponse1' => 'Red Panthers',
  62.                     'ConcoursReponse2' => 'Blue Devils',
  63.                     'ConcoursReponse3' => 'Red Devils'
  64.                 ]
  65.             ])
  66.             ->add('message'TextareaType::class, [
  67.                 'label'    => 'Selon vous, combien de personnes rempliront ce formulaire ?',
  68.                 'required' => true,
  69.                 'attr'     => [
  70.                     'class' => 'uk-textarea textarea-style',
  71.                     'placeholder' => 'Votre message'
  72.                 ]
  73.             ])
  74.             ->add('reglement'CheckboxType::class, [
  75.                 'label'    => true,
  76.                 'required' => true,
  77.                 'attr' => ['class' => 'uk-checkbox checkbox-style'],
  78.             ])
  79.             ->add('gdpr'CheckboxType::class, [
  80.                 'label'    => true,
  81.                 'required' => true,
  82.                 'attr' => ['class' => 'uk-checkbox checkbox-style'],
  83.             ])
  84.             ->add('preuvePaiement'FileType::class, [
  85.                 'label'    => 'Veuillez insérer votre preuve d\'achat',
  86.                 'required' => true,
  87.                 'attr' => [
  88.                     'class' => 'dropify',
  89.                     'data-allowed-file-extensions' => 'jpg jpeg png pdf hec heic heif'
  90.                 ],
  91.             ])
  92.             ->add('recaptcha'HiddenType::class, [
  93.                 'attr'     => [
  94.                     'class' => 'gs-recaptcha'
  95.                 ],
  96.                 'required' => false
  97.             ])
  98.             ->add('submit'SubmitType::class, [
  99.                 'label' => 'Participer',
  100.                 'attr'        => [
  101.                     'class' => 'uk-button uk-button-tertiary'
  102.                 ]
  103.             ]);
  104.     }
  105.     /**
  106.      * @inheritDoc
  107.      */
  108.     public function configureOptions(OptionsResolver $resolver)
  109.     {
  110.     }
  111. }