From b6999c0d4b22549feb33f16ed3383fe7a5db2bbf Mon Sep 17 00:00:00 2001
From: =?utf8?q?Rapha=C3=ABl=20Gertz?= <git@rapsys.eu>
Date: Mon, 11 Dec 2023 06:06:28 +0100
Subject: [PATCH] Add register form extension

---
 Form/RegisterType.php | 69 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 69 insertions(+)
 create mode 100644 Form/RegisterType.php

diff --git a/Form/RegisterType.php b/Form/RegisterType.php
new file mode 100644
index 0000000..690fefb
--- /dev/null
+++ b/Form/RegisterType.php
@@ -0,0 +1,69 @@
+<?php declare(strict_types=1);
+
+/*
+ * This file is part of the Rapsys AirBundle package.
+ *
+ * (c) Raphaël Gertz <symfony@rapsys.eu>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Rapsys\BlogBundle\Form;
+
+use Symfony\Bridge\Doctrine\Form\Type\EntityType;
+use Symfony\Component\Form\Extension\Core\Type\TelType;
+use Symfony\Component\Form\Extension\Core\Type\TextType;
+use Symfony\Component\Form\FormBuilderInterface;
+use Symfony\Component\OptionsResolver\OptionsResolver;
+
+use Rapsys\AirBundle\Entity\Country;
+
+use Rapsys\UserBundle\Form\RegisterType as BaseRegisterType;
+
+class RegisterType extends BaseRegisterType {
+	/**
+	 * {@inheritdoc}
+	 */
+	public function buildForm(FormBuilderInterface $builder, array $options): FormBuilderInterface {
+		//Call parent build form
+		$form = parent::buildForm($builder, $options);
+
+		//Add extra pseudonym field
+		if (!empty($options['pseudonym'])) {
+			$form->add('pseudonym', TextType::class, ['attr' => ['placeholder' => 'Your pseudonym'], 'required' => false]);
+		}
+
+		//Add extra slug field
+		if (!empty($options['slug'])) {
+			$form->add('slug', TextType::class, ['attr' => ['placeholder' => 'Your slug'], 'required' => false]);
+		}
+
+		//Return form
+		return $form;
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	public function configureOptions(OptionsResolver $resolver): void {
+		//Call parent configure options
+		parent::configureOptions($resolver);
+
+		//Set defaults
+		$resolver->setDefaults(['pseudonym' => true, 'slug' => false]);
+
+		//Add extra pseudonym option
+		$resolver->setAllowedTypes('pseudonym', 'boolean');
+
+		//Add extra slug option
+		$resolver->setAllowedTypes('slug', 'boolean');
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	public function getName(): string {
+		return 'rapsys_blog_register';
+	}
+}
-- 
2.41.3