deblan.io-murph/core/Form/Site/Page/CollectionBlockType.php

51 lines
1.4 KiB
PHP
Raw Normal View History

2021-05-16 19:55:23 +02:00
<?php
namespace App\Core\Form\Site\Page;
use App\Core\Entity\Site\Page\Block;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
2021-06-16 18:41:05 +02:00
use Symfony\Component\Form\FormBuilderInterface;
2021-05-16 19:55:23 +02:00
use Symfony\Component\Form\FormInterface;
2021-06-16 18:41:05 +02:00
use Symfony\Component\Form\FormView;
use Symfony\Component\OptionsResolver\OptionsResolver;
2021-05-16 19:55:23 +02:00
class CollectionBlockType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add(
'value',
2021-09-09 13:57:54 +02:00
$options['collection_type'],
2021-05-16 19:55:23 +02:00
array_merge([
'required' => false,
'label' => false,
], $options['options']),
);
}
/**
* {@inheritdoc}
*/
public function buildView(FormView $view, FormInterface $form, array $options)
{
$view->vars = array_replace($view->vars, [
'collection_name' => $options['collection_name'],
'label_add' => $options['label_add'],
'label_delete' => $options['label_delete'],
]);
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Block::class,
2021-09-09 13:57:54 +02:00
'collection_type' => CollectionType::class,
2021-05-16 19:55:23 +02:00
'collection_name' => '',
'label_add' => 'Add',
'label_delete' => 'Delete',
'options' => [],
]);
}
}