Neu [5.1.1] Sprachvariablen: "productInflowing" lässt sich nicht sinnvoll ändern.

hotzeplotz

Aktives Mitglied
4. Februar 2019
56
3
Hallo Leute

Variable: productInflowing
Text: "Ware bestellt. %s %s voraussichtlich ab dem %s verfügbar."

Dieser Text lässt sich nicht sinnvoll anpassen, da man die Platzhlater "%s" nicht einfach
verändern oder löschen kann. Will man z.B. die Anzahl unterdrücken und löscht die ersten zwei Platzhaltern

Also so: "Ware bestellt. Voraussichtlich ab dem %s verfügbar."

Das hat zwei Folgen:

1. Der letzte Platzhalter mit der Menge ersetzt was den Sinn entstellt.
2. PHP Warning: sprintf(): Too few arguments

Besser wären hier Platzhalten die unabhängig von sprintf sind.

Text: "Ware bestellt. {Menge} {Einheit} voraussichtlich ab dem {Datum} verfügbar."

Siehe "includes/src/Catalog/Product/Artikel.php"

PHP:
/**
 * @return string
 */
public function getBackorderString():string
{
    $backorder = '';
    if ($this->cLagerBeachten === 'Y'
        && $this->fLagerbestand <= 0
        && $this->fZulauf > 0
        && $this->dZulaufDatum_de !== null
    ) {
        $backorder = \sprintf(
            Shop::Lang()->get('productInflowing', 'productDetails'),
            $this->fZulauf,
            $this->cEinheit,
            $this->dZulaufDatum_de
        );
    }

    return $backorder;
}
);

Eher sowas in der Art:

PHP:
$backorder = str_replace([
    '%Menge%',
    '%Einheit%',
    '%Datum%'
], [
    $this->fZulauf,
    $this->cEinheit,
    $this->dZulaufDatum_de
], Shop::Lang()->get('productInflowing', 'productDetails'));

Ich weiß, trifft sicher noch mehr Sprachvariablen … dennoch, ist man an die Reihenfolge und Anzahl der Platzhalter gebunden, können solche Texte nicht mehr sinnvoll selbst bearbeitet werden.

Schönen Abend noch.
 
Zuletzt bearbeitet:

MHillmann

Moderator
Mitarbeiter
11. Oktober 2018
1.018
305
Hallo,

ich verstehe das Problem, dass man Variablen nicht gut weglassen kann und werde das mal als Ticket aufnehmen. Die Reihenfolge kannst du zumindest ändern bzw definieren:
PHP:
"Ware bestellt. %2$s %1$s voraussichtlich ab dem %3$s verfügbar."

Viele Grüße
Michael
 

Ähnliche Themen