【发布时间】:2017-03-24 12:52:01
【问题描述】:
我几乎在每个项目中都有这个:默认情况下,TypoScript 级联到页面树中的子节点。如果你想防止它被应用到子节点,一个解决方案是创建一个额外的 TS 模板来撤消它并将其包含为“下一级模板”。
例如您想将一些 TS 应用于特定的父页面,但不是子页面:
temp.somemenu.wrap = **|**
除了“下一级模板”方法外,解决方案/技巧包括:
如果你知道你从哪个级别开始:
[treeLevel = 2]
temp.somemenu.wrap = **|**
[global]
如果你有 pid 并且想将它连接成一个常量:
[page|uid = {$targetPagePid}]
temp.somemenu.wrap = **|**
[global]
编辑: 适应常量 - 这是一个非常强大的解决方案!
是否有一些开关可以使 TS 设置不级联?或者定义它可以级联到的级别数?
类似
<INCLUDE_TYPOSCRIPT: source="path/to/my.ts" treeLevelsDown="0">
或
[global treeLevelsDown = 0]
temp.somemenu.wrap = **|**
[global]
这意味着 TS 有点自我意识,知道它设置在哪个树级别。不确定这是否可能。
有意义吗?
或者我错过了一些现有的解决方案?
【问题讨论】:
-
你能描述一下你在说什么吗?
temp.somemenu是什么菜单类型,你想在那里包装什么? -
第一个:你应该使用
[page|uid = 80],而不是[globalVar = TSFE:id=80]。第二:您可以在您的(设置)条件中使用 TS-constants,使其更加灵活:[page|uid = {$pid.special}]。并且不要忘记:您还可以在条件[page|uid = {$pid.special},{$pid.main}]中使用多个值。但正如迪米特里所问:你想达到什么目标?也许还有其他解决方案。 -
这太完美了!无论如何,我一直在使用常量中的 pid。我不知道你可以在条件下使用它们。关于“做什么”:这个问题也是理论上的,你的解决方案对我来说绰绰有余。不过,我会发布我的用例,看看答案
标签: typo3 typoscript