srhinow / simple-product-bundle
simple products manager for Contao CMS
Package info
gitlab.com/srhinow/simple-product-bundle
Type:contao-bundle
pkg:composer/srhinow/simple-product-bundle
Requires
- php: ^8.1
- contao/core-bundle: ^5.3
- contao/manager-plugin: ^2.0
Requires (Dev)
- phpunit/phpunit: ^11.5
This package is not auto-updated.
Last update: 2026-05-20 07:24:44 UTC
README
Ein schlankes Contao-Bundle zur Verwaltung und Darstellung von Produkten mit Kategorisierung, Detailseiten und flexiblen Content-Elementen.
Voraussetzungen
- PHP ^8.1
- Contao CMS ^5.3
Installation
composer require srhinow/simple-product-bundle
Nach der Installation die Datenbank-Migration ausführen:
php bin/console contao:migrate
Backend
Das Bundle fügt im Contao-Backend den Bereich Produkte mit zwei Modulen hinzu:
Produkt-Kategorien (tl_simple_product_categories)
Kategorien dienen zur Gruppierung der Produkte. Jede Kategorie hat:
| Feld | Beschreibung |
|---|---|
| Titel | Bezeichnung der Kategorie |
| Alias | URL-kompatibler Bezeichner |
| Sortierung | Reihenfolge der Kategorie |
Produkt-Einträge (tl_simple_product_entries)
Die eigentlichen Produkte. Jeder Eintrag hat:
| Feld | Beschreibung |
|---|---|
| Überschrift | Produktname |
| Alias | URL-Alias (wird automatisch generiert) |
| Kategorie | Zuordnung zu einer Produkt-Kategorie |
| Teasertext | Kurzbeschreibung (RTE) |
| Bild | Optional: Bild mit Alt-Text und Titel |
| Veröffentlicht | Sichtbarkeit im Frontend |
| Start / Stop | Zeitgesteuerte Veröffentlichung |
Jedem Produkt-Eintrag können Content-Elemente (tl_content) als Kindelemente zugeordnet werden, um den Detailinhalt flexibel aufzubauen.
Frontend — Content-Elemente
Das Bundle stellt zwei Content-Elemente bereit, die im Backend unter der Gruppe Produkte zu finden sind.
1. Produkt-Liste (sp_product_list)
Zeigt alle veröffentlichten Produkte der ausgewählten Kategorien als Liste an.
Einstellungen im Content-Element:
| Feld | Beschreibung |
|---|---|
| Kategorien | Eine oder mehrere Kategorien, deren Produkte angezeigt werden |
| Detailseite | Seite, auf die bei Klick auf ein Produkt verlinkt wird (Detailansicht) |
| Template | Auswahl des Listeneintrags-Templates (Prefix sp_item_) |
Das Element rendert für jedes Produkt ein eigenes Item-Template und stellt dabei u.a. folgende Template-Variablen bereit:
| Variable | Beschreibung |
|---|---|
products | Array aller gerenderten Produkt-Items (als HTML-String) |
categories | Array der ausgewählten Kategorie-IDs |
Item-Template (sp_item_list):
| Variable | Beschreibung |
|---|---|
productHeadline | Produktname |
href | URL zur Detailseite |
linkHeadline | Produktname als verlinktes <a>-Element |
more | „Weiterlesen"-Link |
hasTeaser | true, wenn ein Teasertext vorhanden ist |
teaser | Teasertext (HTML) |
addImage | true, wenn ein Bild hinterlegt ist |
arrEntries | Callable — liefert die gerenderten Content-Elemente des Produkts |
count | Laufende Nummer des Eintrags in der Liste |
class | CSS-Klassen (first, last, odd, even) |
2. Produkt-Details (sp_product_details)
Zeigt ein einzelnes Produkt in der Detailansicht an. Das anzuzeigende Produkt wird über den URL-Parameter product (bzw. auto_item) ermittelt oder kann fest im Content-Element vorgegeben werden.
Einstellungen im Content-Element:
| Feld | Beschreibung |
|---|---|
| Zurück zur Liste | Seite der Produktliste (für Rücklinks) |
| Produkt | Optional: fester Produkt-Eintrag (ohne URL-Parameter) |
| Template | Auswahl des Detail-Templates (Prefix sp_item_) |
Das Element setzt automatisch den Seitentitel (pageTitle) und die Meta-Beschreibung (description) der aktuellen Seite anhand der Produkt-Daten.
Detail-Template (sp_item_details):
Die gleichen Template-Variablen wie beim Listenitem, zusätzlich:
| Variable | Beschreibung |
|---|---|
product | Gerenderter HTML-String des kompletten Produkt-Detail-Templates |
Templates
Alle Templates liegen unter contao/templates/ und können wie üblich im Contao-Templateverzeichnis überschrieben werden.
| Template | Verwendung |
|---|---|
ce_sp_productlist.html5 | Wrapper-Template für das Produkt-Liste Content-Element |
ce_sp_productdetails.html5 | Wrapper-Template für das Produkt-Details Content-Element |
sp_item_list.html5 | Einzelnes Produkt in der Listenansicht |
sp_item_details.html5 | Einzelnes Produkt in der Detailansicht |
Eigene Item-Templates können mit dem Prefix sp_item_ erstellt und im Content-Element ausgewählt werden.
URL-Routing
Die Detailseite erwartet den Produkt-Alias oder die ID als URL-Segment. Mit aktiviertem auto_item in Contao funktioniert z.B.:
/produkte/mein-produkt
Ohne auto_item lautet der Parameter explizit:
/produkte?product=mein-produkt
Lizenz
GPL-3.0-or-later — siehe LICENSE
Autor
Sven Rhinow — sr-tag.de — kservice@sr-tag.de