Neu Währungszeichen "ohne Leerzeichen" vor dem Preis?

mckey

Gut bekanntes Mitglied
1. April 2012
138
18
Hallo,

der Platz ob das Währungszeichen vor oder nach dem Preis stehen soll, kann man über die JTL-WaWi steuern.

Wenn ich jetzt das Währungszeichen vor dem Preis anzeigen möchte, steht leider immer ein Leerzeichen noch dazwischen € 44.

Wie oder was muss ich ändern, dass der Preis so aussieht €44 ?

Grüße,
 

artm

Sehr aktives Mitglied
22. Februar 2021
107
27
der Platz ob das Währungszeichen vor oder nach dem Preis stehen soll, kann man über die JTL-WaWi steuern.

Wenn ich jetzt das Währungszeichen vor dem Preis anzeigen möchte, steht leider immer ein Leerzeichen noch dazwischen € 44.

Wie oder was muss ich ändern, dass der Preis so aussieht €44 ?
Das kann man nicht einstellen, Leerzeichen ist hardcoded.

Es gibt aber einige Wege sowas zu lösen:

- "Preise::getLocalizedPriceString()"-Funktion wird fast überall benutzt um Preiswerte zu formatieren, da könnte man Leerzeichen entfernen, die Funktion befindet sich aber in JTL- Shop Code. Bei Updates muss dann achten, dass diese Änderung nicht überschrieben wird.
- Man könnte Smarty-Variablen in Templates verändern
- oder statt Templates zu verändern einen Plugin entwickeln, welcher dann diese Aufgabe übernimmt
 

Rektor

Sehr aktives Mitglied
22. November 2011
674
296
der Platz ob das Währungszeichen vor oder nach dem Preis stehen soll, kann man über die JTL-WaWi steuern.
Wir sind zwar schon sehr lange mit der Wawi unterwegs, dennoch lernt man vermutlich nie aus. Diese Einstellung war uns bisher nie aufgefallen. Bei uns steht das Währungszeichen hinter dem Wert, was eigentlich völlig korrekt erscheint. Das Währungszeichen direkt an den Wert zu stellen, ergibt aus meiner Sicht keinen Sinn, egal ob vor oder nach dem Wert.
Vielleicht kurze Aufklärung, weshalb das so gewollt sein soll bzw. welchen Mehrwert das bringen soll.
 
Zuletzt bearbeitet:

mckey

Gut bekanntes Mitglied
1. April 2012
138
18
Vielleicht kurze Aufklärung, weshalb das so gewollt sein soll bzw. welchen Mehrwert das bringen soll.
Andere Länder, andere Sitten so auch in der Preisauszeichnung. Die Preisgestaltung und das, was die Kunden gewohnt sind ist nicht auf der ganzen Welt gleich.


"Preise::getLocalizedPriceString()"-Funktion wird fast überall benutzt um Preiswerte zu formatieren

Du meinst die functions.php

PHP:
function gibPreisStringLocalizedSmarty($params, $smarty)
{
    $oAufpreis                     = new stdClass();
    $oAufpreis->cAufpreisLocalized = '';
    $oAufpreis->cPreisInklAufpreis = '';

    if ((float)$params['fAufpreisNetto'] != 0) {
        $fAufpreisNetto         = (float)$params['fAufpreisNetto'];
        $fVKNetto               = (float)$params['fVKNetto'];
        $kSteuerklasse          = (int)$params['kSteuerklasse'];
        $fVPEWert               = (float)$params['fVPEWert'];
        $cVPEEinheit            = $params['cVPEEinheit'];
        $FunktionsAttribute_arr = $params['FunktionsAttribute'];
        $nGenauigkeit           = (isset($FunktionsAttribute_arr[FKT_ATTRIBUT_GRUNDPREISGENAUIGKEIT])
            && (int)$FunktionsAttribute_arr[FKT_ATTRIBUT_GRUNDPREISGENAUIGKEIT] > 0)
            ? (int)$FunktionsAttribute_arr[FKT_ATTRIBUT_GRUNDPREISGENAUIGKEIT]
            : 2;

        if ((int)$params['nNettoPreise'] === 1) {
            $oAufpreis->cAufpreisLocalized = Preise::getLocalizedPriceString($fAufpreisNetto);
            $oAufpreis->cPreisInklAufpreis = Preise::getLocalizedPriceString($fAufpreisNetto + $fVKNetto);
            $oAufpreis->cAufpreisLocalized = ($fAufpreisNetto > 0)
                ? ('+ ' . $oAufpreis->cAufpreisLocalized)
                : str_replace('-', '- ', $oAufpreis->cAufpreisLocalized);

            if ($fVPEWert > 0) {
                $oAufpreis->cPreisVPEWertAufpreis     = Preise::getLocalizedPriceString(
                        $fAufpreisNetto / $fVPEWert,
                        \Session\Frontend::getCurrency()->getCode(),
                        true,
                        $nGenauigkeit
                    ) . ' ' . Shop::Lang()->get('vpePer') . ' ' . $cVPEEinheit;
                $oAufpreis->cPreisVPEWertInklAufpreis = Preise::getLocalizedPriceString(
                        ($fAufpreisNetto + $fVKNetto) / $fVPEWert,
                        \Session\Frontend::getCurrency()->getCode(),
                        true,
                        $nGenauigkeit
                    ) . ' ' . Shop::Lang()->get('vpePer') . ' ' . $cVPEEinheit;

                $oAufpreis->cAufpreisLocalized = $oAufpreis->cAufpreisLocalized . ', ' .
                    $oAufpreis->cPreisVPEWertAufpreis;
                $oAufpreis->cPreisInklAufpreis = $oAufpreis->cPreisInklAufpreis . ', ' .
                    $oAufpreis->cPreisVPEWertInklAufpreis;
            }
        } else {
            $oAufpreis->cAufpreisLocalized = Preise::getLocalizedPriceString(
                Tax::getGross($fAufpreisNetto, $_SESSION['Steuersatz'][$kSteuerklasse], 4)
            );
            $oAufpreis->cPreisInklAufpreis = Preise::getLocalizedPriceString(
                Tax::getGross($fAufpreisNetto + $fVKNetto, $_SESSION['Steuersatz'][$kSteuerklasse], 4)
            );
            $oAufpreis->cAufpreisLocalized = ($fAufpreisNetto > 0)
                ? ('+ ' . $oAufpreis->cAufpreisLocalized)
                : str_replace('-', '- ', $oAufpreis->cAufpreisLocalized);

            if ($fVPEWert > 0) {
                $oAufpreis->cPreisVPEWertAufpreis     = Preise::getLocalizedPriceString(
                        Tax::getGross($fAufpreisNetto / $fVPEWert, $_SESSION['Steuersatz'][$kSteuerklasse]),
                        \Session\Frontend::getCurrency()->getCode(),
                        true,
                        $nGenauigkeit
                    ) . ' ' . Shop::Lang()->get('vpePer') . ' ' . $cVPEEinheit;
                $oAufpreis->cPreisVPEWertInklAufpreis = Preise::getLocalizedPriceString(
                        Tax::getGross(
                            ($fAufpreisNetto + $fVKNetto) / $fVPEWert,
                            $_SESSION['Steuersatz'][$kSteuerklasse]
                        ),
                        \Session\Frontend::getCurrency()->getCode(),
                        true,
                        $nGenauigkeit
                    ) . ' ' . Shop::Lang()->get('vpePer') . ' ' . $cVPEEinheit;

                $oAufpreis->cAufpreisLocalized = $oAufpreis->cAufpreisLocalized .
                    ', ' . $oAufpreis->cPreisVPEWertAufpreis;
                $oAufpreis->cPreisInklAufpreis = $oAufpreis->cPreisInklAufpreis .
                    ', ' . $oAufpreis->cPreisVPEWertInklAufpreis;
            }
        }
    }

    return (isset($params['bAufpreise']) && (int)$params['bAufpreise'] > 0)
        ? $oAufpreis->cAufpreisLocalized
        : $oAufpreis->cPreisInklAufpreis;
}

Kannst du mir sagen wo da die Leerzeichen sind?
 

artm

Sehr aktives Mitglied
22. Februar 2021
107
27
Kannst du mir sagen wo da die Leerzeichen sind?

nein, ich meine nicht die functions.php

für JTL5 v5.0.3

Datei: /includes/src/Catalog/Product/Preise.php

Funktion:
PHP:
public static function getLocalizedPriceString(
        $price,
        $currency = null,
        bool $html = true,
        int $decimals = 2
    ): string {
        if ($currency === null || \is_numeric($currency) || \is_bool($currency)) {
            $currency = Frontend::getCurrency();
        } elseif (\is_object($currency) && ($currency instanceof stdClass)) {
            $currency = new Currency((int)$currency->kWaehrung);
        } elseif (\is_string($currency)) {
            $currency = Currency::fromISO($currency);
        }
        $localized    = \number_format(
            $price * $currency->getConversionFactor(),
            $decimals,
            $currency->getDecimalSeparator(),
            $currency->getThousandsSeparator()
        );
        $currencyName = $html ? $currency->getHtmlEntity() : $currency->getName();

        return $currency->getForcePlacementBeforeNumber()
            ? ($currencyName . ' ' . $localized)
            : ($localized . ' ' . $currencyName);
    }

bei return das nutzen:

Code:
        return $currency->getForcePlacementBeforeNumber()
            ? ($currencyName . $localized)
            : ($localized . $currencyName);
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu JTL2DATEV Jera Schnittstelle ohne Verknüpfung & Belegtyp Schnittstellen Import / Export 0
Rechnungen Mailen ohne xml Datei JTL-Wawi 1.11 0
Neu DHL 4.0 Postfiliale ohne Postnummer ERROR JTL-ShippingLabels - Ideen, Lob und Kritik 13
Neu Ist es ohne Probleme möglich Cloudflare in der Free Version mit JTL zu nutzen? Allgemeine Fragen zu JTL-Shop 7
Neu Ab Wawi 1.10 - JTL.Wawi.Pos.exe direkt ohne JTL-Administrator starten? Allgemeine Fragen zu JTL-POS 2
Neu Bestände in Shopify falsch -> Überverkäufe ohne Lagerbestand Shopify-Connector 7
Angelegter Zahlungsausgang immer ohne Zahlungsart JTL-Wawi 1.11 0
Konfigurator OHNE Grundprodukt? JTL-Wawi 2.0 0
Neu Automatische Umstellung auf Pro-Tarif ohne Zustimmung? User helfen Usern - Fragen zu JTL-Wawi 2
Import Testdatenbank ohne Lizenzierungsübertragung JTL-Wawi 1.10 3
Neu Versandkostenersparnis mit JTL-Shipping: Vergünstigte Versandlabels ohne individuelle Rahmenverträge mit Versanddienstleistern User helfen Usern - Fragen zu JTL-Wawi 1
Neu Widerrufsbutton: Jeder, der den Button betätigt, kann das Widerrufsformular ausfüllen und absenden - auch ohne Bestellung? Allgemeine Fragen zu JTL-Shop 94
Wareneingang Hinweisfeld (immer noch) ohne Funktion JTL-Wawi 2.0 0
Neu Stornobeleg für Verkauf ohne Rechnung User helfen Usern - Fragen zu JTL-Wawi 9

Ähnliche Themen