Auf dieser Seite wird beschrieben, wie die Shop-Templates bei veränderten oder neuen strapi Komponenten oder Inhalte angepasst werden müssen. Diese Dokumentation richtet sich vorranging an Template-Manager und setzt Kenntnisse in HTML, CSS, JSON und der WEBSALE Template Engine voraus.Documentation Index
Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
Use this file to discover all available pages before exploring further.
Zugriff auf die Shop-Templates
strapi definiert Struktur und Inhalte (Content-Types, Komponenten, Felder). Die Shop-Templates definieren, wie diese Inhalte im Shop dargestellt werden. Wenn sich in strapi etwas ändert (neue Komponente, neues Feld, Feld umbenannt), muss das entsprechende Shop-Template angepasst werden, da sonst ansonsten im Shop nichts, nicht vollständig oder falsch angezeigt wird. Um Templates anpassen zu können, benötigen Sie Zugriff auf das entsprechende Shop-Template-Repository in GitLab. Mehr Informationen dazu finden Sie hier. In der Regel gibt es zwei Anwendungsfälle für die Anpassung von Templates:- Bestehende Komponenten verändern (Feld hinzugefügt/umbenannt/entfernt)
- Neue Komponenten hinzufügen (Komponente existierte vorher nicht im Template)
Bestehende Komponente wurde geändert
Eine bestehende strapi-Komponente gilt als geändert, wenn z. B. ein Feld hinzugefügt, umbenannt oder entfernt wurde. Damit die Anpassung im Shop sichtbar wird, muss das Rendering im entsprechenden Template erweitert oder angepasst werden.Template ermitteln
Wir empfehlen, pragmatisch über die Suche in GitLab vorzugehen, um das Template zu ermitteln, in dem die Anpassung vorgenommen werden muss. Suchen Sie zum Beispiel nach:- Komponentenname (z. B.
slider,imageLink,promoBanner) - Feldname (z. B.
autoplayDelay,linkUrl,headline) - Komponentenkennung aus den JSON-Daten, falls vorhanden (häufig z. B.
__componentoder eine Typ-/Slug-Angabe)
JSON-Datei ermitteln
Damit Sie die Komponente später gezielt laden oder herunterladen können, müssen Sie die konkrete JSON-Datei identifizieren, in der die Komponentendaten gespeichert sind. Da die Komponente bereits im Shop verwendet wird, wird die dazugehörige JSON-Datei im Template in der Regel bereits an einer Stelle im Template geladen. Empfohlenes Vorgehen:- Über das Template (schnellster Weg): Suchen Sie im relevanten Template nach Stellen, an denen Daten geladen werden – typischerweise über
$wsExternalData.load(...)(eine Datei) oder$wsExternalData.read(...)(Verzeichnis). Der dort verwendetepathist der Hinweis darauf, welche JSON-Datei(en) im Rendering verwendet werden. - Über S3/Objektspeicher: Laden Sie die Datei(en) aus dem relevanten Verzeichnis herunter und suchen Sie darin nach der Komponentenkennung (z. B.
content.imageLinkbzw.__component). So finden Sie heraus, in welcher Datei die Komponente tatsächlich enthalten ist.
Publizierung im Testmodus
Wenn Inhalte aus strapi zunächst nur im Testmodus sichtbar sein sollen, kann die JSON in einem separaten Unterordner (z.B./test) abgelegt werden. Im Template wird dann abhängig vom Testmodus der Pfad zur JSON-Datei umgestellt.
Beispiel:Die JSON-Datei wird für Testinhalte zusätzlich in einem Unterordner
/test abgelegt. Wenn der Testmodus aktiv ist ($wsTestMode.active), lädt das Template automatisch die Test-JSON aus diesem Unterordner. Dadurch können Anpassungen im Template oder neue / angepasste strapi-Komponenten getestet werden, ohne die Live-Ausgabe zu beeinflussen.
JSON prüfen
Bevor Sie den Template-Code ändern, sollten Sie prüfen, wie die Komponente tatsächlich als Daten geliefert wird. Das hilft vor allem dabei, Tippfehler und falsche Annahmen über Feldnamen zu vermeiden. Je nach Setup gibt es dafür zwei übliche Wege:- Ausgabe/Debug im Template, z. B. an der Stelle, an der die Daten über
$wsExternalData.load(...)verarbeitet werden. - Download aus dem Objekt-/Dateispeicher (z. B. S3), sofern die generierten Dateien dort abgelegt werden und Sie Zugriff haben.
Beispiel: Komponente „Bild mit Link“ bekommt ein neues Feld
In strapi existiert eine Komponente mit dem NamenimageLink. Diese Komponente besitzt zunächst die Felder image und linkUrl.
Datenübergabe JSON vor der Komponenten-Änderung
imageLink um ein weiteres Eingabefeld erweitert, z. B. text. Dadurch enthält die Datenstruktur zusätzlich den neuen Wert:
Datenübergabe JSON nach der Komponenten-Änderung
Neue Komponente wurde angelegt
Template auswählen oder Template anlegen
Wenn eine neue Komponente in strapi angelegt wurde, gibt es zwei typische Ziel-Szenarien:- Die neue Komponente soll auf einer bestehenden Seite angezeigt werden
Das Template dieser Seite öffnen und die Stelle auswählen, an der Inhalte/Komponenten gerendert werden (z. B. der Bereich, in dem Content-Blöcke ausgegeben werden). - Die neue Komponente soll auf einer neuen Seite angezeigt werden
Ein neues View-Template anlegen und dort das Laden und Rendern der Daten implementieren.
JSON-Datei ermitteln
Um die Inhalte der Komponente im Template ausgeben zu können, müssen Sie die JSON-Datei laden, in der die Komponentendaten gespeichert sind. Dazu muss der Dateiname bekannt sein. Empfohlene Wege, um den Dateinamen zu ermitteln:- Über
$wsExternalData.read(...):
Wenn das Theme ein Verzeichnis perreadeinliest, kann darüber eine Dateiliste ausgegeben werden. So lässt sich der relevante Dateiname finden und anschließend gezielt perloadladen. - Über S3/Objektspeicher:
Wenn Zugriff auf S3 besteht, kann das relevante Verzeichnis geöffnet und die Datei(en) anhand Name/Struktur oder durch Suche nach der Komponentenkennung (z. B.__component) identifiziert werden.
JSON-Daten prüfen
Bevor das Rendering implementiert wird, sollte die JSON geprüft werden, damit eindeutig ist:- wie die Komponente heißt (z. B.
content.promoBanner) - welche Felder geliefert werden (z. B.
image,linkUrl,text) - wie verschachtelte Strukturen aussehen (z. B. Bildobjekt, Listen)
Beispiel neue Komponente integrieren
Sie haben die JSON-Datei identifiziert, die die Daten Ihrer neuen Komponente enthält (z. B.my-new-component.json), und sich die Struktur bereits angesehen:
Datenübergabe JSON vor der Komponenten-Änderung
my-new-component.json zugreifen zu können, müssen Sie die Datei zuerst laden:
