Theme-Config in Subscriber einlesen

Hallo,

wie kann ich im Subscriber die Theme-Config aus der theme.json einlesen?

$config = $this->systemConfigService->get('Mein_Theme.config', $params['salesChannelId']);

liefert nichts zurück. Auf ein Plugin angewendet, kommen sämtliche Konfigurationsdaten zurück. Funktioniert das bei einem Theme anders?

Viele Grüße, Frank

Du müsstest den TemplateConfigAccessor bzw. Den ThemeConfigValueAccessor verwenden, um dir die theme configs auslesen zu können.

Guck dir am besten die Twig-Extension ConfigExtension an.

Hallo @abdullah ,

danke für den Tipp. Aber wo finde ich den ThemeConfigValueAccessor bzw. die Twig-Extension?

Viele Grüße, Frank

Am besten eine Entwicklungsumgebung IDE verwenden und nach den Klassen suchen. Ich mein der Shopware Code steht zur Verfügung.

Namespace der Extension:
Shopware\Storefront\Framework\Twig\Extension da die Klasse ConfigExtension

Danke. Das ist ein guter Ansatz :+1:. Muss man erstmal finden :upside_down_face:.

Das funktioniert nun grundsätzlich mit:

ThemeConfigValueAccessor.get($key, $salesChannelContext, $themeId)

Allerdings muss ich jeden einzelnen Config-Eintrag einzeln auslesen. Gibt es eine Möglichkeit, ähnlich wie bei den Plugins, ein Array mit allen Einstellungen abzufragen? In der Klassen-Definition von `ThemeConfigValueAccessor.get(…) ist als Rückgabewert scheinbar auch ein Array möglich. Aber wie müsste $key dafür gesetzt werden?

Wenn du dir die Klasse anguckst, gibt es keine Möglichkeit alle Configs auf einmal zu erhalten.

Der Rückgabewert array ist für Configs gedacht, die ein Array zurückliefern. Das bedeutet nicht, dass du alle Configs auf einmal erhältst.

Hallo @abdullah,

ich hatte mir fast sowas gedacht. Zum Glück sind es nicht viele Werte, die ich aus der ThemeConfig brauche. Es geht also auch so.

Zu dem Thema habe ich in der Shopware Doku übrigens gar nichts gefunden. Ohne Deinen Tipp hätte ich mir nen Wolf gesucht. Also vielen Dank nochmals :+1:.