Benutzerdefinierte Seiteneigenschaften
Benutzerdefinierte Seiteneigenschaften (BSE) sind frei konfigurierbare Felder, die global angelegt werden und anschließend für jede beliebige Seite im CMS befüllt werden können. Sie ermöglichen es, strukturierte Zusatzinformationen an Seiten zu hängen – zum Beispiel ein Erscheinungsdatum, eine Kategorienzuordnung oder ein boolesches Flag.
Verwaltung
BSE werden unter Redaktion → Eigenschaften verwaltet. Dort können neue Eigenschaften angelegt, bestehende bearbeitet und nicht mehr benötigte gelöscht werden.

Beim Löschen einer BSE werden alle seitenbezogenen Zuweisungen (d. h. die gespeicherten Werte aller Seiten) automatisch mit entfernt.
Felder beim Anlegen
| Feld | Pflicht | Beschreibung |
|---|---|---|
| Name | Ja | Interner Bezeichner. Wird automatisch zu einem URL-freundlichen Slug umgewandelt (Kleinbuchstaben, Bindestriche). Dieser Slug ist der Schlüssel im Template-Array. |
| Beschreibung | Ja | Wird im Seiteneditor als Label des Eingabefelds angezeigt. |
| Feldtyp | Ja | Legt den Datentyp und das Eingabewidget fest (siehe unten). |
| Standardwert | Nein | Wird verwendet, wenn eine Seite keinen eigenen Wert für diese BSE hat. |
| Optionen (JSON) | Nein | Optionales JSON-Objekt für Feldtypen, die zusätzliche Konfiguration benötigen. Format: {"key": "Label"} |

:::note
Der Name wird beim Speichern slugifiziert. Aus „Mein Feld” wird also z. B. mein-feld. Dieser Slug ist später der Schlüssel für den Template-Zugriff.
:::
Feldtypen
Text
Einfaches Texteingabefeld.
- Rückgabewert im Template:
string(odernull, wenn leer) - Standardwert-Beispiel:
Standardtitel
Zahl
Numerisches Eingabefeld.
- Rückgabewert im Template:
int - Standardwert-Beispiel:
42
Checkbox
Schalter (Toggle), der einen Ja/Nein-Wert speichert.
- Rückgabewert im Template:
bool(true/false) - Standardwert: Muss
1odertruesein, um standardmäßig aktiviert zu sein. Leerlassen bedeutetfalse.
Datum
Datumsauswahl (ohne Uhrzeit).
- Rückgabewert im Template:
int(Unix-Timestamp in UTC) - Standardwert-Beispiel: Ein Unix-Timestamp, z. B.
1700000000
Datum & Uhrzeit
Datums- und Zeitauswahl.
- Rückgabewert im Template:
int(Unix-Timestamp in UTC) - Standardwert-Beispiel: Ein Unix-Timestamp
Kategorie
Dropdown zur Auswahl einer CMS-Kategorie.
- Rückgabewert im Template:
int(Kategorie-ID) - Standardwert-Beispiel: Die numerische ID der gewünschten Standardkategorie
Verwendung in Templates
Im Seitentemplate sind alle BSE-Zuweisungen über das assoziative Array customPagePropertyAssignments zugänglich. Der Schlüssel ist der Name (Slug) der jeweiligen BSE.
{# Einfacher Textwert #}
{{ Page.customPagePropertyAssignments['mein-feld'] }}
{# Wert mit Fallback auf leer #}
{{ Page.customPagePropertyAssignments['mein-feld']|default('') }}
Beispiele nach Feldtyp
Text
<p>{{ Page.customPagePropertyAssignments['untertitel']|default('') }}</p>
Zahl
<span>{{ Page.customPagePropertyAssignments['lesezeit'] }} Min.</span>
Checkbox
{% if Page.customPagePropertyAssignments['ist-featured'] %}
<span class="badge bg-primary">Featured</span>
{% endif %}
Datum / Datum & Uhrzeit
Der Wert ist ein Unix-Timestamp. Zur Anzeige mit der Twig-Funktion parseTimestamp formatieren:
{{ parseTimestamp(Page.customPagePropertyAssignments['veroeffentlicht-am']) }}
Oder für benutzerdefinierte Formatierung über parseTime:
{{ parseTime(Page.customPagePropertyAssignments['veroeffentlicht-am'], 'UTC').format('d.m.Y') }}
Kategorie
{% set kategorie = getCrispyCategory(Page.customPagePropertyAssignments['kategorie']) %}
{% if kategorie %}
<span>{{ kategorie.name }}</span>
{% endif %}
Seiteneditor
Im Seiteneditor erscheinen alle angelegten BSE automatisch im Abschnitt Benutzerdefinierte Seiteneigenschaften, unterhalb des Inhaltsbereichs. Felder ohne Seitenwert zeigen den konfigurierten Standardwert vor. Änderungen werden beim Speichern der Seite übernommen und im Audit-Log als Diff festgehalten.
