src/WebBundle/Form/RegistrationFormType.php line 27

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 Import1CBundle\Helper\SelectHelper;
  21. use WebBundle\Entity\User;
  22. use WebBundle\Helper\App;
  23. class RegistrationFormType extends AbstractType
  24. {
  25.     public function buildForm(FormBuilderInterface $builder, array $options)
  26.     {
  27.         $translator =App::getTranslator();
  28.         $countries ToolHelper::getCountries();
  29.         $_countries = [];
  30.         foreach ($countries as $country){
  31.             $hide $country['hide'];
  32.             if($hide != 1){
  33.                 $key $translator->trans($country['alias']);
  34.                 $_countries[$key] = $country['id'];
  35.             }
  36.         }
  37.         ksort($_countries);
  38.         $k App::getTranslator()->trans('country.other');
  39.         $_countries array_merge([$k => 999], $_countries);
  40.         $builder
  41.             ->add('email'EmailType::class, [
  42.                 'required' => false,
  43.                 'label' => 'form.email',
  44.                 'attr' => [
  45.                     'rel' => 'tooltip',
  46.                     'title' => $translator->trans('resetting.field.fill'),
  47.                     'data-empty' => $translator->trans('user_required_email'),
  48.                     'data-error' => $translator->trans('user_required_error_email'),
  49.                 ]
  50.             ])
  51. //            ->add('username', null,[
  52. //                    'label' => 'form.username',
  53. //                    'required' => false,
  54. //                    'attr' => [
  55. //                        'rel' => 'tooltip',
  56. //                        'title' => $translator->trans('resetting.field.fill'),
  57. //                        'data-empty' => $translator->trans('user_required_username'),
  58. //                    ]
  59. //                ]
  60. //            )
  61.             ->add('country'ChoiceType::class,
  62.                 [
  63.                     'multiple' => false,
  64.                     'expanded' => false,
  65.                     'required' => true,
  66.                     'label' => $translator->trans('user_choice_country_zip_code_delivery'),
  67.                     'choices' => $_countries,
  68.                     'attr' => [
  69.                         'class' => 'js-example-basic-single',
  70.                         'title' => '',
  71.                         'data-submit' => 1,
  72.                         'data-empty' => $translator->trans('user_required_country'),
  73.                     ],
  74.                 ])
  75.             ->add('zip'TextType::class,[
  76.                 'label' => $translator->trans('user_zip_code_delivery'),
  77.                 'required' => false,
  78.                 'attr' => [
  79.                     'rel' => 'tooltip',
  80.                     'data-submit' => 0,
  81.                     'placeholder' =>  $translator->trans('user_example_zip_code_delivery') . ': 123456',
  82.                     'data-empty' => $translator->trans('user_required_zip_code'),
  83.                 ]
  84.             ])
  85.             ->add('plainPassword'RepeatedType::class,[
  86.                 'label' => false,
  87.                 'type' => PasswordType::class,
  88.                 'invalid_message' => 'fos_user.password.mismatch',
  89.                 'required' => false,
  90.                 'attr' => [
  91.                     'title' => $translator->trans('resetting.field.fill'),
  92.                 ],
  93.                 'first_options' => [
  94.                     'label' => 'form.password',
  95.                     'required' => false,
  96.                     'attr' => [
  97.                         'rel' => 'tooltip',
  98.                         'data-submit' => 1,
  99.                         'title' => $translator->trans('resetting.field.fill'),
  100.                         'data-empty' => $translator->trans('user_required_pass'),
  101.                         'data-error' => $translator->trans('user_required_error_pass'),
  102.                     ]
  103.                 ],
  104.                 'second_options' => [
  105.                     'label' => 'form.password_confirmation',
  106.                     'required' => false,
  107.                     'attr' => [
  108.                         'rel' => 'tooltip',
  109.                         'data-submit' => 1,
  110.                         'title' => $translator->trans('resetting.field.fill'),
  111.                         'data-empty' => $translator->trans('user_required_pass2'),
  112.                         'data-error' => $translator->trans('user_required_error_pass2'),
  113.                     ]
  114.                 ],
  115.             ])
  116.         ;
  117.     }
  118.     public function configureOptions(OptionsResolver $resolver)
  119.     {
  120.         $resolver->setDefaults(array(
  121.             'data_class' => User::class,
  122.             'csrf_token_id' => 'registration',
  123.             // BC for SF < 2.8
  124.             'intention'  => 'registration',
  125.             'csrf_protection' => false
  126.         ));
  127.     }
  128.     // BC for SF < 2.7
  129.     public function setDefaultOptions(OptionsResolver $resolver)
  130.     {
  131.         $this->configureOptions($resolver);
  132.     }
  133.     // BC for SF < 3.0
  134.     public function getName()
  135.     {
  136.         return $this->getBlockPrefix();
  137.     }
  138.     public function getBlockPrefix()
  139.     {
  140.         return 'app_user_registration';
  141.     }
  142. }