thomas_ritter
I'm new here

Snipptes - Switch-Case

Jump to solution

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

1 Solution

Accepted Solutions
mbergmann
Crownpeak employee

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

View solution in original post

0 Kudos
3 Replies
thmarx
I'm new here

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

0 Kudos
mbergmann
Crownpeak employee

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

0 Kudos

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

0 Kudos