TYPO3 Bootstrap_package转换常量

pu82cl6c  于 2023-05-11  发布在  Bootstrap
关注(0)|答案(1)|浏览(93)

我使用的bootstrap_package的本杰明诺特与TYPO3 V11.5.26和介绍包,我试图使用它的多语言,但无法找到在哪里覆盖{theme.copyright.text}这是在fluidtemplate中使用...
我发现它曾经在constants.typoscript中定义为page.theme.copyright.text,但在设置中没有任何地方将常量分配给流体中使用的变量。

到目前为止,这还没有工作:在我自己的扩展中,我添加了配置常量:

page {
    theme {
        copyright {
            # cat=bootstrap package: copyright/169/122; type=string; label=Copyright Text Danisch
            da = Kører med <a href="http://www.typo3.org" rel="noopener" target="_blank">TYPO3</a> und <a href="https://www.bootstrap-package.it" rel="noopener" target="_blank">Bootstrap-pakke</a>.
            # cat=bootstrap package: copyright/169/123; type=string; label=Copyright Text German
            de = Läuft mit <a href="http://www.typo3.org" rel="noopener" target="_blank">TYPO3</a> und <a href="https://www.bootstrap-package.it" rel="noopener" target="_blank">Bootstrap-Paket</a>.
        }
    }
    fluidtemplate {
        # cat=bootstrap package: templates/100/100; type=string; label=Layout Root Path: Path to layouts
        layoutRootPath = EXT:bootstrap_package_ext/Resources/Private/Layouts/Page/
        # cat=bootstrap package: templates/100/110; type=string; label=Partial Root Path: Path to partials
        partialRootPath = EXT:bootstrap_package_ext/Resources/Private/Partials/Page/
        # cat=bootstrap package: templates/100/120; type=string; label=Template Root Path: Path to templates
        templateRootPath = EXT:bootstrap_package_ext/Resources/Private/Templates/Page/
    }
}

以及设置中变量的覆盖:

[siteLanguage("twoLetterIsoCode") == "da"]
    page.10.dataProcessing.1.theme.copyright.text = {$page.theme.copyright.da}
[siteLanguage("twoLetterIsoCode") == "de"]
    page.10.dataProcessing.1.theme.copyright.text = {$page.theme.copyright.de}
[END]

我可以尝试扩展类ConstantsProcessor,它还没有本地化编程,它只是简单地将所有常量page转换为fluid的变量,而没有进一步的逻辑,否则我可以使语言可用于fluidtemplate并将逻辑带到模板中(工作但不干净,Benjamin Knott以最佳实践为荣,所以我热衷于找到正确的解决方案)

lxkprmvk

lxkprmvk1#

你必须在你自己的TS常量文件中(在你的提供者扩展名中)或者在后端的页面模板中的常量部分覆盖这个常量。描述如下:https://docs.typo3.org/p/bk2k/bootstrap-package/13.0/en-us/Configuration/TypoScript/Index.html#page-theme-copyright
如果你需要不同的版权为多种语言,你可以努力通过使用TS条件。描述如下:https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Conditions/Index.html#sitelanguage
您找不到分配常量的TS设置的原因是常量由ConstantProcessor处理:EXT:bootstrap_package/Classes/DataProcessing/ConstantsProcessor.php
如果你用你的调试器挂在那里,你会看到版权常量将被保存到processedData-array中。不确定这个数组是什么时候传递给流体模板的。但现在这不重要。

示例(适应您的代码)

TypoScript常量:

[siteLanguage("twoLetterIsoCode") == "dk"]
    page.theme.copyright.text = Kører med <a href="http://www.typo3.org" rel="noopener" target="_blank">TYPO3</a> und <a href="https://www.bootstrap-package.it" rel="noopener" target="_blank">Bootstrap-pakke</a>.
[siteLanguage("twoLetterIsoCode") == "de"]
    page.theme.copyright.text = Läuft mit <a href="http://www.typo3.org" rel="noopener" target="_blank">TYPO3</a> und <a href="https://www.bootstrap-package.it" rel="noopener" target="_blank">Bootstrap-Paket</a>.
[END]

相关问题