使用扩展 DCE 元素,我创建了一个流体模板,为创建的每个项目生成一个 li 项目。现在我想让每个第一到第二个项目都有一个包装器。以便:

<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
<li>item 4</li>
<li>item 5</li>

变成:
<ul>
    <li>item 1</li>
    <li>item 2</li>
</ul>
<ul>
    <li>item 3</li>
    <li>item 4</li>
</ul>
<ul>
    <li>item 5</li>
</ul>

这在流体模板中可能吗?也许与 Typoscript 结合使用?

最佳答案

解决方案

这就是我最终使用 {cycle} 每 2 个项目迭代一次,然后关闭和打开标签的结果。以及确保最后一项不以开始标签结束:

<ul>
    <f:for each="{field.item}" as="item" iteration="iterator">

        <f:if condition="{iterator.cycle} % 2">
            <f:then>
                <li>item {iterator.cycle}</li>
            </f:then>
            <f:else>
                <li>item {iterator.cycle}</li>
                <f:if condition="{iterator.isLast} != 1">
                    <f:then>
                        </ul><ul>
                    </f:then>
                </f:if>
            </f:else>
        </f:if>

    </f:for>
</ul>

笔记

我知道借助 VHS v:iterator.chunk 的强大功能,可能会用更少的代码解决这个问题,但我无法让它按照我想要的方式工作。如果有人愿意提供一个工作示例来比较这两个选项,我将不胜感激。

带录像机

更新:21.12.2017

因此,重新访问了块选项,使用 VHS iterator.chunk 使用以下代码段实现了相同的代码:
<f:for each="{field.item -> v:iterator.chunk(count: 2)}" as="col" iteration="cycle">
    <ul>
        <f:for each="{col}" as="item">
            <li>
                test
            </li>
        </f:for>
    </ul>
</f:for>

也许这可以帮助那里的人!

关于typo3 - 有没有办法用TYPO3流体包裹X件物品?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33897214/

10-11 20:41