# bx:head

Der Befehl `head` schreibt diverse Angaben zum Projekt in den Headbereich.

## head.style

```xml
<bx:head.style/>
```
Schreibt ein `<link rel="stylesheet" type="text/css" ...>` in die Seite. Dies Tag wird benutzt, wenn der Stylesheet nicht am Ende des `<head>`-Bereiches geschrieben werden soll, z.B. bei einer Browserweiche.

## head.setstatus

```xml
<bx:head.setstatus code="statuscode"/>
```
Setzt den Status-Code der Seite (normalerweise "200")

## head.setheader

```xml
<bx:head.setheader [type="int|date"] name="Name" value="value"/>
  oder 
<bx:head.setheader [type="int|date"] name="Name"> Inhalt </bx:head.setheader>

```
Erlaubt es, einen HTTP-Header für die Seite zu setzen (z.B. content-disposition, wenn ein Download angeboten werden soll)

| type | Standard: String (wenn nicht angegeben) |
| --- | --- |
| name | Name (des Tags???) |
| value | Angaben, die in den Head geschrieben werden sollen |

### Beispiele

```xml
<bx:head.setheader name="Cache-Control" value="no-cache"/>
```
Angabe, daß die Seite nicht gecacht werden soll.

```xml
<bx:head.setheader name="Expires" type="date"><bx:tools.datum day="+7"/></bx:head.setheader>

```

## head.cancelpage

```xml
<bx:head.cancelpage (redirect|forward)="{Weiterleitungspfad}" [clearbody] [intern]> [optional:Daten die in den Body des Redirects geschrieben werden] </bx:head.cancelpage>

```
Bricht die Tagauswertung der Seite ab und führt stattdessen ein Redirect oder Forward aus bzw. leitet auf eine Fehlerseite weiter.

| redirect | URL, auf die weitergeleitet werden soll (Adresse im Browser ändert sich) |
| --- | --- |
| forward | URL, auf die im Hintergrund geforwarded werden soll (Adresse im Browser bleibt erhalten) |
| clearbody | löscht den Inhalt des `<body></body>` |
| intern | nur in Kombination mit **redirect** (nicht** forward**)stellt sicher, dass die angegebene URL nicht auf eine externe Seite verweist nützlich für dynamische Weiterleitungen (z.B. URL aus Request), um Sicherheitslücken zu vermeiden (Open Redirect) |

### Beispiele

```xml
<bx:recordfield.Artikel_verfügbar not>
  <bx:head.cancelpage redirect="liste.htm?info=ausverkauft"/>
</bx:recordfield.Artikel_verfügbar>

```
Wenn Artikel ausverkauft ist, wird von dieser Seite auf die Listenseite weitergeleitet.

```xml
<bx:recordfield.Artikel_verfügbar not>
  <bx:head.cancelpage forward="ausverkauft.htm"/>
</bx:recordfield.Artikel_verfügbar>

```
Wenn Artikel ausverkauft ist, wird eine Fehlerseite (ausverkauft.htm) angezeigt, aber nicht weitergeleitet.

```xml
<bx:userdata.in>
  <bx:head.cancelpage redirect="../intra/" clearbody> <body>
    This page has <a href="../intra/">moved</a>.</body>
  </bx:head.cancelpage>
</bx:userdata.in>

```
Wenn User eingeloggt (z.B. auf einer Login-Seite nach dem Login), wird der Body gelöscht und es wird ein Link für eine Weiterleitung angezeigt.

## head.localblock

```xml
<bx:head.localblock/>

```
Schreibt die Angaben vom Feld "Include im Head" beim Projekt an die angegebene Stelle, anstatt direkt vor `</head>`.

## head.metatags

```xml
<bx:head.metatags [hidden] />

```
Legt die Position im `<head>` fest, an der die Keywords und Description vom Nav-Punkt erscheinen. (ab V 2.6.5)

| hidden | Wenn man Keywords und Description eingegeben hat, aber sie bei einem Design nicht anzeigen will, weil sie dort speziell zusammengebaut werden (kann man an beliebiger Stelle ins Design schreiben) |
| --- | --- |