Hi zusammen,
ich schreibe grade ein Snippet (Script), das zwei Parameter nimmt:
- einen
mode
, der20
,50
,80
oderdel
entsprechen soll - eine Liste
shops
, die Semikolon-getrennt IDs enthält (entspricht demVariationClientIDs
aus Plenty)
In Abhängigkeit zu beidem, möchte ich dann einen String zurück geben (der wiederum eine Verkettung von IDs ist).
Was wunderbar klappt, ist die Unterscheidung nach shops
. Real nehm ich noch mehr Werte, aber vereinfacht tu ich das:
Jetzt möchte ich aber für einen bestimmten Wert von shops
den String zusätzlich nach dem Wert von mode
gestalten.
Ich ergänze:
<#if (shops?split(';')?seq_contains('9948'))>
<#assign categories = categories + '196;' />
<#if (mode == '20')>
<#assign categories = categories + '817;' />
<elseif (mode == '50')>
<#assign categories = categories + '818;' />
<elseif (mode == '80')>
<#assign categories = categories + '819;' />
<elseif (mode == 'del')>
<#assign categories = categories + '817;818;819;' />
</#if>
</#if>
Und da steigt irgendwas in der Logik aus?
Ich bekomme raus:
Im ersten Fall (mode
ist 20) werden scheinbar alle Bedingungen gleichzeitig erfüllt. Im zweiten Fall (mode
ist 50) wird hingegen keine der Bedinungen erfüllt. Hääää?
Ich bin mir sicher irgendwas mit Scope oder Typisierung ist schuld, aber ich komm nicht drauf was ich anders machen muss…
Den Mode als Zahl statt String übergeben hab ich schon versucht. Die String-Verkettung war auch mal eine Sequenz, auch das ändert nichts. Aber Variablen verketten geht nicht anders als durch erneutes assign
sagt StackOverflow? Und weiter unten klappts ja auch. Nur im verschachtelten IF nicht?
Danke, Daniel