Verwendung / Ausgabe
Inhaltsverzeichnis |
Grundsätzlich sind die Möglichkeiten, die Inhalte, die mit dem FragmentCreator erfasst wurden, zu veröffentlichen und auch in anderen Systemen zu nutzen und weiterzuverarbeiten, aufgrund der formatneutralen Datenhaltung äußerst flexibel. Als Backend kann dazu FirstSpirit allein, oder aber quasi in Kombination mit jedem anderen System verwendet werden (Stichworte: „Headless CMS“, „Pull-Prinzip“).
Ausgabe per FirstSpirit-Backend
Eine Möglichkeit, Inhalte aus einem Fragment-Projekt zu veröffentlichen, ist der Weg über ein klassisches FirstSpirit-Projekt, in dem Fragmente aus dem Fragment-Projekt referenziert werden. Dies erfolgt über eine entsprechend konfigurierte FS_INDEX-Eingabekomponente (siehe dazu Seite Fragmente verwenden). Weitere Informationen zu FS_INDEX und ihrer Ausgabe siehe auch INDEX (→Online Dokumentation FirstSpirit).
Wie die Darstellung („Rendern“) der Daten der referenzierten Fragmente erfolgen soll, wird im FirstSpirit-Projekt definiert.
Dazu kann in der Ausgabe auf die in den Eingabekomponenten der Fragmente gespeicherten Daten über den jeweiligen Bezeichner (in den Beispielen auf dieser Seite: „title“ für den Titel, „language“ für die Sprache) zugegriffen werden.
Interface "Fragment"
getValues: Ausgabe der Datenobjekte
Die Ausgabe von Fragmenten, die über eine FS_INDEX-Komponente ausgewählt und gespeichert wurden, erfolgt zunächst über eine $CMS_FOR(...)$-Anweisung und die Methode getValues() (in Bean-Syntax: .values), z. B.
$CMS_FOR(fragment, st_fragments.values())$
wobei fragment der Variablenname für diese Anweisung ist und st_fragments der Bezeichner der betreffenden FS_INDEX-Komponente.
Rückgabe-Objekt: List
(siehe dazu auch List (Listen) (→Online Dokumentation FirstSpirit))
Auf dieser Liste können speziell folgende Methoden ausgeführt werden:
getId
Für jedes Fragment wird automatisch eine eindeutige ID vom System vergeben, anhand derer das Fragment identifiziert werden kann. Mit der Methode getId (in Bean-Syntax: .id) kann auf diese ID zugegriffen werden, z. B.
$CMS_VALUE(fragment.id)$
getRemote
Über die Methode getRemote (in Bean-Syntax: .remote) kann der symbolische Name des betreffenden Fragment-Projekts, wie er in der Remote-Konfiguration verwendet wird, ermittelt werden:
$CMS_VALUE(fragment.remote)$
Interface "Variant"
getVariants
Die Ausgabe der Varianten erfolgt über $CMS_FOR(...)$ und die Methode getVariants() (in Bean-Syntax: .variants). Dabei wird über den Variablenbezeichner der $CMS_FOR(...)$-Anweisung iteriert, die zur Ausgabe der Fragmente dient (in diesem Beispiel fragment). Durch die Zusammenfassung von Wertepaaren zu einer Map (siehe dazu Map (→Online Dokumentation FirstSpirit)) kann in der Ausgabe über die Elemente der Variantendimensionen iteriert werden:
$CMS_FOR(variant, fragment.variants({:}))$
getId
Für jede Variante wird automatisch eine eindeutige ID vom System vergeben, anhand derer die Variante identifiziert werden kann. Mit der Methode getId (in Bean-Syntax: .id) kann auf diese ID zugegriffen werden, z. B.
$CMS_VALUE(variant.id)$
getTitle
Auf den Titel einer Variante (siehe Seite Metadaten) kann mit der Methode getTitle() (in Bean-Syntax: .title) zugegriffen werden, z. B.
$CMS_VALUE(variant.title)$
getFormData
Die anderen Werte einer Variante können über die Methode getFormData() (in Bean-Syntax: .formData) ausgegeben werden (siehe dazu Zugriff auf FS_INDEX (→Online Dokumentation FirstSpirit)). Mit folgender vereinfachten Syntax kann wiederum auf den Inhalt eines FormField in der aktuell gerenderten Sprache zugegriffen werden:
.formData.markdown
wobei markdown der Bezeichner der Eingabekomponente in der Fragment-Vorlage ist, auf deren Inhalt zugegriffen werden soll.
getTags
Auf die Tags einer Variante (siehe Seiten FirstSpirit Tagging Editor und Konfiguration FS_TAGGING) kann mit .getTags() (in Bean-Syntax: .tags) zugegriffen werden.
Beispiel:
$CMS_VALUE(variant.tags)$
Ausgabe-Beispiel:
[#ceo, #teaser]
Rückgabe-Objekt: Collection
getProperties
Eine Variante kann mit .getProperties() (in Bean-Syntax: .properties) nach ihren Eigenschaften / ihrer Variantendimension befragt werden, z. B. die Sprachdimension. Diese können für eine Filterung herangezogen werden.
Beispiel:
$CMS_VALUE(variant.properties)$
Ausgabe-Beispiel:
{language=EN}
Syntax-Beispiel
Ein Beispiel zur Ausgabe von Fragmenten/Varianten könnte folgendermaßen lauten:
$CMS_FOR(fragment, st_fragments.values())$
Fragment: $CMS_VALUE(fragment.id)$<br />
<ul>
$CMS_FOR(variant, fragment.variants({:}))$
<li>
Variante: $CMS_VALUE(variant.title)$<br />
$CMS_VALUE(variant.formData.text)$
</li>
$CMS_END_FOR$
</ul>
$CMS_END_FOR$
Ausgabe über ein anderes Backend
Soll die Ausgabe über ein anderes Backendsystem als FirstSpirit erfolgen, muss im Ausgabekanal der Fragmente-Vorlage ebenfalls definiert werden, wie die erfassten Daten codiert und abgelegt werden sollen. Wie die Veröffentlichung und Darstellung („Rendern“) der Daten erfolgt, wird durch ein anderes System übernommen, in das die Daten eingespeist werden.
Zum Austausch von Fragmenten zwischen FirstSpirit-CXT und FirstSpirit CaaS wird JSON (JavaScript Object Notation) verwendet. Dazu muss der Ausgabekanal im Fragment-Projekt entsprechend angepasst werden. Siehe dazu Standardisierte JSON-Ausgabe (→Online Dokumentation FirstSpirit) und Unterstützung für JSON (→Dokumentation für Administratoren).
Beispiel zur Ausgabe (JSON)
Beispiel zur Ausgabe von Fragmenten / Varianten über JSON:
{
"fragmentUUid": "$CMS_VALUE(#global.page.parent.uid.replaceAll("_","-"))$",
"documentUUid": "$CMS_VALUE(#global.page.uid.replaceAll("_","-"))$",
"variation": $CMS_VALUE(#global.page.meta("variations").toJSON())$,
"title": $CMS_VALUE(#global.page.meta("title").toJSON())$,
"text": $CMS_VALUE(text.toHtml().toJSON())$,
"url": "$CMS_VALUE(url)$"
}