[TYPO3-german] Re: Re: Graphische Header (gifbuilder) abhängig von der Spalte / Col

Bernd Wilke t3ng at pi-phi.tk
Wed Apr 27 11:34:56 CEST 2011


On 04/27/2011 10:54 AM, Björn Pedersen wrote:
> Am 27.04.2011 10:33, schrieb peter at alinbu.net:
>> Hallo und einen wunderschönen guten Morgen zusammen!
>>
>> Ich brauche für ein Projekt unterschiedlich gestaltete, graphische
>> Header je nach Spalte und finde nicht die richtige Möglichkeit, das
>> irgendwie über conditions zu regeln. Gedankenansatz, bei dem mir einfach
>> noch die Condition fehlt:
>>
>>
>> ######### Definition der Header-Images ############
>>
>> lib.headerForLeftColumn = IMAGE
>> lib.headerForLeftColumn {
>>       ...
>>
>>     10 = TEXT
>>     10 {
>>       fontColor = #00b0e6
>>      ....
>>     }
>> }
>>
>> lib.headerForMainColumn = IMAGE
>> lib.headerForMainColumn {
>>       ...
>>
>>     10 = TEXT
>>     10 {
>>       fontColor = #444444
>>      ....
>>     }
>> }
>>
>> ######### Condition ############
>>
>> lib.stdheader.10.1<  lib.headerForLeftColumn
>>
>> [Condition, um die Hauptspalte zu identifizieren]
>>      lib.stdheader.10.1<  lib.headerForMainColumn
>> [global
>>
>> ################################################
>>
>>
>> Hat jemand einen Tipp für mich oder einen anderen Ansatz, wie ich die
>> Überschriften in verschiedenen Spalten / Websitebereichen auch
>> verschieden definieren kann?
>>
>> Herzlichen Dank!
>> Peter
>>
>>
>>
> Hallo,
>
> Falscher Ansatz! Nicht lib.stdheader ändern, sondern
> in den Spalten einen neuen Header zuweisen ( der TypoScript Object
> Browser hilft, die erforderlichen Einträge zu identifizieren).
>
> Alternativ lib.stdheader... als CASE mit Spalte als Key.

oder auch:

lib.stdheader.10.1 >
lib.stdheader.10.1 = COA
lib.stdheader.10.1 {
   // right column :
   2 = IMAGE
   2 {
     if.value = 2
     if.isInList.field = colPos
     altText.stdWrap.field = header
     stdWrap.typolink.parameter.field = header_link

     file = GIFBUILDER
     file {
	// render header as graphic
	:
	something
	:
     }
   }
   // version for other than right column:
   3 < .2
   3 {
     if.negate = 1
     file {
	:
	something different
	:
     }
   }
}

durch das Kopieeren "3 < .2" wird die grundkonfiguration übernommen und 
man muss nur noch die Unterschiede angeben (andere breite, farbe, ...), 
während wichtige Dinge gleich bleiben (font, hintergrundbild, ...)

> Warum? Das TS wird einmal geparst (und dabei die Conditions ausgewertet)
> und dann werden die jeweiligen Objekte ausgeführt.
> Zum Zeitpunkt der Condition-Auswertung sind noch keine Informationen
> über die Spalten bekannt.

anders ausgedrückt:
Conditions beziehen sich immer auf die gesamte Seite.

um einzelne Teile einer Seite unterschiedlich zu behandeln muss man 
andere Maßnahmen ergreifen.
Da Typoscript aber keine Programmiersprache ist, muss man anders denken!
es gibt eben kein
if (bedingung) then
	do something
else
	do something different

bernd


More information about the TYPO3-german mailing list