ich versuche mich aktuell an einem Plugin und würde gerne gewisse Plugin Einstellungen als LESS Variable speichern. Ist das möglich? Man soll über das Plugin die Weite und Höhe eines Elements einstellen können, und dies soll dann als LESS Variable angelegt werden. Wie mann LESS Dateien in einem Plugin einbindet ist mir bewusst, aber variable Daten leider nicht.
Hier mal noch ein aktuelles Beispiel (mit Version 5.2 und 5.3 getestet) für einen Subscriber, der alle Variablen aus der Plugin-Config in LESS verfügbar macht. Auch hier gilt, dass nach Änderung der Variablen das Theme neu kompiliert werden muss.
'onCollectLessFiles'
);
}
/**
* register less-files
* make all variables from plugin-config available in less
*
* @param \Enlight_Event_EventArgs $args
* @return LessDefinition
*/
public function onCollectLessFiles(\Enlight_Event_EventArgs $args)
{
$pluginConfig = Shopware()->Container()->get('shopware.plugin.cached_config_reader')->getByPluginName('SwagMyPlugin');
$pluginPath = Shopware()->Container()->getParameter('swag_my_plugin.plugin_dir');
// create array with all variables from plugin-config
$variables = [];
foreach ($pluginConfig as $key => $value) {
$variables[$key] = $value;
}
$less = new LessDefinition(
// array with less-variables
$variables,
//less files to compile
array(
$pluginPath . '/Resources/Views/frontend/_public/src/less/all.less'
),
//import directory
$pluginPath . '/Resources/Views/frontend/_public/src/less/'
);
return $less;
}
}