Dropper & Drops in JTL-Shop 5.2
Mit der neuesten JTL-Shop Version 5.2 hat sich die grundlegende API des Shops an vielen Stellen geändert. Außerdem ist PHP 8.1 nun Grundvoraussetzung für den Betrieb des JTL-Shops. Wir haben Dropper an die neuen Anforderungen angepasst, Dropper 100.19 ist voll kompatibel mit JTL Shop 5.2 und PHP 8.1.
Natürlich bleiben die aktuelle Dropper Version dabei abwärtskompatibel mit anderen Versionen von JTL-Shop 5 und sogar JTL-Shop 4!
Wichtig: Dropper & Drops zuerst aktualisieren
Bitte aktualisiert zunächst Dropper und dann eure Drops via Paketverwaltung. Danach könnt ihr das Update auf JTL-Shop 5.2 angehen.
Neue Drop Versionen
Auch viele unsere Drops mussten im Zuge der neuen Anforderungen aktualisiert werden. Zeitgleich mit Dropper 100.19 veröffentlichen wir daher neue Versionen dieser Drops:
- Article Slider 1.1.6
- Contact Form 2.0.12
- Filter Info 1.0.3
- Flex Menu 1.1.0
- Hotspot Banner 1.0.8
- News Box 1.0.9
- Popup 1.0.12
- USP 1.0.3
- Vendor Box 2.0.0
Die Drop-Updates werden euch in der Paketverwaltung angeboten, sobald ihr Dropper auf Version 100.19 aktualisiert habt.
Drop Caching
Nun zu den sichtbaren Features - allen voran zu den neuen Caching-Optionen. Alle Drops können jetzt statisch gecacht werden!
Was bedeutet das? Inhalte, die ihr mit Drops präsentiert, werden nicht bei jedem Seitenaufruf neu erstellt, sondern beim ersten Aufruf zwischengespeichert und nachfolgend nur noch als statisches HTML ausgeliefert.
Gerade bei Drops, die komplexe Operationen und Datenbankabfragen durchführen (bspw. Article Slider mit umfangreichen Filteroptionen), kann dadurch massiv Performance gewonnen werden.
Vorraussetzung JTL-Shop Cache
Der Drop Cache nutzt Funktionen des JTL-Shop Caches nach. Stellt daher sicher, dass dieser aktiviert und konfiguriert ist.
Caching aktivieren
Ihr könnt das Caching im rechten oberen Bereich des Konfigurationsdialogs eures Drops aktivieren. Es stehen euch 3 Optionen zur Verfügung:
- An: das Drop wird immer gecacht
- Aus: das Drop wird nie gecacht
- Vererbt (Standard): das Drop wird nur dann gecacht, wenn es von einem anderen Drop verlinkt wurde, welches das Caching aktiviert hat
Die Option "Vererbt" wird in jedem neuen Drop standardmäßig aktiviert und in bereits bestehenden Drops gesetzt. Ihr könnt also bspw. das Drop-Caching in einem Flex-Layout aktivieren und sorgt damit dafür, dass alle darin verlinkten Drops ebenfalls gecacht werden. Ohne euer Zutun bleibt das Caching jedoch zunächst inaktiv, denn es kann auch ungewollte Nebeneffekte haben.
Exkurs: bisheriges Caching in Drops
Einige unserer Drops bieten bereits Caching Optionen. So könnt ihr im Flex Menu optional die Inhalte eurer Dropdowns cachen, im USP Drop sind dynamische Texte auf Wunsch ebenfalls cachbar. Dieses Prinzip erweitern wir nun auf alle Drops und deren Ausgabe!
Abhängigkeiten
Ein Cache-Eintrag ist immer von bestimmten Parametern abhängig. Ändert sich einer dieser Parameter, wird ein neuer Cache-Eintrag erstellt.
Ändert ihr die Inhalte eines Drops (oder läuft die Lebenszeit eines Eintrags ab) wird der Cache invalidiert, der Inhalt neu erzeugt und gecacht.
Im Standard sind Drop Caches abhängig von der aktiven Kundengruppe des Besuchers und der aktiven Sprache des Shops. Ändert sich eines von beiden, wir ein neuer Eintrag im Cache erstellt und beim nächsten Aufruf mit diesen Bedingungen ausgeliefert.
Zusätzlich könnt ihr folgende Abhängigkeiten definieren:
- Gerätetyp
- Seitentyp
- Listingzustand
- Artikelseite
- URL
- Eigene Caching-ID
Mit diesen Abhängigkeiten könnt ihr auf bestimmte Anzeigebedingungen eurer Drops eingehen. Zeigt bspw. ein Powerslide je nach Gerät (Desktop vs. Mobilgerät) andere Slides an, empfiehlt sich die zusätzliche Abhängigkeit "Gerätetyp". Sonst würden ggf. die falschen Inhalte für das jeweilige Gerät ausgespielt.
Mit der "eigenen Caching ID" können versierte Nutzer weiterführende Abhängigkeiten via Smarty definieren.
Cache Lifetime
Drops, die dynamische Inhalte darstellen, solltet ihr mit entsprechend angepassten Lifetime (oder gar nicht) cachen. Ein Beispiel ist ein Article Slider, der ein schnell wechselndes Sortiment (Sonderangebote, Neu im Sortiment) darstellen soll. Hier obliegt es eurer Einschätzung, wie dynamisch und aktuell die Inhalte eurer Drops sind bzw. sein sollen.
Definiert ihr keine Cache Lifetime, wird der Standardwert des Objekt Caches des JTL-Shops gesetzt.
Nachteile von Caching
Bei der Lifetime haben wir bereits einige Nachteile des Caching angedeutet. Zeitkritische Inhalte können mit aktiven Caching nicht optimal dargestellt werden.
Zeigen euer Drops wichtige Informationen wie bspw. Artikelpreise, solltet ihr diese ggf. vom Caching ausnehmen, um Missverständnisse und rechtliche Probleme auszuschließen.
Drops via Drop-Editor einfügen
Bisher war es mit dem Drop Editor nur möglich, bestehende Drops zu editieren. Mit Dropper 100.19 ändern wir das.
Wenn ihr den Drop-Editor für eure Seite aktiviert und ihn öffnet, könnt ihr nun auch neue Drops an bestimmte Punkte platzieren. Diese Punkte sind die Mountpunkte, die ihr aus dem OnPage Composer kennt.
Anders als beim OPC werden die hier eingefügten Drops jedoch prinzipiell auf jeder Seite eingefügt, auf dem der entsprechende Mountpoint exisitert. Es sei denn, ihr schränkt dies mit unseren Darstellungsfilter ein.
Hilfreich: Dropper bietet euch gleich passende Darstellungsfilter an, je nachdem wo ihr den Drop Editor geöffnet habt. Ihr könnt diese Vorschläge natürlich frei ändern oder ergänzen.
Feedback
Natürlich freuen wir uns über Feedback zur neuen Version! Sollten Probleme auftauchen, meldet euch gern bei uns.
Changelog
Allgemein
- JTL-Shop 5.2 Kompatibilität
- Feature: OPC-Mountpunkte können jetzt vom Dropper Frontend Editor genutzt werden, um Drops in die Seite einzufügen
- Feature: Icons erhalten automatisch eine Quellcode-Attribution
- Feature: Drop Caching, ermöglicht es Drops statisch als HTML zu cachen
- Feature: Neue Option "Keine Suchergebnisse vorhanden" zum Darstellungsfilter "Listingzustand" hinzugefügt
- Bugfix: Admin-Weiterleitungen auf HTTPS waren unter bestimmten Umständen fehlerhaft
- Bugfix: Besserer Umgang mit SVG-Dateien in der Medienverwaltung
- Bugfix: Darstellungsfilter "Suche" war unter JTL-Shop 5 fehlerhaft
Entwickler
- Drops können jetzt auch ganze Template-Dateien und Template-Blöcke ersetzen bzw. erweitern. Dieses Feature ist derzeit noch experimentell und kann über ein
define('DROPPER_TEMPLATE_EXTEND', true);
aktiviert werden. Hinterher sollte der Template-Cache geleert werden. - Drop Daten sind jetzt auf höchster Ebene durch ein ArrayObject repräsentiert. Dadurch ändert sich nichts für die Programmierung der Drops, allerdings sehen Debug-Ausgaben dadurch jetzt anders aus.