ich suche mir einen Wolf. Wie kann ich im Template „einprogrammieren“, dass aus 1000g direkt 1kg gemacht werden? In verschiedenen Threads wird davon gesprochen, um u.a. den neuen Regularien des Gesetzes ab 28.5. gerecht zu werden.
Ich habe das schon gefunden und traue mir das auch zu.
Nur steht in SW dann 1000g, es muss aber aus regulatorischer Sicht in kg gewandelt werden.
Kann man das Theme das interpretieren lassen und autom 1000ml in kg sowie 1000ml in 1l umwandeln lassen?
Na dann musst du halt die Ausgabe des Grundpreises manipulieren, die findet sich im Block frontend_detail_data_price_unit_reference_content in der frontend/detail/data.tpl
Einfach Abfrage ob $sArticle.referenceunit gleich 1000 und dann umrechnen (oder direkt 1 ausgeben). Und $sArticle.sUnit.description kannst du mit dem |replace Modifier umwandeln.
Also die Manipulation von Gramm in Kilogramm habe ich hinbekommen.
Die Umrechnung von 1000g in kg also geteilt durch 1000 nicht.
Es müsste ja dann auch das gleiche für ml und l geschehen. Kann ich zwei replace-Variablen in einem Befehl „manipulieren“?
Versuche es mal mit {$sArticle.referenceunit/1000|string_format:"%.2f"}, in Smarty 3 kann man direkt mathematische Operatoren auf Variablen anwenden. string_format gibt den Wert dann mit 2 Nachkommastellen aus (kannst Du ggf. auch weglassen).
Ja, man kann die Modifier verketten, indem man mehrere hintereinander (jeweils durch | getrennt) angibt, z.B. {$sArticle.sUnit.description|replace:'Gramm':'Kilogramm'|replace:'ml':'Liter'}
Das geht aber natürlich nur solange gut, wie der Wert nach dem ersten Modifier nicht den Suchbegriff des Zweiten enthält, denn beide werden nacheinander ausgeführt. Würdest Du jetzt noch nach „mm“ suchen, würde das auch auf das bereits ersetzte Kilogramm matchen und heraus käme ein KilograMeter ;-). In diesem Falle nimmt man besser regex_replace oder arbeitet gleich mit entsprechenden {if},{elseif},{else} Statements.
{* Unit price is based on a reference unit }
{if $sArticle.purchaseunit && $sArticle.referenceunit && $sArticle.purchaseunit != $sArticle.referenceunit && !$sArticle.sBlockPrices}
{ Reference unit price content *}
{block name=‚frontend_detail_data_price_unit_reference_content‘}
({$sArticle.referenceprice|currency"} {s name=„Star“ namespace=„frontend/listing/box_article“}{/s}
Hallo,
wie kann ich den Wert {$sArticle.referenceprice|currency} mit 10 multiplizieren und dann im Shop die Ausgabe mit 2 Nachkommastellen und der Währung erhalten?
Egal was ich versuche, ich erhalte bestenfalls so eine Ausgabe (698 * / 1 Liter)
Gibt es kein Plugin für diesen Sachverhalt? Habe keins finden können.
Es muss doch möglich sein, dass man für den Inhalt „ml“ oder „gr.“ angeben kann und für den Grundpreis dann „Liter“ oder „Kilo“ ohne diese „Verrenkungen“ mit „replace“ und so weiter. Kann doch schlecht bei einem Nagellack „0,005 Liter“ als Inhalt angeben!?
Ich hätte die Werte direkt in der Datenbank korrigiert. Dann hätte man eine saubere Grundlage. Diese Replace-Orgien im Smarty wären nicht mein Fall. Und wenn der Shop noch in mehreren Sprachen ist endet das ggf. im Kaos