Zum Inhalt springen

Shop Docweb

Interne Projektdokumentation für Entwicklung und Betrieb

Labels

Aktueller Stand des Label-Systems für UI-Texte und Navigation.

Aktualisierung: 2026-06-02Bereich: Kernsystem

Zweck

Das Label-System liefert sprachabhängige UI-Texte für Seiten und Navigation. Es trennt Interface-Texte vom View-Code, ist aber im aktuellen Projekt kein eigenständiger label.service mit statischem Helper aus der alten Doku.

Aktuelle Bausteine

  • app/model/label.model.php enthält die Ladefunktionen getLabel() und getLabels().
  • app/core/app.php speichert Seitenlabels und Navigationslabels zentral in cApp.
  • Die eigentliche Exportquelle für Mehrfachabfragen ist vw_label_export.
  • Views nutzen je nach Stelle entweder cApp::getInstance()->getLabel(...) oder das übergebene $labels-Array.

Laden in der App

public function setLabels(): void {
    $this->labels = getLabels(cSession::getLangID(), cSession::getPageID(), cSession::getCatKey(), true);
}

public function setNavLabels(): void {
    $this->navLabels = getLabels(cSession::getLangID(), null, 'nav');
}

Filterlogik heute

getLabels() kombiniert die aktuelle Sprache mit optionalen Filtern für Seite, Gruppe und Global-Status.
- Seite: über pag_IDs mit FIND_IN_SET(:pagID, pag_IDs)
- Gruppe: über lky_group LIKE '%-tag-%'
- Global: über lky_is_global

Die alte Doku mit p_{page_key}-Gruppen beschreibt also eher eine Zielidee als den heutigen exakten Stand.

Abfrage-Kern (vereinfacht)

SELECT DISTINCT lky_key, label_value
FROM vw_label_export
WHERE lan_ID = :lanID
  AND (...)
ORDER BY lky_key ASC

Fehlerverhalten

cApp::getLabel() und cApp::getNavLabel() greifen strikt zu. Fehlt ein Key, wird ein Fehler geloggt und als Fallback der Text Label error: <key> zurückgegeben. Das ist bewusst sichtbar und nicht still.

Wichtige Einordnung

Inhaltsdaten wie Kategorienamen, Produktnamen oder Artikeltexte gehören nicht in dieses Label-System. Es ist für Interface-Texte gedacht, nicht für den eigentlichen Handelskatalog.