Allgemein

Das Pluginsystem im JTL-Shop ermöglicht es, alle Arten von Zusatzfunktionalitäten im Shop hinzuzufügen ohne den Shopcode zu modifizieren. Dadurch, dass der Originalcode des Shops nicht verändert wird, bleibt er zu jeder Zeit updatefähig. Plugins werden im Shop vom Shopbetreiber installiert. Eine Installation besteht aus dem Hochladen des Plugins in das für Plugins vorgesehene Verzeichnis <Shop-Root>/includes/plugins/ und anschliessender Installation über die Pluginverwaltung im Adminbereich des Shops. In der Pluginverwaltung können installierte Plugins auch temporär deaktiviert bzw. permanent deinstalliert werden. Die Funktionen der Pluginverwaltung können im laufenden Shopbetrieb genutzt werden. Weiter können Plugins optional durch eine Lizenz geschützt und erst mit gültigem Lizenzkey aktiviert werden.

Es gibt viele Aufgaben von Plugins im JTL-Shop:

  • Plugins, die im Shopfrontend sichtbare oder unsichtbare Funktionen ausführen (Frontend-Links)
  • Plugins, die nur im Shopadmin (Shopbackend) spezielle Funktionen zur Verfügung stellen wie z.B. Auswertungen, Statistiken (Custom-Links)
  • neue Zahlungsmethoden Zahlungsarten als Plugin
  • neue Boxen für das Frontend bereitstellen (Boxenverwaltung)
  • Plugins, die neue Emailvorlagen in den Shop integrieren

Ein Plugin kann eine dieser Aufgaben oder eine Kombination davon erfüllen. Das Pluginsystem arbeitet mit Hilfe von Hooks, die im Shopcode an verschiedenen Stellen hinterlegt sind. Ein Plugin kann einen oder mehrere Hooks nutzen, um eigenen Code dort auszuführen. Sind mehrere Plugins installiert, die dieselben Hooks nutzen, so wird der Code jedes Plugins an dieser Stelle ausgeführt in der zeitlichen Reihenfolge wie die Plugins installiert wurden.

Plugins sind versioniert, wodurch sie updatefähig bleiben. Pluginupdates können das Plugin um neue Funktionalität und/oder Fehlerbehebungen bereichern. Ein Update eines Plugins wird vom Shopbetreiber selbst durchgeführt, die Prozedur ist analog zur Installation. Die Pluginverwaltung erkennt automatisch nach dem Upload der neuen Plugindaten im Pluginverzeichnis des Shops, dass eine neue Version des Plugins vorhanden ist und bietet einen Updatebutton an. Nach dem Klicken des Updatebuttons wird das Plugin auf die neue Version automatisch aktualisiert. Das aktualisierte Plugin ist nach dem Update direkt aktiviert.

Plugins können eine Mindest-Version des Shops voraussetzen. Da das Shopsystem bei einem Update um neue Funktionen bereichert werden kann, können Plugins z.B. diese neuen Funktionen erweitern oder darauf zugreifen – dies würde in einer älteren Shopversion nicht funktionieren und ggf. zu Fehlern führen.

Das Herzstück jedes Plugins ist eine XML Datei, die das Plugin beschreibt. Diese XML Datei muss auch eine Mindest XML Strukturversion angeben, damit die vom Plugin beschriebene Funktionalität auch tatsächlich vom Shop interpretiert werden kann. Durch die Plugin XML Version bleibt somit das Pluginsystem selbst erweiterbar. So wurde z.B. in JTL-Shop 3.04 diese XML-Struktur um selbstdefinierte Emailvorlagen erweitert, die ein Plugin über die XML Version automatisch erstellen und versenden kann.

Ein JTL-Shop kann mehrsprachig betrieben werden. Eine im Pluginsystem integrierte Sprachvariablenverwaltung ermöglicht es Plugins, Daten in beliebig vielen Sprachen lokalisiert auszuliefern. Die Pluginverwaltung ermöglicht dem Shopbetreiber zudem, alle Sprachvariablen für die eigenen Anforderungen anzupassen. Sprachvariablen können weiterhin vom Shopbetreiber auch jederzeit in den Installationszustand zurückgesetzt werden. Sobald ein Plugin mehr Sprachen mitliefert als im Shopsystem vorhanden sind, werden auch nur diese vom Shopsystem installiert. Liefert ein Plugin andererseits Sprachvariablen in weniger Sprachen aus, als der Shop aktuell aktiviert hat, so werden die Sprachvariablen der sonstigen Sprachen mit der Standardsprache ausgefüllt.

Pluginverwaltung im Admin-Backend

Die Pluginverwaltung ist der zentrale Punkt im Shop Backend, wo Plugins installiert, deaktiviert, deinstalliert, aktualisiert oder bearbeitet werden können. Damit Plugins nicht Ihre vom Shopbetreiber konfigurierten Einstellungen verlieren, sollte man Plugins bei Nichtgebrauch lieber deaktivieren anstat sie komplett zu deinstallieren. Deinstallierte Plugins verlieren nicht nur alle eigenen Einstellungen, alle Sprachvariablen und sogar Datenbanktabellen des Plugins werden dabei gelöscht! Deaktivierte Plugins werden vom Shopsystem garnicht geladen und verbrauchen daher keine Serverressourcen.

Custom-Dateien

Falls zu einer über diese Methode eingebundenen CSS-Datei ein _custom-Pendant im selben Ordner existiert, wird diese zusätzlich nach ihr eingebunden. Dem Beispiel oben folgend wäre dies foo_custom.css bzw. bar_custom.css. Für JavaScript-Dateien wird dieses Vorgehen nicht untertützt.