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

# $wsViews - Aktuelle Informationen abrufen

> Modul $wsViews: Informationen zur aktuellen Seite abrufen, View-URLs zu anderen Shop-Seiten generieren und SEO-Tags wie hreflang setzen.

Mit dem `$wsViews` Modul können Sie auf Informationen zur aktuellen Seite zugreifen und URLs zu anderen Shop-Seiten generieren. Typische Anwendungsfälle sind SEO-Optimierung (Meta-Tags, hreflang), Navigation und bedingte Inhalte basierend auf dem aktuellen Template. In diesem Abschnitt erfahren Sie, wie Sie auf Seitendaten zugreifen und SEO-freundliche URLs erzeugen können.

***

## Modulübersicht

**Beispiel / Ausschnitt über** `$wsViews`

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{= $wsViews | json }}
```

**JSON-Ausgabe**

```json theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{
  "current": {
    "closedShopRedirected": false,
    "ctrlName": "...",
    "info": { },
    "name": "...",
    "paramList": [...],
    "params": { },
    "robotOptions": [...],
    "status": 200,
    "getHreflangAutomatic": "ƒ()",
    "url": "ƒ()"
  },
  "host": "...",
  "getHreflangManual": "ƒ()",
  "identifyUrl": "ƒ()",
  "metaDescription": "ƒ()",
  "metaTitle": "ƒ()",
  "setChildUrl": "ƒ()",
  "url": "ƒ()",
  "viewUrl": "ƒ()"
}
```

Anmerkung: `ƒ()` kennzeichnet eine Funktion.

**Variablen und Methoden in der Übersicht**

| **Name**                         | **Rückgabe-Typ** | **Beschreibung**                                                                               |
| -------------------------------- | ---------------- | ---------------------------------------------------------------------------------------------- |
| `current`                        | map              | Informationen zur aktuellen Seite.                                                             |
| `closedShopRedirected`           | bool             | Prüft, ob eine Weiterleitung von einem geschlossenen Shop erfolgt ist.                         |
| `ctrlName`                       | string           | Name des View-Controllers.                                                                     |
| `getHreflangAutomatic`           | function         | Gibt die Werte der hreflang Tags der aktuellen Seite aus.                                      |
| `info`                           | map              | Zusätzliche Infos vom Controller (z.B. Kategorie, Produkt).                                    |
| `name`                           | string           | Name der View-Datei (z.B. `"start.htm"`).                                                      |
| `paramList`                      | array            | Liste der URL-Parameter mit `name` und `value`.                                                |
| `name`                           | string           | Name des Parameters.                                                                           |
| `value`                          | string           | Value des Parameters.                                                                          |
| `params`                         | map              | URL-Parameter als Map (`{name: value}`).                                                       |
| `robotOptions`                   | map              | Robots-Einstellungen der Seite.                                                                |
| `status`                         | number           | HTTP-Status-Code (z.B. `200`).                                                                 |
| `host`                           | string           | Gibt die URL der Startseite aus.                                                               |
| `metaDescription`                | string           | Meta-Description der aktuellen Seite, Seiten-Beschreibung.                                     |
| `metaTitle`                      | string           | Meta Title der aktuellen Seite; Seiten-Titel.                                                  |
| `url`                            | string           | Gibt die aktuell aufgerufene URL aus.                                                          |
| `viewUrl`                        | string           | Bildet eine URL zu einer View mithilfe der Angabe eines View-Controllers und seiner Parameter. |
| `current.url()`                  | string           | Erzeugt eine SEO-freundliche URL zu einer Shop-Seite.                                          |
| `url()`                          | string           | Bildet einen Link zu einer Shop-Seite.                                                         |
| `viewUrl()`                      | string           | Erzeugt eine URL zu einer Template-Datei.                                                      |
| `metaTitle()`                    | string           | Gibt den Seitentitel für den Browser-Tab und Suchergebnisse aus.                               |
| `metaDescription()`              | string           | Gibt die Seitenbeschreibung für Suchergebnisse aus.                                            |
| `getHreflangManual()`            | array            | Gibt manuell konfigurierte hreflang-Einträge aus.                                              |
| `current.getHreflangAutomatic()` | array            | Gibt die Sprachversionen der aktuellen Seite für hreflang-Tags aus.                            |

***

## Variablen

### \$wsViews.current

Enthält alle Informationen zur aktuell angezeigten Seite.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{= $wsViews.current | json }}
```

#### \$wsViews.current.ctrlName

Gibt den Namen des View-Controllers aus, der die aktuelle Seite liefert.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
View-Controller: {{= $wsViews.current.ctrlName }}
```

#### \$wsViews.current.closedShopRedirected

Gibt aus, ob der Nutzer von einem geschlossenen Shop weitergeleitet wurde.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ if $wsViews.current.closedShopRedirected }}
  // Von geschlossenem Shop weitergeleitet
{{ /if }}
```

#### \$wsViews.current.info

Gibt kontextspezifische Daten aus, z.B. das aktuelle Produkt auf Produktseiten (`info.product`) oder die Kategorie auf Kategorieseiten (`info.category`).

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
Zusätzliche Informationen: {{= $wsViews.current.info}}
```

#### \$wsViews.current.name

Gibt den Namen der aktuellen View aus.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ if $wsViews.current.name == "category.htm" }}
    // Kategorie-Seite
{{ /if }}
```

#### \$wsViews.current.paramList

Gibt eine Liste der URL-Parameter aus. Jeder Eintrag enthält `name` und `value`.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ foreach $myParam in $wsViews.current.paramList }}
  {{= $myParam.name }}: {{= $myParam.value }}
{{ /foreach }}
```

#### \$wsViews.current.params

Gibt die URL-Parameter als Map aus.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ if $wsViews.current.params.promoCode }}
  Promo-Code: {{= $wsViews.current.params.promoCode }}
{{ /if }}
```

#### \$wsViews.current.robotOptions

Gibt die Robots-Einstellungen der Seite aus.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
Robots: {{= $wsViews.current.robotOptions | json }}
```

#### \$wsViews.current.status

Gibt den HTTP-Status-Code der Seite aus.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
Status: {{= $wsViews.current.status }}
```

### \$wsViews.host

Gibt die URL der Shop-Startseite aus.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
Shop-Startseite: {{= $wsViews.host }}
```

***

## Methoden

### \$wsViews.current.url()

Erzeugt eine SEO-freundliche URL zu einer Shop-Seite. Die URL wird automatisch mit sprechenden Pfaden generiert (z.B. `/produkte/beispiel-produkt` statt `?productId=123`).

**Signatur**\
`$wsViews.current.url()`

**Rückgabe**\
`string` - Aktuelle URL / Pfad.

**Beispiel,** das die aktuelle URL ausgibt.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
Aktuelle URL: {{= $wsViews.current.url() }}
```

### \$wsViews.url()

Bildet einen Link zu einer Shop-Seite (z.B. Produktseite, Kategorieseite). Die URL wird automatisch im SEO-freundlichen Format erzeugt.

**Signatur**\
`string $wsViews.url(viewCtrl, params)`

**Rückgabe**\
`string` *-* URL/Pfad zur gewünschten Seite..

**Parameter**

| **Name**   | **Typ** | **Pflicht** | **Beschreibung**                                                                        |
| ---------- | ------- | ----------- | --------------------------------------------------------------------------------------- |
| `viewCtrl` | string  | ja          | Ziel-Controller/Seitentyp (z.B. `Product, Category`)                                    |
| `params`   | map     | ja          | Parameter zum Ergänzen/Überschreiben der URL; der Wert `null` entfernt einen Parameter. |

**Beispiel**\
Beispiel, das eine URL zu einer Produktseite erzeugt.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{= $wsViews.url('Product', {productId: $cProduct.product.id}) }}
```

**Rückgabe-Beispiel:**

```text theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
/produkte/beispiel-produkt-12345
```

### \$wsViews.viewUrl()

Erzeugt eine URL zu einer Template-Datei.

**Signatur**

`string wsViews.viewUrl(path, params, type)`

**Rückgabe**\
`string` - URL zur angegebenen View.

**Parameter**

| **Name** | **Typ** | **Pflicht** | **Beschreibung**                                            |
| -------- | ------- | ----------- | ----------------------------------------------------------- |
| `path`   | string  | ja          | Pfad zur Template-Datei, z.B. `account/forgotPassword.htm`. |
| `params` | map     | nein        | Zusätzliche Parameter für die URL.                          |
| `type`   | string  | nein        | URL-Typ (z.B. `"absolute"`).                                |

**Beispiel,** das eine URL zur Passwort-vergessen-Seite erzeugt:

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<a href="{{= $wsViews.viewUrl('account/forgotPassword.htm') }}">
  Passwort vergessen?
</a>
```

### \$wsViews.metaTitle()

Gibt den Seitentitel für den Browser-Tab und Suchergebnisse aus.

**Signatur**\
`string $wsViews.metaTitle()`

**Rückgabe**\
`string` - Seitentitel.

**Beispiel,** das den Meta-Titel im HTML-Head setzt:

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<title>{{= $wsViews.metaTitle() }}</title>
```

### \$wsViews.metaDescription()

Gibt die Seitenbeschreibung für Suchergebnisse aus.

**Signatur**\
`string $wsViews.metaDescription()`

**Rückgabe**\
`string` - Seitenbeschreibung.

**Beispiel,** das die Meta-Description im HTML-Head setzt.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<meta name="description" content="{{= $wsViews.metaDescription() }}">
```

### \$wsViews.getHreflangManual()

Gibt manuell konfigurierte `hreflang`-Einträge aus.

**Signatur**\
`$wsViews.getHreflangManual()`

**Rückgabe**\
`array` - Liste mit manuellen Sprachversionen.

**Beispiel,** das manuelle `hreflang`-Links ausgibt.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ foreach $myHref in $wsViews.getHreflangManual() }}
  <link rel="alternate" hreflang="{{= $myHref.lang }}" href="{{= $myHref.href }}">
{{ /foreach }}
```

### \$wsViews.current.getHreflangAutomatic()

Gibt die Sprachversionen der aktuellen Seite für hreflang-Tags aus.

**Signatur**\
`$wsViews.current.getHreflangAutomatic()`

**Rückgabe**\
`array` - Liste mit Sprachversionen (`lang`, `href`).

**Beispiel,** das automatische hreflang-Links ausgibt.

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ foreach $myHreflang in $wsViews.current.getHreflangAutomatic() }}
  <link rel="alternate" hreflang="{{= $myHreflang.lang }}" href="{{= $myHreflang.href }}">
{{ /foreach }}
```

***

## Aktionen

Für `$wsViews` stehen keine Aktionen zur Verfügung.

***

## Beispiele für URL- und Parameter-Zugriffe

### View-URL & Host

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
<link rel="canonical" href="{{= $wsViews.host }}{{= $wsViews.current.url() }}" />

{{= $wsViews.current.url() }}
```

### Template bedingte Ausgaben von Inhalten

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
...
{{ if ($wsViews.current.name == "start") }}
  
  <section class="hero">…</section>
{{ /if }}
...
```

### Parameter lesen (Liste & gezielte Abfrage)

Iteration über alle Parameter:

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
...
<ul class="params">
  {{ for (p in $wsViews.paramList) }}
    <li>{{= p.name }} = {{= p.value }}</li>
  {{ end }}
</ul>
...
```

Gezielt prüfen (Beispiel „otp“):

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
{{ if ($wsViews.params.otp && $wsViews.params.otp == "required") }}
  <div class="notice notice--otp">Bitte Einmalpasswort eingeben.</div>
{{ /if }}
```

### Hreflang & Meta (Kurzbeispiele)

```html theme={"theme":{"light":"github-light","dark":"github-dark"},"languages":{"custom":["/languages/websale.json"]}}
...
<title>{{= $wsViews.metaTitle() }}</title>
<meta name="description" content="{{= $wsViews.metaDescription() }}" />

{{ for (h in $wsViews.getHreflangAutomatic()) }}
  <link rel="alternate" hreflang="{{= h.lang }}" href="{{= h.href }}" />
{{ end }}

{{ for (h in $wsViews.getHreflangManual()) }}
  <link rel="alternate" hreflang="{{= h.lang }}" href="{{= h.href }}" />
{{ end }}
...
```

 

***

## Weiterführende Links

* [SEO-Metadaten konfigurieren](/konfiguration/seometadata-meta-daten-seo-texte)
