Absatzvorlage
Soll die Medien-Galerie-Funktion in der Inhalte-Verwaltung zur Verfügung stehen, muss eine entsprechende Absatzvorlage erstellt werden. Dazu wird die Eingabekomponente CMS_INPUT_OBJECTCHOOSER verwendet, über die auf Datensätze aus der Galerie-Tabelle zugegriffen werden kann.
Als Wert für den Parameter table ist dabei der eindeutige Bezeichner der Galerie-Tabellenvorlage anzugeben.
Die Eingabekomponente kann so konfiguriert werden, dass bestehende Einträge aus der Galerie-Tabelle ausgewählt oder neue Datensätze in der Galerie-Tabelle angelegt werden können.
Um dem Redakteur die Auswahl zu bieten, ob die Daten (d.h. Name, Beschreibung, Teaserbild(er)) einer gewählten Galerie aus der Galerie-Tabelle übernommen oder eigene Daten für diesen Absatz gepflegt werden sollen, wird eine Absatzvorlage mit zwei Registern realisiert. Gibt der Redakteur Daten im Register "Absatzgebundene Galerie-Einstellungen" ein, werden diese auf der Webseite ausgegeben. Bleibt das Register leer, werden die Daten des Registers "Galerie" ausgegeben.
In den folgenden Beispielen wird die Unterscheidung zwischen den "absatzgebundenen Daten" und den Daten aus der Galerie-Tabelle durch das Anhängen von _ABSATZ für absatzgebundene Daten und von _TABELLE für die Daten, die über die Eingabekomponente CMS_INPUT_OBJECTCHOOSER aus der Galerie-Tabelle ausgewählt wird, verdeutlicht. |
Beispiel HTML-Register:
$CMS_IF(isSet(GALERIENAME_ABSATZ) && !GALERIENAME_ABSATZ.isEmpty)$
$CMS_SET(_galleryName, GALERIENAME_ABSATZ)$
$CMS_ELSE$
$CMS_SET(_galleryName, GALERIEDATEN_TABELLE.name)$
$CMS_END_IF$
In diesem Beispiel wird geprüft, ob das Feld "Galerie-Name" im Absatz (Variable GALERIENAME_ABSATZ) ausgefüllt ist. Ist das Feld in den "Absatzgebundenen Einstellungen" ausgefüllt, wird der eingegebene Wert verwendet, ist das Feld leer, wird der Name aus der Galerie-Tabelle verwendet.
Für die Galerie-Beschreibung und Teaser kann ebenso verfahren werden.
Beispiel-Formular Absatzvorlage
<CMS_MODULE>
<CMS_GROUP tabs="top">
<CMS_GROUP>
<LANGINFOS>
<LANGINFO lang="DE" label="Absatzgebundene Galerie-Einstellungen"/>
<LANGINFO lang="*" label="Section based gallery settings"/>
</LANGINFOS>
<CMS_INPUT_TEXT name="GALERIENAME_ABSATZ" singleLine="no" useLanguages="yes">
<LANGINFOS>
<LANGINFO lang="DE" label="Galerie-Name" description="Überschrift der Galerie"/>
<LANGINFO lang="*" label="Gallery Name" description="Set a name for the selected gallery"/>
</LANGINFOS>
</CMS_INPUT_TEXT>
<CMS_INPUT_TEXTAREA name="GALERIEBESCHREIBUNG_ABSATZ" allowEmpty="yes" useLanguages="yes">
<LANGINFOS>
<LANGINFO lang="DE" label="Galeriebeschreibung" description="Galeriebeschreibung"/>
<LANGINFO lang="*" label="Gallery Description" description="Gallery Description"/>
</LANGINFOS>
</CMS_INPUT_TEXTAREA>
<CMS_INPUT_PICTURE
name="TEASER_ABSATZ"
allowEmpty="yes"
imagePreview="yes"
lean="mandatory"
upload="yes"
useLanguages="no">
<LANGINFOS>
<LANGINFO lang="DE" label="Teaserbild" description="Teaserbild"/>
<LANGINFO lang="*" label="Teaser" description="Teaser"/>
</LANGINFOS>
</CMS_INPUT_PICTURE>
</CMS_GROUP>
<CMS_GROUP>
<CMS_INPUT_OBJECTCHOOSER
name="GALERIEDATEN_TABELLE"
allowChoose="yes"
allowEdit="yes"
delete="yes"
hFill="yes"
table="GALERIETABELLE"
useLanguages="no">
<LANGINFOS>
<LANGINFO lang="DE" label="Galerie" description="Galerie wählen/hinzufügen/entfernen"/>
<LANGINFO lang="*" label="Gallery" description="Gallery select/add/remove"/>
</LANGINFOS>
</CMS_INPUT_OBJECTCHOOSER>
</CMS_GROUP>
</CMS_MODULE>