<?php
namespace App\Form;
use App\Entity\Contact;
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\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class ContactFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('name', TextType::class, [
'label' => 'Nom*',
'required' => true,
'attr' => [
'placeholder' => 'Ex: DUPONT',
'class' => 'form-control'
]
])
->add('firstname', TextType::class, [
'label' => 'Prénom',
'required' => false,
'attr' => [
'placeholder' => 'Ex: Jean',
'class' => 'form-control'
]
])
->add('job', TextType::class, [
'label' => 'Profession',
'required' => false,
'attr' => [
'placeholder' => 'Ex : Médecin généraliste',
'class' => 'form-control'
]
])
->add('phone', TextType::class, [
'label' => 'Téléphone',
'required' => false,
'attr' => [
'placeholder' => 'Ex: 06 06 06 06 06',
'class' => 'form-control'
]
])
->add('email', EmailType::class, [
'label' => 'Email*',
'required' => true,
'attr' => [
'placeholder' => 'Ex: contact@masociete.fr',
'class' => 'form-control'
]
])
->add('object', ChoiceType::class, [
'label' => 'Objet de votre demande',
'required' => true,
'choices' => [
'Sélectionnez dans la liste' => [
'Demande d’informations' => "Demande d’informations",
"Demande d’adhésion" => "Demande d’adhésion",
"Autres demandes" => "Autres demandes"
],
],
])
->add('message', TextareaType::class, [
'label' => 'Message',
'required' => true,
'attr' => [
'placeholder' => 'Saisissez votre message / vos commentaires ici',
'class' => 'form-control'
]
])
->add('confidentiality', CheckboxType::class, [
'label' => false,
'required' => true,
'mapped' => false
])
->add('captcha', Recaptcha3Type::class, [
'constraints' => new Recaptcha3(),
'action_name' => 'contact',
'locale' => 'fr',
])
;
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => Contact::class,
]);
}
}