src/Form/Type/ContactPubFusacqExpertType.php line 62

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. /**
  3.  * @author Raymond
  4.  */
  5. namespace App\Form\Type;
  6. use App\Form\DataTransformer\MessageTransformer;
  7. use App\Form\Models\ContactPubFusacqExpert;
  8. use App\Helper\TransProvider;
  9. use App\Helper\Utils;
  10. use App\Services\TelephoneInternational;
  11. use EWZ\Bundle\RecaptchaBundle\Form\Type\EWZRecaptchaType;
  12. use Symfony\Component\Form\AbstractType;
  13. use Symfony\Component\Form\ChoiceList\ChoiceList;
  14. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  15. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  16. use Symfony\Component\Form\Extension\Core\Type\TextType;
  17. use Symfony\Component\Form\FormBuilderInterface;
  18. use Symfony\Component\OptionsResolver\OptionsResolver;
  19. class ContactPubFusacqExpertType 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.     public function __construct(TransProvider $transProviderMessageTransformer $messageTransformerTelephoneInternational $telephoneInternational)
  34.     {
  35.         $this->transProvider $transProvider;
  36.         $this->messageTransformer $messageTransformer;
  37.         $this->telephoneInternational $telephoneInternational;
  38.     }
  39.     /**
  40.      * @param FormBuilderInterface $builder
  41.      * @param array $options
  42.      * @return void
  43.      */
  44.     public function buildForm(FormBuilderInterface $builder, array $options)
  45.     {
  46.         $builder
  47.             ->add('nom'TextType::class)
  48.             ->add('prenom'TextType::class)
  49.             ->add('email'TextType::class)
  50.             ->add('telephone'TextType::class)
  51.             ->add(
  52.                 'indicatif',
  53.                 ChoiceType::class,
  54.                 [
  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' => Utils::firstValInArray($this->telephoneInternational->listIndicatifChoiceForm()) 
  61.                 ]
  62.             )
  63.             ->add('societe'TextType::class)
  64.             ->add('message',  
  65.                         TextareaType::class,
  66.                         [
  67.                             "required" => false,
  68.                             "attr" => [
  69.                                 "autocomplete" => "off",
  70.                                 "rows" => 8
  71.                             ]
  72.                         ]
  73.                 )
  74.                 ->addViewTransformer($this->messageTransformertrue)
  75.             ->add('recaptcha'EWZRecaptchaType::class,
  76.                 ['mapped' => false,'language' => $this->transProvider->getLocale()]
  77.             );
  78.     }
  79.     /**
  80.      * @param $var
  81.      * @return mixed|string
  82.      */
  83.     private function transChoice($var)
  84.     {
  85.         if (is_string($var)) {
  86.             $var $this->transProvider
  87.                 ->translate($var"""M");
  88.         }
  89.         if (is_array($var)) {
  90.             foreach ($var as $key => $item) {
  91.                 unset($var[$key]);
  92.                 $key $this->transProvider
  93.                     ->translate($key"""M");
  94.                 $var[$key] = $item;
  95.             }
  96.         }
  97.         return $var;
  98.     }
  99.     /**
  100.      * @param OptionsResolver $resolver
  101.      * @return void
  102.      */
  103.     public function configureOptions(OptionsResolver $resolver)
  104.     {
  105.         $resolver->setDefaults([
  106.             'data_class' => ContactPubFusacqExpert::class,
  107.             'csrf_protection' => false,
  108.             'allow_extra_fields' => true,
  109.         ]);
  110.     }
  111.     /**
  112.      * @return string
  113.      */
  114.     public function getBlockPrefix()
  115.     { // pour unifier avec les inputs definis dans html
  116.         return 'form';
  117.     }
  118. }