ich habe ein Problem mit der Integration einer all.less Datei in einem Plugin. Das Plugin erweitert das CustomProductsV2-Plugin und arbeitet nach dem Beispiel im Blog auch einwandfrei.
Ich habe einen Frontend-Subscriber der auf den Event “Enlight_Controller_Action_PreDispatch_Frontend_Detail” registriert und im Callback eine Funktion besitzt die über addTemplateDir() das Verzeichnis “/Resources/Views/” als Template-Verzeichnis hinzufügt.
Es gibt eine Testdatei “Resources/Views/frontend/detail/tabs.tpl” die einen neuen Tab auf der Artikeldetailseite hinzufügt. Sprich das Template-Verzeichnis funktioniert schon mal.
Jetzt habe ich mir gedacht, das ich einfach folgende less-Dateien im Template-Verzeichnis anlege, um einfach nur die Textfarbe anzupassen.
Ich habe die addLess-Funktion jetzt in einem eigenen Subscriber (siehe unten) untergebracht und in Resources/services.xml hinterlegt.
Der DesignFiles-Subscriber reagiert auf den Event “Theme_Compiler_Collect_Plugin_Less”. Siehe hierzu auch in der Shopware 5 Doku “plugin update guide”.
Leider kann ich nun nicht mehr das Theme kompilieren… (Warum auch immer…) und kann somit nicht testen, ob meine Änderungen funktionieren.
Habe ich das nun falsch eingebunden?
Subscriber/DesignFiles.php
container = $container;
$this->path = $this->container->getParameter('modhoc_editor.plugin_dir');
}
public static function getSubscribedEvents() {
return [
'Theme_Compiler_Collect_Plugin_Less' => 'addLessFiles',
];
}
public function addLessFiles(Enlight_Event_EventArgs $args) {
$less = new \Shopware\Components\Theme\LessDefinition(
//configuration
array(),
//less files to compile
array(
__DIR__. '/../Resources/Views/frontend/_public/src/less/all.less'
),
//import directory
__DIR__
);
return new Doctrine\Common\Collections\ArrayCollection(array($less));
}
}