TYPO3 Fluid f:for 每个迭代器
TYPO3 Fluid f:for each iterator
我有一个关于 TYPO3 6.2
中的 f:for
ViewHelper 的简单问题
如何将偏移量应用到迭代器以从索引 2 开始?
示例:
<f:for each="{facility.media}" as="media" iteration="iterator">
<!-- this index should start at 2-->
<img src="..." data-lightbox-index="{ iterator.index }">
</f:for>
感谢您的帮助。
您可以使用额外的 f:if
<f:for each="{facility.media}" as="media" iteration="iterator">
<f:if condition="{iterator.index} > 2">
<img src="..." data-lightbox-index="{ iterator.index }">
</f:if>
</f:for>
不可能。
您可以采取变通办法。
您可以将所需的值分配给临时变量。多种可能性:
- 使用
f:cycle
(只有很少的条目才有可能)
- 使用
ext:vhs
将计算值create/assign转换为流体变量
- 使用
f:alias
在循环中创建局部流体变量。
后两种解需要计算的可能性,fluid中没有给出
但你可以使用打字错误的 viewhelper:
lib.calc = TEXT
lib.calc {
current = 1
prioriCalc = 1
}
并用 {f:cObject(typoscriptObjectPath:'lib.calc',data:{iterator.index}+2)}
调用它
<f:for each="{facility.media}" as="media" iteration="iterator">
<f:alias map="{newIndex:'{f:cObject(typoscriptObjectPath:\'lib.calc\',data:\'{iterator.index}+2\')}'}">
<img src="..." data-lightbox-index="{newIndex}" />
</f:alias>
</f:for>
您可以像下面那样使用 fluid ForViewHelper
来完成此操作。
使用 Index 和 Index start 始终为 0。因此,您可以按照以下条件执行此操作。
<f:for each="{facility.media}" as="media" iteration="iterator">
<f:if condition="{iterator.index} >= 2">
<img src="..." data-lightbox-index="{ iterator.index }">
</f:if>
</f:for>
使用循环和循环总是从 1 开始。
<f:for each="{facility.media}" as="media" iteration="iterator">
<f:if condition="{iterator.cycle} >= 3">
<img src="..." data-lightbox-index="{ iterator.index }">
</f:if>
</f:for>
我有一个关于 TYPO3 6.2
中的f:for
ViewHelper 的简单问题
如何将偏移量应用到迭代器以从索引 2 开始?
示例:
<f:for each="{facility.media}" as="media" iteration="iterator">
<!-- this index should start at 2-->
<img src="..." data-lightbox-index="{ iterator.index }">
</f:for>
感谢您的帮助。
您可以使用额外的 f:if
<f:for each="{facility.media}" as="media" iteration="iterator">
<f:if condition="{iterator.index} > 2">
<img src="..." data-lightbox-index="{ iterator.index }">
</f:if>
</f:for>
不可能。
您可以采取变通办法。
您可以将所需的值分配给临时变量。多种可能性:
- 使用
f:cycle
(只有很少的条目才有可能) - 使用
ext:vhs
将计算值create/assign转换为流体变量 - 使用
f:alias
在循环中创建局部流体变量。
后两种解需要计算的可能性,fluid中没有给出
但你可以使用打字错误的 viewhelper:
lib.calc = TEXT
lib.calc {
current = 1
prioriCalc = 1
}
并用 {f:cObject(typoscriptObjectPath:'lib.calc',data:{iterator.index}+2)}
<f:for each="{facility.media}" as="media" iteration="iterator">
<f:alias map="{newIndex:'{f:cObject(typoscriptObjectPath:\'lib.calc\',data:\'{iterator.index}+2\')}'}">
<img src="..." data-lightbox-index="{newIndex}" />
</f:alias>
</f:for>
您可以像下面那样使用 fluid ForViewHelper
来完成此操作。
使用 Index 和 Index start 始终为 0。因此,您可以按照以下条件执行此操作。
<f:for each="{facility.media}" as="media" iteration="iterator">
<f:if condition="{iterator.index} >= 2">
<img src="..." data-lightbox-index="{ iterator.index }">
</f:if>
</f:for>
使用循环和循环总是从 1 开始。
<f:for each="{facility.media}" as="media" iteration="iterator">
<f:if condition="{iterator.cycle} >= 3">
<img src="..." data-lightbox-index="{ iterator.index }">
</f:if>
</f:for>