briceburg/silverstripe-pageholder

从 CMS 站点树中隐藏子项,并通过版本化 GridField 进行管理。类似于 _BlogHolder_,但更灵活,适用于任何页面类型。

安装: 146

依赖项: 0

建议者: 0

安全: 0

星标: 5

关注者: 1

分支: 1

开放问题: 4

类型:silverstripe-module

0.1.0 2014-12-05 19:44 UTC

This package is not auto-updated.

Last update: 2024-09-24 08:39:02 UTC


README

从 CMS 站点树中隐藏子项,并通过版本化 GridField 进行管理。类似于 BlogHolder,但更灵活,适用于任何页面类型。

功能

  • 自动将 GridField(s) 添加到扩展对象以管理子项。
  • 支持管理页面上的 CMS 历史视图。

需求

ExcludeChildren https://github.com/micschk/silverstripe-excludechildren

已测试在 SilverStripe 3.0,3.1

屏幕截图

overview

editing

用法

  • PageHolderExtension 添加到您希望用作容器页面的页面。
  • 使用 $excluded_children 静态指定要从站点树中隐藏并由 GridField 管理的子类。
class AttorneysPage extends Page {

    private static $extensions = array(
       'PageHolderExtension'
    );
    
    private static $excluded_children = array('Attorney');
 
}    
  • 刷新缓存并运行 /dev/build,现在您将在 AttorneysPage 类型下看到律师管理。

配置

放置 GridField

默认情况下,PageHolderExtension 将将 GridField(s) 添加到 Root.Main,在 元数据 字段之前。通过 $pageholder_tab$pageholder_insertBefore 静态覆盖此行为。

class AttorneysPage extends Page {
  private static $pageholder_tab = 'Root.Attorneys';
  private static $pageholder_insertBefore = 'settings';
  ...
}

或者,通过 YAML 配置

---

AttorneysPage:
  pageholder_tab: Root.Attorneys
  pageholder_insertBefore: settings

更改 GridField 标题

PageHolderExtension 从子类的复数名称推断 GridField 标题。使用 $plural_name 静态设置。

class Attorney extends ChildPage
{
    private static $plural_name = 'Attorneys';
    ...    
}

或者,通过 YAML 配置

---

Attorney:
  plural_name: Attorneys

鸣谢

PageHolder 提供了 ExcludeChildren 模块的增强型即用型实现