kanti/flux

该软件包已被弃用且不再维护。作者建议使用 fluidtypo3/flux 软件包。

来自FluidTYPO3的Flux软件包

安装: 690

依赖项: 0

建议者: 0

安全: 0

星星: 0

关注者: 2

分支: 188

类型:typo3-cms-extension

9.1.0 2018-10-02 18:29 UTC

README

68747470733a2f2f666c7569647479706f332e6f72672f6c6f676f2e7376677a

Flux: Fluid FlexForms

Build Status Coverage Status Documentation Build Status Coverage Status

Flux是TYPO3 FlexForms的替代API - 提供Fluid、PHP和TypoScript的接口

Flux允许您在Fluid中构建和修改表单

<flux:form id="myform">
  <flux:field.input name="myField" label="My special field" />
</flux:form>

在PHP中

$form = \FluidTYPO3\Flux\Form::create();
$form->setName('myform');
$form->createField('Input', 'myField', 'My special field');

在纯数组中(以允许JSON等来源)

$json = '{name: "myform", fields: [{"name": "myField", "type": "Input"}]}';
$asArray = json_decode($json, JSON_OBJECT_AS_ARRAY);
$form = \FluidTYPO3\Flux\Form::create($asArray);

以及在TypoScript中

plugin.tx_flux.providers {
  myextension_myplugin {
    tableName = tt_content
    fieldName = pi_flexform
    listType = myextension_myplugin
    extensionKey = Vendor.MyPlugin
    form {
      name = myform
      fields {
        myField {
          type = Input
          label = My special field
        }
      }
    }
  }
}

所有这些都会创建同一个表单,其中包含一个名为myField的单个输入字段,其标签值为My special field。最后一个示例显示了嵌套在Provider(另一个Flux概念)中的form结构,该Provider将相关的tt_content插件记录类型的pi_flexform字段连接到表单。

Flux功能亮点

  • 为内容元素添加了新功能 - 将内容网格(遵循backend_layout方法)添加到任何内容/插件。
  • 多个API以访问相同的功能,使用相同的命名和嵌套风格,从许多不同的上下文。
  • 多个API抽象级别 - 当您需要更多控制时,可以在代码中使用较低的API抽象级别。
  • 灵活地替换单个部分:模板、控制器操作等。
  • 操作现有表单的属性 - 改变字段标签、默认值、添加字段、工作表等。
  • 数据类型转换 - 定义所需的目标类型,让Extbase的TypeConverters处理转换。
  • 允许自定义组件 - 与任何其他Flux组件相同的API支持。
  • 特别为与Fluid高级集成提供几个Utility类型类。

已知问题

  • 请注意,确保您的PHP/HTTP配置正确,以接受相当大数量的输入字段。当嵌套部分/对象时,提交的字段数量会急剧增加。要考虑的php.ini配置设置是max_input_vars。如果此数字太小,则TYPO3后端(作为PHP)将拒绝提交后端编辑表单,并以“无效的CSRF令牌”消息退出,因为POST数据不完整(截断)。

文档