#this
Das Systemobjekt #this steht in allen FirstSpirit-Vorlagen zur Verfügung.
#this repräsentiert immer das aktuell in der Vorlage ausgewertete Objekt. Der zurückgegebene Objekttyp kann somit variieren. Mögliche Rückgabewerte sind:
Auf dem Rückgabewert können anschließend sämtliche Methoden des jeweiligen Objekttyps aufgerufen werden. Handelt es sich beispielsweise um eine Seite (Objekttyp Page), können auf #this alle Methoden aufgerufen werden, die auch auf einem Objekt vom Typ Page aufgerufen werden können.
Die allgemeine Syntax von #this lautet:
$CMS_VALUE(#this.METHODE)$
Beispiel
Beispiel: Ausgabe von Eigenschaften der aktuellen Vorlage (letzte Änderung)
Die Ausgabe bestimmter Eigenschaften einer Vorlage (Eindeutiger Referenzname oder das Datum der letzten Änderung) kann problematisch sein, da der Generierungskontext keine Informationen zur aktuell verwendeten Vorlage liefert.
Für einige Vorlagen ist diese Ausgabe über das Systemobjekt #global möglich. So kann für Seiten (Objekttyp Page) die Ausgabe der UID (Unique Identifier) im Ausgabekanal z. B. über den Aufruf #global.page.template.uid erfolgen. Aber schon bei Absätzen wird es unsicher, denn #global.section ist nicht immer der gewünschte Absatz (z. B. bei Unterabsätzen innerhalb von Datenquellen).
Für diesen Anwendungsfall kann ab FirstSpirit 5.0 das Systemobjekt #this verwendet werden. Dazu ein Beispiel:
Ausgabe des Referenznamens und des letzten Änderungsdatums einer Absatzvorlage:
Innerhalb des HTML-Ausgabekanals der Absatzvorlage wird folgender Aufruf ergänzt:
last change for $CMS_VALUE(#this.template.uid)$: $CMS_VALUE(#this.template.changeDate.format("dd.MM.yyyy"))$)
Der Aufruf schreibt anschließend bei jeder Verwendung der Absatzvorlage den eindeutigen Referenznamen (UID) und das Datum der letzten Änderung der Vorlage in den HTML-Ausgabekanal.
Prinzipiell kann diese Abfrage in alle Vorlagen verwendet werden. Ob die Methode #this.getTemplate() (Bean-Syntax: #this.template) erreichbar ist, hängt alleine vom jeweiligen Objekttyp ab, der von #this zurückgegeben wird.
Ein Objekt vom Typ Template wird für folgende Rückgabewerte von #this geliefert:
- Content2Section (#this.template liefert ein Objekt vom Typ TableTemplate)
- GCAPage (#this.template liefert ein Objekt vom Typ PageTemplate)
- IdProvidingFormData (#this.template liefert ein Objekt vom Typ SectionTemplate)
- Page (#this.template liefert ein Objekt vom Typ PageTemplate)
- Section (#this.template liefert ein Objekt vom Typ SectionTemplate)