我正试图找到一种方法来清除使用流体的重复条目。这个想法是使用f:alias然后计算具有相同标题的项目。
但我的结果很荒谬。计数是完全错误的。 整体上可以做一些像流体那样的东西吗?
我试过这样:
<f:alias map="{client: '{newsItem->f:count()}'}">
<f:if condition="{client -> f:count()}==1">
<f:then>
<f:if condition="{newsItem.teaser}">
<f:then>
<span itemprop="description">{newsItem.teaser -> f:format.crop(maxCharacters: '{settings.cropMaxCharacters}', respectWordBoundaries:'1') -> f:format.html()}</span>
</f:then>
<f:else>
<p>There are {newsItem} records in database</p>
<li>{newsItem.txPblcexpandnewsClient}</li>
</f:else>
</f:if>
</f:then>
<f:else>
else 1
</f:else>
</f:if>
</f:alias>
Beste问候
蓝色
答案 0 :(得分:1)
对于逻辑上下文,不应使用流体。如果它复杂,它属于控制器。
但是尝试使用按标题分组的ViewHelper组。
答案 1 :(得分:0)
但如果你真的不能以另一种方式做到这一点,那么解决方案可能是:
使用ext:vhs在流体中动态定义和更改变量
所以你可以做Gruppenverarbeitung&#39; (我不知道这个德语术语的翻译):
<v:variable.set name="lastitem" value="" />
<f:for each="items" as="item" iteration="iterator">
<f:if condition="{lastitem}">
<f:then>
<f:if condition="{lastitem.title} == {item.title}">
<f:then>
<f:comment>just one item more</f:comment>
<v:variable.set name="counter">
<f:cObject typoscriptObjectPath="lib.calc">{counter}+1</f:cObject>
</v:variable.set>
</f:then>
<f:else>
<f:comment>output last item</f:comment>
<f:render partial="showItem" arguments="{item:lastitem, counter:counter}" />
<f:comment>store new item, reset counter</f:comment>
<v:variable.set name="lastitem" value="{item}" />
<v:variable.set name="counter" value="1" />
</f:else>
</f:if>
</f:then>
<f:else>
<f:comment>init variables</f:comment>
<v:variable.set name="lastitem" value="{item}" />
<v:variable.set name="counter" value="1" />
</f:else>
</f:if>
</f:for>
<f:if condition="{lastitem}">
<f:comment>output last item, if any</f:comment>
<f:render partial="showItem" arguments="{item:lastitem, counter:counter}" />
</f:if>
&#13;