横向 / 银Stripe精美表单生成器
允许您通过 config.yml 定义 CMS 表单结构
1.0.3
2021-06-11 14:05 UTC
Requires
- silverstripe/admin: ~1.0
- silverstripe/framework: >=4.2
README
标准 CMS 表单生成器在自动创建用于编辑 SilverStripe 管理中记录的表单方面做得很好,但如果您想创建复杂的表单布局(向字段组添加字段、组合字段、自定义选项卡等),那么您将不得不花费大量时间编辑 getCMSFields
。
此模块允许通过 YML 配置在 SilverStripe CMS 中生成复杂的表单布局。您可以通过配置中的某些数组定义选项卡、字段类型、字段分组和关联。
安装
您可以通过 composer 安装
composer require i-lateral/silverstripe-fancy-form-scaffolder
用法
安装后,只需将 cms_fields
配置变量添加到您的 DataObject
中,FormScaffolder
将使用 FormScaffolder 为该对象构建所有 CMS 表单(通过 Form Scaffolding 加载)。
示例配置
class Product extends DataObject
{
private static $db = [
'Name' => 'Varchar',
'StockID' => 'Varchar',
'Description' => 'HTMLText',
'Price' => 'Currency',
'ItemsPerCarton' => 'Int'
];
private static $has_one = [
'Supplier' => Factory::class
];
private static $many_many = [
'Categories' => Category::class
];
private static $cms_fields = [
'Root.Main' => [
'fields' => [
'ProductDetails' => 'h2',
'Title/StockID' => [
'type' => \SilverStripe\Forms\FieldGroup::class,
'fields' => [
'Title',
'StockID'
]
],
'Description',
'Price/Cartons' => [
'type' => 'SilverStripe\Forms\CompositeField',
'fields' => [
'BasePrice',
'ItemsPerCarton',
'SupplierID'
]
]
]
],
'Root.Components' => [
'fields' => [
'Additions'
]
]
];
}
在构造时调用字段方法
您还可以在生成器构造/检索字段时调用字段方法。
这可以用于执行任务,例如更改字段标题或在 CompositeField 上定义列数。您可以使用以下示例来完成此操作
'Title/StockID' => [
'type' => \SilverStripe\Forms\CompositeField::class,
'fields' => [
'Title',
'StockID'
],
'methods' => [
'setTitle' => '',
'setColumnCount' => 2
]
]