假设我有一个包含以下网页的项目(请参见屏幕截图)
Red,Blue,Post和Blog Page的uid分别为1,2,3和4。
现在,我想在Typoscript中定义一个数组或某种列表,其中包含所有根网页的标题。这个数组,我可以在我的FLUID模板中使用它并显示所有标题。
示例:
arrayOfTitles = #id 1,2,3和4页面的标题
<f:for each="{arrayOfTitles}" as="foo">
<h1> {foo} </h1>
</f:for>
这是否可能
答案 0 :(得分:5)
来自大自然的TypoScript是一个数组,所以最简单的方法就是在模板中添加这样的集合:
plugin.tx_yourext {
settings {
domains {
10 = one
20 = two
30 = three
40 = four
}
}
}
所以你可以直接在视图中使用它
<f:for each="{settings.domains}" as="title">
<h1>{title}</h1>
</f:for>
另一方面,也许最好执行简单的数据库查询从数据库中获取这些页面,然后创建简单数组并将其作为参数分配给视图。在这种情况下,如果标题发生变化,您将无需更改TS。
SQL伪代码:
SELECT title FROM pages WHERE is_siteroot = 1 AND deleted = 0 AND hidden = 0 ORDER BY sorting ASC
您也可以使用TypoScript中的常见HMENU(避免使用视图),只需使用special=list
创建菜单对象(当然代替35,56,您应该为您的根页提供uid)。
最后用<h1>|</h1>
包装每个项目并添加选项:doNotLinkIt=1
,很可能这个代码段可以使用(从我的头顶写,所以你需要检查它):
lib.myTitles = HMENU
lib.myTitles {
special = list
special.value = 1,2,3,4
1 = TMENU
1.NO.wrapItemAndSub = <h1>|</h1>
1.NO.ATagTitle.field = title
1.NO.doNotLinkIt = 1
}