如何在流体模板中使用打字对象作为条件

How to use typoscript object in fluid template as if condition

我有一个打字错误的 TEXT 对象:

lib.myid = TEXT
lib.myid.value = 1413

并想在流体模板中使用它(tx_news):

<f:for each="{newsItem.categories}" as="category">
    <f:if condition="{category.uid} == {lib.myid}">
        Category ID is the same as myid
    </f:if>
</f:for>

我该怎么做?

您可以使用 ViewHelper f:cObject。它看起来像这样:

<f:for each="{newsItem.categories}" as="category">
    <f:if condition="{category.uid} == {f:cObject(typoscriptObjectPath: 'lib.myid')}">
        Category ID is the same as myid
    </f:if>
</f:for>

或者,您可以通过设置

使该值成为新闻插件的设置
plugin.tx_news {
    settings {
        valuefromlibrary < lib.myid
    }
}

之后,您可以在模板中使用 {settings.valuefromlibrary} 访问该值。但请注意,设置不会自动传递给部分,因此在部分中可能未定义该值。 EXT:news 的默认模板通过将 settings 变量传递给 partials 来规避此限制。