<?php
/*
* This file is part of the FOSUserBundle package.
*
* (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace WebBundle\Form;
use Import1CBundle\Helper\v3\ToolHelper;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\EmailType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\RepeatedType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Import1CBundle\Helper\SelectHelper;
use WebBundle\Entity\User;
use WebBundle\Helper\App;
class RegistrationFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$translator =App::getTranslator();
$countries = ToolHelper::getCountries();
$_countries = [];
foreach ($countries as $country){
$hide = $country['hide'];
if($hide != 1){
$key = $translator->trans($country['alias']);
$_countries[$key] = $country['id'];
}
}
ksort($_countries);
$k = App::getTranslator()->trans('country.other');
$_countries = array_merge([$k => 999], $_countries);
$builder
->add('email', EmailType::class, [
'required' => false,
'label' => 'form.email',
'attr' => [
'rel' => 'tooltip',
'title' => $translator->trans('resetting.field.fill'),
'data-empty' => $translator->trans('user_required_email'),
'data-error' => $translator->trans('user_required_error_email'),
]
])
// ->add('username', null,[
// 'label' => 'form.username',
// 'required' => false,
// 'attr' => [
// 'rel' => 'tooltip',
// 'title' => $translator->trans('resetting.field.fill'),
// 'data-empty' => $translator->trans('user_required_username'),
// ]
// ]
// )
->add('country', ChoiceType::class,
[
'multiple' => false,
'expanded' => false,
'required' => true,
'label' => $translator->trans('user_choice_country_zip_code_delivery'),
'choices' => $_countries,
'attr' => [
'class' => 'js-example-basic-single',
'title' => '',
'data-submit' => 1,
'data-empty' => $translator->trans('user_required_country'),
],
])
->add('zip', TextType::class,[
'label' => $translator->trans('user_zip_code_delivery'),
'required' => false,
'attr' => [
'rel' => 'tooltip',
'data-submit' => 0,
'placeholder' => $translator->trans('user_example_zip_code_delivery') . ': 123456',
'data-empty' => $translator->trans('user_required_zip_code'),
]
])
->add('plainPassword', RepeatedType::class,[
'label' => false,
'type' => PasswordType::class,
'invalid_message' => 'fos_user.password.mismatch',
'required' => false,
'attr' => [
'title' => $translator->trans('resetting.field.fill'),
],
'first_options' => [
'label' => 'form.password',
'required' => false,
'attr' => [
'rel' => 'tooltip',
'data-submit' => 1,
'title' => $translator->trans('resetting.field.fill'),
'data-empty' => $translator->trans('user_required_pass'),
'data-error' => $translator->trans('user_required_error_pass'),
]
],
'second_options' => [
'label' => 'form.password_confirmation',
'required' => false,
'attr' => [
'rel' => 'tooltip',
'data-submit' => 1,
'title' => $translator->trans('resetting.field.fill'),
'data-empty' => $translator->trans('user_required_pass2'),
'data-error' => $translator->trans('user_required_error_pass2'),
]
],
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => User::class,
'csrf_token_id' => 'registration',
// BC for SF < 2.8
'intention' => 'registration',
'csrf_protection' => false
));
}
// BC for SF < 2.7
public function setDefaultOptions(OptionsResolver $resolver)
{
$this->configureOptions($resolver);
}
// BC for SF < 3.0
public function getName()
{
return $this->getBlockPrefix();
}
public function getBlockPrefix()
{
return 'app_user_registration';
}
}