Neu If`s im Shop

gnarx

Sehr aktives Mitglied
18. Januar 2018
3.884
542
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
70
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.884
542
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
70
Lübeck

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
529
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
70
Lübeck
Zuletzt bearbeitet:

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.881
529
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.884
542
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.884
542
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.881
529
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.884
542
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.881
529
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
70
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.884
542
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 Nach Update auf 1.11.9 - alle Shopify Shop nicht mehr connected Shopify-Connector 4
Neu Shop 5.7 update empfhalen Installation / Updates von JTL-Shop 6
Plattformabgleich Shop löschen - Wo ist das in der MySQL DB? JTL-Wawi 2.0 4
Neu Funktioniert Shop 5.7 mit MariaDB 10.5.29? Installation / Updates von JTL-Shop 1
JTL Shop 4 Upgrade auf 5.5.0 --> Fehler 500 Upgrade JTL-Shop4 auf JTL-Shop5 3
JTL Shop 4 Upgrade auf 5.5.0 --> Fehler 404 Upgrade JTL-Shop4 auf JTL-Shop5 11
Neu JTL Shop 5 und Klarna Plugins für JTL-Shop 0
Neu JTL Shop 5.7 - Widerrufsbutton im B2B Templates für JTL-Shop 13
Neu Dropdown jtl shop länge einstellen Allgemeine Fragen zu JTL-Shop 2
JTL-Shop 5.7.0 Widerrufsbutton Einrichtung JTL-Shop5 9
Update auf Shop 5.5.0 von 5.4.1 ist der Shop nicht mehr erreichbar Upgrade JTL-Shop4 auf JTL-Shop5 4
Neu Merkmale Shop an oder Aus Allgemeine Fragen zu JTL-Shop 0
Neu JTL Shop Template Snackys Bildgrößen einstellen Templates für JTL-Shop 1
Neu Kategorie Listenansicht: Shop-Skript berechnet Höhe "falsch" Technische Fragen zu Plugins und Templates 5
Neu JTL-Shop 5.7 - Aktuell 5.7.1 Releaseforum 1
Neu Gratisgeschenke im JTL Shop nicht wirklich nutzerfreundlich. Allgemeine Fragen zu JTL-Shop 4
Neu Probleme mit Ninepoint und TikTok Shop Schnittstellen Import / Export 6
Tabelle tfirma in der Shop-Datenbank ist leer Einrichtung JTL-Shop5 3
Geänderte Preise kommen nur teilweise in den Shop JTL-Wawi 1.11 6
Neu Eigene Artikel Felder im JTL Shop anzeigen lassen User helfen Usern - Fragen zu JTL-Wawi 4
Neu Hilfe bei der Entwicklung gesucht: Werde Tester für meine JTL-Shop Plugins Plugins für JTL-Shop 0
Neu JTL-Shop "Plugin-Vorlage" gesucht User helfen Usern 3
Neu JTL - Shop Adressprüfung - Erfahrungen ? Allgemeine Fragen zu JTL-Shop 2
Neu Wo ist JTL-Debug geblieben? Shopvariablen beim Shop-/Templateentwicklung sichtbar machen? Plugins für JTL-Shop 10
Neu Problem nach Update auf Shop 5.6.1 - Impressum JTL-Shop - Fehler und Bugs 2
Neu Alte Produktbilder erscheinen im JTL-Shop trotz Löschung und neuem Upload immer wieder – JTL-Wawi enthält nur neue Bilder JTL-Wawi - Fehler und Bugs 16
Shop Apotheke Bestellungen seit Update als „nicht bezahlt“ – Versand blockiert JTL-Wawi 2.0 6
Neu JTL Shop 5 Sync in JTL WAWI 2.0.0 zeigt Verbindungstest Fehlermeldung Onlineshop-Anbindung 4
Neu Rechnung im JTL Shop Kundenkonto Onlineshop-Anbindung 1
Neu Strukturierte Daten vom Typ "Produkt" werden nach Update auf JTL Shop 5.6.1 nur fehlerhaft erkannt JTL-Shop - Fehler und Bugs 3
Neu Wero für den JTL Shop? Plugins für JTL-Shop 21
Neu JTL-Shop Verkauf - Tipps? Business Jungle 5
Neu CSS GeoIP MwSt.-Finder 2.7.1 verhindert das Anlegen von Shop-Kundenkonten aus der Wawi Plugins für JTL-Shop 1
Shop 5.5.3 / Eingabefelder auf IOS zoomt immer :-( Einrichtung JTL-Shop5 6
Neu Beim Versuch Paypal-Plugin mit Paypal-Konto zu verbinden Shop nicht mehr erreichbar Plugins für JTL-Shop 2
Neu Kategoriestruktur auf JTL-Wawi in WooCommerce Shop darstellen WooCommerce-Connector 2
Neu Name der Versandart im Shop anzeigen Allgemeine Fragen zu JTL-Shop 36
Neu Shop 5.6.1: Probleme beim Entfernen von Artikeln aus dem Warenkorb JTL-Shop - Fehler und Bugs 5
Neu Rückverfolgung des Verkaufskanal bei Angeboten aus dem Shop User helfen Usern - Fragen zu JTL-Wawi 3
Neu Shop Bestellungen und Abonnements möglich? User helfen Usern - Fragen zu JTL-Wawi 1
Neu DSGVO – Automatisierte Löschung von Kundendaten nach 10 Jahren (JTL-Wawi / JTL-Shop) User helfen Usern - Fragen zu JTL-Wawi 2
Neu Rückverfolgung des Verkaufskanal bei Angeboten aus dem Shop Eigene Übersichten in der JTL-Wawi 0
Artikel Eigene Felder kommen nur beim ersten Shopabgleich in den JTL-Shop JTL-Wawi 1.11 2
Neu welche Sync Benutzer Daten in Shop und WAWI bei neu-Hosting über JTL Allgemeine Fragen zu JTL-Shop 0
welche Sync Benutzer Daten in Shop und WAWI bei neu-Hosting über JTL JTL-Wawi 1.11 0
Neu Zusatzartikel, Stückliste, Variation den Kunden direkt mit anbieten (Shop/Ebay) User helfen Usern - Fragen zu JTL-Wawi 6
Neu OPC friert beim speichern von Änderungen ein nach JTL-Shop Update von Version 5.1.5 auf 5.6.1 JTL-Shop - Fehler und Bugs 6
Neu Synchronisation mit Shop mit Fehlern beendet Onlineshop-Anbindung 17
Neu WaWi - JTL Shop - Kein Abgleich des Artikelnamen möglich Onlineshop-Anbindung 1
Neu wie Wawi eigene Felder (Kunden) an Shop DB übertragen? User helfen Usern - Fragen zu JTL-Wawi 3

Ähnliche Themen