Questions & Answers

SOLVED
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

Type a product name