[TYPO3-german] conditions: ein paar Fragen

Bernd Wilke xoonsji02 at sneakemail.com
Thu Dec 6 23:09:25 CET 2007


On Thu, 06 Dec 2007 19:49:36 +0100, Gerhard Mehsel wrote
with subject "[TYPO3-german] conditions: ein paar Fragen":

> Hallo ,
> 
> ich habe ein Verständnis Problem bzgl. conditions bzw. teilweise ein 
> komisches Verhalten auf der Webseite, deswegen bitte ich jemanden mal 
> meine Fragen anzusehen und zu sagen, ob ich das richtig sehe oder falsch 
> liege.

ohne gewähr und ich antworte nur da wo ich glaube(!) etwas zu wissen ;-)

> Folgendes Konstrukt:
> 
> 
> page.10 = TEXT
> page.11 = TEXT
> page.12 = TEXT
> page.10.value = T123
> page.11.value = T456
> page.12.value = T789
> 
> 
> 
> #####  Abschnitt_1 #####
> [globalVar = GP:sel = Ja ]
>    page.10.value = lala
>    page.11.value = lulu
>    page.12.value = lele
> [global]
> 
> 
> #####  Abschnitt_2 #####
> [globalVar = GP:sel = Ja ] && [globalVar = GP:color = Ja ]
>    page.10.value = 123
>    page.11.value = 456
> [global]
> 
> 
> 1) Typo3 4.1.1 kann doch inzwischen conditions mit && und || verknüpfen, 
> wobei && höher gewichtet wird. Klammerung gibt es nicht?
> 
> 
> 2) Wird TS (in dem Fall in einem Ext Template) bei jedem Aufruf einer 
> Seite neu ausgewertet oder wird etwas gecached?

sofern caching erlaubt ist wird für jede Condition eine Version der Seite
gecacht. Wenn du sehr viele Conditions hast (s.u.) wären das viele
Versionen der Seite (die natürlich teilweis eauch identisch sein können)
 
> 
> 3) Ist nun sel=Ja und color=Ja, wird alles zuerst in Abschnitt_1 gesetzt 
> und dann wird page.10 und page.11 in Abschnitt_2 wieder überschrieben? 
> D.h. es kommt auf die Reihenfolge der conditions im TS an?

Ja. 
beachte, dass die Conditions nicht inline ausgewertet werden.
zuerst werden die Conditions ausgewertet, dann wird das daraus
resultierende Typoscript gebildet. 
Es funktioniert NICHT, das ich in einer Condition einen Wert setze, um
diesen dann in der nächsten Condition abzufragen

[globalVar = GP:L = 1]
config.sys_language_uid = 1
[global]

# Versuch obiges Setzen von sys_language_uid abzufragen:
[globalVar = TSFE:sys_language_uid = 1]
hier kommt man niemals hin, auch wenn die Abfrage grundsätzlich möglich ist
und abgefragt werden kann.
[global] 
 
> 
> 4) vertausche ich nun Abschnitt_1 und Abschnitt_2, sel=Ja und color=Ja 
> wird dann zuerst page.10.value=123 und page.11.value=456 gesetzt; 
> page.10.value und page.11.value danach aber mit den Werten aus 
> Abschnitt_1 wieder überschrieben, da sel=Ja ist; page.12.value ist am 
> Ende 'lele'.
> Oder gilt die condition die "am besten" matched?

sequentiell. du schliesst sie ja auch jeweils mit [global] ab.
ich weiss nicht genau, aber ein Konstrukt der Art:
[globalVar = GP:L = 1]
config.sys_language_uid = 1
[globalVar = GP:K = 2]
config.sys_language_uid = 2
[globalVar = GP:M = 3]
config.sys_language_uid = 3
[global]

würde nach dem ersten Treffer aussteigen 
bei einem Aufruf der Art index.php?id=10&K=2&M=3 würde also 2 in
config.syslanguage stehen, während bei:

[globalVar = GP:L = 1]
config.sys_language_uid = 1
[global]
[globalVar = GP:K = 2]
config.sys_language_uid = 2
[global]
[globalVar = GP:M = 3]
config.sys_language_uid = 3
[global]

3 drin stehen würde. (Bitte ausprobieren!!!)
 
> 
> 5) sel=irgendwas und color=Ja richtet gar nichts an, es sei den man 
> verknüpft Abschnitt_2 mit einem || statt &&?
> 
> 
> 6) Können conditions verschachtelt werden (würde es übersichtlicher machen)?
> [globalVar = GP:sel = Ja ]
>     [globalVar = GP:color = Ja ]
>        # tue etwas
>     [global]
> [global]

nein. liegt vermutlich an Be/Abarbeitung
 
> 
> 7)Ich muss sehr verschachtelte Conditions machen, gibt es da einen 
> "Königsweg?

müssen es wirklich Conditions sein?
u.U. empfiehlt sich eine Extension, die da etwas flexibler in der
Auswertung ist.
Oder aber Extension-Templates (wenn bei den orginal-Conditions viele
Seiten/Seitenbäume abgefragt werden) die in der Seite vor dem
entsprechenden Zweig etwas anderes aktivieren/konfigurieren als global.
 
> 
> 8) Ist ein Ext Template mit ca. 36 conditions, tw. mit && und || eher 
> selten, stell ich mich so an oder kommt so etwas durchaus vor?

hm. es kommt schon mal vor. In meiner Praxis aber eher selten.

Ich halte es auch nicht für so praktisch, da man sicher schnell die
Übersicht verliert, auf welcher Seite was wie gerendert wird.


das meiste kannst du auch mit dem Objectbrowser selber austesten:
geh auf eine Seite, wo du die Auswirkungen der Conditions testen möchtest.
im Objectbrowser kannst du jetzt unter dem Typoscript-Array-Baum für jede
Condition einzeln auswählen ob sie gilt oder nicht. du siehst den aus
diesen Conditions resultierenden Typoscript-Array-Baum.
hier sieht man auch den Nachteil uneinheitlicher Schreibweise:

[globalVar = GP:L = 1]
[globalVar = GP:L=1]
[globalVar =GP:L=1]
[globalVar =GP:L= 1]

sind alles unterschiedliche Conditions, auch wenn sie eigentlich alle das
gleiche abfragen.
 
Bernd
-- 
Don't ask what the TYPO3-community can do for you.
Ask what you can do for the TYPO3-community.

http://www.pi-phi.de/t3v4/cheatsheet.html


More information about the TYPO3-german mailing list