如何覆盖 fluid_styled_content 中内容元素的呈现?

How do I override the rendering of a Content Element in fluid_styled_content?

在 TYPO3 8.7 中,我试图覆盖 fluid_styled_content 中的文件 Textpic.html,以便我可以使用我自己的文本图片内容元素渲染。

只要我修改扩展本身内的原始文件,就可以正常工作。

但是,我想创建我自己的此文件副本并使用该副本。这不起作用 - TYPO3 不使用我自己的文件版本。

这是我做的:

在我的 TypoScript 模板的设置字段中,我添加了:

lib.contentElement.templateRootPaths.100 = /fileadmin/template/Templates/

然后我将 Textpic.htmlfluid_styled_content/Resources/Private/Templates 复制到我的文件夹 /fileadmin/template/Templates 中,这样它就变成了 /fileadmin/template/Templates/Textpic.html.

任何提示,我可能遗漏了什么?

您可以通过设置常量来做到这一点。例如

styles.templates {
    templateRootPath = EXT:siteconfig/Resources/Private/Extensions/fluid_styled_content/Templates/

    partialRootPath = EXT:siteconfig/Resources/Private/Extensions/fluid_styled_content/Partials/

    layoutRootPath = EXT:siteconfig/Resources/Private/Extensions/fluid_styled_content/Layouts/
}

因此将首先检查这些位置,如果某个内容元素没有文件,将使用 fluid_styled_content 的版本。

在 /typo3/sysext/fluid_styled_content/Configuration/TypoScript/constants.txt

查看原文

确保为部分文件保留相同的子文件夹结构。

问题出在行

lib.contentElement.templateRootPaths.100 = /fileadmin/template/Templates/

这一行是错误的。路径的开头不能有斜线。

右边一行是:

lib.contentElement.templateRootPaths.100 = fileadmin/template/Templates/

我在 https://docs.typo3.org/typo3cms/TemplatingTutorial/BasicFluidTemplates/Index.html 的模板教程的代码示例中发现了这一点。