contentSelect
Mithilfe der Funktion contentSelect können Datensätze aus der Datenquellen-Verwaltung ausgegeben und zur weiteren Verarbeitung genutzt werden.
Die Funktion bietet die Möglichkeit, Datensätze zu filtern und/oder zu sortieren.
Das Ergebnis (Rückgabewert) der Funktion ist eine Liste, die alle Datensätze enthält, auf die die Filterkriterien zutreffen. Diese kann z. B. über die Anweisung $CMS_FOR(...)$ ausgegeben werden (siehe Abschnitt Ausgabe).
Syntax der Funktion contentSelect
Der Grundaufbau der Funktion contentSelect sieht wie folgt aus:
<CMS_FUNCTION name="contentSelect" resultname="BEZEICHNER">
<CMS_PARAM name="schema" value="BEZEICHNER" />
<CMS_VALUE_PARAM name="BEZEICHNER" value="WERT" />
...
<QUERY entityType="BEZEICHNER">
<FILTERPARAM parameter="BEZEICHNER" datatype="DATENTYP" value="VORBELEGUNG" />
<FETCHMODE attribute="ATTRIBUT" lazy="NUMERISCHER_BOOLESCHER_WERT" />
<ORDERCRITERIA attribute="ATTRIBUT" descending="NUMERISCHER_BOOLESCHER_WERT" />
...
<EQ attribute="ATTRIBUT" parameter="BEZEICHNER" datatype="DATENTYP" value="WERT" />
<NEQ attribute="ATTRIBUT" parameter="BEZEICHNER" datatype="DATENTYP" value="WERT" />
<GT attribute="ATTRIBUT" parameter="BEZEICHNER" datatype="DATENTYP" value="WERT" />
<GTE attribute="ATTRIBUT" parameter="BEZEICHNER" datatype="DATENTYP" value="WERT" />
<LT attribute="ATTRIBUT" parameter="BEZEICHNER" datatype="DATENTYP" value="WERT" />
<LTE attribute="ATTRIBUT" parameter="BEZEICHNER" datatype="DATENTYP" value="WERT" />
<IS_NULL attribute="ATTRIBUT" parameter="BEZEICHNER" datatype="DATENTYP" value="WERT" />
<NOTNULL attribute="ATTRIBUT" parameter="BEZEICHNER" datatype="DATENTYP" value="WERT" />
<LIKE attribute="ATTRIBUT" parameter="BEZEICHNER" datatype="DATENTYP" value="WERT" />
<AND>
<EQ attribute="ATTRIBUT" parameter="BEZEICHNER" datatype="DATENTYP" value="WERT" />
...
<LIKE attribute="ATTRIBUT" parameter="BEZEICHNER" datatype="DATENTYP" value="WERT" />
<OR>
...
</OR>
...
</AND>
<OR>
<EQ attribute="ATTRIBUT" parameter="BEZEICHNER" datatype="DATENTYP" value="WERT" />
...
<LIKE attribute="ATTRIBUT" parameter="BEZEICHNER" datatype="DATENTYP" value="WERT" />
<AND>
...
</AND>
...
</OR>
...
</QUERY>
</CMS_FUNCTION>
Parameter der Funktion contentSelect
Die Funktion contentSelect lässt sich in einen Definitions- und einen Abfrageteil unterteilen.
Definitionsteil
Attribut | mögliche Werte | Pflichtparameter |
---|---|---|
schema | ja | |
beliebige Parameter | nein | |
Der Definitionsteil besteht aus folgenden Parametern:
schema
Mit dem Parameter schema wird das Datenbank-Schema angegeben, welches für die Abfrage genutzt werden soll.
Als Wert des Parameters wird der Referenzname des Datenbank-Schemas in der Datenquellen-Verwaltung angegeben:
<CMS_FUNCTION name="contentSelect" resultname="name">
<CMS_PARAM name="schema" value="KONSTANTE" />
...
</CMS_FUNCTION>
beliebige Parameter
Mit der Definition eines frei wählbaren Bezeichners können beliebig viele Ausdrücke der Abfrage als Parameter zur Verfügung gestellt werden.
Für den Bezeichner dürfen folgende Zeichen verwendet werden:
A bis Z, a bis z, 0 bis 9 und _.
Definition unter Angabe von Ausdrücken:
<CMS_FUNCTION name="contentSelect" resultname="name">
<CMS_VALUE_PARAM name="BEZEICHNER" value="AUSDRUCK" />
...
</CMS_FUNCTION>
Beispiel für die Definition der Parameter von und bis:
<CMS_FUNCTION name="contentSelect" resultname="name">
<CMS_VALUE_PARAM name="von" value="st_startDate" />
<CMS_VALUE_PARAM name="bis" value="#global.now" />
...
</CMS_FUNCTION>
Anmerkung: Bei st_startDate handelt es sich um eine Datums-Eingabekomponente (CMS_INPUT_DATE). Bei #global.now um den Startpunkt der Veröffentlichung.
Siehe dazu auch Seite Datenbank-Abfragen.
Abfrageteil
Der Abfrageteil wird mit einem QUERY-Tag begonnen. Das QUERY-Tag ist gleichzeitig das Wurzelelement der Abfrage.
Alle Tags, die zwischen dem öffnenden und schließenden QUERY-Tag angegeben werden, werden bei der Abfrage berücksichtigt.
Mit dem Parameter entityType wird der symbolische Tabellenname im Datenbank-Schema angegeben, damit die Abfrage auf die Datensätze der zugehörigen Datenbank-Tabelle angewendet werden kann.
Mit dem Parameter limit kann das Ergebnis der Abfrage auf eine bestimmte Anzahl an Datensätzen beschränkt werden.
Beispiel:
<CMS_FUNCTION name="contentSelect" resultname="name">
<CMS_PARAM name="schema" value="KONSTANTE" />
<QUERY entityType="BEZEICHNER" limit="10">
<.../>
</QUERY>
</CMS_FUNCTION>
QUERY-Tags
Die Tags, die innerhalb des QUERY-Tags verwendet werden können, können auf der Seite Datenbank-Abfragen nachgeschlagen werden:
- AND (Und-Verknüpfung von Abfragen)
- EQ (Gleichheitsprüfung)
- FETCHMODE (Ladeverhalten)
- FILTERPARAM (Definition von Vergleichswerten)
- GT (Größer-Prüfung)
- GTE (Größergleich-Prüfung)
- IS_NULL (Null-Prüfung)
- LIKE (Ähnlichkeitsprüfung).
- LT (Kleiner-Prüfung)
- LTE (Kleinergleich-Prüfung)
- NEQ (Ungleichheitsprüfung)
- NOTNULL
- OR (Oder-Verknüpfung von Abfragen)
- ORDERCRITERIA
Ausgabe
Das Ergebnis einer contentSelect-Funktion kann folgendermaßen ausgegeben werden:
$CMS_IF(!BEZEICHNER.isEmpty)$
$CMS_FOR(VARIABLE, BEZEICHNER)$
$CMS_VALUE(VARIABLE.fs_id)$: $CMS_VALUE(VARIABLE.SPALTENNAME)$
$CMS_END_FOR$
$CMS_END_IF$
Dabei ist
- BEZEICHNER der Bezeichner, der über den Parameter resultname definiert wird,
- VARIABLE ein Variablenname und
- SPALTENNAME der Name einer Tabellenspalte.