Neu Wie schreibe ich in DotLiquid ein "und" und "oder"

Ahok

Gut bekanntes Mitglied
11. September 2023
316
12
Zum Beispiel für diesen Code:
Code:
{% if Vorgang.Allgemein.PreiseEinheiten.MasseinheitAbk != 'l' ODER 'dl' ODER 'cl' ODER 'ml' ODER 't' ODER 'kg' ODER 'g' ODER 'mg' ODER 'km' ODER 'm' ODER 'dm' ODER 'cm' ODER 'mm' ODER 'm²' ODER 'dm²' ODER 'cm²' ODER 'mm²' ODER 'm³' ODER 'dm³' ODER 'cm³' ODER 'mm³' ODER 'in' ODER 'lb' %}
Grundpreis nicht ausweisungspflichtig!
{% endif %}

Ist diese Doku https://shopify.github.io/liquid/basics/operators/ auch hier anwendbar? Oder ist DotLiquid nicht mit Liquid vergleichbar? Habe das was dort steht versucht, aber es funktioniert nicht.
 
Zuletzt bearbeitet:

zaxxo

Offizieller Servicepartner
SPBanner
29. November 2022
148
68
Michelstadt
Firma
Zaxxo UG (haftungsbeschränkt)
Hi, die grundlegende Syntax ist die gleiche. Lediglich ein paar Filter sind nicht untereinander kompatibel. and und or sind schon richtig. Aber du darfst damit nicht die einzelnen Werte verknüpfen, sondern musst die Bedingung immer wieder neu anfangen, also in etwa so:

Code:
{% if Vorgang.Allgemein.PreiseEinheiten.MasseinheitAbk != 'l' and Vorgang.Allgemein.PreiseEinheiten.MasseinheitAbk != 'dl' and Vorgang.Allgemein.PreiseEinheiten.MasseinheitAbk != 'cl' %}
Grundpreis nicht ausweisungspflichtig!
{% endif %}
 
  • Gefällt mir
Reaktionen: Ahok

Ahok

Gut bekanntes Mitglied
11. September 2023
316
12
Hi, die grundlegende Syntax ist die gleiche. Lediglich ein paar Filter sind nicht untereinander kompatibel. and und or sind schon richtig. Aber du darfst damit nicht die einzelnen Werte verknüpfen, sondern musst die Bedingung immer wieder neu anfangen, also in etwa so:

Code:
{% if Vorgang.Allgemein.PreiseEinheiten.MasseinheitAbk != 'l' and Vorgang.Allgemein.PreiseEinheiten.MasseinheitAbk != 'dl' and Vorgang.Allgemein.PreiseEinheiten.MasseinheitAbk != 'cl' %}
Grundpreis nicht ausweisungspflichtig!
{% endif %}
Vielen Dank für die Antwort!
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
8.448
2.573
Berlin
Firma
css-umsetzung
Du siehst ja das deine Abfrage dann schnell unübersichtlich wird und später schlecht zu pflegen ist.
Daher würde ich das eher anders aufbauen.

Das wäre meine Idee dazu:

Objective-C:
{% assign out = 'Grundpreis nicht ausweisungspflichtig!' -%}
{% capture aList -%}
dl,
cl,
ml,
t,
kg,
g,
mg
{% endcapture -%}
{% assign aList = aList |Replace:"\s":"" | Split:"," -%}
{% for item in aList -%}
{% if  Vorgang.Allgemein.PreiseEinheiten.MasseinheitAbk == item -%}
{% assign out = '' -%}
{% endif -%}
{% endfor -%}
{{ out }}
 
Zuletzt bearbeitet:

zaxxo

Offizieller Servicepartner
SPBanner
29. November 2022
148
68
Michelstadt
Firma
Zaxxo UG (haftungsbeschränkt)
Ich glaube das kannst du sogar noch weiter vereinfachen:

Code:
{% capture aList -%}
dl,
cl,
ml,
t,
kg,
g,
mg
{% endcapture -%}
{% assign aList = aList |Replace:"\s":"" | Split:"," -%}
{% unless aList contains Vorgang.Allgemein.PreiseEinheiten.MasseinheitAbk -%}
Grundpreis nicht ausweisungspflichtig!
{% endunless -%}

Ich meine zumindest, dass der contains Operator auch mit Arrays umgehen kann, bin mir aber nicht sicher, habe es jetzt auch nicht getestet.
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
8.448
2.573
Berlin
Firma
css-umsetzung
Contains prüft ja, ob ein Teil eines Strings oder eben Zeichen darin vorkommt
daher wäre mir das zu unsicher, dummes Beispiel, er hat in seiner Variable "l" und im Array kommt "ml", dann würde contains das als gefunden werten.

Ist wie gesagt ein dummes Beispiel, weil er ja auch auf "l" prüft aber wer weiß was da noch alles so an Werten im Bezug auf den Array geprüft wird.
 

zaxxo

Offizieller Servicepartner
SPBanner
29. November 2022
148
68
Michelstadt
Firma
Zaxxo UG (haftungsbeschränkt)
Ich meine, dass DotLiquid schaut, ob der linke Teil ein Array ist, wenn ja dann wird nach einem Element gesucht, welches dem rechten Teil gleicht. Also DotLiquid achtet schon auf den Datentyp. Dachte ich zumindest immer :)
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
8.448
2.573
Berlin
Firma
css-umsetzung
Ich teste mal schnell....
Ja du hast recht, contains kann da wirklich unterscheiden, hab es gerade getestet :)

Ich bezeichne dotLiquid ja immer als Neandertalsprache weil das immer so zickig ist :)

Also dann ist es natürlich noch übersichtlicher und in jedem Fall besser als da 100 and Verknüpfungen zu bauen
 
  • Gefällt mir
Reaktionen: zaxxo
Ähnliche Themen
Titel Forum Antworten Datum
Neu XRechnung, ZUGFeRD, Was hängt wie zusammen? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Aktuellste unproblematische WAWI-Version finden - wie ? JTL-Wawi - Ideen, Lob und Kritik 6
Neu Bestände in-house und beim Lieferanten + Proforma-Rechnungen, wie? Arbeitsabläufe in JTL-Wawi 3
Neu Wie aktiviere ich den richtigen EK bei freiem Wareneingang? Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu Streichpreise oder Rabatte für Staffelpreise von einem Artikel einrichten? Wie am Besten? JTL-Wawi 1.6 0
Neu POS im Kundencenter buchen, aber wie und wo? Allgemeine Fragen zu JTL-POS 2
Neu Wie Ebaypreise anheben (incl. Varianten)? eBay-Anbindung - Fehler und Bugs 0
Neu Produktverkauf von max. 24 Stück am Tag - wie umsetzen ? User helfen Usern - Fragen zu JTL-Wawi 1
Neu wie Wawi eigene Felder (Kunden) an Shop DB übertragen? User helfen Usern - Fragen zu JTL-Wawi 3
Neu Workflow funktioniert nicht so wie gewollt :) User helfen Usern - Fragen zu JTL-Wawi 1
Neu JTL Editionen / JTl Wawi / Shopify / Durchblick verloren Kosten / Was brauche ich wirklich User helfen Usern - Fragen zu JTL-Wawi 3
Neu Wo verändere ich die Variable #firma.name# die in Mail-Vorlagen zu finden ist? Allgemeine Fragen zu JTL-Shop 2
Neu Wo kann ich in JTL das Datum sehen, an dem eine Bestellung als bezahlt bestätigt wurde? User helfen Usern - Fragen zu JTL-Wawi 1

Ähnliche Themen