src/Form/RecommendContactFormType.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\RecommendContact;
  4. use Karser\Recaptcha3Bundle\Form\Recaptcha3Type;
  5. use Karser\Recaptcha3Bundle\Validator\Constraints\Recaptcha3;
  6. use Symfony\Component\Form\AbstractType;
  7. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  8. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  9. use Symfony\Component\Form\Extension\Core\Type\TextType;
  10. use Symfony\Component\Form\FormBuilderInterface;
  11. use Symfony\Component\OptionsResolver\OptionsResolver;
  12. class RecommendContactFormType extends AbstractType
  13. {
  14.     public function buildForm(FormBuilderInterface $builder, array $options): void
  15.     {
  16.         $builder
  17.             ->add('partnerCode'TextType::class, [
  18.                 'label' => 'Code partenaire',
  19.                 'required' => false,
  20.                 'attr' => [
  21.                     'placeholder' => "Ex: 123456"
  22.                 ]
  23.                 ])
  24.             ->add('socialReason'TextType::class, [
  25.                 'label' => 'Raison sociale',
  26.                 'required' => true,
  27.                 'attr' => [
  28.                     'placeholder' => "Ex: Jean Dupont"
  29.                 ]
  30.                 ])
  31.             ->add('name'TextType::class, [
  32.                 'label' => 'Nom',
  33.                 'required' => true,
  34.                 'attr' => [
  35.                     'placeholder' => "Ex: DUPONT"
  36.                 ]
  37.                 ])
  38.             ->add('firstname'TextType::class, [
  39.                 'label' => 'Prénom',
  40.                 'required' => false,
  41.                 'attr' => [
  42.                     'placeholder' => "Ex: Jean"
  43.                 ]
  44.                 ])
  45.             ->add('phone'TextType::class, [
  46.                 'label' => 'Téléphone',
  47.                 'required' => true,
  48.                 'attr' => [
  49.                     'placeholder' => "Ex: 06 22 22 22 22"
  50.                 ]
  51.                 ])
  52.             ->add('email'EmailType::class, [
  53.                 'label' => 'Email',
  54.                 'required' => true,
  55.                 'attr' => [
  56.                     'placeholder' => "Ex: contact@masociete.fr"
  57.                 ]
  58.                 ])
  59.             ->add('postalCode'TextType::class, [
  60.                 'label' => 'Code postal',
  61.                 'required' => false,
  62.                 'attr' => [
  63.                     'placeholder' => "Ex: 69001"
  64.                 ]
  65.                 ])
  66.             ->add('city'TextType::class, [
  67.                 'label' => 'Ville',
  68.                 'required' => false,
  69.                 'attr' => [
  70.                     'placeholder' => "Ex: Lyon"
  71.                 ]
  72.                 ])
  73.             ->add('address'TextType::class, [
  74.                 'label' => 'Adresse',
  75.                 'required' => false,
  76.                 'attr' => [
  77.                     'placeholder' => "Ex: 11 Rue de république"
  78.                 ]
  79.                 ])
  80.             ->add('confidentiality'CheckboxType::class, [
  81.                 "required" => true,
  82.                 "label" => "J'accepte la politique de confidentialité",
  83.                 "mapped" => false
  84.             ]);
  85.         if ($_ENV['APP_ENV'] !== 'dev') {
  86.             $builder->add('captcha'Recaptcha3Type::class, [
  87.                 'constraints' => new Recaptcha3(),
  88.                 'action_name' => 'contact',
  89.                 'locale' => 'fr',
  90.             ]);
  91.         }
  92.     }
  93.     public function configureOptions(OptionsResolver $resolver): void
  94.     {
  95.         $resolver->setDefaults([
  96.             'data_class' => RecommendContact::class,
  97.         ]);
  98.     }
  99. }