1

目前我正在使用PIDinRootline. 这工作正常。

[PIDinRootline=8,9]
    //do something
[end]

[PIDinRootline=6,7,11]
    //do something
[end]

现在我想处理 7 下的一组子页面。目前,父 ID 为 7 的所有页面都具有相同的代码。但现在我想要在第 128 页及其所有子页面上有所不同。是否允许制作类似的东西

[PIDinRootline=8,9]
    //do something
[end]

[PIDinRootline=6,7,11]
    //do something different
[end]
[PIDinRootline=128]
    //do something
[end]

因此第 128 页低于 7。设置被覆盖,因为首先进行 PIDinRootline=7 的设置,然后进行 PIDinRootline=128 的设置。这是允许的吗?

4

1 回答 1

7

绝对允许。只需确保以与引用的顺序相同的顺序定义条件。您实际上可以省略一些[end]条件。注意:这适用于 TYPO3 最高版本 8 / 9.3:

[PIDinRootline=8,9]
    //do something
[PIDinRootline=6,7,11]
    //do something different
[PIDinRootline=128]
    //do something
[end]

TYPO3 9.4 弃用了旧的条件语法。新语法基于symfony 表达式语言,如下所示:

[8 in tree.rootLineIds || 9 in tree.rootLineIds]
    //do something
[6 in tree.rootLineIds || 7 in tree.rootLineIds || 11 in tree.rootLineIds]
    //do something different
[128 in tree.rootLineIds]
    //do something
[end]

其他有用的页面相关条件是(旧语法):

  • [globalVar = TSFE:id = 128]// 仅在 PID 128 上
  • [PIDupinRootline = 128]// 仅在 PID 128 的子页面上(不包括 PID 128)
  • [treeLevel = 1]// 属于树级别 1 的所有页面(根级别的子页面)

检查TYPO3 参考以获取新的条件语法。

于 2011-10-29T13:43:57.710 回答