<?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 ContactFrontFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('name', TextType::class, [
'label' => 'Nom',
'required' => true,
'attr' => [
'placeholder' => "Ex: DUPONT"
]
])
->add('firstname', TextType::class, [
'label' => 'Prénom',
'required' => true,
'attr' => [
'placeholder' => "Ex: Jean"
]
])
->add('society', TextType::class, [
'label' => 'Société',
'attr' => [
'placeholder' => "Raison sociale"
]
])
->add('phone', TextType::class, [
'label' => 'Téléphone',
'required' => false,
'attr' => [
'placeholder' => "Ex: 06 22 22 22 22"
]
])
->add('email', EmailType::class, [
'label' => 'Email',
'required' => true,
'attr' => [
'placeholder' => "Ex: contact@masociete.fr"
]
])
->add('category', ChoiceType::class, [
"label" => "Votre demande concerne",
'choices' => [
'Assurance maritime' => 'Assurance maritime',
'Assurance fluviale' => 'Assurance fluviale',
'Un service +' => 'Un service +',
'Autre demande' => 'Autre demande',
],
"required" => true,
])
->add('message', TextareaType::class, [
'label' => 'Message',
'required' => true,
'attr' => [
'placeholder' => "Saisissez votre message / vos commentaires ici",
'rows' => 10
]
])
->add('confidentiality', CheckboxType::class, [
"label" => "J'accepte la politique de confidentialité",
"required" => true,
"mapped" => false,
]);
if ($_ENV['APP_ENV'] !== 'dev') {
$builder->add('captcha', Recaptcha3Type::class, [
'constraints' => new Recaptcha3(),
'action_name' => 'contact',
'locale' => 'fr',
]);
}
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => Contact::class,
]);
}
}