[英]Typo3: if conditions in typoscript to check if multiple fields are empty
[英]Make multiple if conditions in TypoScript
我想檢查一個值的兩個字段來包裝每個內容元素。
要檢查一個值,可以執行以下操作:
20 = TEXT
20.value = <div class="div1">|</div>
20.value.override = <div class="div2">|</div>
20.value.override.if.value = 10
20.value.override.if.equals.field = colPos
我需要添加什么來檢查像這樣的第二個值?
20 = TEXT
20.value = <div class="div1">|</div>
20.value.override = <div class="div2">|</div>
20.value.override.if.value = 10
20.value.override.if.equals.field = colPos
20.value.override.andIf.value = textmedia
20.value.override.andIf.equals.field = CType
因此,如果CType為textmedia並且colPos為10,則content元素僅應用div2包裝。否則,應使用div1。
您可以使用dataWrap組合值,並在單個條件下比較它們:
20 = TEXT
20.value = <div class="div1">|</div>
20.value.override = <div class="div2">|</div>
20.value.override.if.value = 10textmedia
20.value.override.if.equals.dataWrap = {field:colPos}{field:CType}
如果要根據組合使用更多具有不同結果的值,則使用CASE對象可能是更好的方法:
20 = CASE
20.key.dataWrap = {field:myfield1}{field:myfield2}{field:myfield3}
20.default = TEXT
20.default.value = <div class="div1">|</div>
20.001 = TEXT
20.001.value = <div class="div001">|</div>
20.101 = TEXT
20.101.value = <div class="div101">|</div>
要在值可以包含多個0或1時分隔它們,您應該在dataWrap中添加一個分隔符,例如x。
20.key.dataWrap = {field:myfield1}x{field:myfield2}x{field:myfield3}
使用連詞的stdWrap-properties可以嵌套拼寫“ if”-條件。 在您的情況下,文檔說的是,條件通過AND連詞連接。 因此,您只需要使用其他條件的stdWrap屬性(使用isTrue),並使用stdWrap的cObject屬性使其成為TEXT對象即可。 然后,您可以在cObject內放置另一個“等於”條件,如果滿足該條件,則該條件將向isTrue返回“ 1”。
像這樣嘗試,未經測試
20 = TEXT
20 {
value = <div class="div1">|</div>
value {
override = <div class="div2">|</div>
override.if {
# Condition 1
value = 10
equals.field = colPos
# Another "equals" condition nested in isTrue using cObject
isTrue.cObject = TEXT
isTrue.cObject {
value = 1
if.value = textmedia
equals.field = CType
}
}
}
}
也可以在Typocript中創建OR條件。 您可以將isTrue屬性轉換為包含多個TEXT對象的COA,如果滿足它們的條件,它們將返回類似1的值。
創建OR的示例:
20 = TEXT
20 {
value = <div class="div1">|</div>
value {
override = <div class="div2">|</div>
override {
if.isTrue.cObject = COA
if.isTrue.cObject {
10 = TEXT
10 {
value = 1
if.value = 10
if.equals.field = colPos
}
20 = TEXT
20 {
value = 1
value = textmedia
equals.field = CType
}
}
}
}
}
有關此的一些有用的文檔:
https://docs.typo3.org/typo3cms/TyposcriptReference/Functions/If.html
https://docs.typo3.org/typo3cms/TyposcriptReference/Functions/Stdwrap.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.