<?php
namespace App\Form;
use App\Entity\Evosimul;
use App\Entity\SimulSitePanneaux;
use Karser\Recaptcha3Bundle\Form\Recaptcha3Type;
use Karser\Recaptcha3Bundle\Validator\Constraints\Recaptcha3;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
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\IntegerType;
use Symfony\Component\Form\Extension\Core\Type\NumberType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
class ContactFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
/*->add('depart', ChoiceType::Class,[
'label'=>'Votre département',
'choices' =>[
'Charente'=> 16,
'Corrèze'=> 19,
'Creuse'=> 23,
'Dordogne'=> 24,
'Haute-Vienne'=> 87,
'Autre'=> 99
],
])
->add('projet', ChoiceType::Class,[
'label'=>'Type de projet',
'choices' =>[
'Isolation de combles'=> 'Isolation de combles',
'Isolation de sols'=> 'Isolation de sols',
'Inject Styrene'=> 'Inject Styrene',
'Pompe à chaleur'=> 'Pompe à chaleur',
'Panneaux solaires'=> 'Panneaux solaires',
'Borne de recharge'=> 'Borne de recharge',
'Autre'=> 'Autre'
],
])
->add('m2', IntegerType::Class,[
'required'=>true,
'label'=>'Surface du logement'
])
->add('chauf', ChoiceType::class, [
'label'=>'Type de chauffage',
'choices'=>[
'Electricité'=> 1,
'Fioul'=> 2,
'Bois'=> 3,
'Gaz de ville'=> 4,
'Gaz propane'=> 5,
'Pompe à chaleur'=> 6
],
])
->add('const', ChoiceType::class, [
'label'=>'Date de construction',
'choices'=>[
'Moins de 2 ans' => 1,
'Plus de 2 ans' => 2,
'Plus de 15 ans' => 3
],
])*/
->add('nom',TextType::Class)
->add('prenom',TextType::Class)
->add('cp',TextType::Class,[
'label'=>'Code postal',
])
->add('ville',TextType::Class)
->add('comments',TextareaType::Class,[
'label'=>'Commentaire',
])
->add('email',EmailType::Class,[
'required'=>false
])
->add('tel',TextType::Class,[
'required'=>false,
'label'=>'Téléphone',
])
->add('captcha', Recaptcha3Type::class, [
'constraints' => new Recaptcha3(),
'action_name' => 'contact',
])
->add('type', ChoiceType::Class,[
'label'=>'Vous êtes :',
'choices' =>[
'Particulier'=> 'Particulier',
'PME'=> 'PME',
'Collectivité'=> 'Collectivité'
],
'choice_attr'=>['class' => 'form-check-inline'],
'expanded'=> true
])
->add('sujet', ChoiceType::Class,[
'label'=>'Je contacte Evo-Logis pour :',
'choices' =>[
'Demander un devis'=> 'Devis',
'Une demande d\'information '=> 'Demande information',
'Prendre rendez-vous avec un conseiller'=> 'RDV conseillé',
'Être rappelé par téléphone'=> 'Rappel téléphone',
'Obtenir des précisions sur les aides disponibles'=> 'Précision aides disponibles',
'Autres'=> 'Autres'
],
])
->add('projet', ChoiceType::Class,[
'label'=>'Type de projet',
'choices' =>[
'Panneaux solaires'=> 'Panneaux solaires',
'Pompe à chaleur / climatisation'=> 'Pompe à chaleur / clim',
'Isolation'=> 'Isolation',
'Borne de recharge'=> 'Borne de recharge',
'Autre'=> 'Autre'
],
])
->add('rappel', CheckboxType::class,[
'label' => 'Je souhaite être rappelé(e)',
])
->add('submit',SubmitType::class,[
'label' => 'Envoyer',
'attr' => ['class' => 'form-send-button'],
'row_attr' => ['class' => 'text-center mt-4']
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Evosimul::class,
'csrf_protection' => false,
// the name of the hidden HTML field that stores the token
'csrf_field_name' => '_token',
// an arbitrary string used to generate the value of the token
// using a different string for each form improves its security
'csrf_token_id' => 'simul'
]);
}
}