<?php
namespace App\Form;
use App\Entity\Contact;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Karser\Recaptcha3Bundle\Form\Recaptcha3Type;
use Karser\Recaptcha3Bundle\Validator\Constraints\Recaptcha3;
class ContactType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$translator = $options['translator'];
$em = $options['entity_manager'];
$builder
->add('firstname', \Symfony\Component\Form\Extension\Core\Type\TextType::class,[
'label' => $translator->trans('Prénom :'),
'required' => false
])
->add('lastname', \Symfony\Component\Form\Extension\Core\Type\TextType::class,[
'label' => $translator->trans('Nom* :'),
'attr'=>[
'data-validation'=>'required'
]
])
->add('company', \Symfony\Component\Form\Extension\Core\Type\TextType::class,[
'label' => $translator->trans('Société :'),
'required' => false
])
->add('email', \Symfony\Component\Form\Extension\Core\Type\EmailType::class,[
'label' => $translator->trans('Email* :'),
'attr'=>[
'class'=>'field-email',
'data-validation'=>'email'
]
])
->add('phone', \Symfony\Component\Form\Extension\Core\Type\TextType::class,[
'label' => $translator->trans('Téléphone* :'),
'attr'=>[
'data-validation'=>'required'
]
])
->add('zipcode',\Symfony\Component\Form\Extension\Core\Type\TextType::class,[
'label' => $translator->trans('Code postal* :'),
'attr'=>[
'data-validation'=>'required'
]
])
->add(
'country',
\Symfony\Bridge\Doctrine\Form\Type\EntityType::class,
array(
'label'=>"Pays* :",
'class' => 'App:Country',
'choice_label' => 'name',
'choice_value' => 'name',
'attr'=>[
'class'=>'select-country',
'data-validation'=>'required'
],
'data' => $em->getRepository('App:Country')->find(73)
)
)
->add(
'type',
\Symfony\Component\Form\Extension\Core\Type\ChoiceType::class,
[
'label' => $translator->trans("Qui souhaitez-vous contacter ?"),
'choices' => [
'Service Commercial' => "Service Commercial",
'Service Achat' => "Service Achat",
'Service Comptabilité' => "Service Comptabilité",
'Service Après Vente SAV' => "Service Après Vente SAV",
'Webmaster' => "Webmaster",
'Délégué à la protection des données' => "Délégué à la protection des données"
],
'attr'=>[
'data-validation'=>'required'
],
]
)
->add('message', \Symfony\Component\Form\Extension\Core\Type\TextareaType::class, [
'label' => $translator->trans('Votre demande* :'),
'attr'=>[
'data-validation'=>'required'
]
])
->add('captcha', Recaptcha3Type::class, [
'constraints' => new Recaptcha3 ([
'message' => 'Votre ordinateur ou votre réseau envoie peut-être des requêtes automatisées, veuillez contacter notre équipe commerciale.',
'messageMissingValue' => 'La valeur CAPTCHA est manquante.',
]),
'action_name' => 'contact',
// 'script_nonce_csp' => $nonceCSP,
'locale' => 'fr',
])
->add('submit', \Symfony\Component\Form\Extension\Core\Type\SubmitType::class ,[
'label' => $translator->trans('Envoyer'),
'attr' => [
'class' => 'button bt-black'
]
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setRequired('translator');
$resolver->setRequired('entity_manager');
}
}