Felder "Kennsatz" und "Ausriss"
Inhaltsverzeichnis |
Über das Feld Kennsatz kann die Eingabekomponente angegeben werden, die für den Titel des Teasers verwendet werden soll.
Über das Feld Ausriss kann die Eingabekomponente angegeben werden, die für den Textausschnitt des Teasers verwendet werden soll.
Bleiben diese Felder leer, werden standardmäßig der Name des Objekts und der Pfad angezeigt, im Falle von Datensätzen der Name der Datenquelle und die ID des Datensatzes, getrennt durch ein #-Zeichen, z. B.„Pressemitteilungen: #128“
Schnipseldefinition
Die Schnipseldefinition erfolgt allgemein über die Angabe eines Variablennamens einer in der Vorlage definierten Eingabekomponente.
Um das zurückgelieferte Objekt manipulieren zu können, können Methoden eingesetzt werden, die mit $CMS_VALUE(...)$ verwendet werden können. Die verwendbaren Methoden sind dabei abhängig vom zurückgelieferten Objekttyp. So werden die einzelnen Einträge von Listen beispielsweise zumeist über die Methode map(String) ausgegeben (siehe dazu beispielsweise Datentyp List).
Beispiel
für die Ausgabe von Inhalten einer Eingabekomponente vom Typ CMS_INPUT_DOM:
BEZEICHNER.toText(false)
Dabei ist BEZEICHNER der Variablenname einer Eingabekomponente vom Typ CMS_INPUT_DOM.
Kombination
Die Inhalte mehrerer Eingabekomponenten können über ein Plus-Zeichen (+) verknüpft werden.
Statischer Text
Darüber hinaus kann statischer Text innerhalb von Anführungszeichen (" ") angegeben werden. Bei der Kombination mehrerer Ausgaben durch ein Plus-Zeichen sollte ein Trennzeichen vorgesehen werden (z. B. Leerzeichen: " "). Beispiele siehe weiter unten.
Beispiele nach Komponente
Folgende Tabelle listet beispielhaft Ausgabemöglichkeiten für einige Eingabekomponenten auf:
Eingabekomponente | Ausgabe über | Anmerkung |
---|---|---|
BEZEICHNER.map(x | BEZEICHNER2 ist ein Variablenname einer in der FS_CATALOG Eingabekomponente verwendeten Vorlage | |
FS_CATALOG | BEZEICHNER.snippets.map(x | Ausgabe eines Schnipsel Feldes durch die Angabe von |
CMS_INPUT_CHECKBOX / | BEZEICHNER | gibt eine Liste der über die Eingabekomponente gewählten Werte aus (Parameter value) |
BEZEICHNER.map(x->x.label(#language)).toString(", ") | gibt die Label (Oberflächenbeschriftung) der über die Eingabekomponente gewählten Werte kommasepariert aus (Parameter label) | |
CMS_INPUT_COMBOBOX / CMS_INPUT_RADIOBUTTON | BEZEICHNER | gibt den über die Eingabekomponente gewählten Wert aus (Parameter value) |
BEZEICHNER.label(#language) | gibt das Label (Oberflächenbeschriftung) des über die Eingabekomponente gewählten Wertes aus (Parameter label) | |
BEZEICHNER.dataset.formData.BEZEICHNER2 | BEZEICHNER2 ist ein Variablenname eines über FS_DATASET ausgewählten Datensatzes | |
BEZEICHNER.toText(false) | gibt den im DOM-Editor gespeicherten Text aus | |
BEZEICHNER.values.map(x | BEZEICHNER2 ist ein Variablenname der über das DatasetDataAccessPlugin verknüpften Tabellenvorlage | |
BEZEICHNER.map(x.getItem().BEZEICHNER2.values.map(y | BEZEICHNER2 ist der name der FS_INDEX Eingabekomponente, BEZEICHNER3 der Name einer Eingabekomponente der darin enthaltenen Tabellenvorlage | |
BEZEICHNER.text | gibt den Verweistext des über CMS_INPUT_LINK erstellten Verweises aus | |
CMS_INCLUDE_OPTIONS
| In Verbindung mit CMS_INCLUDE_OPTIONS gelten prinzipiell die oben angegebenen Beispiele für die genannten Eingabekomponenten. | |
FS_REFERENCE | BEZEICHNER.Media.Filename | gibt den Referenznamen des über FS_REFERENCE referenzierten Bildes / Datei aus |
FS_REFERENCE | BEZEICHNER.pageRef.uid | gibt den Referenznamen der über FS_REFERENCE referenzierten Seitenreferenz aus |
BEZEICHNER.pageRef.page.formData.BEZEICHNER2 | gibt den Inhalt der Eingabekomponente mit dem Bezeichner BEZEICHNER2 aus, die in der Seite (Inhalte-Verwaltung) zu der über FS_REFERENCE gewählten Seitenreferenz enthalten ist | |
Die Verwendung von Objekten vom Datentyp Entity innerhalb von Schnipseln wird nicht unterstützt. |
Kürzung und Formatierung
Wird nichts anderes angegeben, wird standardmäßig der gesamte Inhalt der in den Feldern „Kennsatz“ und „Ausriss“ angegebenen Eingabekomponenten ausgegeben. Daher empfiehlt es sich, wenn möglich, im Falle von Text-Eingabekomponenten bereits die Zeichenanzahl zu beschränken (z. B. durch maxInputLength oder maxCharacters, siehe beispielsweise für CMS_INPUT_TEXT).
Alternativ kann der Parameter truncate verwendet werden. Über diesen kann angegeben werden, wie viele Zeichen angezeigt werden sollen. Umfasst der in der Eingabekomponente gespeicherte Text mehr Zeichen als über truncate angegeben, werden drei Punkte (...) an die Ausgabe angehängt.
truncate(BEZEICHNER, 25)
Diese Angabe kürzt die Ausgabe des Textes der Eingabekomponente mit dem Bezeichner BEZEICHNER auf 25 Zeichen.
Mithilfe der Parameter bold(BEZEICHNER) und italic(BEZEICHNER) werden Texte fett bzw. kursiv ausgegeben. Im Feld „Kennsatz“ hat der Parameter bold keine Auswirkung, da die als Titel ausgegebenen Texte in der Regel prinzipiell fett dargestellt werden.
Beispiel
italic(truncate(if(!pt_headline.isEmpty, pt_headline), 30) +
if(!pt_headline.isEmpty && !pt_subheadline.isEmpty, " / ") +
truncate(if(!pt_subheadline.isEmpty, pt_subheadline), 15))
In diesem Fall wird der Inhalt der Eingabekomponenten pt_headline sowie pt_subheadline in kursiver Schrift ausgegeben (sofern sie nicht leer sind), getrennt durch einen Schrägstrich mit Leerzeichen:
FirstSpirit Hybrid CMS / Content Management mit dem Hybrid CMS von Crownpeak
Neben diesen allgemeingültigen Attributen können abhängig vom jeweiligen Objekttyp Methoden ausgeführt werden, mit denen die Ausgabe zusätzlich formatiert werden kann. Folgende Tabelle listet beispielhaft Formatierungsmöglichkeiten für einige Eingabekomponenten auf:
Formatierung | Parameter / Methode | Eingabekomponente |
---|---|---|
fett | bold(BEZEICHNER) | |
kursiv | italic(BEZEICHNER) | |
Kürzen | truncate(BEZEICHNER, ZAHL) | |
Groß-/Kleinbuchstaben | ||
Zahlen-/Datumsformat | ||
Anzeige der Datensatz-ID
Im Falle von Datensätzen kann auch die Datensatz-ID für die Schnipsel-Darstellung genutzt werden und zwar über die Angabe von
#id
Die Schnipsel-Definition für Pressemitteilungen inklusive der jeweiligen Datensatz-ID kann in der betreffenden Tabellenvorlage beispielsweise folgendermaßen lauten:
Kennsatz:
"Pressemitteilung " + italic(#id)
Verwendung von Beschriftungen aus (Fremd-)Tabellen ("label")
Sind über CMS_INCLUDE_OPTIONS beispielsweise in CMS_INPUT_COMBOBOX Werte aus einer (Fremd-)Tabelle auswählbar, kann über label(#language) im Suchergebnis die Bezeichnung, die aus der (Fremd-)Tabelle stammt, angezeigt werden. (Zu #language / #global.language siehe diese Seite.)
Beispiel Formular A
<CMS_INPUT_TEXT name="cs_branch" singleLine="no" useLanguages="no">
<LANGINFOS>
<LANGINFO lang="*" label="City"/>
<LANGINFO lang="DE" label="Stadt"/>
</LANGINFOS>
</CMS_INPUT_TEXT>
<CMS_INPUT_COMBOBOX name="cs_country_choice" singleLine="no" useLanguages="no">
<CMS_INCLUDE_OPTIONS type="database">
<LABELS>
<LABEL lang="*">#item.Name</LABEL>
</LABELS>
<TABLE>country</TABLE>
</CMS_INCLUDE_OPTIONS>
<LANGINFOS>
<LANGINFO lang="*" label="Country"/>
<LANGINFO lang="DE" label="Land"/>
</LANGINFOS>
</CMS_INPUT_COMBOBOX>
wobei country eine Fremdtabelle (siehe unten) ist. Über cs_branch werden Städtenamen gespeichert, über die Combobox cs_country_choice wird ein Land aus der Fremdtabelle ausgewählt.
Beispiel Formular B (Tabelle country)
<CMS_INPUT_TEXT name="cs_country" singleLine="no" useLanguages="yes">
<LANGINFOS>
<LANGINFO lang="*" label="Country"/>
<LANGINFO lang="DE" label="Land"/>
</LANGINFOS>
</CMS_INPUT_TEXT>
Unter cs_country (Spalte Name) werden Ländernamen gespeichert.
Beispiel Schnipsel
if(!cs_country_choice.isEmpty, cs_country_choice.label(#language))
Mit diesem Ausdruck wird bei der Suche nach einem Wert, der in Formular A über die Combobox mit dem Bezeichner cs_country_choice ausgewählt wurde, als Ergebnis der Text, der in Formular B in der Spalte Name für den gewählten Eintrag gespeichert ist, angezeigt.
Wurde also beispielsweise in Formular A für cs_branch der Wert „Dortmund“ und über cs_country_choice der Wert „Deutschland“ ausgewählt, kann bei einer Suche nach „Dortmund“ als Textausschnitt statt dem Namen der Datenquelle B der Wert „Deutschland“ angezeigt werden.
Ausgabe von UID, Anzeigename oder GID über #item
Das Objekt #item steht auf dem Register „Schnipsel“ in den Feldern „Kennsatz“ und „Ausriss“ zur Verfügung und gibt das jeweilige Baumelement zurück. Auf diesem können wiederum die objektspezifische Methoden aus dem Interface IDProvider (FirstSpirit Access-API, Package de.espirit.firstspirit.access.store) angewendet werden.
Hinweis: Das Objekt #item steht nicht im Datentyp Card zur Verfügung.
In Ausnahmefällen, beispielsweise beim Anlegen von Objekten, steht #item nicht zur Verfügung, und es wird eine Warning vom Typ java.lang.UnsupportedOperationException bzw. java.lang.RuntimeException geloggt (Expression failed). Dies sollte bei der Vorlagenentwicklung berücksichtigt werden. |
UID oder Anzeigename ausgeben
#item.getDisplayName(#language)
Gibt den Anzeigename des betreffenden Objekts in der jeweiligen Sprache aus.
#item.Uid
Gibt die UID des betreffenden Objekts aus.
#item.getDisplayName(#language)
"[UID:" + " " +italic(#item.getUid) + "]"
GID ausgeben (Datensätze)
Enthält das Baumelement weitere FirstSpirit-Objekte in Form von Datensätzen (z. B. FS_INDEX mit einem DatasetDataAccessPlugin), kann über #item auf die GID (Global ID) der Datensätze zugegriffen werden.
Die GID eines Datensatzes lässt sich über
#item.getEntity().getGid()
ausgeben.
Ausgabe des aktuellen Datums über #now
Das Objekt #now liefert das aktuelle Datum zum Abfragezeitpunkt zurück.
"valid " + if(cs_newsdate > #now,"from ","since ") + cs_newsdate.format("MM/dd/yy")
Vergleicht das aktuelle Datum mit dem Datum aus einer Eingabekomponente CMS_INPUT_DATE.