Hallo zusammen.
Ist es möglich, die Ausführung einer Datenbankabfrage zu verhindern, wenn eine bestimmte Bedingung gegeben ist?
Ich habe die Tabelle pages um ein Feld (tx_xyz_ansprechpartner) erweitert, das die UID eines tt_address-Satzes enthalten kann. Damit kann ich einer Seite einen Ansprechpartner zuordnen. Bei der Ausgabe der Seite soll die Ansprechpartneradresse ermittelt und ausgegeben werden – aber nur, wenn das Feld gesetzt ist.
Die Datenbankabfrage darf nur ausgeführt werden, wenn das Ansprechpartner-Feld gesetzt ist.
Es gelingt mir nicht, das richtig zu konfigurieren. Die Ausgabe wird zwar unterlassen, wenn das Feld nicht gesetzt ist, aber die DB-Abfrage wird durchgeführt, allerdings mit ungültigem SQL.
Hier ist mein TypoScript:
ansprechpartner = CONTENT
ansprechpartner {
# Dieses if wirkt auf die Ausgabe, aber nicht auf die SQL-Ausführung:
stdWrap.if.isTrue.data = page:tx_xyz_ansprechpartner
wrap = <div id="ansprechpartner"> | </div>
table = tt_address
select {
# Alle Adressen sind in Ordner 285 oder in dessen Unterordnern:
pidInList = 285
# Auch Unterordner durchsuchen:
recursive = 99
# Wenn tx_xyz_ansprechpartner nicht gesetzt ist, gibt es
# WHERE uid in ()
# und damit einen Fehler:
andWhere {
data = page:tx_xyz_ansprechpartner
wrap = uid in (|)
}
}
renderObj = COA
renderObj {
# Ausgabe des Adressdatensatzes…
}
}
ansprechpartner.stdWrap.if… wird zu spät ausgeführt und wirkt darum nur auf die Ausgabe. Welche anderen Möglichkeiten gibt es? Ist CONTENT überhaupt das Richtige? RECORDS scheint mir allerdings nicht geeignet.
Danke für eure Hilfe!
Tosta