带有FluidTYPO3提供程序扩展的多个页面模板位置

时间:2019-05-02 13:31:09

标签: typo3 flux fluid typo3-9.x

如何使用提供程序扩展名指定多个页面模板位置?

  • TYPO3 9.5.x LTS
  • flux 9.2.0
  • 流体页面5.2.0

我有一个提供程序扩展“ 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”扩展名用于项目特定的更改,并在必要时覆盖页面模板。

现在,我需要一个不需要其他地方的特殊页面模板。

是否可以在其他位置保存更多页面模板,并将其与提供商扩展一起使用?需要做什么?

1 个答案:

答案 0 :(得分:0)

根据您选择页面模板的方式,需要增强此列表。

一种常用的方法是选择backend_layouts,可以通过TSconfig进行定义。扩展程序可以提供的内容。
每个layout记录都有一个字段pages

,此值必须转换为您正在使用的流体模板。这可能是在page.10.templateName附近的主要打字稿中完成的。可能存在CASE或类似情况。