Hallo zusammen, was ist der beste Weg um JavaScript in ein Plugin einzubinden? Momentan löse ich es in einem Template, in dem ich dem „frontend_header_javascript_index“ Block erweitere. Vielen Dank! Viele Grüße
Dies wäre z.B. eine Möglichkeit. Wenn du in deinem Plugin eine eigene Templatestruktur hast: würde ich vllt in diesen Dateien die JS Datei einbinden, die dann auch in deiner Pluginstruktur vielleicht im unterordner /resources zu finden ist. Dann hast du alles was du für dein Plugin benötigst in einer kompakten Struktur. Finde ich persönlich am schicksten.
Danke für die Antwort. Aber ist es wirklich praktikabel in dem Plugins Ordner eine komplette Templatestruktur aufzubauen? Bei größeren Plugins (>10 Dateien) verstehe ich das noch, aber die meisten Plugins werden wahrscheinlich um die 5 Datein haben. Da macht es meines Erachtens nach wenig Sinn soviele Ordner zu erstellen.
Das musst du Wissen aber Ordner kosten ja nichts. Weder Speicherplatz noch wirklich Aufwand. Der Vorteil ist halt echt, du hast keine Rückstände mehr, wenn du das Plugin deinstallierst. Dann ist alles Sauber. Aber musst du wissen. :thumbup:
Der Vorteil der “vielen” Ordner ist, dass der Kunde die komplette Struktur in sein Custom-Templateverzeichnis kopieren & anpassen kann und das System dann automatisch die dort abgelegten Dateien verwendet - ansonsten müssten Plugin-Template-Modifikationen ja im Plugin selbst durchgeführt werden und man würde dann spätestens an dieser Stelle wieder die Updatefähigkeit einbüßen
Alles klar, habt mich überzeugt! Danke
Hi, ich bin noch nicht so ganz überzeugt, denn so wie ich das verstanden habe müsste dann ein Kunde ein Plugin Installieren und zusätzlich noch die vom Plugin benötigten Dateien in sein Template kopieren. 1. Müsste man dies jedes mal machen wenn auf ein anderes Template gewechselt wird. 2. Ist die Installation evtl. nicht problematisch aber spätestens bei der Deinstallation wenn dann alle Dateien von Hand gelöscht werden müssen wird es Aufwendig. 3. Warum sollte die Updatefähigkeit einbüßen?
Gute Einwände. Ich habe sogar noch einen weiteren: angenommen ich habe einen Shop mit 20 Plugins, davon nutzen 15 Plugins eigene Javascript Dateien. Das führt dann dazu, dass ich 15+x verschiedene JavaScript-Dateien im Header einbinden muss. Meines Wissens nach sollte aber JavaScript in einer Datei zusammengefast werden (sofern dies möglich ist).
Hey, eure “Einwände” sind unbegründet. 1. Müsste man dies jedes mal machen wenn auf ein anderes Template gewechselt wird. 2. Ist die Installation evtl. nicht problematisch aber spätestens bei der Deinstallation wenn dann alle Dateien von Hand gelöscht werden müssen wird es Aufwendig. 3. Warum sollte die Updatefähigkeit einbüßen? zu 1.) Nein! Die Struktur soll so im Plugin-Verzeichnis angelegt werden, es ist hierbei völlig unerheblich welches Template der Kunde verwendet. Bei der Struktur geht es nur darum, das der Kunde diese theoretisch auch in seinen _local Ordner direkt kopieren kann, falls er Änderungen am Plugin-Template vornehmen möchte - das kann dann direkt per Copy & Paste erfolgen und erfordert keine weiteren Anpassungen. 2.) Siehe 1.) 3.) Bitte den Thread nochmal durchlesen. Wenn ein Plugin Template-Bauteile enthält und man diese NUR anpassen könnte, wenn man das direkt im Plugin-Verzeichnis vornimmt, würde man Probleme bekommen, gäbe es eine neue Version des jeweiligen Plugins - also legt man die Struktur so an, das der Kunde diese einfach in seinen User-Space kopieren kann und dort modifizieren kann, somit kann das Plugin aktualisiert werden, ohne das etwaige Anpassungen verloren gehen. [quote] Gute Einwände. Ich habe sogar noch einen weiteren: angenommen ich habe einen Shop mit 20 Plugins, davon nutzen 15 Plugins eigene Javascript Dateien. Das führt dann dazu, dass ich 15+x verschiedene JavaScript-Dateien im Header einbinden muss. Meines Wissens nach sollte aber JavaScript in einer Datei zusammengefast werden (sofern dies möglich ist). [/quote] Dieser Fall ist äußerst unrealistisch - zum einen sollte man die JS-Dateien nur in den Controllern einbinden, wo diese auch benötigt werden - zum anderen kann man für so einen Spezialfall dann auch immer noch die Javascript-Dateien zusammenführen und als eine Datei einbinden.
P.s. - So wie du es beschrieben hast, ist es also nicht. Plugins können Templates enthalten und trotzdem normal installiert werden - also es spielt sich per Default alles im Plugin-Verzeichnis ab…
Was für eine Orderstruktur ist beim Ablegen von externen JavaScript-Dateien in einem Plugin am günstigsten?
Moin. _PLUGIN_/frontend/_resources/javascript/deinscript.js
Danke. So wird die Struktur einheitlich
Ich muss doch nochmal nachharken: Einige Plug-Ins nutzen einen direkten Unterordner „templates“ (z.B.: Paypal, Google) Was ist günstiger: Jeweils ein Ordner „frontend“ und „templates“, oder ein Unterordner „templates“ im Ordner „frontend“?
Sorry, das hatte ich übersehen. Du solltest alle Template-Files und Ressourcen in einem zentralen Ordner im Plugin-Verzeichnis sammeln - wie der heißt ist aber im Prinzip egal. Also z.B. PLUGIN/templates/frontend/ usw. oder Plugin/View/frontend/ …
Kann es sein, das der “templates”-Ordner und Unterordner für den Zugriff auf JS-Dateien durch die “.htaccess” gesperrt werden? Zum Anfang hatte ich unter „templates/backend/_resources/javascript“ eine JS-Datei liegen, welche zwar gefunden wurde, aber Firebug zeigte eine Antwort mit 0kb an und die dort definierten Objekte wurden nicht gefunden. Durch ein Verschieben der Datei funktionierte wieder alles.
Ich habe leider das gleiche Problem, meine Resources werden nicht geladen, auch nicht wenn ich sie versuche direkt aufzurufen. Kann ich auf meine Plugin Javascript Dateien eigentlich per {link file=’’} zugreifen? Was muss ich bei file dann angeben? Meine Ordnerstruktur: meinPlugin -> Bootstrap.php -> templates -> -> frontend -> -> -> _resources -> -> -> -> javascript -> -> -> -> -> meinPlugin.js Viele Grüße Matthias