From: Raphaël Gertz Date: Mon, 11 Dec 2023 05:05:46 +0000 (+0100) Subject: Add edit form extension X-Git-Tag: 0.2~31 X-Git-Url: https://git.rapsys.eu/blogbundle/commitdiff_plain/7635accc62b4136f264bacad55c3a566b5b9268f?ds=inline Add edit form extension --- diff --git a/Form/EditType.php b/Form/EditType.php new file mode 100644 index 0000000..8e0a543 --- /dev/null +++ b/Form/EditType.php @@ -0,0 +1,65 @@ + + * + * 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\Component\Form\Extension\Core\Type\TextType; +use Symfony\Component\Form\FormBuilderInterface; +use Symfony\Component\OptionsResolver\OptionsResolver; + +use Rapsys\UserBundle\Form\EditType as BaseEditType; + +class EditType extends BaseEditType { + /** + * {@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_edit'; + } +}