gpt4 book ai didi

typo3 - 在条件中使用 typoscript 变量

转载 作者:行者123 更新时间:2023-12-02 01:25:34 26 4
gpt4 key购买 nike

是否可以在 TypoScript 条件下使用 TypoScript 中定义的变量?

例如,如果我这样定义一个变量:

my_var = 10

我可以在 typescript 中创建一个条件来检查 my_var 是否等于 10 吗?我想象这样的事情:

my_var = 10
[my_var = 10]
# do something
[else]
# do something else
[end]

我需要这个的原因是缺少嵌套条件。如果我要求的是可能的,我可以做这样的事情来克服这个限制:

[globalVar=TSFE:id=1]
# render special layout for page 1
[else]
normal_layout = 1
[end]
[normal_layout = 1] && [globalVar=TSFE:page|layout=1]
# render normal layout 1
[end]
[normal_layout = 1] && [globalVar=TSFE:page|layout=2]
# render normal layout 2
[end]

另一个用例是检查变量是否存在,例如 page 是否已经定义。示例:

[globalVar=TSFE:id=1]
page = PAGE
page.10 = TEXT
page.10.value = hello page 1!
[end]
[!page]
page = PAGE
page.10 = TEXT
page.10.value = hello world!
[end]

我很惊讶文档还没有回答这个问题 :S

编辑

我已经尝试过 Andreas Ottos 的解决方案,但它似乎仍然不起作用。这是我的示例代码:

lib.content = TEXT
lib.content.value = this text should not get displayed

[globalVar=TSFE:id=1]
lib.content = TEXT
lib.content.value = this is page 1
[else]
normal_layout = 1
[end]

[globalVar = LIT:1 = {$normal_layout}]
lib.content = TEXT
lib.content.value = this is any other page
[end]
page = PAGE
page.10 < lib.content

理论上,这应该为第 1 页呈现“这是第 1 页”,为任何其他页面呈现“这是任何其他页面”。但是,虽然第 1 页得到正确呈现,但其他页面并非如此。它们被渲染为“不应显示此文本”。

有什么想法吗?我正在使用 7.6 版。这可能是问题所在?

最佳答案

编辑:对于第一个用例:使用 TypoScript“文字”是可能的。查看 doc here 中的小提示.而且您必须将常量与逻辑分开。

所以在常量中你必须写:

[globalVar=TSFE:id=1]
normal_layout = 0
[else]
normal_layout = 1
[end]

在设置部分你可以使用这个变量:

[globalVar = LIT:0 = {$normal_layout}]
# render special layout for page 1
[end]

[globalVar = LIT:1 = {$normal_layout}] && [globalVar=TSFE:page|layout=1]
# render normal layout 1
[end]

[globalVar = LIT:1 = {$normal_layout}] && [globalVar=TSFE:page|layout=2]
# render normal layout 2
[end]

你的第二个用例不是很清楚,但我建议使用在特定情况下被覆盖的页面的基本定义。

关于typo3 - 在条件中使用 typoscript 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37303840/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com