nblum/silverstripe-flexible-content

此包已 弃用 并不再维护。没有建议的替代包。

基于数据对象的内容页面,以获得更好的内容结构

安装: 46

依赖: 1

建议者: 0

安全: 0

星标: 3

关注者: 2

分支: 1

开放问题: 0

类型:silverstripe-module

0.2.0 2017-09-10 21:54 UTC

This package is auto-updated.

Last update: 2023-01-15 23:15:38 UTC


README

基于数据对象的内容页面,以获得更好的内容结构

screenshot

特性

  • 支持草稿/发布状态
  • 拖拽排序
  • 复制粘贴
  • 黑白名单块类型

忽略

  • 不同页面上的相同内容元素

与SilverStripe Blocks的区别

Silverstripe Blocks拥有更多特性,如块集、表单等。但Flexible-Content的UI更简单,更容易为非技术用户理解和使用。

安装

composer require nblum/silverstripe-flexible-content

对于一组基本内容元素,您可以安装elements-package

composer require nblum/silverstripe-flexible-content-elements
  1. 在您的主题中创建一个名为ContentPage的页面模板,并添加以下内容
        $FlexibleContent
    
  2. 运行dev/build?flush=1
  3. 将您喜欢的每个页面的页面类型更改为"内容页面"

配置

编辑您的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