src/Form/ContactType.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use Symfony\Component\Form\AbstractType;
  4. use Symfony\Component\Form\FormBuilderInterface;
  5. use Symfony\Component\OptionsResolver\OptionsResolver;
  6. use Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface;
  7. // use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
  8. // use Symfony\Component\Form\Extension\Core\Type\FormType;
  9. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  10. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  11. use Symfony\Component\Form\Extension\Core\Type\TextType;
  12. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  13. use Gregwar\CaptchaBundle\Type\CaptchaType;
  14. class ContactType extends AbstractType
  15. {
  16.     /**
  17.     * @var AuthorizationCheckerInterface
  18.     */
  19.     private $authorizationChecker=null;
  20.     public function __construct(AuthorizationCheckerInterface $authorizationChecker)
  21.     {
  22.           $this->authorizationChecker=$authorizationChecker;
  23.     }
  24.     public function buildForm(FormBuilderInterface $builder, array $options)
  25.     {
  26.         $builder
  27.             ->add('subject',   TextType::class, [
  28.                 'label' => 'Subject'
  29.             ])
  30.             ->add('name',     TextType::class, [
  31.                 'label' => 'Votre nom'
  32.             ])
  33.             ->add('email',    EmailType::class, [
  34.                 'label_format' => 'Votre email'
  35.             ])
  36.             ->add('message'TextareaType::class, [
  37.                 'label_format' => 'Message'
  38.             ])
  39.         ;
  40.         if(!$this->authorizationChecker->isGranted('ROLE_ADMIN')) {
  41.             $builder->add('captcha'CaptchaType::class, [
  42.                 'label' => "Anti-robot. Saisissez le texte de l'image..."
  43.             ]);
  44.         }
  45.         $builder->add('envoi'SubmitType::class, [
  46.             'attr' => [
  47.                 'class' => 'btn-icig'
  48.             ],
  49.             'label' => "Proposer"
  50.         ]);
  51.     }
  52.     public function configureOptions(OptionsResolver $resolver)
  53.     {
  54.         $resolver->setDefaults([
  55.             // Configure your form options here
  56.         ]);
  57.     }
  58. }