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.
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 | |
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. | nur ContentCreator |
entity | Übergabe eines Entity-Objekts | |
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). | |
element | Übergabe eines FirstSpirit-Objekts (vom Typ IDProvider) z. B. einer GCA (#global.gca(„...“)) oder eines Inhaltsbereichs (#global.page.body(„...“)). | |
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. | |
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.
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. | 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. | 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 | nur ContentCreator |
Wird kein Parameter übergeben, wird automatisch der aktuelle Kontext verwendet (z. B. der Absatz oder die Seite).
Siehe dazu auch Funktion editorID(...).
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$ $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:
Inhalte-Verwaltung
Datenquellen-Verwaltung
Andere Inhalte