Zum Inhalt springen

"IMAGE.file" abhängig von "TEXT.value" setten/ausgeben

Erstellt am 12. März 2008 · 3 Antworten · letzte Antwort am 14. März 2008

Tags: Bilder, Frage

benkow ·

Hallo,
ich möchte gerne in Abhängigkeit des Wertes eines TEXT-Content-Elements unterschiedliche Bilder darstellen.

Hat das Element den Wert "green", möchte ich "green.gif" anzeigen, ansonsten "grey.gif".

Kann doch eigentlich nicht soo schwer sein, oder? Habe einfach arge Probleme, ein einfaches if/else zu konstruieren...

Vielen, vielen Dank für Eure Hinweise im Voraus!

Etwas Code:

page.10.marks.CONTENT {
template = FILE
template.file = fileadmin/templates/template.html
workOnSubpart = SCREEN

marks {

BESCHREIBUNGEN = TEXT
BESCHREIBUNGEN {
    value=green
}

#if ? else?

STATUS_IMAGE = IMAGE
STATUS_IMAGE{
    file=fileadmin/img/green.gif
}

/*oder...
STATUS_IMAGE{
    file=fileadmin/img/grey.gif
}   
*/
#nur wie?                 
                        
}#marks
}#page

#angry#

benkow ·

ok - vielen dank für den Hinweis.

ich hatte nicht verstanden, dass sich das if auf die vorhergehende Definition bezieht. Die Lösung meines Problems sieht also in etwa so aus:

constants.test=green
#image abhängig von status anzeigen
	marks.STATUS_IMAGE = COA

	marks.STATUS_IMAGE{
		10=IMAGE
		10.file=fileadmin/img/green_dot.gif
		10.if{
			value < constants.test
			equals=green
		}
				
		20=IMAGE
		20.file=fileadmin/img/grey_dot.gif
		20.if{
			value < constants.test
			equals=green
			negate=1
		}
	}

Beste Grüße!

benkow ·

...das bringt mich allerdings direkt zu meiner nächsten Frage:

Ich habe eine Seite mit Standard-Content-Elementen, die ich im Backend erstellt habe. Diese sollen später von Redakteuren im Frontend editiert werden können. Soweit so gut.

Für die Ausgabe der Content-Elemente (normale Texte u. Header) benutze ich ein select:

marks.BESCHREIBUNGEN = CONTENT
marks.BESCHREIBUNGEN {

             table = tt_content
             select {
              #Spalte "Normal"
              where = colPos = 0
              orderBy = sorting
              languageField = sys_language_uid
             }
}

Problem: in einem der Text-CEs (immer an gleicher Stelle) steht ein String, dessen Wert vorgibt, welche Grafik geladen werden soll.
In etwa so hier (siehe auch vorhergehender Beitrag):

#wie auf das recordset von select zugreifen??
10=IMAGE
10.file=fileadmin/img/green_dot.gif
10.if{
   value < page.10.marks.CONTENT.marks.BESCHREIBUNGEN.value#... pfad??
   equals=green
}
#...

Frage: wie kann ich auf diesen String zugreifen? Ich weiß ja nicht den Pfad, an den ein Inhalt von Typo generiert wird. Und wenn ich ein renderObj für die Ausgabe benutze, kann ich auch nicht die Inhalte per "Pfadangabe" referenzieren.
Abgesehen davon klappt dann das FE-Editing auch nicht mehr...

Vielen Dank für Eure Hilfe im Voraus!