如何使用提供程序扩展名指定多个页面模板位置?
我有一个提供程序扩展“ my_provider”和另一个“ my_provider_extended”。 我在“ my_provider”中注册了提供程序扩展名,在其中保存了页面模板。
\FluidTYPO3\Flux\Core::registerProviderExtensionKey('Vendor.MyProvider', 'Page');
\FluidTYPO3\Flux\Core::registerProviderExtensionKey('Vendor.MyProvider', 'Content');
现在,我想扩展页面模板,但不扩展“ my_provider”扩展名,而是扩展“ my_provider_extended”。 TypoScript配置如下所示:
plugin.tx_myprovider.view {
templateRootPath {
0 = EXT:my_provider/Resources/Private/Templates/
1 = EXT:my_provider_extended/Resources/Private/Templates/
}
partialRootPath {
0 = EXT:my_provider/Resources/Private/Partials/
1 = EXT:my_provider_extended/Resources/Private/Partials/
}
layoutRootPath {
0 = EXT:my_provider/Resources/Private/Layouts/
1 = EXT:my_provider_extended/Resources/Private/Layouts/
}
}
如果我从“ my_provider_extended”中的“ my_provider”覆盖现有的页面模板,则一切正常。
但是,如果我在“ my_provider_extended”中添加新的页面模板,则无法识别该模板。
背景是我在多个项目中使用“ my_provider”扩展名并定期进行更新。
这是我所有项目的基础,这就是为什么扩展名在每个地方都必须相同的原因。想象它像EXT:news。 “ my_provider_extended”扩展名用于项目特定的更改,并在必要时覆盖页面模板。
现在,我需要一个不需要其他地方的特殊页面模板。
是否可以在其他位置保存更多页面模板,并将其与提供商扩展一起使用?需要做什么?
答案 0 :(得分:0)
根据您选择页面模板的方式,需要增强此列表。
一种常用的方法是选择backend_layouts,可以通过TSconfig进行定义。扩展程序可以提供的内容。
每个layout
记录都有一个字段pages
。
,此值必须转换为您正在使用的流体模板。这可能是在page.10.templateName
附近的主要打字稿中完成的。可能存在CASE
或类似情况。