<?php
namespace Whater\Infrastructure\UserBundle\Form\Type;
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
use Whater\Domain\User\Model\User;
use Whater\Infrastructure\UserBundle\Form\DTO\ContactFormDTO;
use EWZ\Bundle\RecaptchaBundle\Form\Type\EWZRecaptchaType;
use FOS\CKEditorBundle\Form\Type\CKEditorType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
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\TextType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\CountryType;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Validator\Constraints\File;
/**
* Class ContactFormType
*
* @package Whater\Infrastructure\UserBundle\Form
*/
class ContactFormType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('email', EmailType::class, [
'label' => 'contact_form.fields.email',
'required' => true,
'data' => $options['email'],
'constraints' => array(
new Assert\NotBlank(),
new Assert\NotNull(),
new Assert\Email()
)
])
->add('message', TextareaType::class, [
'label' => 'contact_form.fields.message',
'required' => true,
'data' => $options['message'],
'constraints' => array(
new Assert\Length([
'max' => 4000
])
)
])
->add('recaptcha', EWZRecaptchaType::class, [
'attr' => array(
'options' => array(
'theme' => 'light',
'type' => 'image',
'size' => 'normal'
)
),
'mapped' => false
]);
}
/**
* @param OptionsResolver $resolver
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => ContactFormDTO::class,
'csrf_protection' => false,
'email' => null,
'message' => null
]);
}
}