Live Demo: Teste dieses und weitere Plugins live — ohne Installation, ohne Risiko: demo.markus-michalski.net
src/
├── MmdAccessibility.php Plugin-Klasse, räumt beim Uninstall system_config auf
├── Subscriber/
│ └── StorefrontRenderSubscriber.php Reicht Konfiguration an die Templates weiter
└── Resources/
├── config/
│ ├── config.xml Plugin-Einstellungen (Admin)
│ └── services.xml Service-Verdrahtung
├── app/storefront/src/scss/base.scss Widget-Styles und Effekt-Klassen
├── public/js/accessibility-widget.js Vanilla-JS-Widget, kein Build-Schritt nötig
├── snippet/de_DE/, en_GB/ Übersetzungen
└── views/storefront/
├── base.html.twig Bindet SVG-Filter, Widget und Widget-Script ein
└── component/accessibility/
├── widget.html.twig Trigger-Button und Einstellungs-Panel
└── svg-filters.html.twig SVG-Filterdefinitionen für Farbsehschwächen
StorefrontRenderSubscriber hört auf StorefrontRenderEvent und stellt die Plugin-Konfiguration unter der Twig-Variable mmdAccessibility bereit:
| Config-Key | Twig-Pfad | Standard |
|---|---|---|
widgetEnabled |
mmdAccessibility.enabled |
true |
widgetPosition |
mmdAccessibility.position |
bottom-right |
optionFontSize |
mmdAccessibility.options.fontSize |
true |
optionContrast |
mmdAccessibility.options.contrast |
true |
optionColorFilter |
mmdAccessibility.options.colorFilter |
true |
optionBlueLight |
mmdAccessibility.options.blueLight |
true |
optionAnimations |
mmdAccessibility.options.animations |
true |
Zwei Absicherungen im Subscriber:
bottom-right, bottom-left) geprüft; jeder andere gespeicherte Wert fällt auf bottom-right zurück. Das verhindert, dass ein manipulierter Konfigurationswert CSS in die Seite einschleust."false" würde PHP sonst als true interpretieren; der Subscriber fällt stattdessen auf den Standardwert zurück.