Hallo,
ich versuche gerade eine Lazyloading Javascript Lösung in ein Plugin einzubinden und komme nicht weiter.
Laut den Manuals gibt es hierbei zwei Lösungen zum Javascript-Einbinden, die bei mir beide nicht funktionieren:
1. Frontend Resources auto-registration (Plugin quick Startup Guide)
Wenn man seine javascript sourcen in dieses Verzeichnis schreibst, sollten sie automatisch eingebunden werden: „custom/plugins/SwagResource/Resources/frontend/js/“
Das klappt aber nicht, obwohl ich SW5.4.5 verwende. Kann man über irgendein Log erkennen, warum dies nicht klappt?
2. Javascript aktiv über das „Theme_Compiler_Collect_Plugin_Javascript“ event registrieren
Ich habe folgenden Code geschrieben:
Aber das funktioniert auch nicht. Kann jemand den Fehler erkennen?
Ich habe jetzt die Lazyload Funktionalität erstmal hart in mein Theme eingearbeitet, aber als Plugin wäre es schon viel
eleganter.
Danke und viele Grüsse
Jens
Das „normale“ use Doctrine\Common\Collections\ArrayCollection; willst du nicht nutzen?
1 „Gefällt mir“
Danke für die Antwort.
Ich habe es jetzt mal so probiert, aber das funktioniert auch nicht:
public function collectJs(\Enlight_Event_EventArgs $args) {
$jsFiles = array( __DIR__. '/Resources/views/frontend/js/lazysizes.js');
return new Doctrine\Common\Collections\ArrayCollection($jsFiles);
}
'addJsFiles',
'Theme_Compiler_Collect_Plugin_Less' => 'addLessFiles'
];
}
public function addJsFiles(\Enlight_Event_EventArgs $args)
{
$jsFiles = array( __DIR__. '/Resources/frontend/_public/src/js/MEINEJAVASCRIPT.js');
return new ArrayCollection($jsFiles);
}
public function addLessFiles()
{
$less = new LessDefinition(
array(),
array( __DIR__. '/Resources//frontend/_public/src/less/all.less'),
__DIR__
);
return new ArrayCollection([$less]);
}
}
1 „Gefällt mir“
@brettvormkopp: Vielen Dank für’s „an die Hand nehmen“.
Hatte wohl ein Brett vorm Kopf
1 „Gefällt mir“
und ich danke dir, sonst hätte ich den fehlerhaften DoppelSlash in addLessFiles() nicht entdeckt. … bitte selbst korrigieren