src/Form/Type/ContactezDirectementFondsInvestissementType.php line 23

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. /**
  4.  * @author Raymond
  5.  */
  6. namespace App\Form\Type;
  7. use App\Form\DataTransformer\MessageTransformer;
  8. use App\Form\Models\ContactezDirectementFondsInvestissement;
  9. use App\Helper\TransProvider;
  10. use App\Services\TelephoneInternational;
  11. use EWZ\Bundle\RecaptchaBundle\Form\Type\EWZRecaptchaType;
  12. use Symfony\Component\Form\AbstractType;
  13. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  14. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  15. use Symfony\Component\Form\Extension\Core\Type\TextType;
  16. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  17. use Symfony\Component\Form\FormBuilderInterface;
  18. use Symfony\Component\OptionsResolver\OptionsResolver;
  19. class ContactezDirectementFondsInvestissementType extends AbstractType
  20. {
  21.     /**
  22.      * @var MessageTransformer
  23.      */
  24.     private $messageTransformer;
  25.     /**
  26.      * @var TelephoneInternational
  27.      */
  28.     private   $telephoneInternational;
  29.     /**
  30.      * @var TransProvider
  31.      */
  32.     private $transProvider;
  33.     /**
  34.      * @param TransProvider $transProvider
  35.      * @param MessageTransformer $messageTransformer
  36.      * @param TelephoneInternational $telephoneInternational
  37.      */
  38.     public function __construct(TransProvider $transProvider,MessageTransformer $messageTransformer,TelephoneInternational $telephoneInternational)
  39.     {
  40.         $this->messageTransformer $messageTransformer;
  41.         $this->telephoneInternational $telephoneInternational;
  42.         $this->transProvider $transProvider;
  43.     }
  44.     
  45.     /**
  46.      * @param FormBuilderInterface $builder
  47.      * @param array $options
  48.      * @return void
  49.      */
  50.     public function buildForm(FormBuilderInterface $builder, array $options)
  51.     {
  52.         $builder
  53.         ->add('nom'TextType::class)
  54.         ->add('prenom'TextType::class)
  55.         ->add('email'TextType::class)
  56.         ->add('telephone'TextType::class)
  57.         ->add('indicatif',ChoiceType::class, [
  58.                     'choices'  => $this->telephoneInternational->listIndicatifChoiceForm(),
  59.                    'attr' => [  'class' => 'form-control'],
  60.                     'choice_attr' => function($key$val$index) {
  61.                         return ($key == "") ? ['disabled' => 'disabled'] : [];
  62.                     },
  63.                     'data' => array_values($this->telephoneInternational->listIndicatifChoiceForm())[0]
  64.                 ]
  65.             )
  66.         ->add('societe'TextType::class)
  67.         ->add('message'
  68.                         TextareaType::class,
  69.                         [
  70.                             "required" => false,
  71.                             "attr" => [
  72.                                 "autocomplete" => "off",
  73.                                 "rows" => 8
  74.                             ]
  75.                         ]
  76.                 )
  77.                 ->addViewTransformer($this->messageTransformertrue)
  78.             ->add('recaptcha'EWZRecaptchaType::class,
  79.                 ['mapped' => false,'language' => $this->transProvider->getLocale()]
  80.             )
  81.         ->add('id_gestionnaire_fonds'HiddenType::class)
  82.         ->add('parametre'HiddenType::class)
  83.         ->add('lang'HiddenType::class)
  84.         ;
  85.     }
  86.     /**
  87.      * @param OptionsResolver $resolver
  88.      * @return void
  89.      */
  90.     public function configureOptions(OptionsResolver $resolver)
  91.     {
  92.         $resolver->setDefaults([
  93.             'data_class' => ContactezDirectementFondsInvestissement::class,
  94.             'csrf_protection' => false,
  95.             'allow_extra_fields' => true,
  96.         ]);
  97.     }
  98.     /**
  99.      * @return string
  100.      */
  101.     public function getBlockPrefix()
  102.     { // pour unifier avec les inputs definis dans html
  103.         return 'form';
  104.     }
  105. }