briceburg / silverstripe-pageholder
从 CMS 站点树中隐藏子项,并通过版本化 GridField 进行管理。类似于 _BlogHolder_,但更灵活,适用于任何页面类型。
0.1.0
2014-12-05 19:44 UTC
Requires
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
屏幕截图
用法
- 将
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 模块的增强型即用型实现