editorId(...)
Die Funktion editorId(...) ermöglicht die Verwendung von Content Highlighting und EasyEdit im JavaClient bzw. WebClient. Diese Funktionen dienen zum Ansteuern und Bearbeiten von formularbasierten Store-Elementen und Eingabekomponenten innerhalb der Vorschauansichten per Formular, EasyEdit/InEdit sowie Drag & Drop.
Die vollständige Dokumentation mit Anwendungsbeispielen und Hinweisen zur Verwendung in JavaClient und WebClient 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-Ausgabekanal) 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-Ausgabekanal hervorgehoben wird - unabhängig davon, ob der Redakteur diesen Inhalt im JavaClient oder im WebClient 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-Ausgabekanal erfolgen:
<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 auch die Übergabe weiterer Parameter möglich.
Parameter für editorId()-Aufrufe
- 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).
Beispiele siehe Vorlagenanpassung für mehrwertige Eingabekomponenten (FS_LIST) und
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: Über den Parameter „target“ kann (analog zum Parameter „element“) ein FirstSpirit-Objekt übergeben werden. Dabei können über „target“ nicht nur Objekte vom Typ IDProvider, sondern auch weitere FirstSpirit-Objekte (z. B. ein FormDataList-Objekt aus der Iteration über einen FS_LIST-Absatz) ü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.
Soll beispielsweise ein einzelner Editor innerhalb einer FS_LIST-Eingabekomponente identifiziert werden, benötigt der editorId()-Aufruf folgende Informationen: - Parameter „element“: Objekt, das eine FS_LIST enthält
- Parameter „target“: FormDataList-Objekt des FS_LIST-Absatzes
- Parameter „editorName“: Name der Eingabekomponente des FS_LIST-Absatzes
- Einige dieser Informationen können automatisch aus dem Generierungskontext ermittelt werden und müssen daher innerhalb der Vorlage nicht mehr übergeben werden.
Beispiel siehe Vorlagenanpassung für mehrwertige Eingabekomponenten (FS_LIST).
Ein weiteres Beispiel für die Verwendung des Parameters „target“ ist die Identifizierung eines Datensatzes. - resolution: Dieser Parameter ist nur für die Darstellung im WebClient relevant.
Über diesen Parameter kann die Bildzuschnittsfunktion im WebClient aktiviert werden. Siehe dazu Bildzuschnitt im WebClient. - reloadPreview: Dieser Parameter ist nur für die Darstellung im WebClient relevant.
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 WebClient ausgeschaltet. - editorName: Übergabe der UID einer Eingabekomponente.
Beispiel siehe Vorlagenanpassung für Eingabekomponenten. - meta: Dieser Parameter ist nur für die Darstellung im WebClient relevant. 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 WebClient ausgeschaltet (Beispiele siehe Metadaten bearbeiten).
Hinweis: Das Attribut meta:true kann nur zusammen mit dem Parameter editorName verwendet werden. Beim übergebenen editorName muss es sich um die UID einer Eingabekomponente aus der Metadaten-Vorlage handeln.
Wird kein Parameter übergeben, wird automatisch der aktuelle Kontext verwendet (z. B. der Absatz oder die Seite).
Die Editor-Identifier werden sowohl beim Bearbeiten im WebClient (per EasyEdit oder InEdit) ausgewertet als auch für das Content Highlighting des FirstSpirit JavaClients. Die identifizierbaren Formularelemente erhalten im WebClient eine EasyEdit- und eventuell eine InEdit-Bearbeitungsmöglichkeit (siehe dazu unterstützte Eingabekomponenten (InEdit)) und ermöglichen zugleich das Content Highlighting dieser Elemente im JavaClient – beides über die gleiche Vorlagenanpassung. Ist das nicht erwünscht, muss innerhalb des HTML-Ausgabekanals eine unterschiedliche Behandlung für JavaClient und WebClient implementiert werden (siehe Fallunterscheidung JavaClient/WebClient). |
Folgende Hervorhebungen können realisiert werden:
Inhalte-Verwaltung
Datenquellen-Verwaltung
Andere Inhalte