<?php
namespace App\Form;
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\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Security\Csrf\CsrfToken;
use Symfony\Component\Validator\Constraints\File;
use Symfony\Component\Form\Extension\Core\Type\FileType;
class AnnouncementApplyType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$cabinet = $options['cabinet'];
$builder
->add('nom', TextType::class, [
'required' => true,
'label' => false,
'attr' => array(
'placeholder' => 'Nom'
)
])
->add('tel', TextType::class, [
'required' => true,
'label' => false,
'attr' => array(
'placeholder' => 'Téléphone'
)
])
->add('email', EmailType::class, [
'required' => true,
'label' => false,
'attr' => array(
'placeholder' => 'Email'
)
])
->add('message', TextareaType::class, [
'required' => true,
'label' => false,
'attr' => array(
'placeholder' => 'Message'
)
])
->add('tmpCV', FileType::class, [
'label' => false,
'required' => false,
'attr' => [
'placeholder' => 'CV'
],
'mapped' => false,
'constraints' => [
new File([
'mimeTypes' => [
"application/zip", "application/rtf", "application/pdf", "application/msword", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/vnd.ms-excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "application/vnd.ms-powerpoint", "application/vnd.openxmlformats-officedocument.presentationml.presentation", "application/vnd.oasis.opendocument.text", "image/png", "image/jpeg", "image/gif", "image/bmp", "text/plain",
]
]),
]
])
->add('tmpLettre', FileType::class, [
'label' => false,
'required' => false,
'attr' => [
'placeholder' => 'Lettre de motivation'
],
'mapped' => false,
'constraints' => [
new File([
'mimeTypes' => [
"application/zip", "application/rtf", "application/pdf", "application/msword", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/vnd.ms-excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "application/vnd.ms-powerpoint", "application/vnd.openxmlformats-officedocument.presentationml.presentation", "application/vnd.oasis.opendocument.text", "image/png", "image/jpeg", "image/gif", "image/bmp", "text/plain",
]
]),
]
])
->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 peuvent en découler",
])
->add('announcementId', HiddenType::class, [
'required' => true,
'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
]);
}
}