src/Form/ContactType.php line 12

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\Contact;
  4. use Symfony\Component\Form\AbstractType;
  5. use Symfony\Component\Form\FormBuilderInterface;
  6. use Symfony\Component\OptionsResolver\OptionsResolver;
  7. use Karser\Recaptcha3Bundle\Form\Recaptcha3Type;
  8. use Karser\Recaptcha3Bundle\Validator\Constraints\Recaptcha3;
  9. class ContactType extends AbstractType
  10. {
  11. public function buildForm(FormBuilderInterface $builder, array $options)
  12. {
  13. $translator = $options['translator'];
  14. $em = $options['entity_manager'];
  15. $builder
  16. ->add('firstname', \Symfony\Component\Form\Extension\Core\Type\TextType::class,[
  17. 'label' => $translator->trans('Prénom :'),
  18. 'required' => false
  19. ])
  20. ->add('lastname', \Symfony\Component\Form\Extension\Core\Type\TextType::class,[
  21. 'label' => $translator->trans('Nom* :'),
  22. 'attr'=>[
  23. 'data-validation'=>'required'
  24. ]
  25. ])
  26. ->add('company', \Symfony\Component\Form\Extension\Core\Type\TextType::class,[
  27. 'label' => $translator->trans('Société :'),
  28. 'required' => false
  29. ])
  30. ->add('email', \Symfony\Component\Form\Extension\Core\Type\EmailType::class,[
  31. 'label' => $translator->trans('Email* :'),
  32. 'attr'=>[
  33. 'class'=>'field-email',
  34. 'data-validation'=>'email'
  35. ]
  36. ])
  37. ->add('phone', \Symfony\Component\Form\Extension\Core\Type\TextType::class,[
  38. 'label' => $translator->trans('Téléphone* :'),
  39. 'attr'=>[
  40. 'data-validation'=>'required'
  41. ]
  42. ])
  43. ->add('zipcode',\Symfony\Component\Form\Extension\Core\Type\TextType::class,[
  44. 'label' => $translator->trans('Code postal* :'),
  45. 'attr'=>[
  46. 'data-validation'=>'required'
  47. ]
  48. ])
  49. ->add(
  50. 'country',
  51. \Symfony\Bridge\Doctrine\Form\Type\EntityType::class,
  52. array(
  53. 'label'=>"Pays* :",
  54. 'class' => 'App:Country',
  55. 'choice_label' => 'name',
  56. 'choice_value' => 'name',
  57. 'attr'=>[
  58. 'class'=>'select-country',
  59. 'data-validation'=>'required'
  60. ],
  61. 'data' => $em->getRepository('App:Country')->find(73)
  62. )
  63. )
  64. ->add(
  65. 'type',
  66. \Symfony\Component\Form\Extension\Core\Type\ChoiceType::class,
  67. [
  68. 'label' => $translator->trans("Qui souhaitez-vous contacter ?"),
  69. 'choices' => [
  70. 'Service Commercial' => "Service Commercial",
  71. 'Service Achat' => "Service Achat",
  72. 'Service Comptabilité' => "Service Comptabilité",
  73. 'Service Après Vente SAV' => "Service Après Vente SAV",
  74. 'Webmaster' => "Webmaster",
  75. 'Délégué à la protection des données' => "Délégué à la protection des données"
  76. ],
  77. 'attr'=>[
  78. 'data-validation'=>'required'
  79. ],
  80. ]
  81. )
  82. ->add('message', \Symfony\Component\Form\Extension\Core\Type\TextareaType::class, [
  83. 'label' => $translator->trans('Votre demande* :'),
  84. 'attr'=>[
  85. 'data-validation'=>'required'
  86. ]
  87. ])
  88. ->add('captcha', Recaptcha3Type::class, [
  89. 'constraints' => new Recaptcha3 ([
  90. 'message' => 'Votre ordinateur ou votre réseau envoie peut-être des requêtes automatisées, veuillez contacter notre équipe commerciale.',
  91. 'messageMissingValue' => 'La valeur CAPTCHA est manquante.',
  92. ]),
  93. 'action_name' => 'contact',
  94. // 'script_nonce_csp' => $nonceCSP,
  95. 'locale' => 'fr',
  96. ])
  97. ->add('submit', \Symfony\Component\Form\Extension\Core\Type\SubmitType::class ,[
  98. 'label' => $translator->trans('Envoyer'),
  99. 'attr' => [
  100. 'class' => 'button bt-black'
  101. ]
  102. ])
  103. ;
  104. }
  105. public function configureOptions(OptionsResolver $resolver)
  106. {
  107. $resolver->setRequired('translator');
  108. $resolver->setRequired('entity_manager');
  109. }
  110. }