Usermods in Templates¶
Gerade bei Modulinstallation aber auch bei anderen Arbeiten lassen sich Anpassungen an den Template-Dateien oft nicht vermeiden. Wenn in einem Bugfix oder Service Pack nun von gerade diesen angepassten Dateien eine neue Version ausgeliefert wird, können Anpassungen beim Einspielen des Updates verlorengehen, wenn diese in den Templatedateien direkt vorgenommen wurden.
Anpassungen an Template-, JavaScript- und Stylesheet-Dateien lassen sich updatesicher vornehmen. Für Anpassungen, die Smarty-Template-Dateien betreffen, muss hierfür die betroffene Template-Datei kopiert und der Dateiname der Kopie mit der Endung "-USERMOD" versehen werden.
Ein Beispiel:
die anzupassende Datei
templates/EyeCandy/module/shopping_cart.html
kopieren nach
templates/EyeCandy/module/shopping_cart-USERMOD.html
Ist von einer Template-Datei auch eine Kopie mit der Endung "-USERMOD" vorhanden, so wird von Smarty diese Kopie verwendet und das Original übergangen. Anpassungen sollten darum stets in solchen usermod-Kopien vorgenommen werden. Wenn die Originaldatei im Rahmen eines Updates überschrieben wird, bleibt die Anpassung in der usermod-Datei erhalten und wird weiterhin verwendet. Aktualisierungen, die in der Originaldatei stattgefunden haben, können bei Bedarf in die usermod-Datei händisch übertragen werden.
Die JavaScript-Dateien liegen in folgenden Verzeichnissen:
- gm/javascript
- templates/EyeCandy/javascript
- templates/gambio/javascript
Auch diese lassen sich auf die gleiche Weise kopieren und updatesicher anpassen.
Ein Beispiel:
die anzupassende Datei
templates/EyeCandy/javascript/CartDropdownHandler.js
kopieren nach
templates/EyeCandy/javascript/CartDropdownHandler-USERMOD.js
Die CartDropdownHandler.js ist damit nicht weiter aktiv und stattdessen kann mit der CartDropdownHandler-USERMOD.js gearbeitet werden.
Bei Anpassungen im Bezug auf JavaScript wird der häufigere Fall allerdings das Hinzufügen von neuem JavaScript-Code sein. Um neuen JavaScript-Code global auf allen Shopseiten verfügbar zu machen, kann dieser in Form einer JS-Datei in dem Unterverzeichnis usermod/javascript/global des jeweils aktiven Templates abgelegt werden.
Ein Beispiel:
JS-Datei mit global verfügbarem JavaScript-Code ablegen als
templates/EyeCandy/usermod/javascript/global/hello_world.js
Der Inhalt von hello_world.js wird in sämtliche Shopseiten eingebunden, da sich die Datei im global-Verzeichnis befindet. Wird ein JavaScript nur in bestimmten Bereichen benötigt, kann dieses mit Hilfe der anderen Verzeichnisse neben "global" gezielter platziert werden. Zur Verfügung stehen unter anderem die Bereiche "account", "cart", "checkout", "manufacturers" und "product_info".
Analog zu diesem System können neue Stylesheet-Informationen in Form von css-Dateien im Unterverzeichnis usermod/css eines Templates abgelegt werden. Hier abgelegte css-Dateien stehen grundsätzlich auf allen Shopseiten zur Verfügung. Eine Unterscheidung zwischen global und anderen Bereichen findet hier nicht statt.
Hinweis zum Cache:
Nach dem Hinzufügen neuer usermod-Dateien sollten über den Adminbereich auf der Seite "Cache leeren" die Punkte "Cache für Seitenausgabe leeren" und "Cache für Modulinformationen leeren" ausgeführt werden.