namelesscoder / newsflux
提供Flux API与EXT:news的集成
Requires
- fluidtypo3/flux: ^7.4
- georgringer/news: >=2.0
- typo3/cms: >=7.6
This package is auto-updated.
Last update: 2024-09-12 04:31:03 UTC
README
为EXT:news提供Flux表单集成 - 允许在EXT:news控制器模板中定义<flux:form>
以添加/修改EXT:news使用的FlexForm。
它做什么?
本质上:将编辑器在插入EXT:news插件实例时使用的表单字段定义放入控制器渲染的模板中。当你的覆盖EXT:news模板需要默认EXT:news FlexForm中不包含的额外用户可配置选项时,这很理想 - 允许你直接在需要此类值的模板中定义这样的表单字段。
集成是通过标准Flux集成构建的,并在关键位置进行了最小化调整。它由一个类文件(约25行代码)和一行注册此类的代码组成,这是连接Flux到EXT:news所需的所有内容。
安装
此扩展只能通过composer/Packagist获取
composer require namelesscoder/newsflux
之后,执行以下操作之一:
./typo3/cli_dispatch.phpsh extbase extension:install newsflux
或在扩展管理器中激活扩展。
没有其他官方支持的安装方法。
配置
此扩展没有配置。集成仅在您实际上在覆盖EXT:news的模板中定义表单时才会触发,并且此表单将包含所有配置。
要在表单中使用TypoScript变量,这些变量必须添加到plugin.tx_news.settings
作用域 - 这也是您定义将在EXT:news模板中作为{settings}
使用的变量的地方,包括EXT:news定义之外的额外变量。
如何使用此功能
集成通过在插件实例将要渲染的模板文件和显示在“插件选项”FlexForm字段中的表单之间建立连接来实现。然后,如果模板中定义了flux:form
,Flux可以读取它。
这意味着您的集成点是您覆盖的模板,您像通常那样将其添加到EXT:news的模板路径。这也意味着,如果您需要通过该控制器操作渲染的Partial模板中的变量,则必须覆盖控制器模板。换句话说:您不能在Partial模板或Layout中定义flux:form
,它必须位于List.html
、Detail.html
等模板之一中。
定义了flux:form
后,此集成将自动将您在flux:form
中定义的表格/字段添加到EXT:news提供的数据结构。合并是通过递归替换任何现有字段来完成的,例如,如果您定义了一个存在于默认数据结构中的表格或字段,则该表格或字段将被您定义的覆盖。
示例
将flux:form
集成到List.html
模板中,允许选择CSS类名
{namespace n=GeorgRinger\News\ViewHelpers} {namespace flux=FluidTYPO3\Flux\ViewHelpers} <f:layout name="General" /> <!-- ===================== Templates/News/List.html --> <f:section name="Configuration"> <flux:form id="extended"> <flux:form.sheet name="extended" label="Extended fields"> <flux:field.select name="settings.myCssClass" label="Special CSS class" items="normal,special,awesome" /> </flux:form.sheet> </flux:form> </f:section> <f:section name="content"> <div class="{settings.myCssClass}"> ... </div> </f:section>
简要说明此模板
- 在覆盖的模板中添加了
Configuration
部分 Configuration
部分添加了一个flux:form
,该flux:form
有一个名为/标记为“Extended fields”的单个表格- 编辑器将在此字段中输入的变量可以在标准输出部分使用
可以从Flux ViewHelper API已知的所有功能中使用,并且将像在fluidcontent
和fluidpages
等扩展中一样表现。