src/Form/RetirageType.php line 24

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\Retirage;
  4. use App\Entity\Images;
  5. use PhpParser\Parser\Multiple;
  6. use Symfony\Component\Form\AbstractType;
  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\TextType;
  10. use Symfony\Component\Form\Extension\Core\Type\TelType;
  11. use Symfony\Component\Form\Extension\Core\Type\RadioType;
  12. use Symfony\Component\Form\Extension\Core\Type\DateType;
  13. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  14. use Symfony\Component\Form\Extension\Core\Type\CollectionType;
  15. use Symfony\Component\Form\Extension\Core\Type\FileType;
  16. use Symfony\Component\Form\Extension\Core\Type\IntegerType;
  17. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  18. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  19. use Symfony\Component\Form\FormBuilderInterface;
  20. use Symfony\Component\OptionsResolver\OptionsResolver;
  21. class RetirageType extends AbstractType
  22. {
  23.     public function buildForm(FormBuilderInterface $builder, array $options)
  24.     {
  25.         $builder
  26.             ->add('isNumeric'ChoiceType::class, [
  27.                 'choices'  => [
  28.                     'RETIRAGES PHYSIQUE' => 0,
  29.                     'VERSION NUMÉRIQUE' => 1,
  30.                 ],
  31.                 'attr' => [
  32.                     'required'   => false,
  33.                 ],
  34.                 'expanded' => true
  35.             ])
  36.             ->add('name'TextType::class, [
  37.                 'label' => 'Nom',
  38.                 'attr' => [
  39.                     'placeholder' => 'Nom',
  40.                     'required'   => true,
  41.                     'field-name' => 'Nom'
  42.                 ]
  43.             ])
  44.             ->add('firstName'TextType::class, [
  45.                 'label' => 'Prénom',
  46.                 'attr' => [
  47.                     'placeholder' => 'Prénom',
  48.                     'required'   => true,
  49.                     'field-name' => 'Prénom'
  50.                 ]
  51.             ])
  52.             ->add('mail'EmailType::class, [
  53.                 'label' => 'Email',
  54.                 'attr' => [
  55.                     'placeholder' => 'Email',
  56.                     'required'   => true,
  57.                     'field-name' => 'Email'
  58.                 ]
  59.             ])
  60.             ->add('phone'TelType::class, [
  61.                 'label' => 'Téléphone',
  62.                 'attr' => [
  63.                     'placeholder' => 'Téléphone',
  64.                     'required'   => true,
  65.                     'field-name' => 'Téléphone'
  66.                 ]
  67.             ])
  68.             ->add('adress'TextType::class, [
  69.                 'label' => 'Adresse',
  70.                 'attr' => [
  71.                     'placeholder' => 'Adresse',
  72.                     'required'    => true,
  73.                     'type'        => 'search',
  74.                     'field-name' => 'Adresse'
  75.                 ]
  76.             ])
  77.             ->add('city'TextType::class, [
  78.                 'label' => 'Ville',
  79.                 'attr' => [
  80.                     'placeholder' => 'Ville',
  81.                     'required'    => true,
  82.                     'autocomplete' => 'address-level2',
  83.                     'field-name' => 'Ville'
  84.                 ]
  85.             ])
  86.             ->add('postalCode'TextType::class, [
  87.                 'label' => 'Code Postal',
  88.                 'attr' => [
  89.                     'placeholder' => 'Code postal',
  90.                     'required'    => true,
  91.                     'autocomplete' => 'postal-code',
  92.                     'field-name' => 'Code-postal'
  93.                 ]
  94.             ])
  95.             ->add('parc'ChoiceType::class, [
  96.                 'label' => 'Quel parc avez-vous visité ?',
  97.                 'placeholder' => '-- Séléctionner un parc --',
  98.                 'required'   => true,
  99.                 'choices'  => [
  100.                     'Zoo African-Safari' => '1',
  101.                     'Animaparc' => '2',
  102.                 ],
  103.             ])
  104.             ->add('visitDate'DateType::class, [
  105.                 'label' => 'Quelle était la date de votre visite ?',
  106.                 'widget' => 'single_text',
  107.                 'attr' => [
  108.                     'required'   => true,
  109.                     'min' => date('2022-01-01'),
  110.                     'max' => date('Y-m-d'),
  111.                 ]
  112.             ])
  113.             ->add('creationDate'DateType::class, [
  114.                 'label' => 'Date de la demande',
  115.                 'widget' => 'single_text',
  116.                 'empty_data' => '',
  117.             ])
  118.             ->add('ticketNumber'IntegerType::class, [
  119.                 'label' => 'Quel était votre numéro de ticket ? (facultatif)',
  120.                 'required'   => false,
  121.                 'attr' => [
  122.                     'rows' => 1,
  123.                     'placeholder' => 'Exemple : numéro de ticket 43',
  124.                     'max' => '100'
  125.                 ],
  126.             ])
  127.             ->add('comment'TextType::class, [
  128.                 'label' => 'Pouvez-vous nous décrire des éléments présents sur votre photo ? (facultatif)',
  129.                 'required'   => false,
  130.                 'attr' => [
  131.                     'rows' => 1,
  132.                     'placeholder' => 'Exemple : 2 personnes sur la photo, casquette rouge, tee-shirt vert',
  133.                 ],
  134.             ])
  135.             ->add('images'FileType::class, [
  136.                 'label' => 'Ajouter votre photo',
  137.                 'multiple' => true,
  138.                 'mapped' => false,
  139.                 'required' => true,
  140.                 'attr'     => [
  141.                     'accept' => 'image/*',
  142.                     'class'  => 'retirage_images',
  143.                     'id'=> "retirage_images_0",
  144.                 ],
  145.             ])
  146.             ->add('numberPhoto'CollectionType::class, [
  147.                 'label' => 'Nombre de retirages photos',
  148.                 'entry_type'   => ChoiceType::class,
  149.                 'entry_options'  => [
  150.                     'label' => 'Nombre de retirages photos',
  151.                     'choices'  => [
  152.                         '0'    => '0',
  153.                         '1'    => '1',
  154.                         '2'    => '2',
  155.                         '3'    => '3',
  156.                         '4'    => '4',
  157.                         '5'    => '5',
  158.                     ],
  159.                     'choice_attr' => [
  160.                         'class' => 'form-control'
  161.                     ],
  162.                     'data' => '0'
  163.                 ],
  164.                 'mapped' => false,
  165.                 'required' => false,
  166.                 'allow_add' => true,
  167.                 'prototype' => true,
  168.             ])
  169.             ->add('numberMagnet'CollectionType::class, [
  170.                 'label' => 'Nombre de retirages photos',
  171.                 'entry_type'   => ChoiceType::class,
  172.                 'entry_options'  => [
  173.                     'label' => 'Nombre de magnets',
  174.                     'choices'  => [
  175.                         '0'    => '0',
  176.                         '1'    => '1',
  177.                         '2'    => '2',
  178.                         '3'    => '3',
  179.                         '4'    => '4',
  180.                         '5'    => '5',
  181.                     ],
  182.                     'choice_attr' => [
  183.                         'class' => 'form-control'
  184.                     ],
  185.                     'data' => '0'
  186.                 ],
  187.                 'mapped' => false,
  188.                 'required' => false,
  189.                 'allow_add' => true,
  190.                 'prototype' => true,
  191.             ])
  192.             ->add('numberKeyChain'CollectionType::class, [
  193.                 'label' => 'Nombre de portes clés',
  194.                 'entry_type'   => ChoiceType::class,
  195.                 'entry_options'  => [
  196.                     'label' => 'Nombre de portes clés',
  197.                     'choices'  => [
  198.                         '0'    => '0',
  199.                         '1'    => '1',
  200.                         '2'    => '2',
  201.                         '3'    => '3',
  202.                         '4'    => '4',
  203.                         '5'    => '5',
  204.                     ],
  205.                     'choice_attr' => [
  206.                         'class' => 'form-control'
  207.                     ],
  208.                     'data' => '0'
  209.                 ],
  210.                 'mapped' => false,
  211.                 'required' => false,
  212.                 'allow_add' => true,
  213.                 'prototype' => true,
  214.             ])
  215.             ->add('isDone'CheckboxType::class, [
  216.                 'label' => 'La demande a été traitée',
  217.                 'required'   => false,
  218.             ])
  219.             ->add('submit'SubmitType::class, [
  220.                 'label' => 'Envoyer la demande',
  221.                 'attr'     => [
  222.                     'class' => 'form-control w-100 btn btn-golderod'
  223.                 ]
  224.             ]);
  225.     }
  226.     public function configureOptions(OptionsResolver $resolver)
  227.     {
  228.         $resolver->setDefaults([
  229.             // Configure your form options here
  230.         ]);
  231.     }
  232. }