首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止TypoScript级联?

防止TypoScript级联?
EN

Stack Overflow用户
提问于 2016-11-10 13:13:36
回答 2查看 61关注 0票数 1

我在几乎每个项目中都有这种情况:默认情况下,TypoScript会向页面树中的子节点级联。如果您想防止它应用于子节点,一种解决方案是创建一个额外的TS模板来撤消它,并将它作为“下一级的模板”来包含。

例如,您希望将一些TS应用于特定的父页面,但不希望应用于子程序:

代码语言:javascript
复制
temp.somemenu.wrap = **|**

除“下一级模板”方法外,解决方案/黑客还包括:

如果您知道您从哪个级别开始:

代码语言:javascript
复制
[treeLevel = 2]
  temp.somemenu.wrap = **|**
[global]

如果您有pid,并希望将其连接到一个常数中:

代码语言:javascript
复制
[page|uid = {$targetPagePid}]
  temp.somemenu.wrap = **|**
[global]

编辑:适应常量-这是一个相当健壮的解决方案!

难道没有一些开关来使TS设置不级联吗?或者定义它可以级联到的级别的数量?

有点像

代码语言:javascript
复制
<INCLUDE_TYPOSCRIPT: source="path/to/my.ts" treeLevelsDown="0">

代码语言:javascript
复制
[global treeLevelsDown = 0]
  temp.somemenu.wrap = **|**
[global]

这意味着TS是某种自我感知的,知道它是在哪个树级别上设置的。不确定这是否可能。

说得通吗?

还是我错过了一些现有的解决方案?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-10 23:52:58

不,除了你在问题中已经提到的那些方法之外,这没有任何其他的作用。原因是,TYPO3从一个页面开始,向上看页面树,直到它找到一个TypoScript模板。(它在途中收集所有扩展模板,并将它们应用于第一个找到的根模板之上)。

因此,它永远不会下降,而只会上升。如果它在某个级别之后停止级联,那么应该使用什么作为这些站点的TypoScript模板?它仍然需要一个配置来呈现页面。

票数 1
EN

Stack Overflow用户

发布于 2016-11-11 08:01:24

这个问题是理论性的,@pgampe回答了这个问题。

关于我的用例,下面是@bernd-wilke-πφ的解决方案,它工作得很好

代码语言:javascript
复制
// just apply to page references
[page|uid = {$pidReferencesList}]

// add some additional js (a list filter) 
page.includeJSFooter {
  refs = {$templatePath}/Resources/Public/additional_js/references.js
}
// add some markup
lib.thecontent.wrap =   <div id="items-list-wrapper">|</div>

[global]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40528532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档