From 17974843d96101496b87efd9b624821c04f2cb28 Mon Sep 17 00:00:00 2001 From: Simon Vieille Date: Mon, 16 May 2022 14:47:35 +0200 Subject: [PATCH] fix file block type --- src/core/Form/Site/Page/FileBlockType.php | 14 +++++++++++++- src/core/Form/Site/Page/ImageBlockType.php | 8 ++++++++ .../views/form/bootstrap_4_form_theme.html.twig | 3 ++- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/core/Form/Site/Page/FileBlockType.php b/src/core/Form/Site/Page/FileBlockType.php index 7f9de07..a2a0836 100644 --- a/src/core/Form/Site/Page/FileBlockType.php +++ b/src/core/Form/Site/Page/FileBlockType.php @@ -5,6 +5,8 @@ namespace App\Core\Form\Site\Page; use App\Core\Entity\Site\Page\FileBlock; use Symfony\Component\Form\Extension\Core\Type\FileType; use Symfony\Component\Form\FormBuilderInterface; +use Symfony\Component\Form\FormInterface; +use Symfony\Component\Form\FormView; use Symfony\Component\OptionsResolver\OptionsResolver; class FileBlockType extends TextBlockType @@ -21,11 +23,21 @@ class FileBlockType extends TextBlockType ); } + /** + * {@inheritdoc} + */ + public function buildView(FormView $view, FormInterface $form, array $options) + { + $view->vars = array_replace($view->vars, [ + 'is_image' => $options['is_image'], + ]); + } + public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults([ 'data_class' => FileBlock::class, - 'block_prefix' => 'file_block', + 'is_image' => false, 'options' => [], ]); } diff --git a/src/core/Form/Site/Page/ImageBlockType.php b/src/core/Form/Site/Page/ImageBlockType.php index df651b6..2834ea1 100644 --- a/src/core/Form/Site/Page/ImageBlockType.php +++ b/src/core/Form/Site/Page/ImageBlockType.php @@ -4,6 +4,7 @@ namespace App\Core\Form\Site\Page; use Symfony\Component\Form\Extension\Core\Type\FileType; use Symfony\Component\Form\FormBuilderInterface; +use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Validator\Constraints\Image; class ImageBlockType extends FileBlockType @@ -22,4 +23,11 @@ class ImageBlockType extends FileBlockType ], $options['options']), ); } + + public function configureOptions(OptionsResolver $resolver) + { + parent::configureOptions($resolver); + + $resolver->setDefault('is_image', true); + } } diff --git a/src/core/Resources/views/form/bootstrap_4_form_theme.html.twig b/src/core/Resources/views/form/bootstrap_4_form_theme.html.twig index f8abf5e..7761c09 100644 --- a/src/core/Resources/views/form/bootstrap_4_form_theme.html.twig +++ b/src/core/Resources/views/form/bootstrap_4_form_theme.html.twig @@ -11,9 +11,10 @@
{% set value = form.vars.data %} + {% set isImage = form.parent.vars.is_image is defined and form.parent.vars.is_image %} {% if value %} - {% if value and value.extension in ['jpeg', 'jpg', 'gif', 'png', 'svg'] %} + {% if isImage and value and value.extension in ['jpeg', 'jpg', 'gif', 'png', 'svg'] %}