feat(cms): add subcategory columns CMS block with own "WSC AI-SEO" category #20
Loading…
Reference in a new issue
No description provided.
Delete branch "feature/cms-block-subcategory-columns"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Zusammenfassung
Neuer CMS-Block für den Layout-Designer (Issue #19): Redakteur wählt eine Kategorie, deren direkte aktive Unterkategorien werden als Spalten mit Link gerendert. Spaltenbreite ist über ein Textfeld mit Bootstrap-Grid-Klassen konfigurierbar (Beispiel:
col-6 col-md-4). Der Block erscheint im Block-Picker unter einer eigenen neuen Kategorie „WSC AI-SEO".Umsetzung
src/Cms/SubcategoryColumnsCmsElementResolver.php+Struct/SubcategoryColumnsStruct.php: PHP-Resolver, lädt direkte, aktive Unterkategoriensrc/Resources/app/administration/...: neues Administration-Verzeichnis (gab es in diesem Plugin bisher nicht) — CMS-Element + Block-Vue-Komponenten, Konfigurationspanel (Kategorie-Auswahl + Spaltenbreite-Textfeld), eigene Block-Kategorie „WSC AI-SEO"src/Resources/views/storefront/...: Block- und Element-Twig-Templatestests/Unit/Cms/SubcategoryColumnsCmsElementResolverTest.php: 5 neue Unit-TestsWichtiger Fund während der Verifikation
Der erste Ansatz nutzte Shopwares generischen
CriteriaCollection-Mechanismus (CmsSlotsDataResolver) analog zu Shopwares eigenen CMS-Elementen. Live-Test in DDEV zeigte dann leerehref-Attribute bei den gerenderten Links. Ursache:CmsSlotsDataResolverhat nur für die Entityproducteine Sales-Channel-Repository-Zuordnung hinterlegt (Shopware\Core\Content\DependencyInjection\cms.xml), nicht fürcategory. Dadurch griff beim generischen Weg das NICHT Sales-Channel-fähigecategory.repository, welches das Eventsales_channel.category.loadednie feuert — genau dieses Event befülltcategory.seoUrl. Fix: Der Resolver lädt jetzt direkt über das injiziertesales_channel.category.repositoryinenrich(),collect()gibt bewusstnullzurück. Danach lieferte der Live-Test korrekte, funktionierende Links.Verifikation (DDEV
sw6-plugin, real durchgespielt)bin/build-administration.sh) erfolgreich, Plugin-JS fehlerfrei gebündeltBekannte Einschränkung
Kein Browser-Zugriff in dieser Session verfügbar — die Admin-UI (Block-Picker, „WSC AI-SEO"-Tab, Konfigurationsformular) wurde nicht visuell prüft, nur Build-Erfolg und die tatsächliche Storefront-Ausgabe. Ein kurzer manueller Blick ins Admin-Backend wird empfohlen.
Closes #19