[英]TYPO3 Fluid f:for each iterator
I have a simple question about the f:for
ViewHelper in TYPO3 6.2我有一个关于 TYPO3 6.2 中的f:for
ViewHelper 的简单问题
How is it possible to apply an offset to the iterator to start at index 2?如何将偏移量应用到迭代器以从索引 2 开始?
Example:例子:
<f:for each="{facility.media}" as="media" iteration="iterator">
<!-- this index should start at 2-->
<img src="..." data-lightbox-index="{ iterator.index }">
</f:for>
Thanks for your help.谢谢你的帮助。
you can use an additional f:if你可以使用额外的 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>
not possible.不可能。
You might do workarounds.你可能会做变通办法。
you can assign the needed value to a temporary variable.您可以将所需的值分配给临时变量。 multiple possibilities:多种可能性:
f:cycle
(only possible with few entries)使用f:cycle
(只有很少的条目才有可能)ext:vhs
to create/assign the calculated value to a fluid-variable使用ext:vhs
创建计算值/将计算值分配给流体变量f:alias
to create a local fluid-variable inside your loop.使用f:alias
在循环中创建局部流体变量。 for the later two solutions you need the possibility to calculate, which is not given in fluid.对于后两个解决方案,您需要计算的可能性,这在流体中没有给出。
but you can use a typoscript viewhelper:但您可以使用打字错误的 viewhelper:
lib.calc = TEXT
lib.calc {
current = 1
prioriCalc = 1
}
and call it with {f:cObject(typoscriptObjectPath:'lib.calc',data:{iterator.index}+2)}
并用{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>
You can do this using fluid ForViewHelper
like below.您可以使用如下所示的fluid ForViewHelper
来执行此操作。
Using Index and Index start always 0. So, you can do this like below condition.使用 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>
Using Cycle and cycle always start with 1.使用 Cycle 和 cycle 总是从 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>
For more ForViewHelper更多ForViewHelper
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.