Typoscript数组并在FLUID中使用它们

dor*_*ora 2 arrays typo3 fluid typoscript

假设我有一个包含以下网页的项目(请参见屏幕截图)

在此输入图像描述

红色,蓝色,帖子和博客页面的uid分别为1,2,3和4.

现在,我想在Typoscript中定义一个数组或某种列表,其中包含所有根网页的标题.这个数组,我可以在我的FLUID模板中使用它并显示所有标题.

例:

这是可能的吗?

bie*_*ior 5

来自大自然的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)