Eigene Javascript-Datei für eigenes Einkaufswelt-Plugin?

Hallo zusammen,

wie konfiguriere ich eine eigene Javascript-Datei, welche nur auf den Seiten in dem mein Einkaufswelt-Plugin eingebunden ist geladen wird?

Grüße
sunflower

Hallo sunflower,
bitte bedenke noch folgendes:
Dass deine Datei extra angefragt werden muss, erzeugt einen zusätzlichen Overhead von ca. 2KB(noch mehr wenn es über TLS erfolgt). Wenn dein Javascript-Code komprimiert unter 2-4KB liegt, macht es eigentlich keinen Sinn diesen als Extra-Datei zu laden (Es sei denn, es ist sehr wahrscheinlich, dass ein Besucher diesen nie zu Gesicht bekommt). Schreibe ihn besser komprimiert mit den anderen JS Dateien zusammen (Plugin/Theme). Diese werden dann 1x zu Beginn vom Browser angefragt und danach im Cache gehalten.

Viele Grüße

2 „Gefällt mir“

In der [pluginname].php kannst du auch das Event „Theme_Compiler_Collect_Plugin_Javascript“ nutzen um in der Funktion dann eine JS-Datei zum Compiler hinzuzufügen. Die würde dann auch mit komprimiert und gecached werden (vor allem wäre sie bei Deinstallation auch weg^^):

/**
 * @param \Enlight_Event_EventArgs $args
 * @return \Doctrine\Common\Collections\ArrayCollection
 */
public function addJsFiles(\Enlight_Event_EventArgs $args)
{
    return new \Doctrine\Common\Collections\ArrayCollection([
	    __DIR__.'/Resources/views/frontend/_public/src/js/test.js'
    ]);
}

Edit:

Haha, gerade erst den Link angeklickt, @simkli :D

1 „Gefällt mir“

Prima, danke für die Infos. Die Javascript-Datei lädt einigen Kram per Ajax vom Server nach. Bin noch nicht fertig mit dem coden und werde mir dann später ansehen, welchen Overhead das für die Seiten ohne mein Plugin erzeugt.