Hallo
In Shopware 5 gibt es eine Beschreibung, wie man Daten eines Custom CMS Elements vor der Ausgabe bearbeiten/ändern kann:
Custom shopping world elements
Die Developer-Dokumentation für Shopware 6 sagt zu diesem Thema leider nichts, die Storefront-Integration verwendet einfach die bereits konfigurierten Daten:
https://docs.shopware.com/en/shopware-platform-dev-en/how-to/custom-cms-element
Weiss jemand von einer entsprechende Dokumentation für Shopware 6? Oder weiss jemand wie die Konfigurationsdaten eines Custom CMS Elements in Shopware 6 vor der Storefront-Ausgabe geändert werden können?
Vielen Dank!
Eine mögliche Lösung habe ich nun doch noch selbst gefunden: Ein Subscriber an den CmsPageEvents::SLOT_LOADED_EVENT hängen.
Die Liste aller möglichen CmsPageEvents findet man hier: shopware/core/Content/Cms/CmsPageEvents.php
Subscriber-Klasse (entschuldigung, das Einfügen von Codeschnipseln begreife ich noch nicht):
// /custom/plugins/MeinPlugin/src/Subscriber/MySubscriber.php
namespace: Mein\Plugin\Subscriber;
use Shopware\Core\Framework\DataAbstractionLayer\Event\EntityLoadedEvent;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Shopware\Core\Content\Cms\CmsPageEvents;
class MySubscriber implements EventSubscriberInterface
{
public static function getSubscribedEvents(): array
{
return [
CmsPageEvents::SLOT_LOADED_EVENT => 'onSlotLoaded',
];
}
public function onSlotLoaded($event) {
$entities = $event->getEntities();
foreach ($entities as $entity) {
// die Entity kann hier verändert werden
}
}
}
Registrieren des Subscribers:
// /custom/plugins/MeinPlugin/Resources/config/services.xml