[Typo3-german] Wie baue ich eine AND-Condition?
Tim Riemenschneider
lists-05 at tim-riemenschneider.de
Wed Nov 30 15:38:59 CET 2005
Kussmann, Juergen schrieb:
> Hallo Liste,
>
> Ich brauche in TypoScript eine Condition, welche einen Code auführt, wenn
> - die PID eine 4 ist UND
> - der doktype 102 ist
>
>
> Mein Ansatz sieht so aus und funktioniert leider nicht richtig :-(
> Es sieht eher so aus, als wenn dies eine OR-Condition wäre.
>
> [globalVar = TSFE:page|pid={$rootPageID}]
> [globalVar = TSFE:page|doktype=102]
> temp.navigation.10.value = <li><strong><a href="index.php">Startseite</a></strong></li>
> [global]
> [global]
>
>
> Wie kriege ich das hin? Auf typo3.org habe ich nichts entsprechendes gefunden.
>
> Jürgen Kußmann
Man kann ein AND auch durch temporäre Zuweisungen emulieren:
-----------
##löschen
temp.something >
##alternativ: default-Wert übernehmen
#temp.something < temp.navigation.10.value
[globalVar = TSFE:page|pid={$rootPageID}]
## Wert zwischenspeichern
temp.something = <li><strong><a
href="index.php">Startseite</a></strong></li>
[global]
[globalVar = TSFE:page|doktype=102]
## kopieren
temp.navigation.10.value < temp.something
[global]
----------------
Das heißt, in der ersten Bedingung wird eine temoräre Variable gefüllt,
in der zweiten der Wert an den Zielort kopiert.
(Ungetestet, sollte meiner Meinung nach aber gehen.)
Solche Konstrukte werden natürlich bei mehr als zwei Bedingungen
hässlich, dann bietet es sich an, die Logik umzudrehen:
(a AND b AND c AND d) entspricht NOT(NOT a OR NOT b OR NOT c OR NOT d)
-----
temp.v = mein gewünschter Wert
[a]
[else]
temp.v = default
[b]
[else]
temp.v = default
[c]
[else]
temp.v = default
[d]
[else]
temp.v = default
[global]
ergibnis.variable < temp.v
--------
d.h. man setzt die temp. Variable auf das Ergebnis und baut dann
Conditions, die die Variable wieder auf den Default-Wert zurücksetzen,
wenn eine der Bedingungen (a, b, c, d) NICHT erfüllt ist.
Gruß
Tim
More information about the TYPO3-german
mailing list