Systemobjekte
Verwendung von Systemobjekten
Über Systemobjekte kann innerhalb der Vorlagen auf Informationen, Daten und Objekte zugegriffen werden. Sinnvoll ist das beispielsweise bei der Generierung und der Erzeugung einer Vorschau. Solche Informationen können zum Beispiel der Startzeitpunkt der Generierung, die ID des Absatzes oder der Seite oder die Sprache sein, die aktuell generiert wird.
Systemobjekte sind immer kontextabhängig. Einige Systemobjekte sind in allen Kontexten, andere nur in einem bestimmten Kontext verfügbar.
Auf Systemobjekten können Ausdrücke angewendet werden.
Der Rückgabewert eines Systemobjektes ist ein Objekt bzw. Datentyp (vgl. Datentypen).
In der Regel kann auf Systemobjekte nur lesend zugegriffen werden. Es gibt jedoch einige Methoden, die Systemobjekte auch modifizieren oder aber das Systemverhalten beeinflussen können. Hierunter fällt z. B. das Unterdrücken der Erzeugung einer Seite in einer Seitenvorlage (#global.stopGenerate).
Einsatz von Systemobjekten
Die nachfolgende Tabelle gibt einen Überblick, in welchen Kontexten ein bestimmtes Systemobjekt verfügbar ist, und wofür es eingesetzt werden kann:
Systemobjekt | Verfügbarkeit | Einsatzzwecke |
---|---|---|
Innerhalb einer Tabellenzelle:
| - Ermittlung der Spaltennummer einer Zelle | |
Innerhalb von Formatvorlagen | - Ausgabe des Inhalts eines Dom-Editor-Absatzes | |
Innerhalb von Vorlagen, die in einer Content-Projektion verwendet werden | - Entscheidung, ob der auszugebende Datensatz der erste ist | |
Innerhalb von Vorlagen, die in einer Dokumentengruppe verwendet werden | - Ermittlung von Kindknoten einer Dokumentengruppe | |
Innerhalb von Vorlagen, die in einer Dokumentengruppe verwendet werden | Ermittlung eines Elements (z.B. einer Seitenreferenz) aus der Dokumentengruppe während der Generierung der Dokumentengruppe | |
Innerhalb von Parameter-Angaben von FS_BUTTON-Definitionen in Formularen | Ermittlung von Inhalten von und Informationen über FS_BUTTON im Formular und Verarbeitung z. B. in Skripten | |
Innerhalb einer $CMS_FOR(...)$-Anweisung | - Entscheidung, ob das auszugebende Element das erste ist | |
Innerhalb von Regeldefinitionen dynamischer Formulare | Beeinflussung der Sichtbarkeit der Gestaltungselemente CMS_GROUP und CMS_LABEL in einem Formular | |
In allen Vorlagen | - Ermittlung von vorschaubezogenen, projektbezogenen, seitenbezogenen | |
Innerhalb einer Absatzvorlage, die in der Eingabekomponente CMS_INPUT_CONTENTAREALIST verwendet wird | - Ermittlung, der wievielte Absatz gerade ausgegeben wird | |
Innerhalb von
| Zugriff auf Werte von Eingabekomponenten | |
Innerhalb von Listen:
| - Ermittlung des ausgewählten Listendarstellungstyps | |
Innerhalb eines Listeneintrages:
| - Ermittlung der Position des aktuellen Listenelements | |
in allen Vorlagen | - Festlegung der Anzahl von Dezimalstellen bei Divisionen | |
In den Funktionen:
| - Ausgabe des Menünamens | |
Innerhalb von Tabellenvorlagen, die in einer datenquellenbasierten Absatz verwendet werden | - Ermittlung des letzten Bearbeiters | |
Innerhalb einer Absatzvorlage, die in der Eingabekomponente CMS_INPUT_CONTENTAREALIST verwendet wird | - Ermittlung, ob der gerenderte Absatz sich in einer CMS_INPUT_CONTENTAREALIST befindet oder nicht | |
In allen Vorlagen | - Ausgabe des Zeitpunkts der letzten Projektänderung zum Generierungszeitpunkt | |
In den Formatvorlagen für Tabellenzeilen und -zellen (Kürzel "tr" und "td") sowie in Stilvorlagen | - Verwendung von Werten der Stilvorlage von Inline-Tabellen in den Standard-Formatvorlagen für Tabellen | |
Innerhalb von Tabellen:
| - Ermittlung der Anzahl der Zeilen einer Tabelle | |
In allen Vorlagen | - Repräsentiert immer das aktuell in der Vorlage ausgewertete Objekt. Der zurückgegebene Objekttyp kann somit variieren. | |
Innerhalb von Tabellen:
| - Ermittlung der Nummer einer Zeile | |
Aufruf von Systemobjekten
Systemobjekte können überall da aufgerufen werden, wo auch Methoden-Aufrufe genutzt werden können:
Jedes Systemobjekt beginnt mit dem Zeichen # und wird durch den jeweiligen Namen des Systemobjekts erweitert. Abhängig von der Art des Systemobjektes können unterschiedliche Methoden aufgerufen werden.
Syntax:
$CMS_VALUE(#NAME[.METHODE])$
Bsp:
$CMS_IF(#global.preview)$
Vorschau
$CMS_ELSE$
Keine Vorschau
$CMS_END_IF$
Wird für die aktuelle Seite eine Vorschau erzeugt, so wird Vorschau ausgegeben – ansonsten Keine Vorschau.