src/Form/ContactType.php line 16

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\ChoiceType;
  6. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  7. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  8. use Symfony\Component\Form\Extension\Core\Type\TelType;
  9. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  10. use Symfony\Component\Form\Extension\Core\Type\TextType;
  11. use Symfony\Component\Form\FormBuilderInterface;
  12. use Symfony\Component\OptionsResolver\OptionsResolver;
  13. class ContactType extends AbstractType
  14. {
  15.     public function buildForm(FormBuilderInterface $builder, array $options): void
  16.     {
  17.         $builder
  18.             ->add('name'TextType::class, [
  19.                 'label' => 'Nom et prénom *',
  20.                 'required' => true,
  21.                 'label_attr' => [
  22.                     'class'=> 'label-form'
  23.                 ],
  24.                 'attr' => [
  25.                     'class' => 'input-form',
  26.                     'placeholder' => 'Votre nom et prénom',
  27.                 ]
  28.             ])
  29.             ->add('postalcode'TextType::class, [
  30.                 'label' => 'Code postal *',
  31.                 'required' => true,
  32.                 'label_attr' => [
  33.                     'class'=> 'label-form'
  34.                 ],
  35.                 'attr' => [
  36.                     'class' => 'input-form',
  37.                     'placeholder' => 'Votre code postal',
  38.                     'pattern' => '\d{2}[ ]?\d{3}',
  39.                 ]
  40.             ])
  41.             ->add('email'EmailType::class, [
  42.                 'label' => 'Email *',
  43.                 'required' => true,
  44.                 'label_attr' => [
  45.                     'class'=> 'label-form'
  46.                 ],
  47.                 'attr' => [
  48.                     'class' => 'input-form',
  49.                     'placeholder' => 'Votre adresse mail',
  50.                 ]
  51.             ])
  52.             ->add('phone'TelType::class, [
  53.                 'label' => 'Numéro de téléphone *',
  54.                 'label_attr' => [
  55.                     'class'=> 'label-form'
  56.                 ],
  57.                 'attr' => [
  58.                     'class' => 'input-form',
  59.                     'placeholder' => 'Votre numéro de téléphone',
  60.                     'pattern' => '^(0|\+33)[1-9]([-. ]?[0-9]{2}){2,4}$',
  61.                 ]
  62.             ])
  63.             ->add('choice'ChoiceType::class, [
  64.                 'label' => 'Prestation désirée *',
  65.                 'required' => true,
  66.                 'choices'  => [
  67.                     'Couverture' => "Couverture",
  68.                     'Isolation thermique extérieur' => "Isolation thermique extérieur",
  69.                     'Isolation des combles' => "Isolation des combles",
  70.                     'Ravalement de façade' => "Ravalement de façade",
  71.                     'Intérieur' => "Intérieur",
  72.                 ],
  73.                 'expanded'  => false,
  74.                 'multiple'  => false,
  75.                 'label_attr' => [
  76.                     'class'=> 'label-form'
  77.                 ],
  78.                 'attr' => [
  79.                     'class' => 'input-form',
  80.                     'placeholder' => 'Couverture, Isolation, Ravalement de façade,...',
  81.                 ]
  82.             ])
  83.             ->add('message'TextareaType::class, [
  84.                 'label' => 'Message *',
  85.                 'required' => true,
  86.                 'label_attr' => [
  87.                     'class'=> 'label-form'
  88.                 ],
  89.                 'attr' => [
  90.                     'class' => 'input-form',
  91.                     'placeholder' => "Description des travaux (pièce, surface, matériaux souhaité....)",
  92.                     'cols' => '30',
  93.                     'rows' => '10',
  94.                 ]
  95.             ])
  96.             ->add('dataPolicy'CheckboxType::class, [
  97.                 'label' => "En soumettant ce formulaire, j'accepte que mes informations soient utilisées exclusivement dans le cadre de ma demande et de la relation commerciale éthique et personnalisée qui pourrait en découler.",
  98.                 'required' => true,
  99.                 'mapped' => false,
  100.                 'label_attr' => [
  101.                     'class'=> 'label-form',
  102.                 ],
  103.                 'attr' => [
  104.                     'class' => 'checkbox-effect checkbox-effect-1',
  105.                 ]
  106.             ])
  107.             ->add('submit'SubmitType::class, [
  108.                 'label' => "FAIRE MA DEMANDE DE DEVIS",
  109.                 'attr'=>[
  110.                     'class' => 'btn-devis',
  111.                 ]
  112.             ])
  113.         ;
  114.     }
  115.     public function configureOptions(OptionsResolver $resolver): void
  116.     {
  117.         $resolver->setDefaults([
  118.             // Configure your form options here
  119.         ]);
  120.     }
  121. }