webbuilders-group/silverstripe-gridfielditemtype

为 SilverStripe 4 的 GridField 添加类型/类选择功能

2.1.4 2023-07-28 14:42 UTC

This package is auto-updated.

Last update: 2024-08-28 17:15:51 UTC


README

为 SilverStripe 4 的 GridField 添加类型/类选择功能。

维护者联系方式

需求

  • 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);

注意:类型下拉菜单中的所有选项都必须是模型类的子类。