src/WebBundle/Form/RegistrationFormType.php line 25

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of the FOSUserBundle package.
  4.  *
  5.  * (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. namespace WebBundle\Form;
  11. use Import1CBundle\Helper\v3\ToolHelper;
  12. use Symfony\Component\Form\AbstractType;
  13. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  14. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  15. use Symfony\Component\Form\Extension\Core\Type\PasswordType;
  16. use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
  17. use Symfony\Component\Form\Extension\Core\Type\TextType;
  18. use Symfony\Component\Form\FormBuilderInterface;
  19. use Symfony\Component\OptionsResolver\OptionsResolver;
  20. use WebBundle\Helper\App;
  21. class RegistrationFormType extends AbstractType
  22. {
  23.     public function buildForm(FormBuilderInterface $builder, array $options)
  24.     {
  25.         $translator App::getTranslator();
  26.         $countries ToolHelper::getCountries();
  27.         $k App::getTranslator()->trans('country.other');
  28.         $_countrys[$k] = '999';
  29.         foreach ($countries as $country) {
  30.             $hide $country['hide'];
  31.             if ($hide != 1) {
  32.                 $key $translator->trans($country['alias']);
  33.                 $_countries[$key] = $country['id'];
  34.             }
  35.         }
  36.         ksort($_countries);
  37.         $k App::getTranslator()->trans('country.other');
  38.         $_countries array_merge([$k => 999], $_countries);
  39.         $builder
  40.             ->add('email'EmailType::class, [
  41.                 'required' => false,
  42.                 'label' => 'form.email',
  43.                 'attr' => [
  44.                     'rel' => 'tooltip',
  45.                     'title' => $translator->trans('resetting.field.fill'),
  46.                     'data-empty' => $translator->trans('user_required_email'),
  47.                     'data-error' => $translator->trans('user_required_error_email'),
  48.                 ]
  49.             ])
  50. //            ->add('username', null,[
  51. //                    'label' => 'form.username',
  52. //                    'required' => false,
  53. //                    'attr' => [
  54. //                        'rel' => 'tooltip',
  55. //                        'title' => $translator->trans('resetting.field.fill'),
  56. //                        'data-empty' => $translator->trans('user_required_username'),
  57. //                    ]
  58. //                ]
  59. //            )
  60.             ->add(
  61.                 'country',
  62.                 ChoiceType::class,
  63.                 [
  64.                     'multiple' => false,
  65.                     'expanded' => false,
  66.                     'required' => true,
  67.                     'label' => $translator->trans('user_choice_country_zip_code_delivery'),
  68.                     'choices' => $_countries,
  69.                     'attr' => [
  70.                         'class' => 'js-example-basic-single',
  71.                         'title' => '',
  72.                         'data-submit' => 1,
  73.                         'data-empty' => $translator->trans('user_required_country'),
  74.                     ],
  75.                 ]
  76.             )
  77.             ->add('zip'TextType::class, [
  78.                 'label' => $translator->trans('user_zip_code_delivery'),
  79.                 'required' => false,
  80.                 'attr' => [
  81.                     'rel' => 'tooltip',
  82.                     'data-submit' => 0,
  83.                     'placeholder' =>  $translator->trans('user_example_zip_code_delivery') . ': 123456',
  84.                     'data-empty' => $translator->trans('user_required_zip_code'),
  85.                 ]
  86.             ])
  87.             ->add('plainPassword'RepeatedType::class, [
  88.                 'label' => false,
  89.                 'type' => PasswordType::class,
  90.                 'invalid_message' => 'fos_user.password.mismatch',
  91.                 'required' => false,
  92.                 'attr' => [
  93.                     'title' => $translator->trans('resetting.field.fill'),
  94.                 ],
  95.                 'first_options' => [
  96.                     'label' => 'form.password',
  97.                     'required' => false,
  98.                     'attr' => [
  99.                         'rel' => 'tooltip',
  100.                         'data-submit' => 1,
  101.                         'title' => $translator->trans('resetting.field.fill'),
  102.                         'data-empty' => $translator->trans('user_required_pass'),
  103.                         'data-error' => $translator->trans('user_required_error_pass'),
  104.                     ]
  105.                 ],
  106.                 'second_options' => [
  107.                     'label' => 'form.password_confirmation',
  108.                     'required' => false,
  109.                     'attr' => [
  110.                         'rel' => 'tooltip',
  111.                         'data-submit' => 1,
  112.                         'title' => $translator->trans('resetting.field.fill'),
  113.                         'data-empty' => $translator->trans('user_required_pass2'),
  114.                         'data-error' => $translator->trans('user_required_error_pass2'),
  115.                     ]
  116.                 ],
  117.             ])
  118.         ;
  119.     }
  120.     public function configureOptions(OptionsResolver $resolver)
  121.     {
  122.         $resolver->setDefaults(array(
  123.             'data_class' => UserRegistrationForm::class,
  124.             'csrf_token_id' => 'registration',
  125.             // BC for SF < 2.8
  126.             'intention'  => 'registration',
  127.             'csrf_protection' => false
  128.         ));
  129.     }
  130.     // BC for SF < 2.7
  131.     public function setDefaultOptions(OptionsResolver $resolver)
  132.     {
  133.         $this->configureOptions($resolver);
  134.     }
  135.     // BC for SF < 3.0
  136.     public function getName()
  137.     {
  138.         return $this->getBlockPrefix();
  139.     }
  140.     public function getBlockPrefix()
  141.     {
  142.         return 'app_user_registration';
  143.     }
  144. }