<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:s="http://www.w3.org/2001/sw/DataAccess/rf1/result" 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(s:sparql/s:results/s:result)"/> <xsl:template match="/"> <xsl:if test="$count>0"> <table cellpadding="3" cellspacing="3"> <tr> <td colspan="{$cellsPerRow}"> <div 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:apply-templates select="s:sparql/s:results"/> </table> <br clear="all" /> <div 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="s:sparql/s:results"> <xsl:for-each select="s:result[position() mod $cellsPerRow = 1 and position()>=$start and position() <=$end]"> <tr> <xsl:apply-templates select=". | following-sibling::s:result[position() < $cellsPerRow]"/> </tr> </xsl:for-each> </xsl:template> <xsl:template match="s:result"> <xsl:variable name='OBJECTURI' select="s: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="s: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="s:title"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$BASEURL"/>/fedora/repository/ <xsl:copy-of select="$PID"/>/ <xsl:value-of select="s:title"/>/ <xsl:value-of select="s:title"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <td valign="top" width="25%"> <img> <xsl:attribute name="src"> <xsl:value-of select="$BASEURL"/>/fedora/repository/ <xsl:value-of select="$PID"/>/TN </xsl:attribute> </img> <br clear="all" /> <xsl:value-of select="$newTitle"/> <xsl:if test="($CONTENTMODEL!='islandora:collectionCModel')"> <br />-- <a> <xsl:attribute name="href"> <xsl:value-of select="$BASEURL"/>/fedora/repository/ <xsl:copy-of select="$PID"/>/-/ <xsl:value-of select="s:title"/> </xsl:attribute> DETAILS </a>-- </xsl:if> </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>