src/Form/ContactType.php line 74

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use Symfony\Component\Form\AbstractType;
  4. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  5. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  6. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  7. use Symfony\Component\Form\Extension\Core\Type\TextType;
  8. use Symfony\Component\Form\FormBuilderInterface;
  9. use Symfony\Component\OptionsResolver\OptionsResolver;
  10. class ContactType extends AbstractType
  11. {
  12.     public function buildForm(FormBuilderInterface $builder, array $options)
  13.     {
  14.         $builder
  15.             ->add('subject'TextType::class, [
  16.                 'label' => 'Objet',
  17.             ])
  18.             ->add('lastname'TextType::class, [
  19.                 'label' => 'Nom',
  20.                 'attr' => array(
  21.                     'placeholder' => '',
  22.                 )
  23.             ])
  24.             ->add('firstname'TextType::class, [
  25.                 'label' => 'Prénom',
  26.                 'attr' => array(
  27.                     'placeholder' => '',
  28.                 )
  29.             ])
  30.             ->add('phone'TelType::class, [
  31.                 'label' => 'Téléphone',
  32.                 'attr' => array(
  33.                     'placeholder' => '',
  34.                 )
  35.             ])
  36.             ->add('email'EmailType::class, [
  37.                 'label' => 'Adresse E-mail',
  38.                 'attr' => array(
  39.                     'placeholder' => '',
  40.                 )
  41.             ])
  42.             ->add('message'TextareaType::class, [
  43.                 'label' => 'Message',
  44.                 'attr' => array(
  45.                     'placeholder' => '',
  46.                 )
  47.             ])
  48.             ->add('confidentialite'CheckboxType::class, [
  49.                 'label' => 'En soumettant ce formulaire, j’accepte que les informations saisies soient exploitées dans le cadre de la demande de devis et de la relation commerciale qui peut en découler.',
  50.                 'label_attr' => array(
  51.                     'class' => '',
  52.                 ),
  53.                 'attr' => [
  54.                     'class' => 'form-check-input',
  55.                     'expanded' => true,
  56.                     'required' => true,
  57.                     'disabled' => false,
  58.                 ]
  59.             ])
  60.         ;
  61.     }
  62.     public function configureOptions(OptionsResolver $resolver)
  63.     {
  64.         $resolver->setDefaults([
  65.             'data-class' => Contact::class,
  66.         ]);
  67.     }
  68. }
  69. class TelType extends AbstractType
  70. {
  71.     /**
  72.      * {@inheritdoc}
  73.      */
  74.     public function configureOptions(OptionsResolver $resolver)
  75.     {
  76.         $resolver->setDefaults([
  77.             'invalid_message' => 'Please provide a valid phone number.',
  78.         ]);
  79.     }
  80.     /**
  81.      * {@inheritdoc}
  82.      */
  83.     public function getParent(): ?string
  84.     {
  85.         return TextType::class;
  86.     }
  87.     /**
  88.      * {@inheritdoc}
  89.      */
  90.     public function getBlockPrefix(): string
  91.     {
  92.         return 'tel';
  93.     }
  94. }