Startseite / Vorlagenentwicklung / Vorlagensyntax / Systemobjekte / #index

#index

Das Systemobjekt #index steht in Vorlagen zur Verfügung, die von den Elementen einer

verwendet werden. Anders ausgedrückt: wenn ein Absatz oder ein Verweis in einer dieser Eingabekomponenten gerendert wird, ist das Systemobjekt in der referenzierten Absatz- bzw Verweisvorlage verfügbar.

Wird in einer Vorlage #index verwendet und diese außerhalb von FS_CATALOG gerendert, so ist die Rückgabe null. Dies wird als Fehler im Vorschau-/Generierungs-Log protokolliert. Daher wird empfohlen, vor der Verwendung des Systemobjektes #index zu überprüfen, ob es nicht null ist:

$CMS_IF(!#index.isNull)$
...
$CMS_END_IF$

Das Systemobjekt #index ermittelt, welche Nummer das gerade gerenderte Element in der FS_CATALOG-Eingabekomponente hat oder anders: der wievielte Absatz bzw. Verweis gerendert wird. Die Zählung beginnt mit 0.

Wichtig Das Systemobjekt #index steht bei der Ausgabe einer FS_CATALOG-Eingabekomponente mit einer $CMS_FOR(...)$-Anweisung nicht zur Verfügung! Die Ausgabe der Anzahl der Elemente in der Eingabekomponente lässt sich aber auch in der Anweisung mit #for.index realisieren:
$CMS_FOR(section, pt_sectionlist)$
$CMS_VALUE(#for.index + 1)$/$CMS_VALUE(pt_sectionlist.size)$: $CMS_VALUE(section)$
$CMS_END_FOR$

Der Rückgabewert von #index ist vom Datentyp Integer (Ganzzahl).

Beispiele zu #index

Nachfolgend werden einige Beispiele zur Verwendung der Anweisung innerhalb von Vorlagen gezeigt. Die Beispiele sollen die konkrete Auswirkung der Anweisung verdeutlichen und eine Hilfe für den Vorlagenentwickler bei der Erstellung eigener Vorlagen sein.

Wichtig Für die Verwendung innerhalb eines Projekts, müssen die hier gezeigten Beispiele angepasst werden! Beispielsweise müssen Variablennamen auf die spezifischen Variablennamen des Projekts geändert werden, in dem die Anweisung verwendet werden soll.

1. Beispiel: Nummerierte Ausgabe von Absätzen

Definition der FS_CATALOG-Eingabekomponente (Formular):

<CMS_MODULE>
<FS_CATALOG name="st_catalog">
<LANGINFOS>
<LANGINFO lang="*" label="Section list"/>
</LANGINFOS>
<TEMPLATES type="section">
<TEMPLATE uid="text"/>
</TEMPLATES>
</FS_CATALOG>
</CMS_MODULE>

Aufruf der Eingabekomponente (HTML-Vorlagensatz):

$CMS_VALUE(st_catalog)$

Definition der Absatzvorlage („text“, Formular):

<CMS_MODULE>
<CMS_INPUT_TEXT name="st_text">
<LANGINFOS>
<LANGINFO lang="*" label="Text"/>
</LANGINFOS>
</CMS_INPUT_TEXT>
</CMS_MODULE>

Nummerierte Ausgabe in der Absatzvorlage (HTML-Vorlagensatz):

<CMS_HEADER />
$CMS_IF(!#index.isNull && !#fs_catalog.size.isNull)$
$CMS_VALUE(#index + 1)$/$CMS_VALUE(#fs_catalog.size)$:
$CMS_END_IF$
$CMS_VALUE(st_text)$
<br>

Das Beispiel gibt neben dem Wert der Text-Eingabekomponente noch den Index (um eins erhöht) und die Gesamtanzahl der Absätze aus (z. B. „1/3“).

Ausgabe:

1/3: 1. Absatz
2/3: 2. Absatz
3/3: 3. Absatz

© 2005 - 2024 Crownpeak Technology GmbH | Alle Rechte vorbehalten. | FirstSpirit 2024.4 | Datenschutz