nblum / silverstripe-flexible-content
此包已 弃用 并不再维护。没有建议的替代包。
基于数据对象的内容页面,以获得更好的内容结构
0.2.0
2017-09-10 21:54 UTC
Requires
Suggests
- nblum/silverstripe-flexible-content-elements: Provides a basic set of content elements
This package is auto-updated.
Last update: 2023-01-15 23:15:38 UTC
README
基于数据对象的内容页面,以获得更好的内容结构
特性
- 支持草稿/发布状态
- 拖拽排序
- 复制粘贴
- 黑白名单块类型
忽略
- 不同页面上的相同内容元素
与SilverStripe Blocks的区别
Silverstripe Blocks拥有更多特性,如块集、表单等。但Flexible-Content的UI更简单,更容易为非技术用户理解和使用。
安装
composer require nblum/silverstripe-flexible-content
对于一组基本内容元素,您可以安装elements-package
composer require nblum/silverstripe-flexible-content-elements
- 在您的主题中创建一个名为
ContentPage
的页面模板,并添加以下内容$FlexibleContent
- 运行
dev/build?flush=1
- 将您喜欢的每个页面的页面类型更改为"内容页面"
配置
编辑您的config.yml文件,并添加以下行。这是默认配置,只有在需要更改时才需要
FlexibleContent: availableContentElements: false forbiddenContentElements: - ContentElement
自定义内容元素
创建一个扩展ContentElement类或任何其他现有内容元素的类。
<?php class MyTextContentElement extends \TextContentElement { private static $db = array( 'Splitview' => 'Boolean' ); public function getCMSFields() { $fields = parent::getCMSFields(); $field = new CheckboxField('MyCheckbox', 'a checkbox'); $fields->addFieldToTab('Root.Main', $field); return $fields; } }
并提供一个同名包含模板文件
<div <%if $Splitview %> class="splitview" <% end_if %> $Content </div>
更多示例,请参阅elements-package