如何在Fluid模板中使用常量?

3
我可以帮您翻译。以下是翻译结果:

我正在使用 Typo3 版本 10+。 我创建了一个“站点包扩展”,以制作一些漂亮的模板和样式(标题/页脚/等)

我使用如下常量(constants.typoscript):

#cat=My website variables//a; type=string; label=Some id value
config.some_id = 123

BE用户可以在后台编辑常量。 要在Fluid模板中使用该常量,我使用以下TypoScript代码(setup.typoscript):

page = PAGE
page {
   typeNum = 0
  
   10 = FLUIDTEMPLATE
   10 {
       variables {
            some_id = TEXT
            some_id.value = {$config.some_id}
       }
   }
   ...
}

在 fluid(footer.html)中,我使用了这个变量:
<f:link.page pageUid="{some_id}">Some link</f:link.page>

到目前为止,一切都很好。

现在我正在创建一个新的扩展来输出一些简单的事件“Events ext”(列表/详细信息)。

现在问题是:是否可能在Events扩展(List.html)中使用这个常量(来自Site包ext的some_id)作为全局变量?

由于某种原因,在“Event ext”的流体模板中我看不到任何常量。(空值)

对于这两个扩展,我都使用了下面的代码,并将其配置包含在Typoscript设置中。

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile(
   $extensionKey,
   'Configuration/TypoScript',
   'My ext'
);

在设置中找到<f:debug>{_all}</f:debug>,你会发现它的位置! - Geee
1个回答

4

第10页定义的常量仅适用于页面模板,而不适用于您的扩展模板。

但是您可以通过一些TypoScript轻松地在扩展中访问此变量。

在您的my_ext/TypoScript/setup.typoscript或BE模板设置字段中添加以下TS代码:

plugin.tx_you_ext.settings {
    some_id = {$config.some_id}
}

然后,您可以使用以下方式在 Fluid 模板中访问数据:

{settings.some_id}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接