FOL9000

JavaScript aus dem Skin-Verzeichnis in Magento einbinden

von

An anderer Stelle habe ich schon über das Einbinden von jQuery in Magento geschrieben. Dort war ich davon ausgegangen, dass jQuery im globalen /js-Verzeichnis liegt. Aber mir widerstrebt es grundsätzlich, irgendetwas außerhalb der /app– und /skin-Verzeichnisse der eigenen Packages und Extensions zu ändern oder hinzuzufügen. Deswegen hier die Lösung für JavaScript-Code im /js-Verzeichnis des eigenen Themes.

Grundsätzlich sollte man versuchen, die ganze Einbinderei von eigenem JavaScript-Code, aber auch von Theme-spezifisch genutzten JavaScript-Libraries im Theme selbst abzuhandeln. Erst wenn es nicht anders geht oder es gute Gründe für einen anderen Weg gibt, sollte man diesen Königsweg verlassen und es anders machen.

Magento wäre aber nicht Magento, wenn das so einfach ohne weitere Änderungen gehen würde.

Im Artikel zu jQuery-Einbindung hatte ich ja bereits folgendes local.xml-Snippet aufgeführt, in dem jQuery aus dem globalen /js-Verzeichnis eingebunden wird:

<layout>
  <default>
    <reference name="head">
      <action method="addJs"><script>jquery/jquery-1.2.3.min.js</script></action>
    </reference>
  </default>
</layout>

Will man gleiches mit JavaScript-Code aus dem Theme-eigenen JavaScript-Verzeichnis machen, sieht die Action leider deutlich anders aus:

<layout>
  <default>
    <reference name="head">
      <action method="addItem"><type>skin_js</type><script>js/jquery-1.2.3.min.js</script></action>
    </reference>
  </default>
</layout>

(Wobei auch hier wieder der Dateiname und der Pfad innerhalb des /js-Verzeichnisses angepasst werden müssen!)

Es hat durchaus mehrere Vorteile, auch jQuery in das Theme-eigene JavaScript-Verzeichnis zu legen.

Zunächst wird es nicht stumpf für jedes Theme eingebunden. Hat man auch nur ein Theme, dass jQuery nicht benötigt, ist dies schon ein großer Vorteil. Zudem kann man auch unterschiedliche Versionen in verschiedenen Themes nutzen, was durchaus mal von Vorteil sein kann, wenn irgendwelcher Code partout nicht mit einer bestimmten Version z.B. von jQuery laufen will.

Und schließlich ist es einfach sauberer und übersichtlicher alles in den eigenen Theme-Verzeichnissen zusammenzufassen, was man selbst ändert oder hinzufügt.

Kommentare sind geschlossen.