Allgemeines zum Plugin-System

Was ist das Pluginsystem

Das Pluginsystem in JTL-Shop3 ermöglicht es alle Arten von Zusatzfunktionalitäten im Shop hinzuzufügen ohne den Shopcode zu bearbeiten. Dadurch, dass der Originalcode vom Shop nicht verändert wird, bleibt der Shop zu jeder Zeit updatefähig.

Plugins werden im Shop vom Shopbetreiber installiert. Eine Installation besteht aus dem Hochladen des Plugins in ein für Plugins vorgesehenes Verzeichnis im Shop (/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 (Plugin Versionierung), dadurch bleiben Plugins updatefähig. 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 Shop-Version 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-Shop3 kann mehrsprachig betrieben werden. Eine im Pluginsystem integrierte Sprachvariablenverwaltung ermöglicht es Plugins in beliebig vielen Sprachen lokalisiert auszuliefern. Die Pluginverwaltung ermöglicht dem Shopbetreiber zudem, alle Sprachvariablen für seine 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.

JTL-Shop arbeitet mit der Smarty Template Engine als Präsentationsschicht. Plugins können ebenfalls an jeder Stelle auf Smarty zugreifen. Das Smarty Objekt ist global und kann mit GLOBALS[‚smarty‚] genutzt werden.

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.

Pluginverwaltung im JTL-Shop3 Backend

Hier werden alle Plugins angezeigt, deren XML Dateien korrekt auf Syntax geprüft wurden aber noch nicht installiert sind.

Admin-Links

Jedes Plugin in JTL-Shop3 erhält nach der Installation einen eigenen Menüpunkt unter Plugins -> Pluginname.
Den Inhalt hinter diesem Link kann das Plugin selbst bestimmen. Jedes Plugin kann beliebig viele Customlinks (Links, die eigenen Code ausführen und eigenen Inhalt produzieren) und Settinglinks (Links, die Einstellungen zum Plugin enthalten) definieren. Eigene Einstellungen kann ein Plugin zwar auch selbst über einen Customlink abfragen und abspeichern, jedoch bieten Settinglinks eine sehr einfache, schnelle und sichere Methode, Einstellungen zu hinterlegen und abzufragen. Insbesondere wird der Zugriff auf diese Einstellungen im eigenen Plugin Code stark vereinfacht, das Look&Feel von Einstellungen im Shop bleibt erhalten und man spart enorm viel Code, da benötigte Einstellungen über Settinglinks einfach in der XML Datei des Plugins hinterlegt werden - kein weiterer Code ist dabei notwendig!

Das folgende Bild zeigt das Menü des Adminbereichs mit zwei installierten Plugins, Online Watcher und PayPal:

Adminbereich Menü Plugins

Das folgende Bild zeigt ein Bespiel, wie ein Adminlink Statistik eigenen Inhalt in einem Tab anzeigen kann. Hierbei handelt es sich um einen Customlink, deren Inhalt vollkommen der Pluginentwickler bestimmt.

Custom Link

Ein Plugin kann beliebig viele Einstellungen anlegen, welche in einem Tab Einstellungen verwaltet werden können. Diese Einstellungen stehen dem Plugin stets zur Verfügung.

Setting Link

Bild1.jpg (43,97 KB) D. Hannappel, 29.11.2010 16:03

Bild27.jpg - Pluginverwaltung im JTL-Shop3 Backend (97,452 KB) D. Hannappel, 30.11.2010 15:28

Adminlinks1.jpg - Adminbereich Menü Plugins (13,437 KB) D. Hannappel, 30.11.2010 16:30

Adminlinks2.jpg - Custom Link (23,659 KB) D. Hannappel, 30.11.2010 16:30

Adminlinks3.jpg - Setting Link (19,843 KB) D. Hannappel, 30.11.2010 16:30