<?php
declare(strict_types=1);
/*
* Copyright (C) Office National de Publication et de Communication - All Rights Reserved
*
* Unauthorized copying of this file, via any medium is strictly prohibited by law
* This file is proprietary and confidential
*/
namespace App\Form;
use App\Entity\OffreEmploi;
use App\Entity\OffreEmploiProfil;
use App\Entity\OffreEmploiCandidature;
use Symfony\Component\Form\AbstractType;
use Gregwar\CaptchaBundle\Type\CaptchaType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
final class OffreEmploiCandidatureType extends AbstractType
{
/** @var array */
private const CIVILITES = [
'Monsieur' => 'Mr',
'Madame' => 'Mme',
'Mademoiselle' => 'Mlle',
];
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
// ->add('libelle', ChoiceType::class, [
// 'required' => true,
// 'choices' => array_combine(OffreEmploi::LIBELLES, OffreEmploi::LIBELLES),
// ])
// ->add('libelle', EntityType::class, [
// 'class' => OffreEmploiProfil::class,
// 'choice_label' => 'libelle',
// ])
->add('libelle')
->add('civilite', ChoiceType::class, [
'choices' => self::CIVILITES,
])
->add('prenom')
->add('nom')
->add('adresse')
->add('codePostal')
->add('ville')
->add('telephone')
->add('email')
/* Honeypot : */
->add('email2', TextType::class,
[
'required' => false,
'mapped' => false,
'label' => false,
'attr' => [
'style' => 'display:none !important',
'tabindex' => '-1',
'autocomplete' => 'off',
],
])
->add('resume', FileType::class, ['required' => true])
->add('commentaire', TextareaType::class, ['required' => false])
->add('captcha', CaptchaType::class, [
'mapped' => false,
'width' => 150,
'height' => 60,
'length' => 4,
'invalid_message' => 'Merci de saisir le bon code anti-robot !',
'distortion' => false,
'background_color' => [255, 255, 255]
])
;
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => OffreEmploiCandidature::class,
]);
}
}