循环阵列时TYPO3 FLUID条件

时间:2013-05-15 12:01:50

标签: html arrays typo3 fluid

我有一个包含名单列表的数组。在前端,必须以列出的方式列出。使用<ul> and <li>代码。

列表的一半应显示在一个<ul>标记下,另一半显示在另一个<ul>标记下。

像这样:

<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>

<ul>
<li>Four</li>
<li>Five</li>
<li>Six</li>
</ul>

现在问题出现在FLUID中,当数组循环一半元素时,我找不到结束<ul>标记的方法。

我想做这样的事情

<f:for each="{my_array}" as="item">
<li>{item}</li>
<!-- if condition where count=(my_array%2) then use </ul><ul>-->
</f:for>

2 个答案:

答案 0 :(得分:8)

我认为您应该在PHP中获取中间元素的id,然后您可以使用简单的if,如下所示:

它是f:for的一个扩展版本。在这里,您可以查看iteration属性。当您使用iteration.index时,它是元素的当前索引。但是你必须设置一个elementLimit。

iteration有几个属性:isFirst,isLast,isEven,isOdd,total,cycle,index。

Here is an article about it.

更新示例:

<f:for each="{my_array}" as="item" iteration="itemIterator">
    <li>{item}</li>
    <f:if condition="{itemIterator.index} = {elementLimit}">
        </ul><ul>
    </f:if>
</f:for>

答案 1 :(得分:0)

这应该有效。唯一的问题是当菜单条目数量奇怪时。

<f:for each="{my_array}" as="item" iteration="itemIterator">
    <ul>
        <li>{item}</li>
        <f:if condition="{itemIterator.iterator}%({itemIterator.total}/2) == 0">
            </ul><ul>
        </f:if>
    </ul>
</f:for>