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

Ahok

Gut bekanntes Mitglied
11. September 2023
308
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
146
64
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
308
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.264
2.474
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
146
64
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.264
2.474
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
146
64
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.264
2.474
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 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
Webinar: Strategien der E-Commerce-Leader - wie unterschiedliche Produktrollen Umsatz und Marge steigern Messen, Stammtische und interessante Events 0
Meine Bestellungen sind in einer Pickliste "verschollen" - WIE bekomme ich sie in die Wawi-Pickliste??? JTL-Wawi 1.11 2
Artikel Z besteht aus den Positionen A, B und C mit unterschiedlichen Steuersätzen. Wie im Angebot, Auftrag, Rechnung richtig dargestellen ? JTL-Wawi 1.11 4
Neu Wie wird die Seite "suche nach:" erzeugt? Allgemeine Fragen zu JTL-Shop 4
Neu Mit Ameise nur einen Artikel & die dazu gehörenden Varianten exportieren - wie? Schnittstellen Import / Export 3
Neu hood.de - Wie kann ich Dateien (z.B. Sicherheitsdatenblatt) automatisch einbinden? Einrichtung und Installation von JTL-eazyAuction 1
Neu hood.de - Wie funktionieren Artikelvarianten? Einrichtung und Installation von JTL-eazyAuction 0
Neu Einkauf organisieren, wenn Lager ohne Lagerbestand - wie macht Ihr das? Arbeitsabläufe in JTL-Wawi 0
Neu Wie lässt sich der Lieferstatus von Aufträgen per SQL abfragen? User helfen Usern - Fragen zu JTL-Wawi 8
Bestand anderer Kinderartikel wird in Artikelstammdaten mit angezeigt – wie kann man das deaktivieren? JTL-Wawi 1.11 2
Neu Wie verbanne ich Fremdsprachen-Anfragen aus der JTL-Search? Allgemeine Fragen zu JTL-Shop 2
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
Neu Ich möchte konfigurieren, dass Artikel mit einem Lagerbestand von 0 nicht mehr zu einer Bestellung hinzugefügt werden dürfen Eigene Übersichten in der JTL-Wawi 1
Neu Wo kann ich mich über JTL Kundencenter beschweren? 20 Minuten Lang einen Bug im Ticket dokumentiert, und am Ende "ein Fehler ist aufgetreten" Smalltalk 3

Ähnliche Themen