<?php
// src/Form/EnrollFormType.php
namespace App\Form;
use Pimcore\Model\WebsiteSetting;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
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\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class EnrollFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$reglementDocument = WebsiteSetting::getByName('reglement_document')?->getData()->getFullPath();
$privacyDocument = WebsiteSetting::getByName('privacy_document')?->getData()->getFullPath();
$builder
->add('firstName', TextType::class, [
'label' => 'Voornaam',
'attr' => ['placeholder' => 'Voornaam'],
])
->add('lastName', TextType::class, [
'label' => 'Achternaam',
'attr' => ['placeholder' => 'Achternaam'],
])
->add('email', EmailType::class, [
'label' => 'E-mail',
'attr' => ['placeholder' => 'E-mail'],
])
->add('confirmEmail', EmailType::class, [
'label' => 'Herhaal E-mail',
'attr' => ['placeholder' => 'E-mail'],
])
->add('gender', ChoiceType::class, [
'label' => 'Geslacht',
'choices' => [
'Man' => 'man',
'Vrouw' => 'vrouw',
'Andere' => 'andere',
],
'placeholder' => 'Selecteer een geslacht',
'attr' => ['class' => 'multiselect__input'],
])
->add('street', TextType::class, [
'label' => 'Straat',
'attr' => ['placeholder' => 'Straat'],
])
->add('streetNumber', TextType::class, [
'label' => 'Nr',
'attr' => ['placeholder' => 'Nr'],
])
->add('postalCode', TextType::class, [
'label' => 'Postcode',
'attr' => ['placeholder' => 'Postcode'],
])
->add('city', TextType::class, [
'label' => 'Plaats',
'attr' => ['placeholder' => 'Plaats'],
])
->add('phoneNumber', TextType::class, [
'label' => 'Telefoonnummer',
'attr' => ['placeholder' => 'Telefoonnummer'],
])
->add('phoneNumber2', TextType::class, [
'label' => 'Telefoonnummer 2',
'attr' => ['placeholder' => 'Telefoonnummer ivm bv. ziekte'],
])
->add('country', TextType::class, [
'label' => 'Land',
])
->add('birthdate', DateType::class, [
'label' => 'Geboortedatum',
'widget' => 'single_text',
'required' => true,
])
->add('gezondheidmedische', TextareaType::class, [
'label' => 'info Gezondheid Medische',
'required' => true,
])
->add('zeilofsurfervaring', ChoiceType::class, [
'label' => 'Info Zeil Of Surfervaring',
'choices' => [
'Veel' => 'V',
'Middelmatig' => 'M',
'Weinige' => 'W',
],
'placeholder' => 'Selecteer Jouw Ervaring',
])
->add('agreeTerms', CheckboxType::class, [
'label_html' => true,
'label' => sprintf(
'Ik ga akkoord met het <a href="%s" target="_blank">dagelijks reglement</a> en de <a href="%s" target="_blank">privacyverklaring</a>',
$reglementDocument,
$privacyDocument
),
'mapped' => false,
'required' => true,
'constraints' => [
new \Symfony\Component\Validator\Constraints\IsTrue([
'message' => 'Je moet akkoord gaan met het dagelijks reglement en de privacyverklaring om verder te gaan.',
]),
],
])
->add('submit', SubmitType::class, [
'label' => 'Submit'
]);
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
]);
}
}