MapsLoader 1.1.15 Help

Backend

Die Server-Seite des MapsLoader besteht aus der Plugin-Konfiguration, einem dekorierenden Cookie-Provider und einem CMS-Element-Resolver. Alle drei sind in src/Resources/config/services.xml registriert.

Plugin-Konfiguration

Konfiguriert wird das Plugin über src/Resources/config/config.xml. Es gibt zwei Felder in der Karte „Grundeinstellungen":

Schlüssel

Typ

Werte

MapsLoader.config.provider

single-select

gmaps (Google Maps) oder osm (Open Street Maps)

MapsLoader.config.apiKey

text

API-Schlüssel des gewählten Anbieters

Beide Werte werden sowohl server-seitig (Cookie-Provider) als auch client-seitig (siehe Frontend) ausgelesen.

Leoparden\MapsLoader\Framework\Cookie\MapsCookieProvider dekoriert den Shopware-CookieProviderInterface und ergänzt einen anbieter-spezifischen Cookie in der bestehenden Cookie-Gruppe Komfortfunktionen (cookie.groupComfortFeatures):

<service id="Leoparden\MapsLoader\Framework\Cookie\MapsCookieProvider" decorates="Shopware\Storefront\Framework\Cookie\CookieProviderInterface"> <argument type="service" id="Leoparden\MapsLoader\Framework\Cookie\MapsCookieProvider.inner"/> <argument type="service" id="Shopware\Core\System\SystemConfig\SystemConfigService"/> </service>

Der Cookie-Eintrag verwendet den Snippet-Namen plugin.leoparden.MapsLoader.cookie.<provider>, den Cookie-Schlüssel <provider> und eine Gültigkeit von 30 Tagen. Erst nach Zustimmung zu diesem Cookie wird die Karte in der Storefront geladen (siehe Privacy-Block unter Frontend).

CMS-Element-Resolver

Leoparden\MapsLoader\Service\MapsCmsElementResolver ist mit shopware.cms.data_resolver getaggt und für den Element-Typ maps zuständig. Er lädt das in der Element-Konfiguration hinterlegte Marker-Bild als Media-Entity nach:

  • collect() legt für die markerImage-ID ein Criteria auf die MediaDefinition an.

  • enrich() hängt die geladene Media-Entity an das CMS-Slot ($slot->setData(...)).

So steht im Storefront-Template element.data.url als Marker-Grafik zur Verfügung.

Plugin-Klasse & Abhängigkeiten

Die Plugin-Klasse Leoparden\MapsLoader\MapsLoader enthält selbst keine Lifecycle-Logik. Die Lizenzprüfung übernimmt das Paket leoparden/plugin-license-manager (ein symfony-bundle), das automatisch für jedes Plugin im Leoparden\…-Namespace greift – im MapsLoader ist dafür kein eigener Code nötig.

Last modified: 27 May 2026