[英]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.