xddesigners / page-content-block
为SilverStripe elemental编辑器添加页面内容块
Requires
- dnadesign/silverstripe-elemental: >=4.0
- silverstripe/cms: >=4.0
- silverstripe/framework: >=4.0
README
为elemental编辑器添加页面内容块。
这是什么
页面内容块用于在elemental区域显示页面模型中的内容。这在例如博客文章、用户表单或任何模块添加的页面类型中非常有用。
为谁存在
例如,编辑博客文章的用户希望有一个更轻量级的编辑体验,但保持块编辑器的灵活性。此模块通过重新插入内容字段并将Elemental区域移至布局选项卡来实现这一点。
它做什么
它简单地以Element的形式渲染当前页面控制器。因此,您可以访问页面 $Content
、$Title
或该元素上的任何其他方法。《PageContentBlock》在页面创建时创建,因此元素始终存在。用户可以简单地开始在内容字段中键入,并在 PageContentBlock
周围添加任何块,保持灵活性。
模板化
该块搜索与当前页面类型最接近的块模板。它查找其自身类继承关系,并将“ContentBlock”添加到类名称的末尾。例如,对于 BlogPost
,它将搜索 BlogPostContentBlock.ss
,如果找不到,则将遍历继承关系,直到回退到 PageContentBlock.ss
。它将在一个与此模块命名空间化的文件夹中搜索。模板文件夹路径是 templates/XD/PageContentBlock/Models/YourClassContentBlock.ss
。
配置
PageContentBlock
的创建是可配置的,此模块在当前页面类型中查找配置设置 default_blocks
。您还可以使用该设置在 BlogPosts
上创建默认横幅块。
Page: default_blocks: - XD\PageContentBlock\Models\PageContentBlock BlogPost: default_blocks: - MyFeaturedImageBlockClass - XD\PageContentBlock\Models\PageContentBlock
如果您不想重新插入内容字段,可以将 keep_content_field
设置为 false
。
XD\PageContentBlock\Extensions\ElementalPageExtension: keep_content_field: false
如果您想禁用在特定类(例如主页)上重新插入内容字段,可以设置。
HomePage: hide_content_field: true