TYPO3扩展模板命名空间:如何避免覆盖根模板内容仅追加内容
解决TYPO3扩展模板追加内容不覆盖的问题
我之前也碰到过这种头疼的情况——根模板结构复杂得不敢随便碰,又怕靠选大编号碰运气会和现有配置冲突,毕竟这种方法确实不靠谱。这里有几个稳妥的方案,能让你在扩展模板里安全追加内容,完全不用担心覆盖原有配置:
方法一:直接用append属性追加内容
如果原page.10是支持追加的内容对象(比如COA、TEXT这类),直接用append就能把新内容挂到原有内容的末尾:
page.10.append = TEXT page.10.append.value = 这是我要追加的新内容 page.10.append.wrap = <div class="new-content">|</div>
这种方式最简单,不用改动原有结构,直接在现有对象后面追加内容即可。
方法二:打包原有内容后重新构建COA
要是不确定page.10的具体类型,保险起见可以先把原有内容备份到临时对象,再重新定义page.10为内容对象数组(COA),先输出原有内容,再追加新内容:
# 先把原page.10的内容备份到临时对象 temp.originalMainContent < page.10 # 重新定义page.10为COA page.10 = COA # 先输出原有内容 page.10.10 < temp.originalMainContent # 再追加新内容,编号用10之后的即可,这里用20 page.10.20 = TEXT page.10.20.value = 这是追加的自定义内容 page.10.20.wrap = <section class="custom-section">|</section>
这种方法相当于把原有内容和新内容整合到一个新的COA里,彻底避免覆盖,不管原page.10是什么类型都能适用。
方法三:利用页面头部/尾部专用配置(针对全局内容)
如果你的内容是要加到页面头部或尾部,完全不用碰page.10,直接用TYPO3预留的page.headerData或page.footerData:
# 追加内容到页面头部(</head>之前) page.headerData.100 = TEXT page.headerData.100.value = <meta name="custom-meta" content="my-value"> # 追加内容到页面尾部(</body>之前) page.footerData.100 = TEXT page.footerData.100.value = <script src="custom-script.js"></script>
这些配置是专门用来追加全局内容的,和page.10完全独立,绝对不会产生冲突。
内容的提问来源于stack exchange,提问作者user3182532
相关产品推荐
相关产品推荐

