Less-Variablen kompilieren

Hallo zusammen,

wir möchten für eines unserer Plugins dem Shopbetreiber die Möglichkeit bieten, Theme-Variablen wie @brand-primary in den Plugin-Einstellungen zu verwenden. Die Plugin-Einstellungen sind dabei eigene Datenbankfelder in neuen Tabellen, die das Plugin mitbringt.

Die Theme-Konfiguration kann recht komfortabel ausgelesen werden über 

$compiler = shopware()->Container()->get('theme_compiler');
$configuration = $compiler->getThemeConfiguration($shop);

Das Ergebnis sieht dann z.B. so aus:

Array
(
....
    [brand-secondary] : #5F7285
    [brand-secondary-dark] : darken(@brand-secondary, 15%)
....
)

Wenn im Backend in der Maske der Wert @brand-secondary eingetragen wurde, könnten wir diesen im o.g. Beispiel einfach durch den im Array stehenden Wert ersetzen. Soweit, so gut.

Nun die eigentliche Frage:  Wie können wir die Variable @brand-secondary-dark vollständig auflösen? Eine einfache Ersetzung kann hier nicht stattfinden, zunächst muss die Variable @brand-secondary aufgelöst werden und dann das darken() durchgeführt werden.

Weiß hier jemand Rat / gibt es hierzu einen Service?

Danke euch. Das Plugin wird am 1. August veröffentlicht.

WIr haben es gelöst. Mit dem Service “oyejorge_compiler_lib” kann ein String mit Less-Variablen aufgelöst werden. Wichtig dabei ist, dass getCss() aufgerufen wird, sonst meldet der Parser einen Fehler.

$this->lessParser->parse('@brand-secondary:#5F7285; @brand-secondary-dark:darken(@brand-secondary, 15%);');
$this->lessParser->getCss();
$this->lessParser->getVariables();