Hallo,
ich versuche gerade per XSLT eine Bildergalerie zu realisern. Die thumbnails sollen also in einer Tabelle mit zb. 5 Spalten angeordnet werden - mir ist nur gerade völlig unklar, wie ich nach genau 5 Bildern eine neue Zeile beginne.
Kann mir wer weiterhelfen?
Sagen wir, das XML sieht in etwas so aus:
<galerie>
<bild ... ></bild>
<bild ... ></bild>
<bild ... ></bild>
...
</galerie>
-------------------
<xsl:template match="galerie">
<table border="1">
<xsl:for-each select="bild[position() mod 5 = 1]">
<xsl:variable name="last">
<xsl:apply-templates select=". | following-sibling::bild[position() < 5]" mode="last" />
</xsl:variable>
<tr>
<xsl:apply-templates select=". | following-sibling::bild[position() < 5]" />
<xsl:if test="substring($last, 1, 1) < 5">
<xsl:call-template name="make_empty_cells">
<xsl:with-param name="count" select="5 - substring($last, 1, 1)"/>
</xsl:call-template>
</xsl:if>
</tr>
</xsl:for-each>
</table>
</xsl:template>
<xsl:template match="bild">
<td>
<img .... />
</td>
</xsl:template>
<xsl:template match="bild" mode="last">
<xsl:value-of select="last()" />
</xsl:template>
<xsl:template name="make_empty_cells">
<xsl:param name="count"/>
<xsl:if test="$count != 0">
<td> </td>
<xsl:call-template name="make_empty_cells">
<xsl:with-param name="count" select="$count - 1"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
---------------
Grüße
Thomas