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

hotzeplotz

Aktives Mitglied
4. Februar 2019
65
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.315
449
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
 

ongnamo

Sehr aktives Mitglied
31. März 2013
992
79
Stand Shop 5.1.2: Man kann (inzwischen?) die ersten beiden Platzhalter sogar weglassen, wenn man der Notation von Michael folgt.
 
  • Gefällt mir
Reaktionen: OS8610

Ähnliche Themen