dor*_*ora 2 arrays typo3 fluid typoscript
假设我有一个包含以下网页的项目(请参见屏幕截图)

红色,蓝色,帖子和博客页面的uid分别为1,2,3和4.
现在,我想在Typoscript中定义一个数组或某种列表,其中包含所有根网页的标题.这个数组,我可以在我的FLUID模板中使用它并显示所有标题.
例:
在TypoScript中
arrayOfTitles =具有uid 1,2,3和4的页面的#标题
在FLUID页面中
<f:for each="{arrayOfTitles}" as="foo">
<h1> {foo} </h1>
</f:for>
Run Code Online (Sandbox Code Playgroud)这是可能的吗?
来自大自然的TypoScript是一个数组,所以最简单的方法来做你想要的只是在模板中添加这样的一些集合:
plugin.tx_yourext {
settings {
domains {
10 = one
20 = two
30 = three
40 = four
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以你可以直接在视图中使用它
<f:for each="{settings.domains}" as="title">
<h1>{title}</h1>
</f:for>
Run Code Online (Sandbox Code Playgroud)
另一方面,也许最好执行简单的数据库查询从数据库中获取这些页面,然后创建简单数组并将其作为参数分配给视图.在这种情况下,如果标题发生变化,您无需更改TS.
SQL伪代码:
SELECT title FROM pages WHERE is_siteroot = 1 AND deleted = 0 AND hidden = 0 ORDER BY sorting ASC
Run Code Online (Sandbox Code Playgroud)
您也可以使用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
}
Run Code Online (Sandbox Code Playgroud)