TYPO3 Fluid f:用于每个迭代器

时间:2017-07-11 12:25:43

标签: typo3 fluid

我对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>

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

你可以使用额外的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>

答案 1 :(得分:0)

不可能。

你可能会做一些变通办法 您可以将所需的值分配给临时变量。多种可能性:

  • 使用f:cycle(仅限少数条目)
  • 使用ext:vhs创建/将计算值分配给流量变量
  • 使用f:alias在循环中创建一个本地流体变量。

对于后两种解决方案,您需要计算的可能性,这在流体中没有给出 但你可以使用typoscript 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>

答案 2 :(得分:0)

您可以使用下面的fluid ForViewHelper执行此操作。

使用索引和索引始终为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>

了解更多ForViewHelper