src/Form/Type/ContactezDirectementExpertsType.php line 20

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