use Doctrine\Common\Collections\ArrayCollection;
class Shopware_Plugins_Frontend_TEST_Bootstrap extends Shopware_Components_Plugin_Bootstrap {
private function registerEvents() {
$this->subscribeEvent(
'Theme_Compiler_Collect_Plugin_Less',
'addLessFiles'
);
}
// zusätzliches CSS bzw. LESS einbinden
public function addLessFiles(Enlight_Event_EventArgs $args) {
$less = new \Shopware\Components\Theme\LessDefinition(
array(),
array( __DIR__. '/Views/_resources/less/all.less' ),
__DIR__
);
return new Doctrine\Common\Collections\ArrayCollection(array($less));
}
}
class Shopware_Plugins_Frontend_TEST_Bootstrap extends Shopware_Components_Plugin_Bootstrap {
private function registerEvents() {
$this->subscribeEvent(
‚Theme_Compiler_Collect_Plugin_Less‘,
‚addLessFiles‘
);
}
// zusätzliches CSS bzw. LESS einbinden
public function addLessFiles(Enlight_Event_EventArgs $args) {
$less = new \Shopware\Components\Theme\LessDefinition(
array(),
array( DIR. ‚/Views/_resources/less/all.less‘ ), DIR
);
return new Doctrine\Common\Collections\ArrayCollection(array($less));
}
}
Hallo,
dir ist aber schon bewusst, das wir hier vom neuen Pluginsystem reden und nicht vom alten, oder? Hast du dir überhaupt einen einzigen Beitrag oder wenigstens die Überschrift durchgelesen *kopfschüttel*? Vorallem steht der Code bereits im ersten Beitrag so drin… Manche Leute…
Ich bezog mich auf den Eingangspost und auf die Frage "Die Theme Kompilierung schlägt aber fehl… Hat jemand ne Idee, weshalb das nicht mehr so funktioniert? ". Mein Beispiel bezieht sich auf die neuen Pluginsysteme und ist in aktuellen SW-Version ohne Probleme lauffähig.
Ich bezog mich auf den Eingangspost und auf die Frage "Die Theme Kompilierung schlägt aber fehl… Hat jemand ne Idee, weshalb das nicht mehr so funktioniert? ". Mein Beispiel bezieht sich auf die neuen Pluginsysteme und ist in aktuellen SW-Version ohne Probleme lauffähig.
Hallo,
dir ist aber schon bewusst, dass man beim neuen Pluginsystem nicht mehr von Shopware_Components_Plugin_Bootstrap ableitet oder ( https://developers.shopware.com/developers-guide/plugin-system/#container-configuration )? Das dein Beispiel nicht das neue Pluginsystem ist oder sich darauf bezieht, sieht man ja alleine schon am Pfad der Bootstrap - Datei (im neuen Pluginsystem gibt es kein Frontend, Backend etc im Pfad mehr, etc). Und hier geht es ausschließlich um das neue Pluginsystem.
Dass das von dir erwähnte alte Pluginsystem noch unter den aktuellen Shopware-Versionen funktioniert, ist jedem klar - aber überhaupt nicht Thema dieses Beitrags.
ich stand gerade vor dem gleichen Problem. Bei funktionierts wie folg t:
public static function getSubscribedEvents()
{
return [
'Theme_Compiler_Collect_Plugin_Less' => 'addLessFiles'
];
}
public function addLessFiles(\Enlight_Event_EventArgs $args)
{
$less = new \Shopware\Components\Theme\LessDefinition([], [__DIR__. '/Resources/views/frontend/_public/src/less/all.less']);
return new \Doctrine\Common\Collections\ArrayCollection([$less]);
}
Danke für Deine Geduld. Wie so sollte man auch die Views groß schreiben, wenn das Verzeichnis wie oben erwähnt ja klein geschrieben ist. Abgesehen davon gibt es auch keni _public Verzeichnis, sondern die Daten liegen genau dort, wie ichs oben aufgemalt habe. Das macht mich echt fertig gerade!
Hall,
und warum legst du nicht einfach die Ordnerstruktur genauso an, wie Shopware es vorschreibt und ich nun mehrmals geschrieben habe? Wenn man es nicht so macht wie es vorgegeben ist, braucht man sich doch nicht wundern, das es nicht funktioniert. Das _public - Verzeichnis ist zum Beispiel auch Voraussetzung und wichtig im Pfad. Nur du schreibst das Verzeichnis views klein, Shopware schreibt es groß (Views), da kannst du bei jedem Shopware eigenen Plugin nachsehen.
Beste Grüße
Sebastian
Das ist zwar schon alt und das Problem längst gelöst aber dazu muss ich jetzt trotzdem mal was schreiben.
Das views Verzeichnis wurde nur im alten Plugin System groß geschrieben und war auch teil des Plugin Rootverzeichnisses. Im neuen Pluginsystem wird es klein geschrieben und ist ein Unterordner von Resources. Desweiteren ist es nicht mehr zwingend nötig den _public Ordner an zu legen und Less dateien werden automatisch importiert wenn sie im Ordner Resources/views/frontend/less liegen.
Das ist zwar schon alt und das Problem längst gelöst aber dazu muss ich jetzt trotzdem mal was schreiben.
Das views Verzeichnis wurde nur im alten Plugin System groß geschrieben und war auch teil des Plugin Rootverzeichnisses. Im neuen Pluginsystem wird es klein geschrieben und ist ein Unterordner von Resources. Desweiteren ist es nicht mehr zwingend nötig den _public Ordner an zu legen und Less dateien werden automatisch importiert wenn sie im Ordner Resources/views/frontend/less liegen.
Ich glaube die Information bezüglich des Pfades Resources/views/frontend/less ist so nicht ganz richtig.
Der Pfad für den Autoload ist Resources/frontend/less und es werden NUR die Less-Dateien geladen die in der all.less importiert sind, die in diesem Verzeichniss liegen.
Sprich, habe ich eine halloWelt.less , speichere ich sie unter MeinPlugin/Resources/frontend/less/halloWelt.less
Dazu lege ich noch eine all.less (in dem Beispielfall hier im selben Verzeichniss) an und importiere dann meine halloWelt.less in dieser.
File: all.less
@import "halloWelt";
Bei CSS und JS reicht das ablegen in entsprechendem Verzeichniss.
Zumindest ist diese Vorgehensweise der Dokumentation so zu entnehmen.