Startseite / Vorlagenentwicklung / Vorlagensyntax / Systemobjekte / #global / vorschaubezogen

vorschaubezogene #global-Aufrufe

Inhaltsverzeichnis

Die Vorschau einer Seite soll häufig andere Funktionalitäten besitzen als der veröffentlichte bzw. generierte Stand dieser Seite. Beispielsweise können innerhalb einer Vorschau Statusinformationen oder eine Bearbeitungsfunktionalität für den Redakteur erwünscht sein.

Eine weitere Anforderungen ist die sprachabhängige Vorschauerzeugung. Es ist beispielsweise möglich, dass sich das Layout einer Seite, abhängig von der Sprache unterscheidet oder dass die Sprache die Ausgabeformatierung beeinflusst. Außerdem kann verhindert werden, dass eine spezielle Seite in einem bestimmten Vorlagensatz erzeugt wird.

Um diese und weitere Anforderungen zu erfüllen, bietet das Systemobjekt #global die Möglichkeit, auf Informationen in der Vorschau, Veröffentlichung und Generierung zuzugreifen und auf diese Einfluss zu nehmen.

Die nachfolgende Tabelle zeigt die vorschaubezogenen Operationen:

Parameter

Aufruf

Bedeutung

Rückgabedatentyp

#global.context

Liefert den aktuellen Kontext zurück.
Weitere Informationen zu Kontexten siehe Kapitel Kontexte.

Context

#global.context("BEZEICHNER")

Liefert einen bestimmten Kontext zurück.
Für BEZEICHNER muss dazu der technische Name des gewünschten Kontexts angegeben werden. Dieser kann über #global.dumpcontext ermittelt werden. Weitere Informationen zu Kontexten siehe Kapitel Kontexte.

Context

#global.dumpcontext

Ausgabe aller Kontextinformationen zur leichteren Fehlersuche

String
(Zeichenkette)

#global.dumpcontext("TRENNZEICHEN")

Ausgabe aller Kontextinformationen zur leichteren Fehlersuche, jedoch mit Angabe von Trennzeichen für die Ausgabe der einzelnen Zeilen, z. B. <br>.

String
(Zeichenkette)

#global.encoding

Liefert das angegebene HTML-Encoding für die Sprache zurück, die gerade erzeugt wird, z. B. ISO-8859-1, UTF-8.
Wurde in den Projekteinstellungen für eine Sprache kein HTML-Encoding angegeben, so wird das Systemencoding zurückgeliefert

String
(Zeichenkette)

#global.is("...")

Ermittelt die Ausführungsumgebung anhand eines Schlüsselbegriffs.
Mögliche Schlüsselbegriffe:

  • WEBEDIT
  • PREVIEW
  • FS_BUTTON
  • DROP
  • HEADLESS

Beispiel: Die Verwendung des Schlüsselbegriffs WEBEDIT ermittelt, ob eine HTML-Seite im SiteArchitect oder im ContentCreator geöffnet wurde. Wurde die Seite im ContentCreator geöffnet, liefert der Ausdruck
#global.is("WEBEDIT")
innerhalb der HTML-Vorlage TRUE zurück.
Weitere Informationen zu den Schlüsselbegriffen finden sich auf der Seite Informationen zur Ausführungsumgebung.

Boolean
(Boolescher Wert)

#global.isRelease

Ermittelt, ob es sich bei der Anzeige des Objekts (z. B. Seite oder Seitenreferenz) um den Freigabestand handelt oder nicht.
true = Freigabestand
false = aktueller Stand

Boolean
(Boolescher Wert)

#global.language

Liefert die Sprache zurück, die gerade erzeugt wird.

Language

#global.language.abbreviation

Liefert das Kürzel der Sprache zurück, die gerade erzeugt wird, z. B. DE, EN usw.

String
(Zeichenkette)

#global.language.name

Liefert den Namen der Sprache zurück, die gerade erzeugt wird, z. B. Deutsch, English usw.

String
(Zeichenkette)

#global.now

Liefert das aktuelle Datum zurück.

Date

#global.preview

Ermittelt, ob es sich bei der Anzeige des Objekts (z. B. Seite oder Seitenreferenz), um eine Vorschau handelt oder nicht.
true = Vorschau
false = keine Vorschau (z. B. Veröffentlichung, Generierung usw.)

Boolean
(Boolescher Wert)

#global.previewRulesEvaluation

De-/aktiviert die Regelauswertung in der Vorschau des ContentCreator.
true = Regeln werden ausgewertet und visualisiert
false = Die Regelauswertung wird für die ContentCreator-Vorschaugenerierung deaktiviert (siehe auch Funktion editorId).
Beispiel: $CMS_SET(#global.previewRulesEvaluation, true)$
Siehe auch Absatz „Regelauswertung während der Vorschaugenerierung im ContentCreator deaktivieren“ unten.

Boolean
(Boolescher Wert)

#global.project

Liefert das Projekt zurück.

Project

#global.project.id

Liefert die ID des Projekts zurück.

Long

#global.scheduleContext

Zugriff auf Informationen von Generierungsaufträgen:
Über diesen Aufruf kann auf den Ausführungskontext eines Generierungsauftrags zugegriffen werden und damit auf Informationen wie z.B. den Namen des Projektes, den Start-Zeitpunkt des Auftrags, den Pfad zum Generierungsverzeichnis, die Fehleranzahl bei der Generierung.
Weitere Informationen zu Kontexten siehe Kapitel Kontexte.

ScheduleContext

#global.startDate

Synonym für #startdate

Date

#global.version

Liefert die FirstSpirit-Versionsnummer zurück, z. B. 5.0.14

String
(Zeichenkette)

   

Erweiterter Fehler-Protokollierungs-Modus

Der erweiterte Fehler-Protokollierungs-Modus (siehe dazu auch Kapitel Scripting) wird mit dem folgenden Ausdruck aktiviert:

$CMS_SET(#global.debugMode, true)$

Abbruch einer Generierung

Es besteht die Möglichkeit, in einer Vorlage die Erzeugung einer Generierung zu unterbinden. Dies ist dann sinnvoll, wenn für den Vorlagensatz einer Seitenvorlage keine Erzeugung gewünscht wird (z. B. keine PDF-Version eines Dokumentes usw.)

Der Ausdruck, um die Erzeugung zu unterbinden lautet:

$CMS_SET(#global.stopGenerate, true)$

Regelauswertung während der Vorschaugenerierung im ContentCreator deaktivieren

Mit dem Parameter previewRulesEvaluation kann im ContentCreator die Regelauswertung (siehe dazu auch Kapitel Regeln) während der Generierung der Vorschau deaktiviert werden. Dies kann in Fällen sinnvoll sein, in denen die Regelauswertung zu einer rechenzeitintensiven Berechnung der Vorschau führt und so die Performance des ContentCreator beeinträchtigen kann.

Wichtig Diese Funktionalität bezieht sich nur auf die Vorschau des ContentCreator; in Formularen in ContentCreator und in SiteArchitect wird die Regelauswertung weiterhin durchgeführt und etwaige Regelverletzungen werden weiterhin visualisiert.

Hinweis: Für Inhalte aus Tabellenvorlagen (Datensätze) werden Regelverletzungen in der Vorschau nicht visualisiert.

Mögliche Werte des Parameters sind:

  • true: Dies ist die Standardeinstellung, wenn #global.previewRulesEvaluation nicht angegeben wird: Die auf dem Register „Regeln“ definierten Regeln werden uneingeschränkt ausgewertet und visualisiert.
  • false: Die Regelauswertung wird für die ContentCreator-Vorschaugenerierung deaktiviert. In Formularen im ContentCreator sowie im SiteArchitect wird die Regelauswertung weiterhin durchgeführt und etwaige Regelverletzungen werden weiterhin visualisiert.

Beispiel:

$CMS_SET(#global.previewRulesEvaluation, false)$

Bedeutung: Für alle diesem Aufruf folgenden editorId()-Angaben wird die Regelauswertung in der Vorschau des ContentCreator deaktiviert, z. B.

$CMS_SET(#global.previewRulesEvaluation, false)$ 
<div$CMS_VALUE(editorId())$>
NO VALIDATION
</div>

Für eine differenzierte Auszeichnung einer Vorlage kann #global.previewRulesEvaluation mit dem Parameter previewRulesEvaluation in der Funktion editorId() kombiniert werden, z. B.:

$CMS_SET(#global.previewRulesEvaluation, true)$ 
<div$CMS_VALUE(editorId())$>
WITH VALIDATION
</div>
<div$CMS_VALUE(editorId(previewRulesEvaluation:false))$>
NO VALIDATION
</div>

oder

$CMS_SET(#global.previewRulesEvaluation, false)$ 
<div$CMS_VALUE(editorId())$>
NO VALIDATION
</div>
<div$CMS_VALUE(editorId(previewRulesEvaluation:true))$>
WITH VALIDATION
</div>

An die Auswertung von Regeln ist eine Visualisierung gekoppelt: im ContentCreator werden Regelverletzungen auf der Vorschauseite im Seiten-Status angezeigt sowie durch ein entsprechendes Icon und Highlighting markiert (siehe dazu auch Seite Darstellung im ContentCreator).
Wird die Regelauswertung während der Generierung durch die oben genannten Möglichkeiten deaktiviert, so werden die dadurch nicht gemeldeten Validierungsprobleme in ContentCreator auch nicht angezeigt.

Aktivierung von LiveEdit

LiveEdit basiert auf denselben „editorIds“ wie Content Highlighting und EasyEdit.

Damit diese „editorIds“ auch außerhalb einer Vorschau erzeugt werden, muss folgender Ausdruck in den gewünschten Seitenvorlagen ergänzt werden:

$CMS_SET(#global.forceEditorIds, true)$

Anpassung der Stack-Größe

Aus Sicherheitsgründen ist die Stack-Größe in FirstSpirit begrenzt. An manchen Stellen kann es zu einer „Endless loop“-Exception kommen, wenn durch Schachtelungen von Vorlagen diese Stack-Größe überstiegen wird. Dies kann beispielsweise der Fall bei Eingabekomponenten der Typen CMS_INPUT_DOM oder CMS_INPUT_DOMTABLE sein, in denen geschachtelte Listen verwendet werden. Es kann zu einer Meldung der Art kommen:

19.11.2015 16:07:07.808 ERROR ($CMS_VALUE(#content)$ at 5, 5): Endless loop in template?

In diesem Fall werden Inhalte nur unvollständig ausgegeben.

Um die Stack-Tiefe zu erhöhen, kann #global.maxStackSize in der Vorlage vergrößert werden, z. B.

$CMS_SET(#global.maxStackSize, 200)$

Standardwert der Stack-Tiefe in der Vorlage ist 75.
Der Standardwert der Stack-Tiefe kann serverweit über den Parameter

generate.defaultMaxStackSize

in der Datei fs-server.conf angepasst werden (Server (→Dokumentation für Administratoren)).

Siehe dazu auch Methode setMaxStackSize, FirstSpirit Access-API, Interface Evaluator, Package de.espirit.firstspirit.access.template.

Beispiele

Nachfolgend werden einige Beispiele zur Verwendung der Anweisung innerhalb von Vorlagen gezeigt. Die Beispiele sollen die konkrete Auswirkung der Anweisung verdeutlichen und eine Hilfe für den Vorlagenentwickler bei der Erstellung eigener Vorlagen sein.

Wichtig Für die Verwendung innerhalb eines Projekts, müssen die hier gezeigten Beispiele angepasst werden! Beispielsweise müssen Variablennamen auf die spezifischen Variablennamen des Projekts geändert werden, in dem die Anweisung verwendet werden soll.

1. Beispiel: Sprachspezifische Ausgabe des Datums

$CMS_IF(#global.language.abbreviation == "DE")$
$CMS_VALUE(#global.now.format("dd.MM.yyyy"))$
$CMS_ELSE$
$CMS_VALUE(#global.now.format("MM/dd/yyyy"))$
$CMS_END_IF$

Im Beispiel wird in der Sprache mit dem Kürzel DE das aktuelle Datum in der Schreibweise Tag, Monat und Jahr – getrennt durch einen Punkt – dargestellt. Für alle anderen Sprachen wird das aktuelle Datum in der Schreibweise Monat, Tag und Jahr ausgegeben.

Ausgabe für Sprache mit dem Kürzel DE:

22.05.2007

Ausgabe für alle anderen Sprachen

05/22/2007

2. Beispiel: Begrüßung in der Vorschau

$CMS_IF(#global.preview)$
Herzlich Willkommen auf den Seiten unseres Intranets
$CMS_END_IF$

In der Vorschau wird der Satz Herzlich Willkommen auf den Seiten unseres Intranets ausgegeben.

3. Beispiel: Dynamisches HTML-Gerüst

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="$CMS_VALUE(#global.language.abbreviation.toLowerCase)$" lang="$CMS_VALUE(#global.language.abbreviation.toLowerCase)$">
<head>
...
<meta http-equiv="content-type" content="text/html; charset=$CMS_VALUE(#global.encoding)$" />
...

Abhängig von der generierten Sprache wird die Abkürzung der Sprache in Kleinbuchstaben für die XML-Sprachangaben verwendet.

Weiterhin wird das angegebene Encoding der Sprache verwendet.

Ausgabe:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
...
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
...

© 2005 - 2024 Crownpeak Technology GmbH | Alle Rechte vorbehalten. | FirstSpirit 2024.5 | Datenschutz