Neu If`s im Shop

gnarx

Sehr aktives Mitglied
18. Januar 2018
3.900
545
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.900
545
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.900
545
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.900
545
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.900
545
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.900
545
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 Linktexte für Erstbesucher/Crawler in Standardsprache – Ursache + Fix (SHOP-6552) JTL-Shop - Fehler und Bugs 0
Neu Nach Update auf Shop 5.8 - Wo wird das Gewährleistungslabel angezeigt? Allgemeine Fragen zu JTL-Shop 2
Neu Sicherheitspatch Shop 5.7.2 > 5.7.3 funktioniert nicht Allgemeine Fragen zu JTL-Shop 13
Neu JTL-Shop 5.8 - Aktuell 5.8.0 Releaseforum 0
HTML in Artikelbeschreibung , verschiebt dann im Shop die Ansicht? JTL-Wawi 1.11 1
Neu Störung Hosting Shop? JTL-Shop - Fehler und Bugs 0
Neu Email Versand vom Shop Allgemeine Fragen zu JTL-Shop 1
Update 5.3 auf 5.7.2 Shop funktioniert nicht mehr Upgrade JTL-Shop4 auf JTL-Shop5 5
Neu Plugin: Infinite Scroll / „Mehr laden“ für JTL-Shop 5 – einmalige Lizenz, kein Abo Plugins für JTL-Shop 0
Neu JTL-Shop 5.5 – „Rechnung nicht beilegen“ per Workflow anhand der Auftragsposition erkennen User helfen Usern - Fragen zu JTL-Wawi 1
Neu Welche JTL-Shop Plugins oder Funktionen fehlen euch noch? – menuBuilder aktuell in Entwicklung Plugins für JTL-Shop 6
Neu Gutscheinartikel nur noch im Shop in der Datenbank Betrieb / Pflege von JTL-Shop 0
Neu Shop Mailversand geht nach Passwortänderung nicht mehr JTL-Shop - Fehler und Bugs 2
Neu Neuer JTL-Shop lässt sich nicht öffnen Installation / Updates von JTL-Shop 2
Neu 💚 Plugin: DZM Bonus Plus - das Treueprogramm für deinen JTL-Shop Plugins für JTL-Shop 12
Neu Shop rechnet Sa+So bei Lieferzeit mit ein Betrieb / Pflege von JTL-Shop 0
Neu Auslesen aus Shop ob als Gast bestellt wurde oder ein Kundenkonto besteht. Allgemeine Fragen zu JTL-Shop 7
Neu Stripe plugin mit JTL SHOP Error 500 Plugins für JTL-Shop 2
Neu 💚 Plugin: DZM Agentic Plus - dein Shop wird für KI-Agenten lesbar und abfragbar Plugins für JTL-Shop 0
Neu JTL-Shop 5.7.2: Zahlungsbetrag weicht vom Auftragswert ab JTL-Shop - Fehler und Bugs 4
Neu JTL-Shop 5.7.2: Unterschiedliche Standardsprachen in tsprache – widersprüchliche Canonical- und Hreflang-Ausgabe der Startseite Allgemeine Fragen zu JTL-Shop 4
Neu Versandetikett bei Aufträgen aus dem JTL Shop Arbeitsabläufe in JTL-Wawi 0
Neu Preise im Shop mit 4 Stellen hintern dem Komma Allgemeine Fragen zu JTL-Shop 5
Neu JTL Shop 5.7.2 NOVA - Akkordeon Überschriften herabstufen auf H3 Templates für JTL-Shop 3
Neu Shop und Worker synchronisieren nicht nach Wechsel zu Cloudflare Allgemeine Fragen zu JTL-Shop 0
Neu 🚨 Sicherheitswarnung für JTL-Shop-Betreiber: Manipulation des Checkout-Prozesses durch externes JavaScript (Magecart- / Payment-Skimmer) Betrieb / Pflege von JTL-Shop 11
Neu JTL-Shop Konfigurator - die Ausgewählten Konfigurator gruppen werden im Artikel nicht vollständig angezeigt User helfen Usern - Fragen zu JTL-Wawi 2
Neu JTL-Shop 5 Backup Professional Plugin Plugins für JTL-Shop 0
Neu Vorgehen nach Sicherheitslücke im Shop - Wechsel Blowfish-Key Betrieb / Pflege von JTL-Shop 6
Neu Shop 5.7.2. nach Update lahm und CPU Last geht hoch Installation / Updates von JTL-Shop 1
Neu Probleme beim Shop Update auf 5.7.2 Installation / Updates von JTL-Shop 4
Neu Plugin trotz Hinweis Kompatibel mit JTL-Shop bis 5.6.* auch unter 5.7.2 nutzen Plugins für JTL-Shop 2
Neu Wichtiger Sicherheitshinweis – jetzt Shop prüfen! Allgemeine Fragen zu JTL-Shop 0
Neu Aktuelle JTL Shop Sicherheitslücke - automatischer Patch im JTL Hosting ? Allgemeine Fragen zu JTL-Shop 15
Neu Suche 10–15 JTL-Shops für kostenlose JTL-Shop-Analyse (verschiedene Branchen) Dienstleistung, Jobs und Ähnliches 0
Neu JTL-Shop 5.7.2 Picture-Tag in mobilen Ansicht lädt beide Bilder JTL-Shop - Fehler und Bugs 0
Seit dem Update meines JTL-Shops auf Version 5.7.1 funktioniert die Verbindung zwischen JTL-Wawi 2.0.4.0 und dem Shop nicht mehr. JTL-Wawi 2.0 6
Neu Shop 5.7.2 - JTL PayPal Checkout legt alles lahm JTL-Shop - Fehler und Bugs 4
Neu IP Adresse einer Kontaktanfrage über den Shop herausfinden Allgemeine Fragen zu JTL-Shop 4
Neu Gibt es in der WaWi-Datenbank einen Zeitstempel, der anzeigt wann ein Kunde sich in einem bestimmten Shop registriert hat? User helfen Usern - Fragen zu JTL-Wawi 3
Beantwortet [Shop 5.7.2 / Wawi 2.0.5] GPSR-Daten werden am Artikel nicht angezeigt trotz korrekter Übertragung und installiertem Plugin Allgemeine Fragen zu JTL-Shop 1
Neu shop steht , brauche Hilfe Allgemeine Fragen zu JTL-Shop 6
Neu DSVGO konform 1000 Kunden in WaWi und Shop löschen! User helfen Usern - Fragen zu JTL-Wawi 4
Neu 500er Fehler im Shop nach aktivierung des Nova Child Templates für JTL-Shop 3
Neu JTL Shop Plugin - BD Automatisierter Widerruf (Von Händler für Händler - Schluss mit Mail-Chaos & Spam-Sorgen!) Plugins für JTL-Shop 0
Neu Rechte-Fehler im J10n Modul und Auswirkung auf base.mo.php in div. Plugins (Shop 5.7.1) JTL-Shop - Fehler und Bugs 0
Neu Welche JTL Shop Plugins oder kleinen Hilfstools würden euch im Alltag wirklich helfen? Plugins für JTL-Shop 0
Beantwortet Shop Abgleich nach Update auf 5.7.2 nicht mehr möglich JTL-Shop - Fehler und Bugs 4
Neu Shop zeigt keine Artikel mehr Fehler 500 Betrieb / Pflege von JTL-Shop 9
Neu Shop 5.7.1 und Downloadmodul Allgemeine Fragen zu JTL-Shop 1

Ähnliche Themen