[英]In TypoScript, how to display a 'New' beside a menu item if c1&c2&c3 conditions are fulfilled?
这是typo3 7.6.27中的代码:
2.NO {
after = <span class="nouveau">New</span>
after.if.value.data = date:U
after.if.isGreaterThan.data = field:f1
after.if.value.data = field:f2
after.if.isGreaterThan.data = field:f1
after.if.value.data = date:U
after.if.isGreaterThan.data = field:f2
}
您不能将多个条件添加到一个if
函数中。
请记住:typoscript 在被评估之前将被转移到一个 php 数组中。
在你的例子中,你的第二个条件覆盖了第一个,第三个覆盖了之前的任何一个。
Typoscript 没有用于逻辑运算符的内置机制,因此您需要解决方法,例如userfunc
或级联stdWrap
所以一个可能的解决方案可能是:
2.NO {
after = <span class="nouveau">New</span>
after.if.value.data = date:U
after.if.isGreaterThan.data = field:f1
after.stdWrap.if.value.data = field:f2
after.stdWrap.if.isGreaterThan.data = field:f1
after.stdWrap.stdWrap.if.value.data = date:U
after.stdWrap.stdWrap.if.isGreaterThan.data = field:f2
}
或者您在更新到当前版本的 TYPO3 后使用菜单处理器和流体,如果您仍然使用已停止支持两年的 TYPO3 7.6.27,这将非常出色。 (7.6 ELTS 是 7.6.40)
除此之外,如果我想用类似的条件块执行 else 以显示“已更新”(如果已更新),是否可能?
排版条件功能中没有else
。
您可以使用override
或ifempty
但在这种情况下,我建议在after
使用COA
:
2.NO {
after.cObject = COA
after.cObject {
10 = TEXT
10.value = <span class="nouveau">New</span>
10 {
if.value.data = date:U
if.isGreaterThan.data = field:f1
stdWrap {
if.value.data = field:f2
if.isGreaterThan.data = field:f1
stdWrap {
if.value.data = date:U
if.isGreaterThan.data = field:f2
}
}
}
20 = TEXT
20.value = <span class="update">Updated</span>
20 {
if.value.data = date:U
if.is???Than.data = field:f1
stdWrap {
if.value.data = field:f2
if.isG???Than.data = field:f1
stdWrap {
if.value.data = date:U
if.isG???Than.data = field:f2
}
}
}
}
}
以适当的条件为20
.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.