Typ DATABASE
Inhaltsverzeichnis |
zum Beispiel |
Mit dem Typ DATABASE ist es möglich, in einer mengenwertigen Eingabekomponente (z. B. CMS_INPUT_COMBOBOX) Datensätze aus einer Fremdtabelle automatisch einzufügen.
Handelt es sich um eine Datenquelle mit vielen Datensätzen (>100), wird aufgrund von Performanz-Vorteilen die Verwendung von FS_INDEX (mit DataAccessPlugin-Implementierung) empfohlen.
Mit FirstSpirit-Version 5.2R4 wird die Anzeige auf 100 Einträge beschränkt und es wird folgender Hinweis im Formular angezeigt: „Die verfügbaren Einträge wurden wegen Browser-Einschränkungen begrenzt. Diese Eingabekomponente ist für Datenmengen dieser Größe nicht geeignet.“ In der Anzeige werden Regeln darüber hinaus nur auf die darstellbaren Einträge angewendet.
Pflichtparameter
Pflichtparameter
Pflichtparameter
Pflichtparameter
Parameter
Bei dem Tag CMS_INCLUDE_OPTIONS handelt es sich um einen Container, mit dem Konfigurationen festgelegt werden können, um Einträge in eine Eingabekomponente automatisch einzufügen.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
type* | Ja | 4.2 | IncludeType | Keiner |
type
Mit dem Pflichtparameter type wird der Typ der Werte- bzw. Inhaltsinkludierung angegeben.
Folgende Typen werden unterstützt:
- LANGUAGE: gibt die Projektsprachen aus
- TEMPLATESET: gibt die Vorlagensätze des Projekts aus
- DATABASE: gibt den Inhalt von Datenquellen aus
- PUBLIC: gibt den Inhalt, der über eine öffentliche Schnittstelle zur Verfügung gestellt wird, aus
- Optionale Parameter
Optional können weitere optionale und Pflicht-Parameter bzw. -Tags verwendet werden (siehe unten).
Typ LANGUAGE
Mit dem Typ LANGUAGE ist es möglich, in einer mengenwertigen Eingabekomponente (z. B. CMS_INPUT_COMBOBOX) die im Projekt definierten Sprachen automatisch einzufügen.
- Pflichtparameter
Das Tag LANGUAGE benötigt keine weiteren Parameter. - Optionale Parameter
Optional zum Tag LANGUAGE können die Tags LABELS / LABEL verwendet werden (siehe unten).
Typ TEMPLATESET
Mit dem Typ TEMPLATESET ist es möglich, in einer mengenwertigen Eingabekomponente (z. B. CMS_INPUT_COMBOBOX) die im Projekt definierten Vorlagensätze automatisch einzufügen.
- Pflichtparameter
Das Tag TEMPLATESET benötigt keine weiteren Parameter. - Optionale Parameter
Optional zum Tag TEMPLATESET können die Tags LABELS / LABEL verwendet werden (siehe unten).
Typ DATABASE
Mit dem Typ DATABASE ist es möglich, in einer mengenwertigen Eingabekomponente (z. B. CMS_INPUT_COMBOBOX) Datensätze aus einer Fremdtabelle automatisch einzufügen.
- Pflichtparameter
Die Datenquelle, aus der die Daten geholt werden sollen, muss mit dem Tag TABLE angegeben werden (siehe unten). - Optionale Parameter
Optional zum Tag DATABASE können die Tags KEY und LABELS / LABEL verwendet werden (siehe unten).
Typ PUBLIC
FirstSpirit bietet die Möglichkeit, eigene Module zu entwickeln und zu implementieren. Über den Typ PUBLIC können Schnittstellen ("HotSpots") vom Typ "Public" angesprochen werden (weitere Informationen zu diesem Komponenten-Typ sowie zur Modul-Entwicklung in FirstSpirit siehe Modularchitektur / Komponentenmodel).
- Pflichtparameter
Der Name der HotSpot-Klasse muss mit dem Tag NAME angegeben werden (siehe unten). - Optionale Parameter
Optional zum Tag PUBLIC können die Tags PARAMS / PARAM sowie LABELS / LABEL verwendet werden (siehe unten).
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
type* | Ja | 4.2 | IncludeType | Keiner |
LABELS
Zu jedem Typ kann über das Tag LABELS eine sprachabhängige Beschriftung der einzelnen Werte definiert werden.
Für jede Sprache muss dazu ein Tag LABEL angegeben werden.
ACHTUNG: Es muss mindestens eine Definition für die Rückfallbeschriftung ("*") erfolgen:
<LABELS>
<LABEL lang="*">...</LABEL>
</LABELS>
LABEL
Mit dem Tag LABEL kann für jede Sprache eine flexible, sprachabhängige Beschriftung der einzelnen Optionen definiert werden.
Um die Beschriftung für eine Sprache festzulegen, ist im Parameter lang die Abkürzung der Projektsprache anzugeben:
...
<LABEL lang="DE">...</LABEL>
<LABEL lang="EN">...</LABEL>
...
Rückfallwerte werden mit dem speziellen Sprachkürzel * ("für alle Sprachen") angegeben:
...
<LABEL lang="*">...</LABEL>
...
Bei dem Parameter lang handelt es sich um einen Pflichtparameter.
Der Beschriftungstext wird innerhalb eines öffnenden und schließenden <LABEL>-Tag angegeben (siehe Platzhalter TEXT).
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
lang* | Ja | 4.2 | String | Keiner |
lang
Mit dem Parameter lang wird das Sprachkürzel, das in den Servereigenschaften im Feld Abkürzung eingetragen ist (siehe Sprach-Vorlagen (→Dokumentation für Administratoren)), angegeben, um festzulegen, für welche Projektsprachen die Definitionen gelten sollen, z. B. DE für Deutsch, EN für Englisch, FR für Französisch usw. Folgende Zeichen können dabei beliebig oft angegeben werden: -, _, 0-9 und A-Z. Kleinbuchstaben werden nach dem Speichern der Vorlage automatisch in Großbuchstaben umgewandelt. Alternativ kann * für Rückfallwerte verwendet werden.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
lang* | Ja | 4.2 | String | Keiner |
TEXT
An dieser Stelle wird der Beschriftungstext der auszuwählenden Werte definiert.
Dazu steht das Systemobjekt #item zur Verfügung. Über dieses kann die Beschriftung dynamisch ausgegeben werden.
Beim Typ DATABASE repräsentiert #item dabei z. B. die anzuzeigende Datenbankzeile der über das Tag TABLE definierten Tabellenvorlage. Eine Spalte der Datenbankzeile kann durch einen Punkt getrennt für die Beschriftung verwendet werden, wie z. B. im Beispiel #item.Headline_EN.
Weiterhin werden über den Ausdrucksmechanismus sprachspezifische Endungen automatisch gesetzt, sollten sie vorhanden sein, d. h. folgende Definition ist möglich:
<CMS_INCLUDE_OPTIONS type="DATABASE">
<TABLE>Products.press_releases</TABLE>
<LABELS>
<LABEL lang="*">#item.Headline + ", " + #item.Subheadline</LABEL>
</LABELS>
</CMS_INCLUDE_OPTIONS>
Dabei wird abhängig von der zu generierenden Sprache zunächst für die einzelnen Attribute nach Attributen mit Spracherweiterung gesucht (z. B. #item.Headline_DE für die Sprache DE), und, falls diese nicht vorhanden ist, dann nach einem Attribut mit dem gegebenen Namen.
Es ist darauf zu achten, dass der Spaltenname korrekt angegeben wird und die Spalten auch tatsächlich in der angegebenen Tabelle vorhanden ist, da sonst keine Werte zur Auswahl angezeigt werden. Bei Verwendung von KEY muss darüber hinaus darauf geachtet werden, dass die über LABEL und #item definierte dynamische Beschriftung zu der über KEY definierten Spalte passt. Ist dies nicht der Fall, erhält der Redakteur bei der Auswahl einer Option eine entsprechende Fehlermeldung. |
KEY
Über das optionale Tag KEY kann die Spalte der Datenquelle angegeben werden, die für die Speicherung des ausgewählten Wertes herangezogen werden soll. Es erwartet als Wert den Spaltennamen, wie er im Datenbank-Schema-Editor angegeben wurde und beispielsweise auf dem Register "Mapping" der jeweiligen Tabellenvorlage in den sprachabhängigen Spalten (DE, EN etc.) angezeigt wird. Ist keine Beschriftung der Werte über die allgemeinen Tags LABELS / LABEL definiert, wird die Beschriftung der über KEY angegebenen Spalte angezeigt.
Wird das Tag weggelassen, so wird der Primärschlüssel verwendet (Standard).
Dieser Parameter sollte nur dann verwendet werden, wenn der Benutzer selbst die Eindeutigkeit der Daten bei der Pflege der für KEY angegebenen Spalte gewährleisten kann! |
TEXT
An dieser Stelle wird die Tabellenspalte angegeben, und zwar innerhalb eines öffnenden und schließenden KEY-Tags:
<KEY>TABELLENSPALTE</KEY>
QUERY
Mit dem Tag QUERY kann eine Abfrage angegeben werden, anhand derer die Menge der Datensätze, aus denen mithilfe der Eingabekomponente ausgewählt werden kann, eingeschränkt wird.
Enthält die Abfrage den Platzhalter %lang% innerhalb eines ORDERCRITERIA-Tags, wird das ORDERCRITERIA-Tag ignoriert und im Log wird eine entsprechende Meldung angezeigt.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
name* | Ja | 4.2.410 | String | Keiner |
name
Über den Parameter name wird der Referenzname der Abfrage angegeben, z. B.
<QUERY name="query_products"/>
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
name* | Ja | 4.2.410 | String | Keiner |
PARAM
Sind für die über QUERY definierte Abfrage Parameter vorhanden (Register "Parameter" der Abfrage), kann diesen Parametern mit dem Tag PARAM ein Wert übergeben werden.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
name* | Ja | 4.2.404 | String | Keiner |
name
Mithilfe des Parameters name wird der Name des Abfrage-Parameters angegeben.
Parameter | Pflichtparameter | Seit | Typ | Standardwert |
---|---|---|---|---|
name* | Ja | 4.2.404 | String | Keiner |
TEXT
Der Wert des Abfrage-Parameters wird innerhalb eines öffnenden und schließenden PARAM-Tags angegeben, z. B.
<QUERY name="query_products">
<PARAM name="category">1088</PARAM>
</QUERY>
Dabei ist "category" ein für die Abfrage definierter Parameter, "1088" der Wert.
TABLE
Mit dem Tag TABLE wird die Referenz zur Tabellenvorlage angegeben.
Als Wert ist der eindeutige Bezeichner der Tabellenvorlage anzugeben.
Die Angabe der Referenz wird dafür benötigt, um festzulegen, aus welcher Tabelle ausgewählt werden kann und welche Eingabekomponenten dargestellt werden sollen.
TEXT
An dieser Stelle wird die Tabellenvorlage angegeben, und zwar innerhalb eines öffnenden und schließenden TABLE-Tags:
<TABLE>TABELLENVORLAGE</TABLE>
Beispiele
Ein Beispiel für die Verwendung von CMS_INCLUDE_OPTIONS, Typ DATABASE:
<CMS_INPUT_COMBOBOX name="BEZEICHNER" useLanguages="no">
<CMS_INCLUDE_OPTIONS type="DATABASE">
<LABELS>
<LABEL lang="*">#item.SPALTE</LABEL>
<LABEL lang="DE">#item.SPALTE_DE</LABEL>
</LABELS>
<TABLE>EINDEUTIGER _NAME_TABELLENVORLAGE</TABLE>
</CMS_INCLUDE_OPTIONS>
<LANGINFOS>
<LANGINFO lang="*" label="TEXT" description="TEXT"/>
<LANGINFO lang="DE" label="TEXT" description="TEXT"/>
</LANGINFOS>
</CMS_INPUT_COMBOBOX>
Dieses Beispiel gibt eine Combobox mit der Beschriftung TEXT aus, aus der die Datensätze der Datenquelle, die auf der über TABLE definierten Tabellenvorlage basiert, anhand der Spalte SPALTE sprachabhängig ausgewählt werden können.
Verwendungsbeispiele in der Vorlagensyntax
Das nachfolgende Beispiel stellt die Verwendung von CMS_INCLUDE_OPTIONS der Verwendung von CMS_INCLUDE_CONTENT gegenüber.
Eine Combobox, aus der die Pressemitteilungen einer Datenquelle (in diesem Beispiel: "Products.press_releases") anhand der Überschrift (in diesem Beispiel Spalte "Headline") sprachabhängig ausgewählt werden können, kann über CMS_INCLUDE_CONTENT folgendermaßen erzeugt werden:
<CMS_INPUT_COMBOBOX name="cs_pressReleases" useLanguages="no">
<CMS_INCLUDE_CONTENT table="Products.press_releases" type="entries">
<LABEL lang="*">#row.Headline</LABEL>
</CMS_INCLUDE_CONTENT>
<LANGINFOS>
<LANGINFO lang="DE" label="Pressemitteilung"/>
<LANGINFO lang="*" label="Press release"/>
</LANGINFOS>
</CMS_INPUT_COMBOBOX>
Die Syntax über CMS_INCLUDE_OPTIONS lautet entsprechend:
<CMS_INPUT_COMBOBOX name="cs_pressReleases" useLanguages="no">
<CMS_INCLUDE_OPTIONS type="DATABASE">
<LABELS>
<LABEL lang="*">#item.Headline</LABEL>
</LABELS>
<TABLE>Products.press_releases</TABLE>
</CMS_INCLUDE_OPTIONS>
<LANGINFOS>
<LANGINFO lang="DE" label="Pressemitteilung"/>
<LANGINFO lang="*" label="Press release"/>
</LANGINFOS>
</CMS_INPUT_COMBOBOX>
Je nach Anforderung können über LABEL auch mehrere Spalten angegeben werden, z.B.:
<CMS_INPUT_COMBOBOX name="cs_pressReleases2" useLanguages="no">
<CMS_INCLUDE_OPTIONS type="DATABASE">
<LABELS>
<LABEL lang="*">#item.Date.format("dd.MM.yyyy") + ": " + #item.Headline</LABEL>
</LABELS>
<TABLE>Products.press_releases</TABLE>
</CMS_INCLUDE_OPTIONS>
<LANGINFOS>
<LANGINFO lang="DE" label="Pressemitteilung"/>
<LANGINFO lang="*" label="Press release"/>
</LANGINFOS>
</CMS_INPUT_COMBOBOX>
Dieses Beispiel gibt eine Combobox mit der Beschriftung "Pressemitteilung" aus, aus der die Datensätze der Datenquelle, die auf der Tabellenvorlage "Products.press_releases" basiert, anhand der Überschrift (im Beispiel Spalte "Headline") und des Datums (im Beispiel Spalte "Date") sprachabhängig ausgewählt werden können. Datum und Überschrift werden durch einen Doppelpunkt voneinander getrennt, z.B.
08.07.2020: e-Spirit partnerships on the rise due to demand for rapid delivery ...
18.05.2020: e-Spirit partners with Commercetools to deliver immersive e-Commerce ...
21.04.2020: e-Spirit integriert mit SAP Spartacus
...