silverware / 模型筛选器
SilverWare 模型筛选器模块。
Requires
- php: >=5.6.0
- silverstripe/admin: ^1.0
- silverstripe/framework: ^4.0
- silverstripe/versioned: ^1.0
This package is not auto-updated.
Last update: 2024-09-13 09:29:23 UTC
README
扩展 SilverStripe v4 的 ModelAdmin
以支持筛选版本化数据对象。
内容
背景
传统上,SilverStripe 中的版本控制一直是 CMS 中 SiteTree
对象的专属领域,例如无处不在的 Page
类。随着 SilverStripe v4 的推出,版本控制现在也用于 CMS 的其他领域,例如资产。
您可以通过使用 Versioned
扩展来为自己的模型类添加版本控制。 ModelAdmin
默认支持版本化数据对象,但按状态筛选这些对象稍微有些复杂。
欢迎使用 silverware/model-filters
。安装此模块后,您的版本化数据对象将自动在 ModelAdmin
中添加状态下拉字段到筛选表单,允许用户通过其版本控制状态筛选记录。
您还可以将 StatusBadges
添加到您的 $summary_fields
以在模型管理器网格字段中显示版本控制状态
要求
安装
通过 Composer 进行安装
$ composer require silverware/model-filters
使用
安装后,ModelAdmin
中的 Versioned
数据对象将自动检测,并为每个对象在筛选表单中添加状态字段。
要显示版本对象在网格字段中的状态徽章,只需将 StatusBadges
添加到您的 $summary_fields
静态,例如
private static $summary_fields = [ ... 'StatusBadges', ... ];
状态字段定位
默认情况下,状态下拉字段将添加到每个版本对象的搜索筛选字段末尾。要控制字段显示位置,请将以下方法之一添加到您的 ModelAdmin
子类
public function getStatusFieldBefore() { return 'NameOfField'; // will appear before this field }
public function getStatusFieldAfter() { return 'NameOfField'; // will appear after this field }
您也可以通过 $this->modelClass
检测当前模型类,并根据需要回答不同的字段名
public function getStatusFieldAfter() { switch ($this->modelClass) { case FirstModel::class: return 'AfterThisField'; case SecondModel::class: return 'AfterAnotherField'; } }
状态字段标题
默认情况下,状态下拉字段的标题是“记录状态”。标题是通过在 ModelAdmin
子类上调用 getStatusFieldTitle()
获得的。通过扩展添加的方法支持 i18n
,遵循常规 SilverStripe 习惯,但您也可以在 ModelAdmin
子类中重写此方法以提供不同的字段标题
public function getStatusFieldTitle() { return 'New field title'; }
问题
请使用 GitHub 问题跟踪器 报告错误和请求功能。
贡献
我们欢迎您的贡献,以帮助使此项目变得更好。有关更多信息,请参阅 贡献。
维护者
许可
BSD-3-Clause © Praxis Interactive