Markus Michalski FAQ

Leere Kategorie Nachrichten: Technische Details

Ablauf, Plugin-Struktur, Zusatzfelder, Sicherheit und Umfang des Plugins: Subscriber, Service, Twig-Erweiterung, Template und Lebenszyklus.

English Version

Zurück zur Übersicht

Technische Details

Paket und Plugin-Klasse

Eigenschaft Wert
Composer-Paket mmd/sw67-empty-category
Plugin-Klasse Mmd\EmptyCategory\MmdEmptyCategory
Technischer Plugin-Name MmdEmptyCategory
Namespace Mmd\EmptyCategory

Ablauf

graph TD
    A["Kategorieseite aufgerufen"] --> B["NavigationPageLoadedEvent"]
    B --> C["CategoryPageSubscriber lädt Elternkette und Medien"]
    C --> D["Listing-Template: Block element_product_listing_col_empty"]
    D --> E["Twig-Funktion mmd_empty_category_message"]
    E --> F["EmptyCategoryMessageService löst die Nachricht auf"]
    F --> G{"Nachricht gefunden?"}
    G -->|"Ja"| H["Eigene Nachricht rendern"]
    G -->|"Nein"| I["Shopware-Standardmeldung"]

Bausteine

Klasse / Datei Aufgabe
Subscriber\CategoryPageSubscriber Hört auf NavigationPageLoadedEvent. Lädt die Elternkategorien (bis zu 10) nur, wenn bei der Kategorie die Vererbung aktiv ist. Lädt die Medien der Bilder, sobald Nachricht, Bild oder Vererbung gesetzt ist
Service\EmptyCategoryMessageService Löst die Nachricht auf: eigene Nachricht, sonst Vererbung nach oben, sonst leer. Die Suche umfasst höchstens 10 Ebenen, die Kategorie selbst eingerechnet, es werden also höchstens 9 Elternkategorien erreicht. Bereinigt CSS-Klassen und Auswahlwerte
Service\EmptyCategoryMessage Unveränderliches Wertobjekt mit Nachricht, Bild-URL, CSS-Klassen, Größe und Ausrichtungen
Twig\EmptyCategoryExtension Registriert die Twig-Funktion mmd_empty_category_message
views/storefront/component/product/listing.html.twig Überschreibt den Block element_product_listing_col_empty
app/storefront/src/scss/base.scss Styles der Plugin-Klassen
MmdEmptyCategory Legt das Zusatzfeld-Set an, ergänzt es beim Update und entfernt es bei der Deinstallation

Zusatzfelder

Das Set mmd_empty_category ist der Entität category zugeordnet und enthält die Felder aus der Konfiguration. Die Werte liegen im Feld customFields der Kategorie.

Umfang des Plugins

Bereich Status
Plugin-Einstellungen (config.xml) keine
Eigene Routen und API-Endpunkte keine
Eigene Datenbanktabellen und Migrationen keine
Admin-Module und Rechte (ACL) keine, die Felder erscheinen im vorhandenen Kategorie-Editor
Scheduled Tasks und Befehle keine
Externe Anfragen keine
Snippets mmd.emptyCategory.imageAlt (de-DE, en-GB)

Sicherheit