> ## 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.

# Grundlagen zu Tags

Ein Tag ist in WEBSALE V8s ein Platzhalter in einem Template, der im Online-Betrieb durch einen bestimmten Wert ersetzt wird. So wird beispielsweise das Tag `~PR-Name~` durch den Produktnamen des gerade ausgewählten Produkts ersetzt.

Um beispielsweise alle Produkte des Shops mit einem Template darstellen zu können, integrieren wir darin nicht die expliziten Produkteigenschaften, sondern benutzen an dieser Stelle einen Platzhalter: ein WEBSALE Tag. Für jede Produkteigenschaft und andere zu ersetzende Werte, beispielsweise Firmenname oder Kategoriename, gibt es jeweils ein spezielles Tag. So muss nicht für jedes Produkt ein eigenes Template angelegt werden, und etwaige Änderungen müssen nicht auf jedem einzelnen Produkt-Template vorgenommen werden.

WEBSALE unterscheidet folgende Arten von Tags:

* Einzel-Tag: `~Tag~`
* Bereichs-Tag: `{Tag}.........{/Tag}`
* Negatives Bereichs-Tag: `{!Tag}.........{/!Tag}`
* Schleifen-Tag: `{@Tag}.........{/@Tag}`

Hinzu kommt die Möglichkeit, Tags ineinander zu verwenden (Tag-in-Tag). Die folgenden Abschnitte stellen die Tag-Arten der Reihe nach vor. Den Abschluss bildet ein Hinweis zur Tag-Längenbeschränkung.

Die Verwendbarkeit der einzelnen Tag-Typen finden Sie in der jeweiligen Tag-Beschreibung im Abschnitt "Referenz" dieser Dokumentation.

## Einzel-Tag: `~Tag~`

Ein Einzel-Tag wird durch einen Wert ersetzt. Das heißt, der enthaltene Wert wird ausgegeben.

Beispiel: `~PR-Name~` wird durch den Produktnamen ersetzt.

## Bereichs-Tag: `{Tag}.........{/Tag}`

Ein Bereichs-Tag umklammert einen Template-Bereich, der von WEBSALE V8s ein- oder ausgeblendet wird, je nachdem, ob das gleichnamige Tag selbst einen Wert enthält oder nicht.

Beispiel: Während die meisten WEBSALE V8s-Tags fest definiert sind, können Sie beispielsweise produktbezogene Tags nach Bedarf selbst definieren. Wenn ein frei definiertes Feld Akku irgendeinen Wert enthält, beispielsweise 500, wird alles, was zwischen der Klammerung `{PR-Akku}...{/PR-Akku}` steht, eingeblendet. Das kann beispielsweise eine HTML-Tabellenzeile sein, innerhalb derer ein fester Text steht.

Dieser wird nur dann angezeigt, wenn beim Produkt in dem betreffenden Feld auch ein Wert eingetragen ist. In der Regel wird das Tag für das zugehörige Feld (im Beispiel `~Akku~`, die Shop-Software macht aus diesem Tag bei Verwendung auf einer Produkt-Seite `~PR-Akku~`) innerhalb der Bereichs-Tags verwendet. So führt beispielsweise `{PR-Akku} Akkuleistung: ~PR-Akku~ mAH {/PR-Akku}` zur Anzeige "Akkuleistung: 500 mAH".

## Negatives Bereichs-Tag: `{!Tag}.........{/!Tag}`

Ein negatives Bereichs-Tag hat die umgekehrte Logik zu einem Bereichs-Tag. Wenn ein Parameter keinen Wert hat, so wird der negative Bereich angezeigt.

Beispiel: Wenn ein frei definiertes Feld Akku keinen Wert enthält, wird alles eingeblendet, was zwischen der Klammerung `{!PR-Akku}...{/!PR-Akku}` steht. Das kann beispielsweise eine Tabellenzeile sein, die den statischen Text "Gerät ohne Akku" enthält. Dieser Text wird dann nur angezeigt, wenn das entsprechende Produkt-Feld keinen Wert enthält. So führt beispielsweise `{!PR-Akku} Gerät ohne Akku {/!PR-Akku}` zur Anzeige "Gerät ohne Akku", wenn beim Produkt kein Wert für das Feld Akku angegeben ist.

## Schleifen-Tag: `{@Tag}.........{/@Tag}`

In vielen Situationen sollen Bereiche eines Templates mehrfach durchlaufen werden, um beispielsweise alle Produkte einer Kategorie oder sämtliche Unterkategorien einer Kategorie aufzulisten. Dafür stellt WEBSALE V8s eine Sonderform von Bereichs-Tags, die sogenannten "Schleifen-Tags", zur Verfügung. Schleifen-Tags sind durch ein vorangestelltes At-Zeichen ("@") gekennzeichnet, beispielsweise `@PR-Data`.

Wenn Sie ein Schleifen-Tag verwenden, wird der Bereich so oft wiederholt, wie das mit dem Tag bezeichnete Element im Shop vorhanden ist (Mengenschleife), und es werden jeweils alle Daten des Elements ausgegeben. WEBSALE V8s führt also standardmäßig eine automatische Schleifensteuerung durch. Der Designer muss sich nicht darum kümmern, wie viele Schleifendurchläufe erforderlich sind, um alle Elemente eines Typs oder einer Menge direkt sequentiell auf einem Template anzuzeigen.

Beispiel: Um eine Liste mit den Produktdaten aller Produkte einer aktuell gewählten Kategorie anzuzeigen, definieren Sie innerhalb des Bereichs für die Kategorie `{CAT-Data}` eine Schleife `{@PR-Data}`. Die Anzahl der Schleifendurchläufe wird automatisch durch die Anzahl der vorhandenen Produkte in dieser Kategorie bestimmt:

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
...
{CAT-Data}
   {@PR-Data}
      ....
      Anzeige der Produktdaten
      ....
   {/@PR-Data}
{/CAT-Data}
...
```

Hat WEBSALE V8s eine Schleife mit der erforderlichen Anzahl Wiederholungen durchlaufen, wird mit dem nachfolgenden Template-Code fortgesetzt.

Es können nur geeignete Bereichs-Tags als Schleifen-Tag eingesetzt werden. Ob ein Tag als Schleifen-Tag verwendet werden kann, ist in der Tag-Beschreibung (Referenz) angegeben.

Als Ergänzung zur automatischen Schleifensteuerung (beispielsweise `PR-Data`) stellt WEBSALE V8s spezielle DC-Loop-Tags zur Verfügung, mit denen Designer eigene Zähl-Schleifen erstellen können, um Abläufe individuell zu steuern.

## Tag-in-Tag

Bei manchen Tags ist es möglich, im Argument auch ein weiteres Tag zu verwenden.

Wenn Sie im Argument eines Tags ein beliebiges Einzel-Tag verwenden, müssen Sie die normalen Tag-Kennungen (Tilde-Zeichen) durch Dollar-Zeichen ersetzen.

Beispiel: Es soll eine Berechnung auf Basis des Produktpreises durchgeführt werden. Das Tag `DC-CommercialCalc1_set()` ist Tag-in-Tag-fähig. Das heißt, es kann als Argument ein Tag verwendet werden, in diesem Fall das Tag für den Produktpreis (`PR-Price`).

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
...
~DC-CommercialCalc1_set($PR-Price$)~     <!-- Ausgangswert unserer Berechnung ist der Produktpreis -->
~DC-CommercialCalc1_add(3)~              <!-- Addiert wird 3 -->
Ergebnis: ~DC-CommercialCalc1~           <!-- Anzeige des Ergebnisses (Produktpreis + 3) -->
...
```

## Besondere Hinweise zur Verwendung von Tags

### Tag-Längenbeschränkung

Die maximale Länge eines Tags, inklusive Argumenteliste, beträgt in WEBSALE V8s 128 Zeichen.

Mithilfe der DC-Append-Tags können Zeichenketten, die die maximale Taglänge überschreiten, aufgesplittet und korrekt verarbeitet werden. Die Vorgehensweise wird in der Referenz unter DC-FP1…5\_append veranschaulicht.


## Related topics

- [Templates: Grundlagen](https://dokumentation.websale.de/v8s/grundlagen-templates/templates-grundlagen.md)
- [Wie funktioniert WEBSALE V8s?](https://dokumentation.websale.de/v8s/wie-funktioniert-websale-v8s.md)
- [DC- (Freie Parameter und Session-Parameter)](https://dokumentation.websale.de/v8s/referenz/tags/dc/parameter.md)
- [DC- (Datum und Zeit)](https://dokumentation.websale.de/v8s/referenz/tags/dc/datum-und-zeit.md)
- [Zähler und Vergleiche im Template](https://dokumentation.websale.de/v8s/fortgeschrittene-designtechniken/zaehler-und-vergleiche-im-template.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.