fix file block type

This commit is contained in:
Simon Vieille 2022-05-16 14:47:35 +02:00
parent a715f7e474
commit 17974843d9
Signed by: deblan
GPG key ID: 579388D585F70417
3 changed files with 23 additions and 2 deletions

View file

@ -5,6 +5,8 @@ namespace App\Core\Form\Site\Page;
use App\Core\Entity\Site\Page\FileBlock; use App\Core\Entity\Site\Page\FileBlock;
use Symfony\Component\Form\Extension\Core\Type\FileType; use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormView;
use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\OptionsResolver\OptionsResolver;
class FileBlockType extends TextBlockType 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) public function configureOptions(OptionsResolver $resolver)
{ {
$resolver->setDefaults([ $resolver->setDefaults([
'data_class' => FileBlock::class, 'data_class' => FileBlock::class,
'block_prefix' => 'file_block', 'is_image' => false,
'options' => [], 'options' => [],
]); ]);
} }

View file

@ -4,6 +4,7 @@ namespace App\Core\Form\Site\Page;
use Symfony\Component\Form\Extension\Core\Type\FileType; use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\Image; use Symfony\Component\Validator\Constraints\Image;
class ImageBlockType extends FileBlockType class ImageBlockType extends FileBlockType
@ -22,4 +23,11 @@ class ImageBlockType extends FileBlockType
], $options['options']), ], $options['options']),
); );
} }
public function configureOptions(OptionsResolver $resolver)
{
parent::configureOptions($resolver);
$resolver->setDefault('is_image', true);
}
} }

View file

@ -11,9 +11,10 @@
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
{% set value = form.vars.data %} {% set value = form.vars.data %}
{% set isImage = form.parent.vars.is_image is defined and form.parent.vars.is_image %}
{% if value %} {% 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'] %}
<div class="card"> <div class="card">
<div class="card-img-top bg-tiles text-center"> <div class="card-img-top bg-tiles text-center">
<a href="{{ asset(value.pathname) }}" target="_blank"> <a href="{{ asset(value.pathname) }}" target="_blank">