Typo3 Fluid - 以动态形式添加计数器
Typo3 Fluid - Add Counter in dynamic Form
简单地说,我只想有一个从 0 开始的计数器,每当我的 for each 中的 if 条件为真时,它就会递增。
我知道如何在 javascript 中实现这一目标 ..
countervar 应该留在标签内的 Entry 前面。
<f:for each="{house.offers}" as="offer" key="index">
<f:if condition="{offer.offerCategory} == {category}">
<f:then>
<div class="form-element-wrap removable">
<label class="label" for="{index}"> **Entry** for {category.title}</label>
<f:form.hidden name="house[offers][{index}][__identity]" value="{offer.uid}" />
<f:form.textfield name="house[offers][{index}][title]" id="{index}" class="text form-element" value="{offer.title}" />
<button class="remove-button" role="button" aria-label="delete-button"></button>
</div>
</f:then>
<f:else>
<f:form.hidden name="house[offers][{index}][__identity]" value="{offer.uid}" />
</f:else>
</f:if>
</f:for>
在 TYPO3v8 和更新版本中流畅 supports variables which are set at runtime when rendering a template. It also supports basic math 所以你应该能够通过这种方式实现你需要的:
<f:variable name="counter">0</f:variable>
<f:for ...>
<f:if ...>
<f:variable name="counter">{counter + 1}</f:variable>
{counter}
</f:if>
</f:for>
在 TYPO3v8 之前,您可以使用 EXT:vhs
,它为您提供了一个视图助手来设置 Fluid 变量。
可以通过 TypoScript 进行计算,然后:
<v:variable.set name="counter"><f:cObject typoscriptObjectPath="lib.calc" data="{counter} + 1" /></v:variable.set>
lib.calc = TEXT
lib.calc.current = 1
lib.calc.prioriCalc = 1
如前所述,f:variable 仅在 version 8 之后有效。
在此之前,它需要具有以下命名空间的 vhs 扩展:
{namespace v=FluidTYPO3\Vhs\ViewHelpers}
然后就可以使用变量了。
<v:variable.set name="counter" value="0" />
{counter}
简单地说,我只想有一个从 0 开始的计数器,每当我的 for each 中的 if 条件为真时,它就会递增。 我知道如何在 javascript 中实现这一目标 .. countervar 应该留在标签内的 Entry 前面。
<f:for each="{house.offers}" as="offer" key="index">
<f:if condition="{offer.offerCategory} == {category}">
<f:then>
<div class="form-element-wrap removable">
<label class="label" for="{index}"> **Entry** for {category.title}</label>
<f:form.hidden name="house[offers][{index}][__identity]" value="{offer.uid}" />
<f:form.textfield name="house[offers][{index}][title]" id="{index}" class="text form-element" value="{offer.title}" />
<button class="remove-button" role="button" aria-label="delete-button"></button>
</div>
</f:then>
<f:else>
<f:form.hidden name="house[offers][{index}][__identity]" value="{offer.uid}" />
</f:else>
</f:if>
</f:for>
在 TYPO3v8 和更新版本中流畅 supports variables which are set at runtime when rendering a template. It also supports basic math 所以你应该能够通过这种方式实现你需要的:
<f:variable name="counter">0</f:variable>
<f:for ...>
<f:if ...>
<f:variable name="counter">{counter + 1}</f:variable>
{counter}
</f:if>
</f:for>
在 TYPO3v8 之前,您可以使用 EXT:vhs
,它为您提供了一个视图助手来设置 Fluid 变量。
可以通过 TypoScript 进行计算,然后:
<v:variable.set name="counter"><f:cObject typoscriptObjectPath="lib.calc" data="{counter} + 1" /></v:variable.set>
lib.calc = TEXT
lib.calc.current = 1
lib.calc.prioriCalc = 1
如前所述,f:variable 仅在 version 8 之后有效。 在此之前,它需要具有以下命名空间的 vhs 扩展:
{namespace v=FluidTYPO3\Vhs\ViewHelpers}
然后就可以使用变量了。
<v:variable.set name="counter" value="0" />
{counter}