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等扩展中一样表现。