syntro/silverstripe-bootstrap-forms

Silverstripe 模块,用于在前端添加表单字段

安装次数: 1,505

依赖者: 0

建议者: 0

安全性: 0

星标: 0

关注者: 1

分支: 0

开放问题: 2

类型:silverstripe-vendormodule

1.0.4 2024-02-03 13:47 UTC

README

🎭 Tests codecov Dependabot phpstan composer Packagist Version

Silverstripe 模块,简化在前端添加 Bootstrap 表单的过程。

简介

使用 Silverstripe 提供的表单字段创建与 Bootstrap CSS 框架兼容的表单并不容易。Silverstripe 内部使用的表单字段最初并不是为了用作前端字段,这意味着该框架对如何在管理界面中渲染这些字段以及强加这些标准给前端字段有着强烈的观点。然而,这些标准与 Bootstrap,尤其是 Bootstrap v5,兼容性不佳。

为了解决这个问题,本模块引入了一套新的字段,它们的行为与原始字段相似,但以 Bootstrap 兼容的方式渲染。它们还添加了一个单独的 holderClasses 属性,允许通过间距类轻松格式化表单。

安装

要安装此模块,请运行以下命令

composer require syntro/silverstripe-bootstrap-forms

用法

快速入门

目前可用的字段如下

use Syntro\SilverstripeBootstrapForms\Forms\CheckboxField;
use Syntro\SilverstripeBootstrapForms\Forms\CheckboxSetField;
use Syntro\SilverstripeBootstrapForms\Forms\DropdownField;
use Syntro\SilverstripeBootstrapForms\Forms\EmailField;
use Syntro\SilverstripeBootstrapForms\Forms\OptionsetField;
use Syntro\SilverstripeBootstrapForms\Forms\TextareaField;
use Syntro\SilverstripeBootstrapForms\Forms\TextField;

// does not have the HolderClass trait
use Syntro\SilverstripeBootstrapForms\Forms\FieldGroup;

所有字段都有额外的一组方法,类似于 extraClass 方法

  • holderClass()
  • setupDefaultHolderClasses()
  • hasHolderClass($class)
  • addHolderClass($class)
  • removeHolderClass($class)

它们的行为与它们的 xxxExtraClass 对应物完全相同,但它们控制外层(holder)div 上的类。

示例

要创建一个看起来好的多列表单,只需添加正确的类

FieldGroup::create(
    TextField::create('Name', 'Your Name')->addHolderClass('col'),
    EmailField::create('Email', 'Email')->addHolderClass('col'),
    DropdownField::create(
        'choose',
        'Choose an option',
        [
            'yes' => 'Yes',
            'no' => 'No'
        ]
    )->addHolderClass('col'),
)->addExtraClass('row row-cols-1 row-cols-md-3'),

文档

暂无文档

贡献

有关更多信息,请参阅 CONTRIBUTION.md