You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
212 lines
8.4 KiB
212 lines
8.4 KiB
14 years ago
|
<?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>
|