<?php
declare(strict_types=1);
/*
* ImmoBay - BAUR Immobilien
*
* @copyright Copyright (c) 2008-2022, 47GradNord - Agentur für Internetlösungen
* @author 47GradNord - Agentur für Internetlösungen <info@47gradnord.de>
*/
namespace App\Form;
use App\Entity\User;
use libphonenumber\PhoneNumberFormat;
use Misd\PhoneNumberBundle\Form\Type\PhoneNumberType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
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\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\Length;
use Symfony\Component\Validator\Constraints\NotBlank;
class RegisterType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('firstname', TextType::class, [
'label' => 'Vorname:',
]);
$builder->add('lastname', TextType::class, [
'label' => 'Nachname:',
]);
$builder->add('address', TextType::class, [
'label' => 'Adresse:',
]);
$builder->add('zip', TextType::class, [
'label' => 'PLZ:',
]);
$builder->add('city', TextType::class, [
'label' => 'Stadt:',
]);
$builder->add('email', EmailType::class, [
'label' => 'E-Mail-Adresse:',
]);
$builder->add('emailConfirm', EmailType::class, [
'label' => 'E-Mail-Adresse wiederholen:',
]);
$builder->add('mobile', PhoneNumberType::class, [
'label' => 'Ihre Mobil-Rufnummer:',
'default_region' => 'DE',
'format' => PhoneNumberFormat::INTERNATIONAL,
]);
$builder
->add('plainPassword', RepeatedType::class, [
'type' => PasswordType::class,
'first_options' => [
'attr' => ['autocomplete' => 'new-password'],
'constraints' => [
new NotBlank([
'message' => 'Please enter a password',
]),
new Length([
'min' => 6,
'minMessage' => 'Ihr Passwort sollte mindestens {{ limit }} Zeichen beinhalzen',
// max length allowed by Symfony for security reasons
'max' => 4096,
]),
],
'label' => 'Ihr Passwort',
],
'second_options' => [
'attr' => ['autocomplete' => 'new-password'],
'label' => 'Passwort wiederholen',
],
'invalid_message' => 'Die beiden Passwörter müssen übereinstimmen.',
// Instead of being set onto the object directly,
// this is read and encoded in the controller
'mapped' => false,
]);
$builder->add('financeStatusRegistration', ChoiceType::class, [
'label' => 'Status Finanzierung:',
'choices' => [
'keine Angaben' => 'keine Angaben',
'Die Finanzierung ist gesichert (Zusage der Bank)' => 'Die Finanzierung ist gesichert (Zusage der Bank)',
'Schriftliche Fianzierungsbestätigung liegt vor' => 'Schriftliche Fianzierungsbestätigung liegt vor',
],
]);
$builder->add('acceptTermsConditionsFinanceConfirmation', CheckboxType::class, [
'label' => 'Ich habe den Hinweis zur Finanzierungsbestätigung gelesen',
]);
$builder->add('acceptTermsConditions', CheckboxType::class, [
'label' => 'Ich akzeptiere die AGB',
]);
$builder->add('acceptPrivacy', CheckboxType::class, [
'label' => 'Ich akzeptiere die Datenschutzhinweise',
]);
$builder->add('submit', SubmitType::class, [
'label' => 'Jetzt registrieren',
]);
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
// 'data_class' => User::class,
]);
}
}