src/Infrastructure/UserBundle/Form/Type/ContactFormType.php line 31

Open in your IDE?
  1. <?php
  2. namespace Whater\Infrastructure\UserBundle\Form\Type;
  3. use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
  4. use Whater\Domain\User\Model\User;
  5. use Whater\Infrastructure\UserBundle\Form\DTO\ContactFormDTO;
  6. use EWZ\Bundle\RecaptchaBundle\Form\Type\EWZRecaptchaType;
  7. use FOS\CKEditorBundle\Form\Type\CKEditorType;
  8. use Symfony\Component\Form\AbstractType;
  9. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  10. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  11. use Symfony\Component\Form\Extension\Core\Type\CollectionType;
  12. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  13. use Symfony\Component\Form\Extension\Core\Type\PasswordType;
  14. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  15. use Symfony\Component\Form\FormBuilderInterface;
  16. use Symfony\Component\OptionsResolver\OptionsResolver;
  17. use Symfony\Component\Form\Extension\Core\Type\TextType;
  18. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  19. use Symfony\Component\Form\Extension\Core\Type\CountryType;
  20. use Symfony\Component\Validator\Constraints as Assert;
  21. use Symfony\Component\Form\Extension\Core\Type\FileType;
  22. use Symfony\Component\Validator\Constraints\File;
  23. /**
  24. * Class ContactFormType
  25. *
  26. * @package Whater\Infrastructure\UserBundle\Form
  27. */
  28. class ContactFormType extends AbstractType
  29. {
  30. /**
  31. * @param FormBuilderInterface $builder
  32. * @param array $options
  33. */
  34. public function buildForm(FormBuilderInterface $builder, array $options)
  35. {
  36. $builder
  37. ->add('email', EmailType::class, [
  38. 'label' => 'contact_form.fields.email',
  39. 'required' => true,
  40. 'data' => $options['email'],
  41. 'constraints' => array(
  42. new Assert\NotBlank(),
  43. new Assert\NotNull(),
  44. new Assert\Email()
  45. )
  46. ])
  47. ->add('message', TextareaType::class, [
  48. 'label' => 'contact_form.fields.message',
  49. 'required' => true,
  50. 'data' => $options['message'],
  51. 'constraints' => array(
  52. new Assert\Length([
  53. 'max' => 4000
  54. ])
  55. )
  56. ])
  57. ->add('recaptcha', EWZRecaptchaType::class, [
  58. 'attr' => array(
  59. 'options' => array(
  60. 'theme' => 'light',
  61. 'type' => 'image',
  62. 'size' => 'normal'
  63. )
  64. ),
  65. 'mapped' => false
  66. ]);
  67. }
  68. /**
  69. * @param OptionsResolver $resolver
  70. */
  71. public function configureOptions(OptionsResolver $resolver)
  72. {
  73. $resolver->setDefaults([
  74. 'data_class' => ContactFormDTO::class,
  75. 'csrf_protection' => false,
  76. 'email' => null,
  77. 'message' => null
  78. ]);
  79. }
  80. }