evanshunt / lumberjack-sort-and-summary
当仅允许一个子类时,使用 $summary_fields, $default_sort 和 $plural_name 对 LumberJack 进行排序和总结
v2.0.0
2024-02-02 17:54 UTC
Requires
This package is auto-updated.
Last update: 2024-08-31 00:35:40 UTC
README
银Stripe Lumberjack 模块的常见用例是 holder/page 模式。在这种情况下,容器页面将只包含一种类型的子页面。
由于 Lumberjack 构建得足够灵活,可以容纳多种类型的子页面,因此当只允许一种页面类型时,可能会缺失一些预期功能。例如
- 使用子页面类型的默认排序顺序
- 使用定义的摘要字段列出页面
- 使用子类型名称而不是 "子页面" 标记列表
此模块在定义了父容器页面的单个子类型时应用上述功能。
感谢 @bcairns 为此模块的代码和文档所做的贡献
安装
composer require evanshunt/lumberjack-sort-and-summary
使用
为父页面定义 $allowed_children
。 (可以在 yml 配置或模型中完成)
namespace MyNamespace; use Page; class StoryLandingPage extends Page { private static $allowed_children = [ StoryDetailsPage::class ]; }
为子页面定义 $plural_name
、$summary_fields
和 $default_sort
。
namespace MyNamespace; use Page; class StoryDetailsPage extends Page { private static $table_name = 'StoryDetails'; private static $singular_name = 'Story'; private static $plural_name = 'Stories'; private static $can_be_root = false; private static $default_parent = StoryLandingPage::class; private static $db = [ 'PublicationDate' => 'Date', ]; private static $summary_fields = [ 'Title', 'PublicationDate' ]; private static $default_sort = 'PublicationDate DESC'; }
安装和配置 Lumberjack
MyNamespace\StoryDetailsPage: show_in_sitetree: false MyNamespace\StoryLandingPage: extensions: - SilverStripe\Lumberjack\Model\Lumberjack
配置
不需要额外的配置。此模块在 Lumberjack 中覆盖了方法,以检查父类中的 $allowed_children
的值,如果只定义了一个类,它将根据子类中的配置值应用更改。