Startseite / Vorlagenentwicklung / Vorlagensyntax / Funktionen / im Header / contentSelect

contentSelect

Inhaltsverzeichnis
Syntax

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 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>
Wichtig Zu allgemeinen Hinweisen zur Syntax von Header-Funktionen siehe einleitende Seite Funktionen.

Parameter

Die Funktion contentSelect lässt sich in einen Definitions- und einen Abfrageteil unterteilen:

Definitionsteil

Attribut

mögliche Werte

schema

Konstante

queryUid

Konstante

beliebige Parameter

Ausdrücke

  

Die Angabe von schema oder queryUid ist Pflicht.

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 angegeben:

<CMS_FUNCTION name="contentSelect" resultname="name">
<CMS_PARAM name="schema" value="KONSTANTE" />
...
</CMS_FUNCTION>

queryUid

Alternativ zum Datenbank-Schema, das über den Parameter schema angegeben wird, kann auch direkt eine Abfrage angegeben werden.

Als Wert des Parameters wird der Referenzname der Abfrage erwartet.

Syntax:

<CMS_FUNCTION name="contentSelect" resultname="name">
<CMS_PARAM name="queryUid" value="KONSTANTE" />
</CMS_FUNCTION>

Beispiel:

<CMS_FUNCTION name="contentSelect" resultname="myContentSelectFunction">
<CMS_PARAM name="queryUid" value="mySchema.myQuery"/>
</CMS_FUNCTION>

Hinweis: Wird für den Definitionsteil queryUid verwendet, ist keine Definition eines Abfrageteils per <QUERY> erforderlich.
Wird queryUid mit

  • einem <QUERY>Tag oder
  • <CMS_PARAM name="schema".../>

zusammen definiert, kommt es zu einem speicherverhindernden Syntaxfehler.

Hinweis: Nur, wenn die Abfrage als Konstante definiert wird, wird über die contentSelect-Funktion eine ausgehende Referenz von der Vorlage auf die Abfrage erzeugt.

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 (nur für 'schema')

Die Definition des Abfrageteils ist nur in Verbindung mit schema erforderlich, nicht wenn queryUid verwendet wird.
Der Abfrageteil 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

Tipp: Abfragen bieten auf dem Register Bedingungen einen Assistenten, über den Abfragen einfach über eine grafische Oberfläche erstellt werden können. Der resultierende Quellcode kann dann als Grundlage für den <QUERY/>-Teil der contentSelect-Funktion verwendet werden.

Ausgabe

Das Ergebnis einer contentSelect-Funktion kann folgendermaßen ausgegeben werden:

$CMS_IF(!BEZEICHNER.isEmpty)$
$CMS_FOR(VARIABLE, BEZEICHNER)$
$CMS_VALUE(VARIABLE.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.

© 2005 - 2022 Crownpeak Technology GmbH | Alle Rechte vorbehalten. | FirstSpirit 2022.10 | Datenschutz