Neu If`s im Shop

gnarx

Sehr aktives Mitglied
18. Januar 2018
3.829
525
Ich nutze ja:
Code:
{if (isset($Artikel->FunktionsAttribute.material_de) && $Artikel->FunktionsAttribute.material_de|@strlen > 0)}

Wenn ich das richtig verstehe heißt das ja steht was drinne im Feld und ist das größer 0, richtig?

Nun habe ich gesehen das auch geht:
Code:
{if $Artikel->FunktionsAttribute.set == 1}

Hat das irgendwelche Nachteile das so zu schreiben wie Geschwindigkeit etc.?
 

Tomas

Sehr aktives Mitglied
8. Januar 2018
330
69
Lübeck
Hallo gnarx,

nein, das heißt, dass die Variable existiert und die Zeichenkette länger als 0 ist.

Was du machst, ist auf einen numerischen Wert abfragen. Außerdem solltest du die Variable mit isset() vorher abfragen um zu verhindern, dass dir alles zerschießt, wenn die Variable mal nicht da ist.

VG
Tomas
 

gnarx

Sehr aktives Mitglied
18. Januar 2018
3.829
525
Okay danke dir heißt also wenn ich meine If´S nutze, was ich so ein bischen kann, dann ein isset davor, richtig?
Ist der Code so dann in Ordnung?
Code:
{if isset($Artikel->FunktionsAttribute.set == 1)}
 

Tomas

Sehr aktives Mitglied
8. Januar 2018
330
69
Lübeck

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.878
519
Halle
In deiner Abfrage muss $Artikel->FunktionsAttribute.set exakt 1 sein.
Wenn ich mal Klugscheißen darf... ;) Für den Fall
PHP:
$Artikel->FunktionsAttribute.set == 1
kann $Artikel->FunktionsAttribute.set eine numerische 1 oder eine String-1 '1' oder auch irgendein anderer String der mit 1 beginnt - z.B. '1a' sein!
Wenn man sichergehen will, dass in $Artikel->FunktionsAttribute.set EXAKT eine numerische 1 steht, dann muss die Prüfung so aussehen:
PHP:
$Artikel->FunktionsAttribute.set === 1
 

Tomas

Sehr aktives Mitglied
8. Januar 2018
330
69
Lübeck
Zuletzt bearbeitet:

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.878
519
Halle
Das hat eher was damit zu tun, wie die automatische Type Conversion in PHP funktioniert. Bei einem schwachen Vergleich eines Strings mit einem Integer wird der String implizit in einen Integer gecastet und dabei wird dann '1a' zu 1. Das hat dann wiederum damit zu tun, wie PHP String- in numerische Typen umwandelt.
 
  • Gefällt mir
Reaktionen: Tomas

gnarx

Sehr aktives Mitglied
18. Januar 2018
3.829
525
Moin hier nochmal nee Frage zu.
1. Brauche ich hier eigentlich die zweite Abfrage, also das strlen?
Code:
 {if (isset($Artikel->FunktionsAttribute.set_hoehe_bis) && $Artikel->FunktionsAttribute.set_hoehe_bis|@strlen > 0)}

Wenn nein kann ich das umbasteln zu ist ein Wert drinne oder ist der Wert größer 0. Das funktioniert nicht:
Code:
{if (isset($Artikel->FunktionsAttribute.set_hoehe_mit_deckel_bis) or $Artikel->FunktionsAttribute.set_hoehe_mit_deckel_bis|@strlen > 0)}

Ich will ja nur Abfragen ob was in dem Feld drinne steht und das grösser 0 ist.
 
Zuletzt bearbeitet:

gnarx

Sehr aktives Mitglied
18. Januar 2018
3.829
525
Danke schon mal habs grad so hin bekommen:
Code:
{if (isset($Artikel->FunktionsAttribute.tueren) && $Artikel->FunktionsAttribute.tueren> 0)}

Muss das int unbedingt davor?
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.878
519
Halle
Das kommt darauf an, wie sicher dein Vergleich sein soll, was in dem Attribut für ein Wert steht und was du im Endeffekt tatsächlich vergleichen möchtest! Bedeutet "grösser 0" tatsächlich einfach nur größer 0 (also z.B. auch bei 0,0000001) oder größer 0 im Sinne von 1, 2, 3, ... Im ersten Fall wäre das (int) definitiv falsch.
Ich Vergleiche lieber typsicher und überlass das Casten ungern dem PHP-Interpreter. ;)

P.S.: Ich bin mir auch nicht sicher, ob dir der Unterschied der Operatoren || und OR in PHP bewusst ist...
 

gnarx

Sehr aktives Mitglied
18. Januar 2018
3.829
525
Recht herzlichen Dank schon mal an euch. Hat alles soweit geklappt. Nun muss ich noch rechnen.
Diese Variable {$Artikel->FunktionsAttribute.hoehe|string_format:"%.1f"} soll durch 2,54 geteilt werden. Wie mache ich das.
Weder Smarty rechnen noch php Rechnen sowie DotLiquid rechnen hat funktioniert.
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.878
519
Halle
Genau deshalb...
Ich Vergleiche lieber typsicher und überlass das Casten ungern dem PHP-Interpreter.
"2,54" ist nicht gleich 2.54 und was bei einem string_format:'%.1f' rauskommt, hängt sehr stark von dem ab, was in $Artikel->FunktionsAttribute.hoehe steht und ist zudem von den locale-Einstellungen abhängig - in jedem Fall ist es ein String! Egal welche Rechenoperation du anschließend ausführst, muss der PHP-Interpreter diesen String in einen numerischen Typ casten.
Wenn jetzt in den Zahlen-Strings Kommas "," (wie im Deutschen üblich) statt Punkte "." (wie im Englischen üblich) sind, dann wird das automatische Cast dort immer Integer draus machen und alles nach dem Komma einfach abschneiden.
Du solltest also sicherstellen, das auf beiden Seiten deiner Rechenoperation die korrekten numerischen Werte stehen. Erst bei der Ausgabe kann das dann "hübsch" formatiert werden.
 
  • Gefällt mir
Reaktionen: Tomas

Tomas

Sehr aktives Mitglied
8. Januar 2018
330
69
Lübeck
Versuchs mal mit
Code:
{math equation="x / y" x=$Artikel->FunktionsAttribute.hoehe|replace:',':'.' y=2.54 format="%.1f"}

EDIT:
Ich Vergleiche lieber typsicher und überlass das Casten ungern dem PHP-Interpreter.
Dann lieber so ;) :
Code:
{math equation="x / y" x=(float) $Artikel->FunktionsAttribute.hoehe|replace:',':'.' y=(float) 2.54 format="%.1f"}
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: gnarx

gnarx

Sehr aktives Mitglied
18. Januar 2018
3.829
525
So vielen Dank nochmal für die Hilfe. Nun muss ich ja das ganze noch ins ebay Template bauen und da funzt das denn nicht so wie im Shop Template.
Wie schreibe ich denn das fürs ebay Template?
1. Nachkommastellen begrenzen. So funzt es nicht:
Code:
{{ Vorgang.Artikel.EigeneFelder.1_MaßeGewichte.Hoehe_mit_Deckel | string_format:"%.1f" }}

2. Funktioniert das so mit oder?
Code:
{% if Vorgang.Artikel.EigeneFelder.2_MaßeGewichte_Sets.Set_Hoehe_bis !="" or Vorgang.Artikel.EigeneFelder.2_MaßeGewichte_Sets.Set_Hoehe_bis >0 %}

3. Und wie rechne ich nun? Folgendes funzt auch nicht.
Code:
{math equation="x / y" x=(float) $Artikel->FunktionsAttribute.hoehe_mit_deckel|replace:',':'.' y=(float) 2.54 format="%.1f"}
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Header Checkout, Topbar wird nicht ausgeblendet, Shop-Template 5.3, Neustes Child Theme GitLab Templates für JTL-Shop 2
Neu JTL-Shop oder Workflow: Artikel mit Menge > 1 sollen trotzdem als separate Einzelartikel im Auftrag aufgeführt werden User helfen Usern - Fragen zu JTL-Wawi 0
Neu JTL Shop 5 als Docker File? Installation / Updates von JTL-Shop 1
Grundpreise bei Vaterartikel in der Artikelvorschau im Shop JTL-Wawi 1.8 9
Neu Shop Error: Error executing query: INSERT INTO tsuchcachetreffer JTL-Shop - Fehler und Bugs 0
Neu JTL SHOP 4 Vorlagenproblem Einrichtung von JTL-Shop4 0
Neu Mehrsprachiger Shop-Aufbau: .de und .nl Domain - worauf muss man achten? Allgemeine Fragen zu JTL-Shop 2
Neu Artikel im Shop ausblenden, aber in Tabelle tartikel lassen Allgemeine Fragen zu JTL-Shop 4
Neu JTL SHOP update von 5.2.4 auf 5.3.1 - DBupdater startet nicht das Datenbankupdate Installation / Updates von JTL-Shop 6
Neu SHOP-5275 nicht aktiv in 5.3.1 Gelöste Themen in diesem Bereich 4
Neu SHOP 5.3.1 - Fragen u. Antworten :) JTL-Shop - Fehler und Bugs 0
Evo Slider in JTL Shop 5.3.1 Einrichtung JTL-Shop5 0
Neu Der Shop schickt die Aufträge nicht mehr an die Wawi JTL-Shop - Fehler und Bugs 1
JTL Shop Kreditkartenzahlung erneut an Kunden senden Allgemeine Fragen zu JTL-Shop 0
Neu JTL Shop in Safari zeigt Feld falsch an. JTL-Shop - Fehler und Bugs 0
Neu Bestseller-Templates AVIA, CLEARIX, FIRE - schnell, universell, 100% kompatibel zum JTL-Shop Templates für JTL-Shop 1
Neu Mindestbestellwert für Netto-Einkaufswert JTL-Shop 5 Allgemeine Fragen zu JTL-Shop 0
Neu Die Shop-URL verweist nicht auf einen gültigen Shop! Shopify-Connector 1
Neu JTL Shop 5 Daten - In "leere" JTL Wawi Datenbank importieren - Ist das möglich? User helfen Usern - Fragen zu JTL-Wawi 8
Neu JTL-Shop 5 Liste von CSV-Export Variablen gesucht Allgemeine Fragen zu JTL-Shop 1
Neu Verkaufspreis Differenz Shop und Wawi JTL-Shop - Fehler und Bugs 4
Neu zweiten Shop auch bei JTL hosten ? Allgemeine Fragen zu JTL-Shop 1
Neu Error Code = 0 bei Installation JTL-Shop 5.3.1 Einrichtung JTL-Shop5 3
Neu Angriff auf JTL-Shop ?Log file: Wrong ip Allgemeine Fragen zu JTL-Shop 2
Gelöst Ausgabe Kundengruppenattribute JTL-Shop 5.3 Allgemeine Fragen zu JTL-Shop 0
Neu Badges / Artikelsticker bei JTL Shop 5.3.0 Templates für JTL-Shop 0
Neu - Lieferzeit in Wochen / Monaten statt Tagen SHOP-4080 - wo finde ich diese Möglichlichkeit im Admin Bereich Installation / Updates von JTL-Shop 2
Neu Bug Popup/eModal - JTL Shop 5.3 JTL-Shop - Fehler und Bugs 1
Neu Gravierender Fehler in der Shop Software Betrieb / Pflege von JTL-Shop 3
Gelöst Shop 5.3.1 Fatal Error Gelöste Themen in diesem Bereich 2
Neu Händlerbund Plugin lässt sich nicht installieren Shop ver. 5.3.0 Plugins für JTL-Shop 1
Neu Shop extrem langsam Betrieb / Pflege von JTL-Shop 8
Neu Shop mehrsprachig machen Allgemeine Fragen zu JTL-Shop 6
Neu JTL-Shop 5.3 - Aktuell 5.3.1 Releaseforum 1
Neu JTL 1.8.12.0 - Artikelattribut für Shop importieren - Format CSV-Datei / Hilfe bei Import von individuellen Attributen für JTL-Shop (googlekat) JTL-Ameise - Ideen, Lob und Kritik 1
Neu Merkmalübersetzung wird im Shop nicht angezeigt JTL-Shop - Fehler und Bugs 2
JTL Shop Gutscheine über JTL-Vouchers erstellen Allgemeine Fragen zu JTL-Vouchers 2
Neu Hilfe - Performanceproblem mit Shop durch Worker JTL-Shop - Fehler und Bugs 28
Neu JTL Shop Gutscheine über JTL-Vouchers erstellen Allgemeine Fragen zu JTL-Shop 2
Neu Shop Suchfunktion Probleme mit (HTML-)Sonderzeichen JTL-Shop - Fehler und Bugs 0
Kundenattribute aus Shop übernehmen und aus Wawi zurück an Shop übermitteln Einrichtung JTL-Shop5 1
Neu Produktdaten aus Shop zur Wawi WooCommerce-Connector 9
Neu Unterstützung bei JTL5-Shop-Überarbeitung gesucht - Template/Plugin uvm. Dienstleistung, Jobs und Ähnliches 1
Neu Shop in Unterverzeichnis führt dazu, dass Inhalte aus dem übergeordneten Verzeichnis im Shop gezeigt werden JTL-Shop - Fehler und Bugs 3
Neu Kuriosum - Shop 5.1.5 mit Datenbank 5.2.4 Mischbetrieb nach fehlgeschlagenem Update Installation / Updates von JTL-Shop 8
Neu Weiße Seite nach Update Shop 5.1.5. auf 5.2.4 Installation / Updates von JTL-Shop 24
Neu E-Commerce-Effizienz steigern: Welche Programmiersprache verbessert die JTL-Shop-Entwicklung? Technische Fragen zu Plugins und Templates 1
Neu Kompatibilitätsliste JTL Shop & JTL Wawi Gelöste Themen in diesem Bereich 3
Neu JTL-Shop 5 Paypal Zahlung 30 Tage Zahlungsziel Allgemeine Fragen zu JTL-Shop 6
Neu JTL-Shop 5.3.0 RC3 Fehler nach Update Portlet Banner, fehlendes Produkt JTL-Shop - Fehler und Bugs 0

Ähnliche Themen