src/Form/Type/ContactFormType.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Form\Type;
  3. use Doctrine\DBAL\Types\TextType;
  4. use Symfony\Component\Form\AbstractType;
  5. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  6. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  7. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  8. use Symfony\Component\Form\Extension\Core\Type\HiddenType;
  9. use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  10. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  11. use Symfony\Component\Form\FormBuilderInterface;
  12. use Symfony\Component\OptionsResolver\OptionsResolver;
  13. use Symfony\Component\Validator\Constraints\NotBlank;
  14. class ContactFormType extends AbstractType
  15. {
  16.     /**
  17.      * {@inheritdoc}
  18.      */
  19.     public function buildForm(FormBuilderInterface $builder, array $options)
  20.     {
  21.         $data = isset($options['data']) ? $options['data'] : null;
  22.         /* Initalize function variables */
  23.         $newsletterselect = [];
  24.         // $advancedNewsletter = true;
  25.         if (isset($options['newsletterElements'])) {
  26.             /* fill newsletter array */
  27.             foreach($options['newsletterElements'] as $newsletterElement) {
  28.                 array_push($newsletterselect, array(
  29.                     $newsletterElement->getTitle() => $newsletterElement->getID())
  30.                 );
  31.             }
  32.         }
  33.         $builder
  34.             ->setAction(isset($data['route']) ? $data['route'] : '')
  35.             ->add('customerEmail'HiddenType::class, [])
  36.             ->add('companyEmail'HiddenType::class, [])
  37.             ->add('successPage'HiddenType::class, [])
  38.             ->add('errorPage'HiddenType::class, [])
  39.             ->add('requestLocale'HiddenType::class, [])
  40.             ->add('mailC'HiddenType::class, [])
  41.             ->add('makler'HiddenType::class, [])
  42.             ->add('initts'HiddenType::class, [
  43.                 'data' => time()
  44.             ])
  45.             ->add('origin'ChoiceType::class, [
  46.                 'label'    => 'mvk_doc_be_form_contact_label_origin',
  47.                 'required' => true,
  48.                 'choices'  => [
  49.                     'mvk_doc_be_form_contact_label_placeholder_option' => '',
  50.                     'mvk_doc_be_form_contact_label_origin_privatecustomer' => $data['trans']->trans('mvk_doc_be_form_contact_label_origin_privatecustomer'),
  51.                     'mvk_doc_be_form_contact_label_origin_firmcustomer' => $data['trans']->trans('mvk_doc_be_form_contact_label_origin_firmcustomer'),
  52.                     'mvk_doc_be_form_contact_label_origin_management' => $data['trans']->trans('mvk_doc_be_form_contact_label_origin_management'),
  53.                 ],
  54.                 'choice_attr' => [
  55.                     'mvk_doc_be_form_contact_label_placeholder_option' => [
  56.                         'disabled' => 'disabled',
  57.                     ],
  58.                 ],
  59.             ])
  60.             ->add('salutation'ChoiceType::class, [
  61.                 'label' => 'mvk_doc_be_form_contact_label_salutation',
  62.                 'required' => true,
  63.                 'choices' => [
  64.                     'mvk_doc_be_form_contact_label_placeholder_option' => '',
  65.                     'mvk_doc_be_form_contact_label_salutation_male'    => $data['trans']->trans('mvk_doc_be_form_contact_label_salutation_male'),
  66.                     'mvk_doc_be_form_contact_label_salutation_female'  => $data['trans']->trans('mvk_doc_be_form_contact_label_salutation_female'),
  67.                     'mvk_doc_be_form_contact_label_salutation_divers'  => $data['trans']->trans('mvk_doc_be_form_contact_label_salutation_divers'),
  68.                 ],
  69.                 'choice_attr' => [
  70.                     'mvk_doc_be_form_contact_label_placeholder_option' => [
  71.                         'disabled' => 'disabled',
  72.                     ],
  73.                 ]
  74.             ])
  75.             ->add('firstname'null, [
  76.                 'label'    => 'mvk_doc_be_form_contact_label_firstname',
  77.                 'required' => true
  78.             ])
  79.             ->add('lastname'null, [
  80.                 'label'    => 'mvk_doc_be_form_contact_label_lastname',
  81.                 'required' => true
  82.             ])
  83.             ->add('company'null, [
  84.                 'label'    => 'mvk_doc_be_form_contact_label_company',
  85.                 'required' => false
  86.             ])
  87.             ->add('email'EmailType::class, [
  88.                 'label'    => 'mvk_doc_be_form_contact_label_mail',
  89.                 'required' => true
  90.             ])
  91.             ->add('phone'null, [
  92.                 'label'    => 'mvk_doc_be_form_contact_label_phone',
  93.                 'required' => false
  94.             ])
  95.             ->add('policynumber'null, [
  96.                 'label'    => 'mvk_doc_be_form_contact_label_policynumber',
  97.                 'required' => false
  98.             ])
  99.             ->add('vermitlknummber'null, [
  100.                 'label'    => 'mvk_doc_be_form_contact_label_vermitlknummber',
  101.                 'required' => false
  102.             ])
  103.             ->add('subject'ChoiceType::class, [
  104.                 'label'    => 'mvk_doc_be_form_contact_label_subject',
  105.                 'required' => true,
  106.                 'choices'  => [
  107.                     'mvk_doc_be_form_contact_label_placeholder_option' => '',
  108.                     'mvk_doc_be_form_contact_label_subject_option1' => $data['trans']->trans('mvk_doc_be_form_contact_label_subject_option1'),
  109.                     'mvk_doc_be_form_contact_label_subject_option2' => $data['trans']->trans('mvk_doc_be_form_contact_label_subject_option2'),
  110.                     'mvk_doc_be_form_contact_label_subject_option3' => $data['trans']->trans('mvk_doc_be_form_contact_label_subject_option3'),
  111.                     'mvk_doc_be_form_contact_label_subject_option4' => $data['trans']->trans('mvk_doc_be_form_contact_label_subject_option4'),
  112.                     'mvk_doc_be_form_contact_label_subject_option5' => $data['trans']->trans('mvk_doc_be_form_contact_label_subject_option5'),
  113.                     'mvk_doc_be_form_contact_label_subject_option6' => $data['trans']->trans('mvk_doc_be_form_contact_label_subject_option6'),
  114.                 ],
  115.                 'choice_attr' => [
  116.                     'mvk_doc_be_form_contact_label_placeholder_option' => [
  117.                         'disabled' => 'disabled',
  118.                     ],
  119.                 ]
  120.             ])
  121.             ->add('message'TextareaType::class, [
  122.                 'label'    => 'mvk_doc_be_form_contact_label_message',
  123.                 'required' => true
  124.             ])
  125.             ->add('contactme'ChoiceType::class, [
  126.                 'label'    => 'mvk_doc_be_form_contact_label_contactme',
  127.                 'required' => false,
  128.                 'expanded' => true,
  129.                 'multiple' => true,
  130.                 'choices'  => [
  131.                     'mvk_doc_be_form_contact_label_contactme_phone' => 'phone',
  132.                     'mvk_doc_be_form_contact_label_contactme_mail'  => 'email'
  133.                 ]
  134.             ]);
  135.             if(isset($options['newsletterElements']))
  136.                 $builder->add('newsletterselect'ChoiceType::class, [
  137.                     'label'    => 'mvk_doc_be_form_contact_label_newsletterselect',
  138.                     'choices'  => $newsletterselect,
  139.                     'required' => true,
  140.                     'multiple' => true,
  141.                     'expanded' => true
  142.                 ]);
  143.             $builder->add('privacy'CheckboxType::class, [
  144.                 'label'       => 'mvk_doc_be_form_contact_label_privacy',
  145.                 'value'       => $data['trans']->trans('mvk_doc_be_form_partner_label_privacy_accepted_text'),
  146.                 'required'    => true,
  147.                 'constraints' => array(
  148.                     new NotBlank(array('message' => 'mvk_doc_be_form_contact_label_privacy_error')),
  149.                 ),
  150.             ])
  151.             ->add('submit'SubmitType::class, [
  152.                 'label' => 'mvk_doc_be_form_contact_label_submit',
  153.             ]);
  154.     }
  155.     public function getBlockPrefix()
  156.     {
  157.         return ''// return an empty string here
  158.     }
  159. }