我尝试创建一个typo3模板条件,它将根据语言改变html模板的特性。
我有三种语言 ID:0、2 和 3。
我用:
打字错误3 12.4.9
引导程序 14.0.7
我已经尝试过这个和类似的变体,但真的不知道我需要做什么。
<f:if condition="{siteLanguage.languageId}=={1}">
<f:then>
<div>language 1</div>
</f:then>
<f:if else>
<div>language 2</div>
</f:if else>
<f:else>
<div>default language</div>
</f:else>
</f:if>
请问有人可以帮我解决这个问题吗?
谢谢
首先,您可以检查变量 siteLanguage 在您的 Fluid 模板中是否可用:
<f:debug>{siteLanguage}</f:debug>
将输出 siteLanguage 对象(如果可用,否则为“null”)
<f:debug>{_all}</f:debug>
将输出所有可用的变量,以便您还可以查看 siteLanguage 是否列在此处。
第二,条件应该是
<f:if condition="{siteLanguage.languageId}==1">
当您将变量与数字进行比较时 - 数字不能位于大括号中。
如果 Fluid 模板中没有可用的 siteLanguage 变量,则需要首先将 siteLanguage 作为变量传递到 FLUIDTEMPLATE TypoScript 设置,以便它在 Fluid 模板中可用。 以下是在 TypoScript 中执行此操作的方法:
page.10 = FLUIDTEMPLATE
page.10 {
// ... your other FLUIDTEMPLATE settings ...
variables {
languageUid = TEXT
languageUid.data = site:languageId
}
}
然后,在 Fluid 模板中,您可以使用 languageUid 进行条件检查,如下所示:
<f:section name="Main">
<f:if condition="{languageUid} == 0">
<!-- Content for default language (id: 0) -->
</f:if>
<f:if condition="{languageUid} == 2">
<!-- Content for second language (id: 2) -->
</f:if>
<f:if condition="{languageUid} == 3">
<!-- Content for third language (id: 3) -->
</f:if>
<!-- Other content... -->
</f:section>