Zum Inhalt springen

Mehrfach Condition

Erstellt am 30. August 2009 · 4 Antworten · letzte Antwort am 1. September 2009

Tags: Frage

ran2 ·

Hallo zusammen,

habe irgendwie ein Syntax Problem mit ner Condition. Ich versuch sinn gemäss folgendes:

[globalVar = TSFE:id = 23]
lib.mainpic = TEXT
lib.mainpic.value = abc

[globalVar = TSFE:id = 22]
lib.mainpic = TEXT
lib.mainpic.value = 123

[else]
lib.mainpic = TEXT
lib.mainpic.value = 5555

[global]

Nur leider werden immer nur zwei Conditions berücksichtigt. ICh möchte aber einfach nicht für alle seiten die alle gleich sein sollen alle ids eintragen, also PIDinlist eher nicht.. Was mache ich falsch ?

Vielen Dank schonmal für jegliche Hilfe!

Julian.​Hofmann ·

Hallo.

ran2 schrieb

Was mache ich falsch ?

Zu kompliziert denken 😉

In anderen Worten willst Du überall als value 5555, nur bei den Seiten 22 und 23 andere Werte. Entsprechend müsstest Du einfach auch im TS vorgehen und erst der allgemeinen Fall festlegen, und den überschreibst Du ggf. wenn die Condition erfüllt ist.

lib.mainpic = TEXT
lib.mainpic.value = 5555

[globalVar = TSFE:id = 23]
lib.mainpic.value = abc

[globalVar = TSFE:id = 22]
lib.mainpic.value = 123
[global]

Ist anfangs etwas gewöhnungsbedürftig, dieses Andersherum-Denken. Aber mit der Zeit kommt man dann ohne else aus 🙂

Viele Grüße
Julian

Michaelh74 ·

@Julian: ich glaub Dir ist das schließende global der ersten Condition unter den Tisch gefallen ;-)

lib.mainpic = TEXT
lib.mainpic.value = 5555
 
[globalVar = TSFE:id = 23]
lib.mainpic.value = abc
[global]
 
[globalVar = TSFE:id = 22]
lib.mainpic.value = 123
[global]
ran2 ·

Hmm, das war mein erster Versuch 😃 . Allerdings gings nicht. wahrscheinlich habe ich mich vertippt.

Jetzt habe ich es genauso allerdings habe ich in conditions noch:

lib.mainpic >

danke aber auf jeden fall !

Julian.​Hofmann ·

Nein Michael. Die Conditions schließen sich gegenseitig aus (Page-ID kann ja nicht 22 und 23 sein). Daher ist es in Pseudo-Code

IF id=23
  // do something
ELSE IF id=22
  // do something other
END;

Deine Korrektur wäre für diesen Pseudo-Code

IF id=23
  // do something
END;

IF id=22
  // do something other
END;

Im Fall von id=23 würde der zweite Teil meines Codes ignoriert werden, weil die erste Bedingung bereits eingetroffen ist. In Deinem Code mit den zwei globals würden beide Bedingungen immer geprüft werden, unabhängig davon, ob eine bereits eingetreten ist.