[Typo3-german] Wie baue ich eine AND-Condition?
Kussmann, Juergen
j.kussmann at t-online.net
Wed Nov 30 16:06:07 CET 2005
Vielen Dank Tim,
Deine Beispiele waren sehr lehreich!
Mittlerweile nutze ich die Extension 'conditions', mit welcher man sehr einfach AND-Bedingungen bauen kann. Diese kleine Extension, basierend auf der XCLASS-Technologie, sollte meines erachtens in den Core von Typo3 aufgenommen werden...mal schauen.
Viele Grüsse,
Jürgen Kußmann
-----Original Message-----
From: Tim Riemenschneider [mailto:lists-05 at tim-riemenschneider.de]
Sent: Wednesday, November 30, 2005 3:39 PM
To: typo3-german at lists.netfielders.de
Subject: Re: [Typo3-german] Wie baue ich eine AND-Condition?
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