覆盖 TYPO3 模板

Override TYPO3 templates

我有一个 TYPO3 网站,它建立在扩展 bootstrap_package 的网站包之上。我需要向站点包添加更多模板和设计更改,因此我创建了一个新的扩展。当我想用我的新扩展中的模板覆盖站点包中的模板时,它们都会被覆盖,并且我在使用站点包中的模板的页面上出现错误。 有没有办法加载所有模板,从初始 bootstrap_package、我的网站包和新扩展?

这来自站点包 (example_theme) 的 constants.txt,它扩展了 bootstrap_package:
constants.txt of the sitepackage example_theme ,

这就是我试图用我的新扩展覆盖它的方式:constants.typoscript of my new extension setup.txt of the sitepackage example_theme

如果我这样做,那么在后端我可以看到 example_theme 没有加载:
backend setup

使用站点包模板的页面 example_theme 给我这个错误:
error on pages that use templates from example_theme

您的扩展加载顺序错误,或者有一个扩展未加载。

特别是如果您只使用常量来定义路径,您将错过定义,因为只插入一个常量(每个路径)。

在您的情况下,您不应在扩展程序中使用常量 new_extension,而应立即在设置中设置值 2

page {
  10 {
    TemplateRootPaths.2 = EXT:new_extension\Resources\Private\Templates\Page\
    PartialRootPaths.2 = EXT:new_extension\Resources\Private\Partials\Page\
    LayoutRootPaths.2 = EXT:new_extension\Resources\Private\Layouts\Page\
  }
}

通过这种方式,您应该为每个路径得到 3 个值。
(仅针对模板的示例:)

:
[templateRootPaths]
   [0] = EXT:bootstrap_package\Resources\Private\Templates\Page\
   [1] = EXT:example_theme\Resources\Private\Templates\Page\
   [2] = EXT:new_extension\Resources\Private\Templates\Page\