webbuilders-group / silverstripe-gridfielditemtype
为 SilverStripe 4 的 GridField 添加类型/类选择功能
2.1.4
2023-07-28 14:42 UTC
Requires
- silverstripe/framework: ~4.5|~5.0
README
为 SilverStripe 4 的 GridField 添加类型/类选择功能。
维护者联系方式
- Ed Chipman (UndefinedOffset)
需求
- SilverStripe 4.5+
安装
- 从这里下载模块 https://github.com/webbuilders-group/silverstripe-gridfielditemtype/archive/master.zip
- 将下载的压缩文件解压到网站根目录,以便目标文件夹名为 GridFieldItemType,解压后的文件夹应包含根目录中的 _config.php 以及其他文件/文件夹
- 运行 dev/build?flush=all 以重新生成清单
- 在首次进入 CMS 并使用 GridFieldItemType 组件时,您可能需要将 ?flush=all 添加到地址的末尾,以强制重新生成模板
用法
如果您正在使用预配置的 GridFieldConfigs 之一,您必须首先删除默认的 GridFieldDetailForm 和 GridFieldAddNewButton 组件,分别用 ItemTypeDetailForm 和 AddNewItemTypeButton 替换
use WebbuildersGroup\GridField\ItemType\AddNewItemTypeButton; use SilverStripe\Forms\GridField\GridFieldConfig_RecordEditor; $config = GridFieldConfig_RecordEditor::create(10); ->removeComponentsByType('GridFieldAddNewButton::class) ->removeComponentsByType(GridFieldDetailForm::class) ->addComponent(new AddNewItemTypeButton($yourOptionsMap, 'buttons-before-left', 'empty string', 'default')) ->addComponent(new ItemTypeDetailForm());
如果您正在使用基本 GridField 配置,您需要将 AddNewItemTypeButton 和 ItemTypeDetailForm 添加到您的配置中
use WebbuildersGroup\GridField\ItemType\AddNewItemTypeButton; use SilverStripe\Forms\GridField\GridFieldConfig_RecordEditor; $config=GridFieldConfig_Base::create(10); $config->addComponent(new AddNewItemTypeButton($yourOptionsMap, 'buttons-before-left')); $config->addComponent(new ItemTypeDetailForm());
如果您正在管理一个版本化的对象,您必须使用以下方法重写项目请求类
use WebbuildersGroup\GridField\ItemType\VersionedItemTypeDetailForm_ItemRequest; $detailForm->setItemRequestClass(VersionedItemTypeDetailForm_ItemRequest::class);
注意:类型下拉菜单中的所有选项都必须是模型类的子类。