src/Form/EnrollFormType.php line 19

Open in your IDE?
  1. <?php
  2. // src/Form/EnrollFormType.php
  3. namespace App\Form;
  4. use Pimcore\Model\WebsiteSetting;
  5. use Symfony\Component\Form\AbstractType;
  6. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  7. use Symfony\Component\Form\Extension\Core\Type\DateType;
  8. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  9. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  10. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  11. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  12. use Symfony\Component\Form\Extension\Core\Type\TextType;
  13. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  14. use Symfony\Component\Form\FormBuilderInterface;
  15. use Symfony\Component\OptionsResolver\OptionsResolver;
  16. class EnrollFormType extends AbstractType
  17. {
  18.     public function buildForm(FormBuilderInterface $builder, array $options)
  19.     {
  20.         $reglementDocument WebsiteSetting::getByName('reglement_document')?->getData()->getFullPath();
  21.         $privacyDocument WebsiteSetting::getByName('privacy_document')?->getData()->getFullPath();
  22.         $builder
  23.             ->add('firstName'TextType::class, [
  24.                 'label' => 'Voornaam',
  25.                 'attr' => ['placeholder' => 'Voornaam'],
  26.             ])
  27.             ->add('lastName'TextType::class, [
  28.                 'label' => 'Achternaam',
  29.                 'attr' => ['placeholder' => 'Achternaam'],
  30.             ])
  31.             ->add('email'EmailType::class, [
  32.                 'label' => 'E-mail',
  33.                 'attr' => ['placeholder' => 'E-mail'],
  34.             ])
  35.             ->add('confirmEmail'EmailType::class, [
  36.                 'label' => 'Herhaal E-mail',
  37.                 'attr' => ['placeholder' => 'E-mail'],
  38.             ])
  39.             ->add('gender'ChoiceType::class, [
  40.                 'label' => 'Geslacht',
  41.                 'choices' => [
  42.                     'Man' => 'man',
  43.                     'Vrouw' => 'vrouw',
  44.                     'Andere' => 'andere',
  45.                 ],
  46.                 'placeholder' => 'Selecteer een geslacht',
  47.                 'attr' => ['class' => 'multiselect__input'],
  48.             ])
  49.             ->add('street'TextType::class, [
  50.                 'label' => 'Straat',
  51.                 'attr' => ['placeholder' => 'Straat'],
  52.             ])
  53.             ->add('streetNumber'TextType::class, [
  54.                 'label' => 'Nr',
  55.                 'attr' => ['placeholder' => 'Nr'],
  56.             ])
  57.             ->add('postalCode'TextType::class, [
  58.                 'label' => 'Postcode',
  59.                 'attr' => ['placeholder' => 'Postcode'],
  60.             ])
  61.             ->add('city'TextType::class, [
  62.                 'label' => 'Plaats',
  63.                 'attr' => ['placeholder' => 'Plaats'],
  64.             ])
  65.             ->add('phoneNumber'TextType::class, [
  66.                 'label' => 'Telefoonnummer',
  67.                 'attr' => ['placeholder' => 'Telefoonnummer'],
  68.             ])
  69.             ->add('phoneNumber2'TextType::class, [
  70.                 'label' => 'Telefoonnummer 2',
  71.                 'attr' => ['placeholder' => 'Telefoonnummer ivm bv. ziekte'],
  72.             ])
  73.             ->add('country'TextType::class, [
  74.                 'label' => 'Land',
  75.             ])
  76.             ->add('birthdate'DateType::class, [
  77.                 'label' => 'Geboortedatum',
  78.                 'widget' => 'single_text',
  79.                 'required' => true,
  80.             ])
  81.             ->add('gezondheidmedische'TextareaType::class, [
  82.                 'label' => 'info Gezondheid Medische',
  83.                 'required' => true,
  84.             ])
  85.             ->add('zeilofsurfervaring'ChoiceType::class, [
  86.                 'label' => 'Info Zeil Of Surfervaring',
  87.                 'choices' => [
  88.                     'Veel' => 'V',
  89.                     'Middelmatig' => 'M',
  90.                     'Weinige' => 'W',
  91.                 ],
  92.                 'placeholder' => 'Selecteer Jouw Ervaring',
  93.             ])
  94.             ->add('agreeTerms'CheckboxType::class, [
  95.                 'label_html' => true,
  96.                 'label' => sprintf(
  97.                     'Ik ga akkoord met het <a href="%s" target="_blank">dagelijks reglement</a> en de <a href="%s" target="_blank">privacyverklaring</a>',
  98.                     $reglementDocument,
  99.                     $privacyDocument
  100.                 ),
  101.                 'mapped' => false,
  102.                 'required' => true,
  103.                 'constraints' => [
  104.                     new \Symfony\Component\Validator\Constraints\IsTrue([
  105.                         'message' => 'Je moet akkoord gaan met het dagelijks reglement en de privacyverklaring om verder te gaan.',
  106.                     ]),
  107.                 ],
  108.             ])
  109.             ->add('submit'SubmitType::class, [
  110.                 'label' => 'Submit'
  111.             ]);
  112.     }
  113.     public function configureOptions(OptionsResolver $resolver)
  114.     {
  115.         $resolver->setDefaults([
  116.         ]);
  117.     }
  118. }