Typoscript 设置
如果要使用流体模板为 TYPO3 扩展使用自己的模板(对于 HTML,XML,JSON 或任何其他格式),可以添加其他模板路径。
扩展模板/部分/布局路径通常在属性下的 TypoScript 设置中设置
plugin.tx_<extensionkey>.view.templateRootPaths
plugin.tx_<extensionkey>.view.partialRootPaths
plugin.tx_<extensionkey>.view.layoutRootPaths
(<extensionkey> =没有下划线的小写扩展键。例如:power_blog => powerblog)
也可以仅为扩展的特定插件设置模板路径,而不是为整个扩展设置模板路径。这可以通过设置路径来完成
plugin.tx_<extensionkey>_<pluginname>.view.templateRootPaths
plugin.tx_<extensionkey>_<pluginname>.view.partialRootPaths
plugin.tx_<extensionkey>_<pluginname>.view.layoutRootPaths
(<pluginname> =小写的插件名称。例如:Pi1 => pi1,AjaxCall => ajaxcall)
这些属性中的每一个都必须是带有数字键的数组。键是路径的优先级:当搜索特定模板,部分或布局时,流体首先在具有最高键的路径中查找,然后在具有下一个下键的路径中查找,依此类推,并使用第一个匹配的模板它找到了。
此优先级的好处是,可以仅覆盖扩展默认模板的某些模板或部分,并重用其他模板。
这是扩展 news
的示例。在 4.3.0 版中,静态 TypoScript 模板定义了这些模板路径:
plugin.tx_news {
view {
templateRootPaths {
0 = EXT:news/Resources/Private/Templates/
1 = {$plugin.tx_news.view.templateRootPath}
}
partialRootPaths {
0 = EXT:news/Resources/Private/Partials/
1 = {$plugin.tx_news.view.partialRootPath}
}
layoutRootPaths {
0 = EXT:news/Resources/Private/Layouts/
1 = {$plugin.tx_news.view.layoutRootPath}
}
}
}
为了使用另一个模板,除了 news
的静态模板之外,还可以将其添加到 TypoScript 设置中:
plugin.tx_news {
view {
templateRootPaths {
100 = path/to/my/own/templates/
}
partialRootPaths {
100 = path/to/my/own/partials/
}
layoutRootPaths {
100 = path/to/my/own/layouts/
}
}
}
然后首先在 path/to/my/own/templates/
中搜索模板,如果没有在那里找到,则在 TypoScript 常量 {$plugin.tx_news.view.templateRootPath}
中定义的路径中,然后在扩展默认模板所在的文件夹中,EXT:news/Resources/Private/Templates/
,通常解析为 typo3conf/ext/news/Resources/Private/Templates/
。
如果你想做同样的事情,但只针对扩展的插件 Pi1
(它是 4.3.0 版本的唯一插件),最后一个例子如下所示:
plugin.tx_news_pi1 {
view {
templateRootPaths {
100 = path/to/my/own/templates/
}
partialRootPaths {
100 = path/to/my/own/partials/
}
layoutRootPaths {
100 = path/to/my/own/layouts/
}
}
}