diff --git a/core/Entity/Site/Page/CollectionBlock.php b/core/Entity/Site/Page/CollectionBlock.php new file mode 100644 index 0000000..323eb90 --- /dev/null +++ b/core/Entity/Site/Page/CollectionBlock.php @@ -0,0 +1,22 @@ +add( + 'value', + CollectionType::class, + 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, + 'collection_name' => '', + 'label_add' => 'Add', + 'label_delete' => 'Delete', + 'options' => [], + ]); + } +} diff --git a/core/Resources/views/form/bootstrap_4_form_theme.html.twig b/core/Resources/views/form/bootstrap_4_form_theme.html.twig index 8f05398..ec1c129 100644 --- a/core/Resources/views/form/bootstrap_4_form_theme.html.twig +++ b/core/Resources/views/form/bootstrap_4_form_theme.html.twig @@ -36,3 +36,43 @@ {% endblock %} + +{% block collection_block_widget %} + +
+ {% for item in form.value %} +
+ {% for child in item %} + {{ form_row(child) }} + {% endfor %} +
+ +
+ + + {{ label_delete|trans }} + + +
+ {% endfor %} +
+ +
+ + + {{ label_add|trans }} + +
+ + +{% endblock %}