Table
Verwendung der Funktion Table
Der Inhalt einer DOMTABLE-Eingabekomponente kann mit den Formatvorlagen mit den Kürzeln table, tr und td ausgeben werden. Die Anwendung der Formatvorlagen wird in der Reihenfolge Formatvorlage table einmal für die Tabelle, tr für jede Zeile und td für jede Zelle vorgenommen.
Somit kann eine Tabelle mit wenig Aufwand unter der Verwendung der $CMS_VALUE(...)$-Anweisung ausgegeben werden:
$CMS_VALUE(BEZEICHNER)$
Die Ausgabe mit Hilfe von Formatvorlagen ist sinnvoll, wenn in einem Projekt alle Tabellen den gleichen Aufbau und das gleiche Aussehen haben sollen.
Sollen jedoch Tabellen mit unterschiedlichem oder komplexem Aussehen erzeugt werden, kann dies mit der Funktion Table realisiert werden.
Werden in der Funktion Table für die Tabelle (z. B. fehlende HEADERSPEC-Angabe), eine Zeile (z. B. fehlende ROW-Angabe) oder eine Zelle (z. B. fehlende COL-Angabe) keine Definition angegeben, so werden die Standard-Formatvorlagen für Tabellen angewendet. Für die Tabelle wird dann die Formatvorlage mit dem Kürzel table, für eine Zeile die Formatvorlage mit dem Kürzel tr und für eine Zelle die Formatvorlage mit dem Kürzel td verwendet. |
Syntax der Table-Funktion
Der Grundaufbau der Funktion Table sieht wie folgt aus:
<CMS_FUNCTION name="Table" resultname="BEZEICHNER">
<CMS_PARAM name="tableData" value="BEZEICHNER" />
<CMS_NODE_PARAM name="tableFormat">
<HEADERSPEC><![CDATA[...$CMS_VALUE(#content)$...]]></HEADERSPEC>
<ROWSPEC name="BEZEICHNER"><![CDATA[...$CMS_VALUE(#content)$...]]></ROWSPEC>
<ROW number="GANZZAHL"><![CDATA[...$CMS_VALUE(#content)$...]]></ROW>
<ROW number="GANZZAHL-GANZZAHL"><![CDATA[...$CMS_VALUE(#content)$...]]></ROW>
<ROW number="GANZZAHL-%n"><![CDATA[...$CMS_VALUE(#content)$...]]></ROW>
<ROW number="ODD"><![CDATA[...$CMS_VALUE(#content)$...]]></ROW>
<ROW number="EVEN"><![CDATA[...$CMS_VALUE(#content)$...]]></ROW>
<ROW number="ALL"><![CDATA[...$CMS_VALUE(#content)$...]]></ROW>
<ROW number="ALL" spec="BEZEICHNER" />
<CELLSPEC name="BEZEICHNER"><![CDATA[...$CMS_VALUE(#content)$...]]></CELLSPEC>
<CELL row="GANZZAHL" col="GANZZAHL"><![CDATA[...$CMS_VALUE(#content)$...]]></CELL>
<CELL row="GANZZAHL-GANZZAHL" col="GANZZAHL-GANZZAHL"><![CDATA[...$CMS_VALUE(#content)$...]]></CELL>
<CELL row="GANZZAHL-%n" col="GANZZAHL-%n"><![CDATA[...$CMS_VALUE(#content)$...]]></CELL>
<CELL row="ODD" col="ODD"><![CDATA[...$CMS_VALUE(#content)$...]]></CELL>
<CELL row="EVEN" col="EVEN"><![CDATA[...$CMS_VALUE(#content)$...]]></CELL>
<CELL row="ALL" col="ALL"><![CDATA[...$CMS_VALUE(#content)$...]]></CELL>
<CELL row="ALL" col="ALL" filltype="FILLED"><![CDATA[...$CMS_VALUE(#content)$...]]></CELL>
<CELL row="ALL" col="ALL" filltype="EMPTY"><![CDATA[...$CMS_VALUE(#content)$...]]></CELL>
<CELL row="ALL" col="ALL" spec="BEZEICHNER" />
</CMS_NODE_PARAM>
</CMS_FUNCTION>
Bei den Parametern tableData und tableFormat handelt es sich um Pflichtparameter. |
Innerhalb der Tags im Parameter tableFormat sind Systemobjekte verfügbar. Die verfügbaren Systemobjekte können der nachfolgenden Tabelle entnommen werden:
HEADERSPEC | verfügbar | nicht verfügbar | verfügbar |
ROWSPEC | verfügbar | nicht verfügbar | verfügbar |
ROW | verfügbar | nicht verfügbar | verfügbar |
CELLSPEC | verfügbar | verfügbar | verfügbar |
CELL | verfügbar | verfügbar | verfügbar |
Parameter der Table-Funktion
Die Table-Funktion verfügt über folgende Parameter:
- tableData
- tableFormat
Der Parameter tableFormat ist zusätzlich in Tags unterteilt:
- HEADERSPEC
- ROWSPEC
- ROW
- CELLSPEC
- CELL
Parameter tableData
Mit dem Pflichtparameter tableData werden die in einer DOMTABLE-Eingabekomponente eingepflegten Daten der Table-Funktion zur Verfügung gestellt.
Als Wert für den Parameter ist der Bezeichner der Eingabekomponente anzugeben:
<CMS_INPUT_DOMTABLE name="st_table">
...
</CMS_INPUT_DOMTABLE>
<CMS_FUNCTION name="Table" resultname="fr_st_table">
<CMS_PARAM name="tableData" value="st_table" />
...
</CMS_FUNCTION>
Parameter tableFormat
Im Pflichtparameter tableFormat werden die anzuwendenden Formatierungen für die Tabelle angegeben.
Hierfür stehen zur Beschreibung der Formatierung folgende Tags zur Verfügung:
- CELL
- CELLSPEC
- HEADERSPEC
- ROW
- ROWSPEC
Tag CELL
Mit dem Tag CELL wird die Ausgabedefinition einer Zelle festgelegt.
Mit den Pflichtattributen col und row werden die Zeilen und Spalten angegeben, für die die Definition gelten soll.
Mögliche Werte für die Attribute col und row sind:
- ALL (Alle)
gilt für alle Zeilen/Spalten - EVEN (Gerade)
gilt für alle geraden Zeilen/Spalten - LAST (Letztes Element)
gilt für die letzte Zeile/Spalte;
Synonym für die Angabe des Platzhalters %n als Konstante - ODD (Ungerade)
gilt für alle ungeraden Zeilen/Spalten - GANZZAHL (Konstante)
gilt für die angegebene Zeile/Spalte;
wobei der Platzhalter %n für die letzte Zeile/Spalte verwendet werden kann (Synonym für LAST). - GANZZAHL-GANZZAHL (Bereich)
gilt für den angegebenen Bereich von Zeilen/Spalten;
wobei der Platzhalter %n für die letzte Zeile/Spalte verwendet werden kann.
Die Auswertung der angegebenen Parameter erfolgt von speziellen (GANZZAHL) zu allgemeinen (ALL) Werten. Es wird die erste zutreffende Definition ausgeben. Zu beachten ist, dass der Wert LAST und die Angabe des Platzhalters %n für GANZZAHL gleichbehandelt werden.
Beispiel:
<CMS_FUNCTION name="Table" resultname="fr_st_table">
<CMS_PARAM name="tableData" value="st_table" />
<CMS_NODE_PARAM name="tableFormat">
...
<CELL col="ALL" row="ALL"><![CDATA[<td colspan="$CMS_VALUE(#cell.colspan)$" rowspan="$CMS_VALUE(#cell.rowspan)$">$CMS_VALUE(#content)$</td>]]></CELL>
</CMS_NODE_PARAM>
</CMS_FUNCTION>
Die im Beispiel angegebene CELL-Definition wird auf alle Spalten und Zeilen angewendet.
Zusätzlich zu den Pflichtattributen können die beiden optionalen Attribute filltype und spec verwendet werden.
Mit der Angabe des Attributes filltype wird bei der Ausgabe berücksichtigt, ob der Inhalt einer Zelle gefüllt oder nicht gefüllt ist.
Um eine Definition nur auf gefüllte Zellen anzuwenden ist als Wert FILLED anzugeben. Für leere Zellen muss EMPTY angegeben werden
Beispiel:
<CMS_FUNCTION name="Table" resultname="fr_st_table">
<CMS_PARAM name="tableData" value="st_table" />
<CMS_NODE_PARAM name="tableFormat">
<HEADERSPEC><![CDATA[<table>$CMS_VALUE(#content)$</table>]]></HEADERSPEC>
<ROW number="ALL"><![CDATA[<tr>$CMS_VALUE(#content)$</tr>]]></ROW>
<CELL col="ALL" row="ALL" filltype="FILLED"><![CDATA[<td colspan="$CMS_VALUE(#cell.colspan)$" rowspan="$CMS_VALUE(#cell.rowspan)$">GEFÜLLT</td>]]></CELL>
<CELL col="ALL" row="ALL" filltype="EMPTY"><![CDATA[<td colspan="$CMS_VALUE(#cell.colspan)$" rowspan="$CMS_VALUE(#cell.rowspan)$">LEER</td>]]></CELL>
</CMS_NODE_PARAM>
</CMS_FUNCTION>
Mit dem Beispiel wird für eine Zelle mit Inhalt die Ausgabe: GEFÜLLT ausgegeben und für eine Zelle ohne Inhalt die Ausgabe: LEER ausgegeben.
Das optionale Attribut spec wendet eine CELLSPEC-Definition auf die angegebenen Zelle an. Damit die Definition angewendet wird müssen die Bezeichner übereinstimmen:
<CMS_FUNCTION name="Table" resultname="fr_st_table">
<CMS_PARAM name="tableData" value="st_table" />
<CMS_NODE_PARAM name="tableFormat">
...
<CELLSPEC name="cell"><![CDATA[<td colspan="$CMS_VALUE(#cell.colspan)$" rowspan="$CMS_VALUE(#cell.rowspan)$">$CMS_VALUE(#content)$</td>]]></CELLSPEC>
<CELL col="ALL" row="ALL" spec="cell" />
</CMS_NODE_PARAM>
</CMS_FUNCTION>
Bei der Verwendung des Attributes spec, darf dass CELL-Tag keinen CDATA-Block enthalten! |
Tag CELLSPEC
Beim Tag CELLSPEC handelt es sich um eine benannte Zellenvorlage, die in einem CELL-Tag verwendet werden kann. Hierzu wird der beim Attribut name vergebene Bezeichner im CELL-Tag verwendet:
<CMS_FUNCTION name="Table" resultname="fr_st_table">
<CMS_PARAM name="tableData" value="st_table" />
<CMS_NODE_PARAM name="tableFormat">
...
<CELLSPEC name="cell"><![CDATA[<td colspan="$CMS_VALUE(#cell.colspan)$" rowspan="$CMS_VALUE(#cell.rowspan)$">$CMS_VALUE(#content)$</td>]]></CELLSPEC>
<CELL col="ALL" row="ALL" spec="cell" />
</CMS_NODE_PARAM>
</CMS_FUNCTION>
Tag HEADERSPEC
Beim Tag HEADERSPEC handelt es sich um die Basisvorlage für eine Tabelle, da sie das Grundgerüst der Tabelle enthält. Wird eine Tabelle erzeugt, so wird einmal HEADERSPEC ausgewertet und für jede Zeile die zutreffendste ROW-Definition und für jede Zelle die zutreffendste CELL-Definition.
Üblicherweise enthält die Definition für eine HTML-Tabelle das öffnende und schließende table-Tag, sowie $CMS_VALUE(#content)$ für den Inhalt der Tabelle:
<CMS_FUNCTION name="Table" resultname="fr_st_table">
<CMS_PARAM name="tableData" value="st_able" />
<CMS_NODE_PARAM name="tableFormat">
<HEADERSPEC><![CDATA[<table>$CMS_VALUE(#content)$</table>]]></HEADERSPEC>
...
</CMS_NODE_PARAM>
</CMS_FUNCTION>
Tag ROW
Mit dem Tag ROW wird die Ausgabe einer Zeile festgelegt.
Mit dem Pflichtattribut number werden die Zeilen angegeben, für die die Definition gelten soll.
Mögliche Werte für das Attribut number sind:
- ALL (Alle)
gilt für alle Zeilen/Spalten - EVEN (Gerade)
gilt für alle geraden Zeilen/Spalten - LAST (Letztes Element)
gilt für die letzte Zeile/Spalte;
Synonym für die Angabe des Platzhalters %n als Konstante - ODD (Ungerade)
gilt für alle ungeraden Zeilen/Spalten - GANZZAHL (Konstante)
gilt für die angegebene Zeile/Spalte;
wobei der Platzhalter %n für die letzte Zeile/Spalte verwendet werden kann (Synonym für LAST). - GANZZAHL-GANZZAHL (Bereich)
gilt für den angegebenen Bereich von Zeilen/Spalten;
wobei der Platzhalter %n für die letzte Zeile/Spalte verwendet werden kann.
Die Auswertung der angegebenen Parameter erfolgt von speziellen (GANZZAHL) zu allgemeinen (ALL) Werten. Es wird die erste zutreffende Definition ausgeben. Zu beachten ist, dass der Wert LAST und die Angabe des Platzhalters %n für GANZZAHL gleichbehandelt werden.
Beispiel:
<CMS_FUNCTION name="Table" resultname="fr_st_table">
<CMS_PARAM name="tableData" value="st_table" />
<CMS_NODE_PARAM name="tableFormat">
...
<ROW number="ALL"><![CDATA[<tr>$CMS_VALUE(#content)$</tr>]]></ROW>
</CMS_NODE_PARAM>
</CMS_FUNCTION>
Die im Beispiel angegebene ROW-Definition wird auf alle Zeilen angewendet.
Das optionale Attribut spec wendet eine ROWSPEC-Definition auf die angegebenen Zelle an. Damit die Definition angewendet wird, müssen die Bezeichner übereinstimmen:
<CMS_FUNCTION name="Table" resultname="fr_st_table">
<CMS_PARAM name="tableData" value="st_table" />
<CMS_NODE_PARAM name="tableFormat">
...
<ROWSPEC name="row"><![CDATA[<tr>$CMS_VALUE(#content)$</tr>]]></ROWSPEC>
<ROW number="ALL" spec="row" />
</CMS_NODE_PARAM>
</CMS_FUNCTION>
Bei der Verwendung des Attributes spec, darf dass ROW-Tag keinen CDATA-Block enthalten! |
Tag ROWSPEC
Beim Tag ROWSPEC handelt es sich um eine benannte Zeilenvorlage, die in einem ROW-Tag verwendet werden kann. Hierzu wird der beim Attribut name vergebene Bezeichner im ROW-Tag verwendet:
<CMS_FUNCTION name="Table" resultname="fr_st_table">
<CMS_PARAM name="tableData" value="st_table" />
<CMS_NODE_PARAM name="tableFormat">
...
<ROWSPEC name="row"><![CDATA[<tr>$CMS_VALUE(#content)$</tr>]]></ROWSPEC>
<ROW number="ALL" spec="row" />
</CMS_NODE_PARAM>
</CMS_FUNCTION>