ich habe in einem Plugin ein Textfeld gemacht wo man css einfügen kann. Dieses wird dann an eine all.less file im Plugin übergeben und soll dort ausgegeben/gerendert werden. Nur leider funktioniert das nicht. Schon beim installieren ist es sehr langsam. Theme compilieren läuft ins unendliche.
Ich denke du darfst keinen CSS Code in eine Less Variable packen. Less-Variablen dürfen nur konkrete Werte beinhalten. Korrigiert mich wenn ich falsch liege.
Dagegen gilt aber folgendes: Jeder CSS Code ist automatisch Less Code.
Daher könntest du folgendes machen:
public function addLessFiles(Enlight_Event_EventArgs $args)
{
$shop = $args->getShop();
$config = $this->collection->getConfig($this->name,$shop);
// !NEU! schreibe den CSS Code direkt in die all.less
file_put_contents( __DIR__. '/Views/responsive/frontend/_public/src/less/all.less',$config->get('css'));
$less = new \Shopware\Components\Theme\LessDefinition(
// !NEU! hier wird nichts mehr übergeben
array(),
/* Less files to compile */
array( __DIR__. '/Views/responsive/frontend/_public/src/less/all.less'),
/* Import directory */
__DIR__
);
return new Doctrine\Common\Collections\ArrayCollection(array($less));
}
Wenn du noch andere Less-Styles hast, kannst du den CSS Code auch in eine andere Datei schreiben (z.B. custom.less) und dann via ‘import’ von der all.less einbinden.