diff --git a/core/Entity/Site/Page/ChoiceBlock.php b/core/Entity/Site/Page/ChoiceBlock.php new file mode 100644 index 0000000..69f5b38 --- /dev/null +++ b/core/Entity/Site/Page/ChoiceBlock.php @@ -0,0 +1,21 @@ + + */ +class PageEditEvent extends Event +{ + const FORM_INIT_EVENT = 'page_edit_event.form_init'; + + protected Page $page; + protected array $pageBuilderOptions = []; + + public function __construct(Page $page) + { + $this->page = $page; + } + + public function getPage() + { + return $this->page; + } + + public function getPageBuilderOptions(): array + { + return $this->pageBuilderOptions; + } + + public function addPageBuilderOptions(array $options): self + { + $this->pageBuilderOptions = array_merge( + $this->pageBuilderOptions, + $options + ); + + return $this; + } +} diff --git a/core/Form/Site/Page/ChoiceBlockType.php b/core/Form/Site/Page/ChoiceBlockType.php new file mode 100644 index 0000000..536b7b9 --- /dev/null +++ b/core/Form/Site/Page/ChoiceBlockType.php @@ -0,0 +1,32 @@ +add( + 'value', + ChoiceType::class, + array_merge([ + 'required' => false, + 'label' => false, + ], $options['options']), + ); + } + + public function configureOptions(OptionsResolver $resolver) + { + $resolver->setDefaults([ + 'data_class' => ChoiceBlock::class, + 'options' => [], + ]); + } +} diff --git a/core/Form/Site/Page/FilePickerBlockType.php b/core/Form/Site/Page/FilePickerBlockType.php new file mode 100644 index 0000000..85a7ed9 --- /dev/null +++ b/core/Form/Site/Page/FilePickerBlockType.php @@ -0,0 +1,33 @@ +add( + 'value', + FilePickerType::class, + array_merge([ + 'required' => false, + 'label' => false, + ], $options['options']), + ); + } + + public function configureOptions(OptionsResolver $resolver) + { + $resolver->setDefaults([ + 'data_class' => Block::class, + 'block_prefix' => 'file_picker_page_block', + 'options' => [], + ]); + } +}