nswdpc / silverstripe-versioned-record-discovery
发现您的 Silverstripe 安装中的未发布记录
Requires
- silverstripe/admin: ^1.11.0
- silverstripe/reports: ^4.10.0
- silverstripe/versioned: ^1.11.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-08-29 06:12:49 UTC
README
此模块为 Silverstripe 网站管理区域中的数据轻松操作提供了向 ModelAdmin 子类中配置的受管理模型自动添加版本化列表的扩展。
目前,它提供
- 一个未发布模型管理器扩展,以提供对配置记录的未发布视图
- 基于您的选择的报告,显示每个模型类的未发布记录
这有助于解决我们内容编辑员常见的疑问:“还有什么待发布的?”
安装
使用 composer 安装
composer require nswdpc/silverstripe-versioned-record-discovery
如果您是创建 ModelAdmin 的新手,以允许轻松操作 Silverstripe 网站管理区域中的数据,ModelAdmin 文档 是一个很好的起点。
配置
报告
报告将自动显示系统中的所有版本化记录。
如果您希望为报告视图设置不同的默认模型,请在配置中设置此选项(以 Page
类为例)
--- Name: 'default-target-model' --- NSWDPC\Utilities\VersionedRecordDiscovery\UnpublishedRecordReport: default_target_model: 'Page'
ModelAdmin 的标签扩展
这稍微复杂一些,但直接在相关模型管理器中提供未发布记录视图,无需调整过滤器。
示例
以下是一个 Silverstripe 网站中有三个受管理模型的 ModelAdmin 的示例。
我们希望在第一个两个版本化记录类型的管理员中添加“未发布”记录列表,以便我们的内容编辑员可以轻松找到未发布记录。
未发布记录是在草稿阶段存在但在实时阶段不存在的记录。它可能已被发布后又取消发布。
请注意,配置的记录类必须具有 Versioned 扩展才能使此功能正常工作。
添加未发布标签配置
<?php namespace Amazing; use SilverStripe\Admin\ModelAdmin; class RecordModelAdmin extends ModelAdmin { private static $url_segment = 'records'; // Managed models for this ModelAdmin private static $managed_models = [ VersionedRecordTypeOne::class,// we want an 'unpublished' tab for this VersionedRecordTypeTwo::class,// and this OtherRecord::class, ]; /** * Add the following to your model admin configuration * Gotcha: do not use - characters in the keys! */ private static $unpublished_tabs = [ 'recordtypeoneslug' => VersionedRecordTypeOne::class, 'recordtypetwoslug' => VersionedRecordTypeTwo::class ]; }
环境配置
在 YAML 配置中应用扩展
--- Name: myrecord-versioned-tabs --- Amazing\RecordModelAdmin: extensions: - 'NSWDPC\VersionedTabs\UnpublishedTabAdminExtension'
构建
运行 dev/build
+ flush=1
,您将在相关管理屏幕中看到两个新标签。
点击时,它们将只列出未发布记录。默认配置的 $managed_models
保持不变。
许可证
维护者
在此处添加其他维护者,或包括 作者在 composer 中
错误追踪器
我们欢迎在 Github Issue 追踪器上为此项目提供错误报告、拉取请求和功能请求。
在打开新问题之前,请查阅 行为准则。
开发和贡献
如果您想为此模块做出贡献,请确保您提出拉取请求并与模块维护者进行讨论。
在完成拉取请求之前,请查阅 行为准则。