From: Raphaël Gertz <git@rapsys.eu>
Date: Mon, 11 Dec 2023 05:06:28 +0000 (+0100)
Subject: Add register form extension
X-Git-Tag: 0.2~30
X-Git-Url: https://git.rapsys.eu/blogbundle/commitdiff_plain/b6999c0d4b22549feb33f16ed3383fe7a5db2bbf?ds=inline

Add register form extension
---

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';
+	}
+}