<?php
namespace App\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use Symfony\Component\Form\Extension\Core\Type\FormType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\TimeType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\TelType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
class ContactFormType extends AbstractType
{
private $params;
public function __construct(ParameterBagInterface $params)
{
$this->params = $params;
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$recipient_choices = ['' => ''] ;
$contact_recipients = array_keys($this->params->get('contact_recipients'));
$recipient_choices = array_merge($recipient_choices, array_flip($contact_recipients));
$subject_choices = array_flip($this->params->get('subject_choices'));
$builder
->add('nom', TextType::class, ['attr' => ['placeholder' => "Nom *"]])
->add('prenom', TextType::class, ['attr' => ['placeholder' => "Prénom *"]])
->add('email', EmailType::class, ['attr' => ['placeholder' => "Email *"]])
->add('phone', TelType::class, ['attr' => ['placeholder' => "Téléphone *"]])
->add('sujet', ChoiceType::class, [
'label' => 'Je souhaite',
'label_attr' => ['class' => 'col-form-label'],
'choices' => $subject_choices,
// 'attr' => ['data-placeholder' => 'Objet de votre demande *']
])
->add('message', TextareaType::class, [ 'row_attr' => ['class' => 'flex-fill'], 'attr' => ['placeholder' => "Votre Message *", 'rows' => 8]])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'csrf_protection' => true,
'csrf_field_name' => '_token',
'csrf_token_id' => 'send_message',
]);
}
}