我想在每个页面上使用流体模板显示一些contentlement。我的解决方案是创建一个typoscript元素,如:
lib.my.myelement= CONTENT
lib.my.myelement {
table = tt_content
select {
pidInList = 15
where = uid=99
}
}
然后在流体模板中使用它:
<f:cObject typoscriptObjectPath="lib.my.myelement" />
另一种方法是使用v:content.render或v:content.get直接在流体中创建它们。在这个例子中,我在一个页面上获取所有内容元素并将它们保存在一个数组中:
<v:variable.set name="contentElements" value="{v:content.get(column:'0', limit:'3', pageUid:'9', render:'FALSE')}" />
我不能使用第一个解决方案,因为在这个页面上会有很多不同的语言(我可以使用它,但每次添加一个新语言时我都会努力声明typoscript中新元素的所有新uid )。
第二种解决方案可以更好地工作,因为当您翻译元素uid更改页面时,pageUid不会更改。但在这里,我遇到的问题是我不仅需要所有元素,还必须识别每个元素。
以下是我使用第二种解决方案的方法:
<v:variable.set name="contentElements" value="{v:content.get(column:'0', limit:'3', pageUid:'9', render:'FALSE')}" />
<f:for each="{contentElements}" as="contentElement" iteration="footerIteration">
<div class="column{v:math.sum(a: footerIteration.index, b: 1)}">
<v:content.render contentUids="{0:contentElement.uid}" />
</div>
</f:for>
如您所见,我以相同的方式使用每个元素。
让我们创建一个简单的案例:
我有一个pageUid = 10的页面(此页面将有翻译)。在每个翻译将是3个元素。假设1个元素得到了“id”(带有id我的意思是我可以识别这个元素的方式)title1
而其他两个元素的ID为list1
和list2
。
现在我的问题是我如何访问例如list1?
我希望它可以理解,如果不清楚请发表评论。
编辑:我可以在元素的每次翻译中使用相同的顺序,然后检查for循环中的迭代(请参阅第二个解决方案)以识别它们。但我想知道是否有更好,更清洁的方式。