我幾乎在每個項目中都有這樣的設置:默認情況下,TypoScript級聯到pagetree中的子節點。如果您想阻止將其應用於子節點,則一種解決方案是創建一個額外的TS模板,將其解除並將其包含爲「下一級模板」。防止級聯的TypoScript?
E.g.你想一些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'是什麼菜單類型,你想在那裏包裝什麼? –
1st:代替'[globalVar = TSFE:id = 80]'你應該使用'[page | uid = 80]'。第二:你可以在你的(設置)條件中使用TS常量,使其更加靈活:'[page | uid = {$ pid.special}]'。不要忘記:你也可以在條件'[page | uid = {$ pid.special},{$ pid.main}]''中使用多個值。但是,迪米特里問道:你想達到什麼目的?也許還有另一種解決方案。 –
這是完美的!無論如何,我一直在使用常量中的pid。我不知道你可以在條件下使用它們。關於「爲什麼」:這個問題也是理論上的,你的解決方案對我來說已經足夠了。不過,我會發布我的用例,看到答案 – Urs