XSLT paging, или XSLT пейджинг - по русски
Долго искал в рунете подходящее, в итоге написал сам. Статья о том, как с помощью xslt сделать пейджинг. Подразумевается что каждая статья имеет свой уникальный ID, и идут они по порядку.
Объявим переменные:
<xsl:value-of select="$base_address" />
<!– Первая страница –>
<xsl:param name="page" select="1″/>
<!– Сколько статей на странице –>
<xsl:param name="limitperpage" select="7″/>
<!– Всего статей. Не всегда получается узнать, но если известно - хорошо. Служит, чтобы на последней (при листинге) странице не было ссылки "дальше" –>
<xsl:param name="limitrss" select="51″/>
Далее внутри шаблона самого:
<xsl:choose>
<!– Проверяем, не первая ли это страница, если нет, то выводим ссылку назад –>
<xsl:when test="$page > $limitperpage">
<xsl:element name="a">
<xsl:attribute name="href">
<xsl:value-of select="$base_address" />/page_<xsl:value-of select="$page - $limitperpage"/>
</xsl:attribute>
Назад
</xsl:element>
</xsl:when>
</xsl:choose>
<!– Следующая страница –>
<xsl:choose>
<!– Проверяем, не последняя ли это страница, если нет, выводим next –>
<xsl:when test="$page < $limitrss">
<xsl:element name="a">
<xsl:attribute name="href"><xsl:value-of select="$base_address" />/page_<xsl:value-of select="$page+$limitperpage"/>
</xsl:attribute>
Следующая
</xsl:element>
</xsl:when>
</xsl:choose>
Ну и если неизвестно сколько всего записей, то тогда просто:
<xsl:element name="a">
<xsl:attribute name="href"><xsl:value-of select="$base_address" />/page_<xsl:value-of select="$page+$limitperpage"/>
</xsl:attribute>
Следующая
</xsl:element>