<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <!-- Red and White XSLT --> <xsl:variable name="BASEURL"> <xsl:value-of select="$baseUrl"/> </xsl:variable> <xsl:variable name="PATH"> <xsl:value-of select="$path"/> </xsl:variable> <xsl:variable name="thisPid" select="$collectionPid"/> <xsl:variable name="thisTitle" select="$collectionTitle"/> <xsl:variable name="size" select="20"/> <xsl:variable name="page" select="$hitPage"/> <xsl:variable name="start" select="((number($page) - 1) * number($size)) + 1"/> <xsl:variable name="end" select="($start - 1) + number($size)"/> <xsl:variable name="cellsPerRow" select="4"/> <xsl:variable name="count" select="count(sparql/results/result)"/> <xsl:template match="/"> <xsl:if test="$count>0"> <table cellpadding="3" cellspacing="3" width="90%"> <tr> <td colspan="{$cellsPerRow}"> <div STYLE="text-align: center;"> <xsl:choose> <xsl:when test="$end >= $count and $start = 1"> <xsl:value-of select="$start"/>- <xsl:value-of select="$count"/> of <xsl:value-of select="$count"/>  <br /> </xsl:when> <xsl:when test="$end >= $count"> <xsl:value-of select="$start"/>- <xsl:value-of select="$count"/> of <xsl:value-of select="$count"/>  <br /> <a> <xsl:attribute name="href"> <xsl:value-of select="$BASEURL"/>/fedora/repository/ <xsl:value-of select="$thisPid"/>/-/ <xsl:value-of select="$thisTitle"/>/ <xsl:value-of select="$page - 1"/> </xsl:attribute> <<Prev </a> </xsl:when> <xsl:when test="$start = 1"> <xsl:value-of select="$start"/>- <xsl:value-of select="$end"/> of <xsl:value-of select="$count"/>  <br /> <a> <xsl:attribute name="href"> <xsl:value-of select="$BASEURL"/>/fedora/repository/ <xsl:value-of select="$thisPid"/>/-/ <xsl:value-of select="$thisTitle"/>/ <xsl:value-of select="$page + 1"/> </xsl:attribute> Next>> </a> </xsl:when> <xsl:otherwise> <xsl:value-of select="$start"/>- <xsl:value-of select="$end"/> of <xsl:value-of select="$count"/>  <br /> <a> <xsl:attribute name="href"> <xsl:value-of select="$BASEURL"/>/fedora/repository/ <xsl:value-of select="$thisPid"/>/-/ <xsl:value-of select="$thisTitle"/>/ <xsl:value-of select="$page - 1"/> </xsl:attribute> <<Prev </a>  <a> <xsl:attribute name="href"> <xsl:value-of select="$BASEURL"/>/fedora/repository/ <xsl:value-of select="$thisPid"/>/-/ <xsl:value-of select="$thisTitle"/>/ <xsl:value-of select="$page + 1"/> </xsl:attribute> Next>> </a> </xsl:otherwise> </xsl:choose> </div> <br clear="all" /> </td> </tr> <!--<xsl:for-each select="/sparql/results/result[position()>=$start and position() <=$end]"> <xsl:variable name='OBJECTURI' select="object/@uri"/> <xsl:variable name='PID' select="substring-after($OBJECTURI,'/')"/> <tr> <td> <img> <xsl:attribute name="src"><xsl:value-of select="$BASEURL"/>/fedora/repository/<xsl:value-of select="$PID"/>/TN </xsl:attribute> </img> <a> <xsl:attribute name="href"><xsl:value-of select="$BASEURL"/>/fedora/repository/<xsl:copy-of select="$PID"/>/-/<xsl:value-of select="title"/> </xsl:attribute> <xsl:value-of select="title"/> </a> </td> </tr> </xsl:for-each>- --> <xsl:apply-templates select="sparql/results"/> </table> <br clear="all" /> <div STYLE="text-align: center;"> <xsl:choose> <xsl:when test="$end >= $count and $start = 1"> <xsl:value-of select="$start"/>- <xsl:value-of select="$count"/> of <xsl:value-of select="$count"/>  <br /> </xsl:when> <xsl:when test="$end >= $count"> <xsl:value-of select="$start"/>- <xsl:value-of select="$count"/> of <xsl:value-of select="$count"/>  <br /> <a> <xsl:attribute name="href"> <xsl:value-of select="$BASEURL"/>/fedora/repository/ <xsl:value-of select="$thisPid"/>/-/ <xsl:value-of select="$thisTitle"/>/ <xsl:value-of select="$page - 1"/> </xsl:attribute> <<Prev </a> </xsl:when> <xsl:when test="$start = 1"> <xsl:value-of select="$start"/>- <xsl:value-of select="$end"/> of <xsl:value-of select="$count"/>  <br /> <a> <xsl:attribute name="href"> <xsl:value-of select="$BASEURL"/>/fedora/repository/ <xsl:value-of select="$thisPid"/>/-/ <xsl:value-of select="$thisTitle"/>/ <xsl:value-of select="$page + 1"/> </xsl:attribute> Next>> </a> </xsl:when> <xsl:otherwise> <xsl:value-of select="$start"/>- <xsl:value-of select="$end"/> of <xsl:value-of select="$count"/>  <br /> <a> <xsl:attribute name="href"> <xsl:value-of select="$BASEURL"/>/fedora/repository/ <xsl:value-of select="$thisPid"/>/-/ <xsl:value-of select="$thisTitle"/>/ <xsl:value-of select="$page - 1"/> </xsl:attribute> <<Prev </a>  <a> <xsl:attribute name="href"> <xsl:value-of select="$BASEURL"/>/fedora/repository/ <xsl:value-of select="$thisPid"/>/-/ <xsl:value-of select="$thisTitle"/>/ <xsl:value-of select="$page + 1"/> </xsl:attribute> Next>> </a> </xsl:otherwise> </xsl:choose> </div> </xsl:if> </xsl:template> <xsl:template match="sparql/results"> <xsl:for-each select="result[position() mod $cellsPerRow = 1 and position()>=$start and position() <=$end]"> <tr> <xsl:apply-templates select=". | following-sibling::result[position() < $cellsPerRow]"/> </tr> </xsl:for-each> </xsl:template> <xsl:template match="result"> <xsl:variable name='OBJECTURI' select="object/@uri"/> <xsl:variable name='PID' select="substring-after($OBJECTURI,'/')"/> <xsl:variable name="newTitle" > <xsl:call-template name="replace-string"> <xsl:with-param name="text" select="title"/> <xsl:with-param name="from" select="'_'"/> <xsl:with-param name="to" select="' '"/> </xsl:call-template> </xsl:variable> <xsl:variable name="linkUrl"> <xsl:choose> <xsl:when test="(content='Collection' or content='Community')"> <xsl:value-of select="$BASEURL"/>/fedora/repository/ <xsl:copy-of select="$PID"/>/-/ <xsl:value-of select="title"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$BASEURL"/>/fedora/repository/ <xsl:copy-of select="$PID"/>/OBJ/ <xsl:value-of select="title"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <td valign="top" width="25%"> <a> <xsl:attribute name="href"> <xsl:value-of select="$BASEURL"/>/fedora/repository/ <xsl:copy-of select="$PID"/>/-/ <xsl:value-of select="title"/> </xsl:attribute> <img> <xsl:attribute name="src"> <xsl:value-of select="$BASEURL"/>/fedora/repository/ <xsl:value-of select="$PID"/>/TN </xsl:attribute> <xsl:attribute name="alt"> <xsl:value-of select="$newTitle"/> </xsl:attribute> </img> </a> <br clear="all" /> <a> <xsl:attribute name="href"> <xsl:value-of select="$BASEURL"/>/fedora/repository/ <xsl:copy-of select="$PID"/>/-/ <xsl:value-of select="title"/> </xsl:attribute> <xsl:value-of select="$newTitle"/> </a> </td> <xsl:if test="(position() = last()) and (position() < $cellsPerRow)"> <xsl:call-template name="FillerCells"> <xsl:with-param name="cellCount" select="$cellsPerRow - position()"/> </xsl:call-template> </xsl:if> </xsl:template> <xsl:template name="FillerCells"> <xsl:param name="cellCount"/> <td> </td> <xsl:if test="$cellCount > 1"> <xsl:call-template name="FillerCells"> <xsl:with-param name="cellCount" select="$cellCount - 1"/> </xsl:call-template> </xsl:if> </xsl:template> <xsl:template name="replace-string"> <xsl:param name="text"/> <xsl:param name="from"/> <xsl:param name="to"/> <xsl:choose> <xsl:when test="contains($text, $from)"> <xsl:variable name="before" select="substring-before($text, $from)"/> <xsl:variable name="after" select="substring-after($text, $from)"/> <xsl:variable name="prefix" select="concat($before, $to)"/> <xsl:value-of select="$before"/> <xsl:value-of select="$to"/> <xsl:call-template name="replace-string"> <xsl:with-param name="text" select="$after"/> <xsl:with-param name="from" select="$from"/> <xsl:with-param name="to" select="$to"/> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="$text"/> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet>