Ausgabe und Navigation
Um die Medien einer Galerie in der vom Redakteur definierten Reihenfolge auszugeben, muss in der Struktur-Verwaltung eine Content-Projektion angelegt werden, also eine Seitenreferenz, die auf einer Seite aus der Inhalte-Verwaltung mit eingebundener Datenquelle beruht. Diese Projektion enthält alle Medien, so dass generell nur eine Projektion pro Projekt erforderlich ist.
Im Folgenden werden die unterschiedlichen Einstellungen in der Struktur-Verwaltung für die Content-Projektion von Einzel-Galerien und Galerie-Übersichten erläutert:
Darstellung von Einzel-Galerien
Zur Darstellung von Einzel-Galerien muss eine Content-Projektion mit der Medien-Tabelle angelegt werden.
Auf dem Register "Daten" der Seitenreferenz mit der Content-Projektion wird zunächst eine Sortierung nach dem Attribut fs_id (Galerien-ID), anschließend eine Sortierung nach dem Attribut indexAttribute vorgenommen, in dem die Reihenfolge, die der Redakteur für die jeweilige Galerie definiert hat, gespeichert ist.
Navigation
Der Navigationsmechanismus zum Blättern durch die Galerie wird in der Medien-Tabellenvorlage festgelegt, und zwar über die Funktion PageGroup (im HTML-Kanal).
Beim Blättern muss sichergestellt werden, dass die Navigation innerhalb einer Galerie nur über die Medien möglich ist, die auch zur jeweiligen Galerie gehören.
Beim Aufruf der nächsten Seite der Seitengruppe über den Parameter nextAvailable muss dazu geprüft werden, ob der Wert von indexAttribute des aktuellen Datensatzes der Galerie-Tabelle kleiner als die Anzahl der Datensätze der Galerie-Tabelle ist. Ist er kleiner, wird zum nächsten Medium weitergeblättert, ansonsten wird im gegebenen Beispiel zur Galerie-Übersicht (mit der Seitenreferenz "REFERENZNAME_CONTENTPROJEKTION") verlinkt.
Beim Aufruf der vorherigen Seite über den Parameter previousAvailable muss geprüft werden, ob der Wert von indexAttribute des aktuellen Datensatzes der Galerie-Tabelle größer oder gleich 1 ist. Ist er größer oder gleich 1, kann zum vorherigen Medium weitergeblättert werden, ansonsten wird im gegebenen Beispiel zur Galerie-Übersicht (mit der Seitenreferenz "REFERENZNAME_CONTENTPROJEKTION") verlinkt.
Beispiel für eine Prüfung der folgenden Seite:
<CMS_CDATA_PARAM name="nextAvailable"><![CDATA[
$CMS_IF(#row.BEZEICHNER_GALERIETABELLE.FREMDSCHLUESSEL_GALERIETABELLE_MEDIENTABELLE.size > (#row.REIHENFOLGE_MEDIENAUSWAHLLISTE + 1))$
<a href="$CMS_REF(#nav.ref)$">></a>
$CMS_ELSE
<a href="$CMS_REF(pageref:"REFERENZNAME_CONTENTPROJEKTION")$">></a>
$CMS_END_IF$]]>
</CMS_CDATA_PARAM>
Beispiel Navigation:
<CMS_FUNCTION name="PageGroup" resultname="BEZEICHNER">
<CMS_CDATA_PARAM name="firstAvailable"><![CDATA[<a href="$CMS_REF(#nav.ref)$">|<</a> ]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="firstNotAvailable"><![CDATA[|<]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="lastAvailable"><![CDATA[<a href="$CMS_REF(#nav.ref)$"> >|</a>]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="lastNotAvailable"><![CDATA[>|]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="previousAvailable"><![CDATA[
$CMS_IF(#row.REIHENFOLGE_MEDIENAUSWAHLLISTE >= 1)$
<a href="$CMS_REF(#nav.ref)$"><</a>
$CMS_ELSE
<a href="$CMS_REF(pageref:"REFERENZNAME_CONTENTPROJEKTION")$"><</a>
$CMS_END_IF$]]>
</CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="previousNotAvailable"><![CDATA[<]]></CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="nextAvailable"><![CDATA[
$CMS_IF(#row.BEZEICHNER_GALERIETABELLE.FREMDSCHLUESSEL_GALERIETABELLE_MEDIENTABELLE.size > (#row.REIHENFOLGE_MEDIENAUSWAHLLISTE + 1))$
<a href="$CMS_REF(#nav.ref)$">></a>
$CMS_ELSE
<a href="$CMS_REF(pageref:"REFERENZNAME_CONTENTPROJEKTION")$">></a>
$CMS_END_IF$]]>
</CMS_CDATA_PARAM>
<CMS_CDATA_PARAM name="nextNotAvailable"><![CDATA[>]]></CMS_CDATA_PARAM>
</CMS_FUNCTION>
Darstellung von Galerie-Übersichten
Falls Kategorien festgelegt und durch den Redakteur zugewiesen wurden, können Galerien auch nach diesen gefiltert ausgegeben werden.
Für jede Kategorie muss eine Menüebene mit einer Content-Projektion angelegt werden. Im Gegensatz zur Einzel-Galerie muss für diese Content-Projektion die Galerie-Tabelle verwendet werden.
Auf dem Register "Daten" der Seitenreferenz mit der Content-Projektion wird dann die für die jeweilige Kategorie vordefinierte Abfrage (vgl. Anlegen eines Datenbank-Schemas) ausgewählt.