JTL Shop 3 ist ein noch recht junges Shopsystem aus dem Hause JTL. Neu in Version 3 ist ein ordentliches Plugin System, das quasi beliebige Erweiterungen des Shopsystems ermöglicht (hier hatte ich bereits über JTL Shop Plugins geschrieben).
Im Zuge des Updates eines JTL Shop der Version 2.19 habe ich mich an ein erstes Frontend Plugin gewagt. Auch um gleich die Idee hinter der Pluginarchitektur zu lernen und zu verstehen. Herausgekommen ist das Plugin Category Classes.
Gleich zu Download und Changelog
Kategorie Klassen
Die Idee hinter dem Plugin: jede Kategorie soll separat per CSS Selektor ansprechbar sein. So kann man per CSS das Look and Feel jeder Kategorie im Shop individuell gestalten. Triviales Beispiel: eine Kategorie „Garten“ kann mit grünen Hintergrundbild versehen werden, die Kategorie „Möbel“ eher in brauner Holzoptik.
So weit so gut. Im Zusammenspiel von JTL WaWi und JTL Shop können wir dies bereits mit dem Kategorieattribut „css_klasse“ behandeln. Dieses Plugin nimmt uns schlicht die Arbeit ab und setzt den Namen der Kategorie als class
Attribut des body
Tags der Produkt- und Kategorieseiten.
Konkret Beispiele
Ich greife obiges Beispiel auf. Folgende Kategoriestruktur ist gegeben:
Die Kategorieseite Garten->Beete und die Seite eines Produktes in Garten->Beete hat nun folgenden öffnenden Tag:
<body class="[...] beete garten"/>
Die Kategorieseite Möbel->Betten und die Seite eines Produktes in Möbel->Betten hat nun folgenden öffnenden Tag:
<body class="[...] betten moebel"/>
Umlaute werden entsprechend ersetzt. Bestehende Werte im class Attribut werden nicht überschrieben, sonder bleiben erhalten. Die neuen Klassen werden nur hinzugefügt.
Zusätzlich habe ich eine Option eingebaut, die auch die Kategorieliste des Themes JTL-Shop3-Tiny derart abändert, dass die Kategorienamen als class
Attribute der li
Tags gesetzt werden. Eine Kategorieliste würde nun wie folgt aussehen:
<div class="sidebox_content">
<ul class="categories">
<li class="node active garten">
<a [...]><span>Garten</span></a><ul class="subcat">
<li class="first beete"><a [...]><span>Beete</span></a></li>
<li class="zubehoer"><a [...]><span>Zubehör</span></a></li>
</ul>
<!-- / subcat -->
</li>
<li class="node moebel">
<a [...]><span>Möbel</span></a><ul class="subcat">
<li class="first betten"><a [...]><span>Betten</span></a></li>
<li class="zubehoer"><a [...]><span>Zubehör</span></a></li>
</ul>
<!-- / subcat -->
</li>
Die Option ist standardmäßig deaktiviert und kann in der Plugin Konfiguration aktiviert werden.
Changelog
Changelog Version 1.02 – 26.10.2011
Alle Änderungen in diesem Blogpost.
Changelog Version 1.01 – 11.03.2011
Tausend Dank an Maik Waffen, der maßgeblich zu dieser Version beigetragen hat!
- neue Einstellung: Möglichkeit, nur Rootkategorien als Klassen zu schreiben (Beispiel: bei Möbel -> Zubehör wird in Zubehör nur
moebel
zum class
Attribut hinzugefügt)
- Bugfix: alle unerlaubten Sonderzeichen werden aus den
class
Attribut entfernt
- neue Einstellung: Ersetzungsregeln der Form
ö,ä,ü:oe,ae,ue
können festgelegt werden. Ersetzt bspw. ö
mit oe
, bevor diese als unerlaubte Sonderzeichen aus dem Klassennamen entfernt werden
Nach langer Vorrede nun das Plugin als ZIP.
Autor: | Niels Baumbach |
Kategorie: | JTL Shop 3 Plugins |
Datum: | Mai 23, 2011 |
Getestet wurde das Plugin übrigens mit JTL Shop 3.07, also der aktuell vorliegenden Version. Die Installation läuft wie jedes JTL Shop 3 Plugin:
- Zip-Datei lokal entpacken
- den entpackten Ordner
category_classes
per FTP hochladen nach [shoproot]/includes/plugins/
- Plugin-Installation im JTL Shop Backend unter Plugins->Pluginverwaltung
- Konfiguration der Plugin Optionen unter Plugins->Plugins->Category Classes
Für ein Update einfach mit dem aktuellen Installationspaket den Ordner der alten Version überschreiben. Im Backend dann via Pluginverwaltung das Update durchführen. Vorsicht: die Einstellungen werden bei einem Update zurückgesetzt!
Natürlich freue ich mich über Feedback. Auch Feature Request können in den Kommentaren auf mich losgelassen werden :o)