Aus dem Veranstaltungskalender www.evangelische-termine.de lassen sich sehr individuell gestaltete und auf Ihre Bedürfnisse abgestimmte Exporte erstellen. Über sogenannte "Format-Definitionsdateien" wird gesteuert, was ausgegeben wird. Sie enthalten die Logik und die Anweisungen für die Gestaltung. Eine ausführliche Einführung und Anleitung, wie diese Format-Definitionsdateien erstellt werden, finden Sie im Online-Handbuch unter http://handbuch.evangelische-termine.de/exporte/manueller-export.
In diesem Beitrag möchte ich Ihnen ein Beispiel zeigen, das über die Basisfunktionen hinausgeht und etwas Grundwissen voraussetzt.
Ortsnamen ändern und neu sortieren
Das wollen wir erreichen: Wir möchten unsere Veranstaltungsorte in dem Export anders benennen als in evangelische-termine.de angelegt. Zudem soll der Export alphabetisch nach diesen anderen Bezeichnungen sortiert werden.
So geht es:
1. Kopieren Sie sich das Grundgerüst der Format-Definitionsdatei aus dem Handbuch (Punkt 2) und umgeben Sie den HTML-Quelltext mit {template:base} und {template: end} (siehe Punkt 6.1). Fügen Sie nun zwischen </html> und {template:end} folgendes ein, um die Änderungen vorzunehmen:
<et:modifications>
<_place_NAME source="_place_ID">
<item>687|Neue Ortsbezeichnung A</item>
<item>485|Neue Ortsbezeichnung B</item>
<item>2897|Neue Ortsbezeichnung C</item>
</_place_NAME>
</et:modifications>
Dieser Abschnitt bedeutet, dass der Name des Veranstaltungsortes mit der entsprechenden _place_ID mit dem Wert hinter dem "|"-Zeichen ersetzt wird. Hier müssen Sie natürlich ihre eigenen Werte einsetzen. Die Ids finden Sie auf ihrer Veranstaltungsorts-Liste. Sie können beliebig viele Ersetzungen vornehmen.
2. Fügen Sie anschließend in den Inhaltsbereich zwischen <div id="content"> und </div> folgendes ein:
<xsl:variable name="sortedVeranstaltungen">
<xsl:for-each select="Veranstaltung">
<xsl:sort select="_place_NAME"/>
<xsl:sort select="START"/>
<xsl:copy-of select="." />
</xsl:for-each>
</xsl:variable>
Dies erstellt eine sogenannte Variable, die Ihre Veranstaltungen nach der neuen Ortsbezeichnung und anschließend nach dem zeitlichen Beginn sortiert.
3. Direkt danach können Sie dann eine Schleife angeben, die diese sortierte Liste ausgibt:
<xsl:for-each select="exsl:node-set($sortedVeranstaltungen)/Veranstaltung">
{ifnotprev:_place_NAME}<br /><strong>{elem:_place_NAME}</strong>{ifnotprev:end}
<br />{elem:DATUM} - {elem:_event_TITLE}
</xsl:for-each>
Das Element "ifnotprev" gibt den Ortsnamen nur aus, wenn er das erste Mal vorkommt. Selbstverständlich können Sie hier weitere Werte einer Veranstaltung mit dem {elem: }-Element ausgeben.
Hier können Sie die ganze
.