Informationen zur Ausführungsumgebung
Die umfangreichen Erweiterungsmöglichkeiten sind ein wesentlicher Teil der FirstSpirit-Produktstrategie. Die unkomplizierte Umsetzung projektspezifischer Anpassungen und Erweiterungen können u.a. über Skripte, Plugins oder Executables vorgenommen werden.
Dazu sind abhängig vom Anwendungsfall weitere Informationen notwendig. So muss beispielsweise beim Aufruf eines Skriptes in einem Arbeitsablauf klar sein, in welcher Umgebung das Skript ausgeführt wird - im ContentCreator oder im SiteArchitect (siehe Anwendungsfall ContentHighlighting).
Diese Informationen können entweder direkt über ein BaseContext-Objekt oder über das Systemobjekt #global abgefragt werden. Konstanten des Enums BaseContext.Env werden dabei als Parameter für die Anfrage verwendet.
Aktuell können folgende Informationen zur Ausführungsumgebung erfragt werden:
- PREVIEW: Ausführungsumgebung ist die integrierte Vorschau
- WEBEDIT: Ausführungsumgebung ist der ContentCreator
- ARCHITECT: Ausführungsumgebung ist SiteArchitect
- MANAGER: Ausführungsumgebung ist ServerManager
- FS_BUTTON: Ausführungsumgebung ist ein FS_BUTTON
- DROP: Ausführungsumgebung ist ein Drop-Environment
- GENERATION: Ausführungsumgebung ist eine Generierung
- FORM: Ausführungsumgebung ist eine Eingabekomponente
- REPORT: Ausführungsumgebung ist ein Report
- HEADLESS: Ausführungsumgebung ist keine GUI-Umgebung (das ist zum Beispiel bei Serverseitigen Skripten der Fall)
- WEB: Ausführungsumgebung ist eine Webanwendung
Abhängig von der Ausführungsumgebung können auch mehrere Abfragen mit verschiedenen Enum-Konstanten zur selben Zeit true zurückliefern, z. B.:.
- PREVIEW, WEBEDIT für ein Render-Skript (Generierungskontext) im ContentCreator
- FS_BUTTON für ein FS_BUTTON, der im SiteArchitect in einem Formular geklickt wird
- FS_BUTTON, PREVIEW, WEBEDIT, DROP für ein FS_BUTTON im ContentCreator, auf den ein Bild gedroppt wird
Syntax
Anfordern über ein BaseContext-Objekt mit Konstante des Enum BaseContext.Env:
import de.espirit.firstspirit.access.BaseContext;
// The variable "context" is of type BaseContext.
if (context.is(BaseContext.Env.WEBEDIT)) ...
oder bei Zugriff über die BaseContext-Instanz:
if (context.is(context.Env.WEBEDIT)) ...
Durch die Templatemöglichkeiten (Enum-Konvertierung) ist auch folgende, kurze Syntax mit String-Übergabe möglich:
$CMS_IF( #global.is("WEBEDIT") )$ ...
Mit der Templatesyntax können nicht alle Schlüsselbegriffe genutzt werden. |