src/Form/Type/ContactType.php line 15

  1. <?php
  2. namespace App\Form\Type;
  3. use App\Entity\Contact;
  4. use Symfony\Component\Form\AbstractType;
  5. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  6. use Symfony\Component\Form\Extension\Core\Type\FileType;
  7. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  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\ChoiceType;
  11. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  12. use FOS\CKEditorBundle\Form\Type\CKEditorType;
  13. use Symfony\Component\Form\FormBuilderInterface;
  14. use Symfony\Component\OptionsResolver\OptionsResolver;
  15. use Gregwar\CaptchaBundle\Type\CaptchaType;
  16. use Symfony\UX\Dropzone\Form\DropzoneType;
  17. class ContactType extends AbstractType
  18. {
  19.     public function buildForm(FormBuilderInterface $builder, array $options): void
  20.     {
  21.         #invalid-feedback d-block
  22.         $builder
  23.             ->add('pseudo'TextType::class, [
  24.                 'label' => 'Pseudo'
  25.             ])
  26.             ->add('title'TextType::class, [
  27.                 'label' => 'Titre du message'
  28.             ])
  29.             ->add('emailFrom'EmailType::class, [
  30.                 'label' => 'Email afin de vous répondre'
  31.             ])
  32.             ->add('contribution'ChoiceType::class, [
  33.                 'multiple' => false,
  34.                 'expanded' => true,
  35.                 'label' => false,
  36.                 'choices' => [
  37.                     'J’ai une question - je souhaite vous contacter' => false,
  38.                     'Je souhaite contribuer ou proposer du contenu' => true
  39.                 ],
  40.                 'data' => false,
  41.             ])
  42.             ->add('content'HiddenType::class)
  43.             ->add('contentContact'TextareaType::class, [
  44.                 'attr' => ['rows' => '8'],
  45.                 'label' => 'Contenu de votre message',
  46.                 'mapped' => false,
  47.                 'required' => false     
  48.             ])
  49.             ->add('type'ChoiceType::class, [
  50.                 'label' => 'Catégorie de la contribution',
  51.                 'choices'  => [
  52.                     'Info' => 'info',
  53.                     'Tuto' => 'tuto',
  54.                    'Jurisprudence' => 'jurisprudence',
  55.                     'Autre' => 'autre',
  56.                 ],
  57.                 'help' => 'Si tu ne sais pas dans quoi ranger ta contribution, pas de soucis, on s’en chargera !'
  58.             ])  
  59.             ->add('contentContribution'CKEditorType::class, [
  60.                 'label' => 'Contenu de votre contribution',
  61.                 'mapped' => false
  62.             ])
  63.             
  64.             ->add('pdfFile'DropzoneType::class, [
  65.                 'label' => 'Joindre un document',
  66.                 'required' => false,
  67.                 #'allow_delete' => false,
  68.                 #'download_uri' => false,
  69.                 'attr' => [
  70.                     'data-controller' => 'symfony--ux-dropzone--dropzone',
  71.                 ],
  72.             ])
  73.             ->add('captcha'CaptchaType::class)
  74.             ->add('Envoyer'SubmitType::class)
  75.         ;
  76.     }
  77.     public function configureOptions(OptionsResolver $resolver): void
  78.     {
  79.         $resolver->setDefaults([
  80.             'data_class' => Contact::class,
  81.         ]);
  82.     }
  83. }