Adds a page content block to SilverStripe elemental editor
Adds a page content block to the elemental editor.
A Page content block is used to display the content from the Page model in the elemental area. This is useful for instance on pages like BlogPost's, UserForms or any page type that is added by a module.
For example, users editing blog posts want a lighter editing experience, but keep the flexibility of a block editor. This module sits in between by re-inserting the content field and moving the Elemental area to a Layout tab.
It simply renders the current page controller in an Element.
So you can access the page
$Title or any other method on that element.
PageContentBlock is created on page creation so the element always exists.
The user can simply start typing in the content field and keeps the flexibility of adding any blocks around the
The block searches for a block template closest matching the current page type.
It looks fot it's own class ancestry and adds "ContentBlock" to the end of the class name.
For example, for a
BlogPost it will search for a
BlogPostContentBlock.ss, if not found it will go down the ancestry until it will fallback to the
He will search in one folder namespaced to this module. The template folder path is
The creation of the
PageContentBlock is configurable, this module looks on the current page type for a config setting
You could also use that setting to create a default banner block on
Page: default_blocks: - XD\PageContentBlock\Models\PageContentBlock BlogPost: default_blocks: - MyFeaturedImageBlockClass - XD\PageContentBlock\Models\PageContentBlock
If you don't want the re-inserting of the content field you can set the
keep_content_field setting to
XD\PageContentBlock\Extensions\ElementalPageExtension: keep_content_field: false
If you want to disable the re-inserting of the content field on a specific class, for example the home page.
HomePage: hide_content_field: true