<?php
namespace App\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\TimeType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\NumberType;
use Symfony\Component\Form\Extension\Core\Type\TelType;
use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Validator\Constraints\File;
use Symfony\Component\Validator\Constraints\Email;
use Symfony\Component\Validator\Constraints\NotBlank;
use Symfony\Component\Validator\Constraints\Choice;
use Pimcore\Translation\Translator;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
class ContactFormType extends AbstractType
{
/**
* @inheritDoc
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', TextType::class, [
'label' => 'form.contact.name',
'required' => true,
'attr' => [
'placeholder' => 'form.contact.name'
]
])
->add('lastname', TextType::class, [
'label' => 'form.contact.lastname',
'required' => true,
'attr' => [
//'style' => 'height: 250px;'
'placeholder' => 'form.contact.lastname'
]
])
// email
->add('email', EmailType::class, [
'label' => 'form.contact.email',
'attr' => [
'placeholder' => 'form.contact.email'
],
'required' => true,
])
->add('tel', TextType::class, [
'label' => 'form.contact.phone',
'required' => false,
'attr' => [
//'style' => 'height: 250px;'
'placeholder' => 'form.contact.phone'
]
])
->add('vehicle', TextType::class, [
'label' => 'form.contact.for-vehicle',
'required' => false,
'attr' => [
'style' => 'width: 100%;',
'placeholder' => 'form.contact.for-vehicle'
]
])
->add('products', TextareaType::class, [
'label' => 'form.contact.products',
'required' => false,
'attr' => [
//'style' => 'height: 250px;'
'placeholder' => 'form.contact.products'
],
])
->add('contactMethod', ChoiceType::class, [
'choices' => [
'form.contact.contact-method.by-phone' => 'phone',
'form.contact.contact-method.by-email' => 'email',
],
'expanded' => true,
'multiple' => false,
'label' => 'form.contact.contact-method',
'label_attr' => ['class' => 'form-section-label'], // Add custom class to the label
'required' => true,
])
->add('newsletter', CheckboxType::class, [
'label' => 'form.contact.newsletter',
'required' => true,
])
->add('message', TextareaType::class, [
'label' => 'form.contact.message',
'required' => false,
'attr' => [
//'style' => 'height: 250px;'
'placeholder' => 'form.contact.message'
],
])
// vr_mandat_pdf
/*
->add('vr_mandat_pdf', FileType::class, [
'label' => 'vr_mandat_pdf',
'attr' => [
'placeholder' => '',
'class' => 'original-file-input',
'data-file' => '1',
'accept' => '.pdf'
],
'required' => false,
'error_bubbling' => false,
'constraints' => [
new File([
'maxSize' => '5000k',
'maxSizeMessage' => 'vr-mandat_pdf.toobig',
'mimeTypes' => [
'application/pdf'
],
'mimeTypesMessage' => 'vr-mandat_pdf.wrongtype'
])
]
])
*/
/* ->add('disclaimer', CheckboxType::class, [
'label' => 'disclaimer_gelesen_und_akzeptiert',
'required' => false,
'attr' => [
'class' => 'disclaimer-proof'
],
'constraints' => [
new NotBlank(['message' => 'form.contact.disclaimer.not.blank'])
]
])*/
// hidden
->add('hidden', HiddenType::class, [
'required' => false
])
// js filled
->add('filled', HiddenType::class, [
'required' => true
])
->add('submit', SubmitType::class, [
'label' => 'form.contact.submit',
]);
}
/**
* @inheritDoc
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'attr' => [
'novalidate' => 'novalidate'
],
'csrf_protection' => true,
'csrf_field_name' => '_csrf_token',
'csrf_token_id' => ''
]);
}
}