Search the FirstSpirit Knowledge Base
Hallo zusammen,
ist es irgendwie möglich in den Snippets für "Minaturansicht" eine Switch-Case-Abfrage einzubauen?
Grund dafür ist, dass wir eine Auswahl über Radiobuttons im Formular haben, über die man verschiedene Stages auswählen kann (Picture, Flash, Pagination, Youtube, Fallback ....).
Nun würde ich gerne ne nach gewähltem Stage das passende Minaturbild ausgeben wollen (ohne lange if-else-Konstruktionen).
Ist das Möglich? Alternative vorschläge?
Gruß
Thomas
Hallo Thomas,
generell ist es so, dass Du hier einen Ausdruck angeben musst - mehrere funktionieren nicht.
Die if-Funktion kann aber beliebig viele Argumente aufnehmen (siehe entsprechendes Kapitel im ODFS), die if-then-else-Variante ist sozusagen nur ein "Spezialfall".
Darum muss man hier gar nicht zwingend schachteln sondern kann letztlich ganz einfach eine Art switch/case-Konstrukt bauen (es sieht nur ein bisschen anders aus). Mit entsprechenden Umbrüchen und Einrückungen bekommt man das auch recht übersichtlich hin:
if(
"stage".equals(pt_headerType.value),
pt_stagePicture,
"special".equals(pt_headerType.value),
pt_specialPicture,
"superspecial".equals(pt_headerType.value),
pt_superSpecialPicture,
"megaspecial".equals(pt_headerType.value),
pt_megaSpecialPicture,
medium("no_picture")
)
Die letzte Zeile ist dann der Default-Fall falls keine der anderen Bedingungen greift.
Viele Grüße
Michael
Hallo Thomas,
ich glaube switch-case kannst du hier nicht verwenden. Wenn du aber das else einfach weg lässt, kannst du es auch einfach mit mehreren IFs machen:
if("stage".equals(pt_headerType.value) , pt_stagePicture)
if("special".equals(pt_headerType.value) , pt_specialPicture)
So sollte es gehen.
pt_headerType ist in diesem Fall eine CMS_INPUT_RADIOBUTTON Komponente.
Gruß
Thorsten
Hallo Thomas,
generell ist es so, dass Du hier einen Ausdruck angeben musst - mehrere funktionieren nicht.
Die if-Funktion kann aber beliebig viele Argumente aufnehmen (siehe entsprechendes Kapitel im ODFS), die if-then-else-Variante ist sozusagen nur ein "Spezialfall".
Darum muss man hier gar nicht zwingend schachteln sondern kann letztlich ganz einfach eine Art switch/case-Konstrukt bauen (es sieht nur ein bisschen anders aus). Mit entsprechenden Umbrüchen und Einrückungen bekommt man das auch recht übersichtlich hin:
if(
"stage".equals(pt_headerType.value),
pt_stagePicture,
"special".equals(pt_headerType.value),
pt_specialPicture,
"superspecial".equals(pt_headerType.value),
pt_superSpecialPicture,
"megaspecial".equals(pt_headerType.value),
pt_megaSpecialPicture,
medium("no_picture")
)
Die letzte Zeile ist dann der Default-Fall falls keine der anderen Bedingungen greift.
Viele Grüße
Michael
Hallo Thomas,
benötigst du noch weitere Hilfe oder haben dir die beiden Antworten von Thorsten und Michael bereits geholfen? In diesem Fall wäre es super, wenn du die "richtige Antwort" entsprechend markierst.
Solltest du zwischenzeitlich eine eigene Lösung gefunden haben, wäre es nett, wenn du diese hier bereitstellst.
Viele Grüße
Michaela