Zum Inhalt springen

if.isTrue mit cObject

Erstellt am 11. Dezember 2013 · 2 Antworten · letzte Antwort am 4. Januar 2014

Tags: TYPO3 4.x, Frage

tmueller ·

Hallo Community,

ich gebe mit folgendem TS eine Nummer für einen verschachtelten Datensatz aus, bekomme es aber nicht hin, das hier nur ausgegeben wird, wenn auch was vorhanden ist.

In der ersten Abfrage, prüfe ich ob das Feld Customer "True" ist, das funktioniert auch, nun möchte ich aber innerhalb dieser Schleife noch überprüfen ob das Feld { DB : tx_eine_extension : | : phone } auch "True" ist und nur dann eine Ausgabe erfolgt.

        tx_eine_extension.offices.split {                
          token = ,
          cObjNum = 1
            1.if.isTrue = ###TX_EINE_EXTENSION.CUSTOMER_YES###
            1 {
              cObject = COA
              cObject {                             
                20 = COA               
                20.10 = HTML
                20.10 {
                  value {
                      cObject = HTML
                      cObject {
                        value {
                          current = 1
                          wrap = Phone: { DB : tx_eine_extension : | : phone }
                          required = 1
                          insertData = 1                            
                        }
                      }
                    }
                  }

Die Freizeichen sind nur drin damit sie hier nicht geparst werden.

Grüße
T. Müller

aemka ·

Ich weiß die Antwort zwar nicht, aber damit man nicht vor genau solchen Konstellationen steht, sollte man m. M. n. in solchen Fällen mit Extbase + Fluid arbeiten und nicht anfangen mit einer Konfigurations-Sprache wie Typoscript aufwändige Dinge zu "programmieren".

froemken ·

Das Problem ist, dass insertData SEHR spät im stdWrap-Prozess ausgeführt wird, da kannst Du auch mit required, ifEmpty und Co nix mehr reißen. Ich würd den letzten Abschnitt eher so bauen:

cObject = HTML
cObject {
  value {
    stdWrap {
      current = 1
      wrap = Phone: { DB : tx_eine_extension : | : phone }
      insertData = 1
    }
    required = 1
  }
}

Auf diese Weise wird erstmal der Wert geholt und Dank dem zusätzlichen stdWrap kannst Du nun mit required, if und Co. selbst entscheiden, was nun passieren soll.