<?php
namespace App\Form\Type;
use Karser\Recaptcha3Bundle\Form\Recaptcha3Type;
use Karser\Recaptcha3Bundle\Validator\Constraints\Recaptcha3;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TelType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class ContactType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
if ($options['service'] === TRUE) {
$builder->add('Service', ChoiceType::class, [
'label' => 'form.destinataire.label',
'attr' => [
'group' => 'group_destinataire',
'group_class' => 'col-12'
],
'choices' => [
'form.destinataire.options.sav' => 'EMAIL_CONTACT_SAV',
'form.destinataire.options.contact' => 'EMAIL_CONTACT',
],
'required' => TRUE
]);
}
$builder->add('Prenom', TextType::class, [
'label' => 'form.prenom.label',
'required' => FALSE,
'attr' => [
'group' => 'group_identite',
'group_class' => 'col-md-6'
]
])->add('Nom', TextType::class, [
'label' => 'form.nom.label',
'required' => TRUE,
'attr' => [
'group' => 'group_identite', //group pour mettre plusieurs champs sur une ligne
'group_class' => 'col-md-6' //group_class pour ajouter des classes au champ
]
])->add('Telephone', TelType::class, [
'label' => 'form.phone.label',
'required' => TRUE,
'attr' => [
'group' => 'group_contact',
'group_class' => 'col-md-3'
]
])->add('Email', EmailType::class, [
'label' => 'form.email.label',
'required' => TRUE,
'attr' => [
'group' => 'group_contact',
'group_class' => 'col-md-6'
]
])->add('code_postal', TextType::class, [
'label' => 'form.cp.label',
'required' => TRUE,
'attr' => [
'group' => 'group_contact',
'group_class' => 'col-md-3'
]
])->add('Demande', TextareaType::class, [
'label' => 'form.message.label',
'required' => FALSE
])->add('rgpd', CheckboxType::class, [
'label' => 'form.rgpd.label',
'required' => TRUE
]);
}
public function configureOptions(OptionsResolver $resolver)
{
$attr = [
'class' => 'form_material_dw'
];
$resolver->setDefault('attr', $attr);
$resolver->setDefault('translation_domain', 'form');
$resolver->setDefault('service', TRUE);
}
}