<?php
namespace App\Form;
use App\Entity\ContactSubjectType;
use App\Repository\ContactSubjectTypeRepository;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
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)
{
$cabinet=$options['cabinet'];
$builder
->add('subjectType', EntityType::class, [
'label' => 'Sujet',
'class' => ContactSubjectType::class,
'choice_label' => 'name',
'placeholder' => 'Sélectionnez un sujet',
'required' => true,
'query_builder' => function (ContactSubjectTypeRepository $repository) {
return $repository->createQueryBuilder('s')
->addSelect(
"CASE
WHEN s.slug = :demandeDevise THEN 0
WHEN s.slug = :prospect THEN 1
ELSE 2
END AS HIDDEN sortKey"
)
->orderBy('sortKey', 'ASC')
->addOrderBy('s.id', 'ASC')
->setParameter('demandeDevise', ContactSubjectType::DEMANDE_DEVISE)
->setParameter('prospect', ContactSubjectType::PROSPECT);
},
])
->add('name', TextType::class, [
'required' => true,
'label' => "Nom",
'attr' => array(
'placeholder' => 'Nom'
)
])
->add('phone', TextType::class, [
'required' => true,
'label' => "Téléphone",
'attr' => array(
'placeholder' => 'Téléphone'
)
])
->add('email', EmailType::class, [
'required' => true,
'label' => "Email",
'attr' => array(
'placeholder' => 'Email'
)
])
->add('message', TextareaType::class, [
'required' => true,
'label' => "Message",
'attr' => array(
'placeholder' => 'Message'
)
])
->add('rgpd', CheckboxType::class, [
'required' => true,
'label' => "En soumettant ce formulaire, j'accepte que les informations saisies soient exploitées dans le cadre de la demande de devis et de la relation commerciale qui peut en découler",
])
->add('page', HiddenType::class, [
'required' => true,
])
->add('route', HiddenType::class, [
'required' => false,
'mapped' => false,
])
->add('form_timestamp', HiddenType::class, [
'mapped' => false,
'required' => true,
])
->add('id_prescriber', HiddenType::class, [
'required' => false,
'mapped' => false,
]);
if($cabinet!=null)
if($cabinet->getParameters()->getGOOGLERECAPTCHASECRET()!=null && $cabinet->getParameters()->getGOOGLERECAPTCHASITEKEY()!=null )
{
$builder
->add('captcha', ReCaptchaType::class, [
'type' => 'invisible' // (invisible, checkbox)
]);
}
//->add('Envoyer', SubmitType::class)
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'csrf_protection' => false,
'cabinet'=>null
]);
}
}