Startseite / Vorlagenentwicklung / Vorlagensyntax / Funktionen / in Anweisungen / editorId

editorId(...)

Inhaltsverzeichnis

Die Funktion editorId(...) ermöglicht die Verwendung von Content Highlighting und EasyEdit im SiteArchitect bzw. ContentCreator sowie LiveEdit. Diese Funktionen dienen zum Ansteuern und Bearbeiten von formularbasierten Store-Elementen und Eingabekomponenten innerhalb der Vorschauansichten per Formular, EasyEdit/InEdit sowie Drag-and-drop.

Wichtig Die vollständige Dokumentation mit Anwendungsbeispielen und Hinweisen zur Verwendung in SiteArchitect und ContentCreator ist im Kapitel Einsatz von Content Highlighting und EasyEdit in Projekten verfügbar.

Um diese Funktionen im Projekt zu aktivieren, müssen die Vorlagen (in diesem Fall der HTML-Vorlagensatz) angepasst werden. Das Prinzip ist bei beiden Funktionen identisch. Die HTML-Elemente, die hervorgehoben werden sollen, müssen innerhalb einer HTML-Seite eindeutig referenzierbar sein. Auf technischer Seite werden dazu „Editor-Identifier“ eingesetzt, die vom Vorlagenentwickler innerhalb der HTML-Vorlagen des Projekts hinterlegt werden können. Dazu wird der Aufruf editorId() verwendet. Als Parameter kann beispielsweise der Name einer Eingabekomponente übergeben werden.

Der Aufruf

$CMS_VALUE(editorId(editorName:"pt_headline"))$

sorgt beispielsweise dafür, dass der Wert der Eingabekomponente „pt_headline“ im HTML-Vorlagensatz hervorgehoben wird – unabhängig davon, ob der Redakteur diesen Inhalt im SiteArchitect oder im ContentCreator bearbeiten möchte.

Jeder „Editor-Identifier“ muss einem passenden HTML-Element zugeordnet werden. Dazu zählen HTML-Tags zur blockweisen Darstellung von Inhalten, beispielsweise die <h>-Tags zur Darstellung von Textüberschriften (<h1>, <h2>, <h3>, ...) und das <p>- oder <div>-Tag zur Darstellung von größeren Inhaltsbereichen. Zum Hervorheben einer Überschrift, muss der Aufruf von editorId() also innerhalb des <h>-Elements im HTML-Vorlagensatz erfolgen, z. B.

<h3$CMS_VALUE(editorId(editorName:"pt_headline"))$>

Neben dem blockweisen Hervorheben von HTML-Inhalten kann so auch eine elementbezogene Hervorhebung, beispielsweise eines Bildes in einem <img>-Tag, realisiert werden:

<img src="$CMS_REF(st_picture)$" alt="" $CMS_VALUE(editorId(editorName:"st_picture"))$ />

Neben dem Namen einer Eingabekomponente ist die Übergabe weiterer Parameter möglich:

Parameter für editorId()-Aufrufe

Parametername

Beschreibung

Gültigkeitsbereich

editorName

Übergabe der UID einer Eingabekomponente
Beispiel siehe Vorlagenanpassung für Eingabekomponenten.

 

language

Standardmäßig werden Formulare initial in der aktuellen Sprache geöffnet (#global.language). Mit diesem Parameter kann eine Sprache vorgegeben werden, in der ein Formular geöffnet werden soll.
Der Parameter erwartet das Kürzel der Sprache oder das Language-Objekt, z. B. language:"FR" oder language:#global.getLanguage("FR").

nur ContentCreator

entity

Übergabe eines Entity-Objekts
Beispiel siehe Vorlagenanpassung für Datenbank-Inhalte.

 

template

Übergabe einer Tabellenvorlage (TableTemplate-Objekt) oder der UID einer Tabellenvorlage (als String, z. B. schema.gallery).

 

view

Übergabe einer Datenquelle (Content2-Objekt) oder der UID einer Datenquelle (als String).
Beispiel siehe
Vorlagenanpassung für Datenbank-Inhalte.

 

element

Übergabe eines FirstSpirit-Objekts (vom Typ IDProvider) z. B. einer GCA (#global.gca(„...“)) oder eines Inhaltsbereichs (#global.page.body(„...“)).
Beispiel siehe Vorlagenanpassung für Inhaltsbereiche.

 

target

Übergabe eines FirstSpirit-Objekts (analog zum Parameter element). Dabei können über target nicht nur Objekte vom Typ IDProvider, sondern auch weitere FirstSpirit-Objekte übergeben werden.
Relevant ist der Parameter immer dann, wenn das gewünschte Zielobjekt für den editorId()-Aufruf nicht direkt aus dem Generierungskontext ermittelt werden kann. Das gilt beispielsweise bei verschachtelten Eingabekomponenten.
Ein weiteres Beispiel für die Verwendung des Parameters target ist die Identifizierung eines Datensatzes.

 

previewRulesEvaluation

Mit diesem Parameter kann im ContentCreator die Regelauswertung (siehe dazu auch Kapitel Regeln) während der Generierung der Vorschau für einzelne Elemente 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ächtigt werden kann.
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. Wird die Regelauswertung während der Generierung durch previewRulesEvaluation deaktiviert, so werden die dadurch nicht gemeldeten Validierungsprobleme in ContentCreator auch nicht angezeigt. Zu weiteren Informationen siehe auch #global.previewRulesEvaluation.
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 der Parameter 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 des mit der editorId ausgezeichneten Elements deaktiviert. In Formularen im ContentCreator sowie im SiteArchitect werden Regelverletzungen weiterhin visualisiert.

Beispiel: <div$CMS_VALUE(editorId(previewRulesEvaluation:false))$>...</div>

nur ContentCreator

resolution

Über diesen Parameter kann die Bildzuschnittsfunktion im ContentCreator in der Vorsschau aktiviert werden. Siehe dazu Bildzuschnitt im ContentCreator.

nur ContentCreator

reloadPreview

Werden über die EasyEdit- oder InEdit-Funktion Änderungen in einem Teilbereich der HTML-Seite ausgeführt, beispielsweise durch das Ändern einer Überschrift, so wird nur dieser geänderte HTML-Bereich neu geladen und in der HTML-Seite ersetzt. Auf diese Weise wird eine schnelle Aktualisierung der Seitenvorschau erreicht. Für einige Änderungen greift diese gezielte Aktualisierung nicht, da die Änderungen außerhalb des aktuellen HTML-Bereichs liegen. In diesem Fall kann das Laden der gesamten Seite über den Parameter reloadPreview (reloadPreview:true) angestoßen werden. Standardmäßig ist das Laden der gesamten Seite bei Änderungen über die EasyEdit- oder InEdit-Funktion im ContentCreator ausgeschaltet.
Wird über den Parameter reloadElement (siehe unten) eine gültige HTML-ID angegeben, hat reloadPreview keine Auswirkung.

nur ContentCreator

reloadElement

Standardmäßig wird bei der Änderung auf einer Seite das Element mit der angegebenen editorId neu geladen. Über reloadElement kann hingegen die ID eines HTML-Elements übergeben werden, das nach einer Änderung der Seite geladen werden soll.
Die ID des gewünschten HTML-Elements kann dabei folgendermaßen übergeben werden:
reloadElement:"container"
wobei container der Bezeichner eines Elements ist. Dieser kann beispielsweise über <div id="container"> definiert sein.
Ist der Parameter reloadElement definiert, hat reloadPreview (siehe oben) keine Auswirkung.

nur ContentCreator

json

Der Parameter ist nur notwendig, wenn neue Listeneinträge über die FS_BUTTON-Handler-Klasse NewListEntryExecutable innerhalb der Eingabekomponenten:

im ContentCreator angelegt werden sollen. Wird innerhalb des Parameters editorId der Parameter json mit dem Wert json:true angegeben, wird statt eines HTML-Fragments ein JSON-Objekt ausgegeben (siehe Beispiel). Der Parameter darf ausschließlich innerhalb von JavaScript verwendet werden (nicht in der HTML-Ausgabe, da in diesem Fall ungültiges HTML erzeugt würde).

nur ContentCreator

meta

Sollen über die InEdit-Funktion nicht die redaktionellen Formular-Inhalte, sondern die Metadaten eines FirstSpirit-Objekts (z. B. Seite, Absatz, Medium) bearbeitet werden, kann im editorId()-Aufruf der Parameter meta:true gesetzt werden. In diesem Fall wird beim Aktivieren der InEdit-Funktion nicht das Formular zum Bearbeiten der redaktionellen Inhalte, sondern das Formular zum Bearbeiten der Metadaten geöffnet. Standardmäßig ist das Bearbeiten der Metadaten über die InEdit-Funktion im ContentCreator ausgeschaltet (Beispiele siehe Metadaten bearbeiten).

nur ContentCreator

externalReference

Dieser Parameter ist nur für die Verwendung im ContentCreator in Verbindung mit FS_INDEX, das nicht das DatasetDataAccessPlugin verwendet, relevant, z. B. FirstSpiritFragmentAccess
Siehe dazu Externe Referenzen im ContentCreator bearbeiten.

nur ContentCreator

   

Wird kein Parameter übergeben, wird automatisch der aktuelle Kontext verwendet (z. B. der Absatz oder die Seite).

Siehe dazu auch Funktion editorID(...).

Wichtig Die Editor-Identifier werden sowohl beim Bearbeiten im ContentCreator (per EasyEdit, InEdit oder LiveEdit) ausgewertet als auch für das Content Highlighting des FirstSpirit SiteArchitect. Die identifizierbaren Formularelemente erhalten im ContentCreator eine EasyEdit- und eventuell eine InEdit- und LiveEdit-Bearbeitungsmöglichkeit (siehe dazu unterstützte Eingabekomponenten (InEdit) und Seite LiveEdit) und ermöglichen zugleich das Content Highlighting dieser Elemente im SiteArchitect – beides über die gleiche Vorlagenanpassung.
Ist das nicht erwünscht, muss innerhalb des HTML-Vorlagensatzes eine unterschiedliche Behandlung für SiteArchitect und ContentCreator implementiert werden (siehe Fallunterscheidung SiteArchitect/ContentCreator).

Leerprüfung

Es sollte vermieden werden, dass leere Tags für die editorId eines Elements angelegt werden. Dies kann dazu führen, dass kein Content Highlighting- bzw. EasyEdit-Rahmen gezeichnet wird. Tags sollten zumindest mit einem Stellvertreter-Inhalt (dies kann z. B. ein geschütztes Leerzeichen sein) ausgegeben werden.
Beispiel:

<div $CMS_VALUE(editorId())$>
<h3$CMS_VALUE(editorId(editorName:"st_headline"))$>
$CMS_IF(!st_headline.isEmpty)$
$CMS_VALUE(st_headline.convert2)$
$CMS_ELSE$ &nbsp; $CMS_END_IF$
</h3>
</div>

Für den Fall, dass st_headline leer ist, wird durch den $CMS_ELSE$-Aufruf im $CMS_IF(...)$-Konstrukt sichergestellt, dass ein Leerzeichen in das h3-Tag gesetzt und der Content Highlighting bzw. EasyEdit-Rahmen dargestellt wird.

Folgende Hervorhebungen können realisiert werden:

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