Bug 5927: [Alternate] Show series information in staff and opac results pages
This moves the series info to a template in the XSLT utils files and adds a
few variables to make it work right.
To test:
1 - Create a catalog records with:
440 series fields
490 traced series fields
490 untraced series fields
2 - View the details pages for these records and note the display and the links formed
3 - Apply patch
4 - Confirm the details pages look the same
5 - Search on staff and opac to return the records
6 - Confirm the results pages form the same series as on details
7 - Confirm the links work the same
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
parent
fee5886432
commit
c4e04e2cba
|
|
@ -190,135 +190,12 @@
|
|||
<xsl:with-param name="index">se</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
|
||||
<!-- Series -->
|
||||
<xsl:if test="marc:datafield[@tag=440 or @tag=490]">
|
||||
<span class="results_summary series"><span class="label">Series: </span>
|
||||
<!-- 440 -->
|
||||
<xsl:for-each select="marc:datafield[@tag=440]">
|
||||
<a><xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=se,phr:"<xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/>"</xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">av</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
<xsl:call-template name="part"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="position()=last()">
|
||||
<xsl:if test="../marc:datafield[@tag=490][@ind1!=1]">
|
||||
<xsl:text>; </xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:when>
|
||||
<xsl:otherwise><xsl:text> ; </xsl:text></xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:for-each>
|
||||
|
||||
<!-- 490 Series not traced, Ind1 = 0 -->
|
||||
<xsl:for-each select="marc:datafield[@tag=490][@ind1!=1]">
|
||||
<a><xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=se,phr:"<xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/>"</xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">av</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
<xsl:call-template name="part"/>
|
||||
<xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
|
||||
</xsl:for-each>
|
||||
<!-- 490 Series traced, Ind1 = 1 -->
|
||||
<xsl:if test="marc:datafield[@tag=490][@ind1=1]">
|
||||
<xsl:for-each select="marc:datafield[@tag=800 or @tag=810 or @tag=811]">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
|
||||
<a><xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=rcn:<xsl:value-of select="str:encode-uri(marc:subfield[@code='w'], true())"/></xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">a_t</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
</xsl:when>
|
||||
<xsl:when test="marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
|
||||
<a><xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=an:<xsl:value-of select="str:encode-uri(marc:subfield[@code=9], true())"/></xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">a_t</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<a><xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=se,phr:"<xsl:value-of select="str:encode-uri(marc:subfield[@code='t'], true())"/>"&q=au:"<xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/>"</xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">a_t</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
<xsl:call-template name="part"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:text>: </xsl:text>
|
||||
<xsl:value-of select="marc:subfield[@code='v']" />
|
||||
<xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
|
||||
</xsl:for-each>
|
||||
|
||||
<xsl:for-each select="marc:datafield[@tag=830]">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
|
||||
<a href="/cgi-bin/koha/catalogue/search.pl?q=rcn:{marc:subfield[@code='w']}">
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">a_t</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
</xsl:when>
|
||||
<xsl:when test="marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
|
||||
<a><xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=an:<xsl:value-of select="str:encode-uri(marc:subfield[@code=9], true())"/></xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">a_t</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<a><xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=se,phr:"<xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/>"</xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">a_t</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
<xsl:call-template name="part"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:text>: </xsl:text>
|
||||
<xsl:value-of select="marc:subfield[@code='v']" />
|
||||
<xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
|
||||
</xsl:for-each>
|
||||
</xsl:if>
|
||||
|
||||
</span>
|
||||
</xsl:if>
|
||||
<xsl:call-template name="show-series">
|
||||
<xsl:with-param name="searchurl">/cgi-bin/koha/catalogue/search.pl</xsl:with-param>
|
||||
<xsl:with-param name="UseControlNumber" select="$UseControlNumber"/>
|
||||
<xsl:with-param name="UseAuthoritiesForTracings" select="$UseAuthoritiesForTracings"/>
|
||||
</xsl:call-template>
|
||||
|
||||
<!-- Analytics information -->
|
||||
<xsl:variable name="leader7_class">
|
||||
|
|
@ -1479,33 +1356,6 @@
|
|||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="part">
|
||||
<xsl:variable name="partNumber">
|
||||
<xsl:call-template name="specialSubfieldSelect">
|
||||
<xsl:with-param name="axis">n</xsl:with-param>
|
||||
<xsl:with-param name="anyCodes">n</xsl:with-param>
|
||||
<xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="partName">
|
||||
<xsl:call-template name="specialSubfieldSelect">
|
||||
<xsl:with-param name="axis">p</xsl:with-param>
|
||||
<xsl:with-param name="anyCodes">p</xsl:with-param>
|
||||
<xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<xsl:if test="string-length(normalize-space($partNumber))">
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString" select="$partNumber"/>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
<xsl:if test="string-length(normalize-space($partName))">
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString" select="$partName"/>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="specialSubfieldSelect">
|
||||
<xsl:param name="anyCodes"/>
|
||||
<xsl:param name="axis"/>
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
<!-- Option: Display Alternate Graphic Representation (MARC 880) -->
|
||||
<xsl:variable name="display880" select="boolean(marc:datafield[@tag=880])"/>
|
||||
<xsl:variable name="UseControlNumber" select="marc:sysprefs/marc:syspref[@name='UseControlNumber']"/>
|
||||
|
||||
<xsl:variable name="URLLinkText" select="marc:sysprefs/marc:syspref[@name='URLLinkText']"/>
|
||||
<xsl:variable name="Show856uAsImage" select="marc:sysprefs/marc:syspref[@name='Display856uAsImage']"/>
|
||||
|
|
@ -839,6 +840,12 @@
|
|||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
|
||||
<xsl:call-template name="show-series">
|
||||
<xsl:with-param name="searchurl">/cgi-bin/koha/catalogue/search.pl</xsl:with-param>
|
||||
<xsl:with-param name="UseControlNumber" select="$UseControlNumber"/>
|
||||
<xsl:with-param name="UseAuthoritiesForTracings" select="$UseAuthoritiesForTracings"/>
|
||||
</xsl:call-template>
|
||||
|
||||
<!-- Publisher info and RDA related info from tags 260, 264 -->
|
||||
<xsl:choose>
|
||||
<xsl:when test="marc:datafield[@tag=264]">
|
||||
|
|
|
|||
|
|
@ -403,6 +403,167 @@
|
|||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="part">
|
||||
<xsl:variable name="partNumber">
|
||||
<xsl:call-template name="specialSubfieldSelect">
|
||||
<xsl:with-param name="axis">n</xsl:with-param>
|
||||
<xsl:with-param name="anyCodes">n</xsl:with-param>
|
||||
<xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="partName">
|
||||
<xsl:call-template name="specialSubfieldSelect">
|
||||
<xsl:with-param name="axis">p</xsl:with-param>
|
||||
<xsl:with-param name="anyCodes">p</xsl:with-param>
|
||||
<xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<xsl:if test="string-length(normalize-space($partNumber))">
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString" select="$partNumber"/>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
<xsl:if test="string-length(normalize-space($partName))">
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString" select="$partName"/>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="show-series">
|
||||
<xsl:param name="searchurl"/>
|
||||
<xsl:param name="UseControlNumber"/>
|
||||
<xsl:param name="UseAuthoritiesForTracings"/>
|
||||
<!-- Series -->
|
||||
<xsl:if test="marc:datafield[@tag=440 or @tag=490]">
|
||||
<span class="results_summary series"><span class="label">Series: </span>
|
||||
<!-- 440 -->
|
||||
<xsl:for-each select="marc:datafield[@tag=440]">
|
||||
<a><xsl:attribute name="href"><xsl:value-of select="$searchurl"/>?q=se,phr:"<xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/>"</xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">av</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
<xsl:call-template name="part"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="position()=last()">
|
||||
<xsl:if test="../marc:datafield[@tag=490][@ind1!=1]">
|
||||
<xsl:text>; </xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:when>
|
||||
<xsl:otherwise><xsl:text> ; </xsl:text></xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:for-each>
|
||||
|
||||
<!-- 490 Series not traced, Ind1 = 0 -->
|
||||
<xsl:for-each select="marc:datafield[@tag=490][@ind1!=1]">
|
||||
<a><xsl:attribute name="href"><xsl:value-of select="$searchurl"/>?q=se,phr:"<xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/>"</xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">av</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
<xsl:call-template name="part"/>
|
||||
<xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
|
||||
</xsl:for-each>
|
||||
<!-- 490 Series traced, Ind1 = 1 -->
|
||||
<xsl:if test="marc:datafield[@tag=490][@ind1=1]">
|
||||
<xsl:for-each select="marc:datafield[@tag=800 or @tag=810 or @tag=811]">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
|
||||
<a><xsl:attribute name="href"><xsl:value-of select="$searchurl"/>?q=rcn:<xsl:value-of select="str:encode-uri(marc:subfield[@code='w'], true())"/></xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">a_t</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
</xsl:when>
|
||||
<xsl:when test="marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
|
||||
<a><xsl:attribute name="href"><xsl:value-of select="$searchurl"/>?q=an:<xsl:value-of select="str:encode-uri(marc:subfield[@code=9], true())"/></xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">a_t</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<a><xsl:attribute name="href"><xsl:value-of select="$searchurl"/>?q=se,phr:"<xsl:value-of select="str:encode-uri(marc:subfield[@code='t'], true())"/>"&q=au:"<xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/>"</xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">a_t</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
<xsl:call-template name="part"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:text>: </xsl:text>
|
||||
<xsl:value-of select="marc:subfield[@code='v']" />
|
||||
<xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
|
||||
</xsl:for-each>
|
||||
|
||||
<xsl:for-each select="marc:datafield[@tag=830]">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
|
||||
<a href="/cgi-bin/koha/catalogue/search.pl?q=rcn:{marc:subfield[@code='w']}">
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">a_t</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
</xsl:when>
|
||||
<xsl:when test="marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
|
||||
<a><xsl:attribute name="href"><xsl:value-of select="$searchurl"/>?q=an:<xsl:value-of select="str:encode-uri(marc:subfield[@code=9], true())"/></xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">a_t</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<a><xsl:attribute name="href"><xsl:value-of select="$searchurl"/>?q=se,phr:"<xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/>"</xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">a_t</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
<xsl:call-template name="part"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:text>: </xsl:text>
|
||||
<xsl:value-of select="marc:subfield[@code='v']" />
|
||||
<xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
|
||||
</xsl:for-each>
|
||||
</xsl:if>
|
||||
|
||||
</span>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
||||
<!-- Stylus Studio meta-information - (c)1998-2002 eXcelon Corp.
|
||||
|
|
|
|||
|
|
@ -212,132 +212,11 @@
|
|||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
|
||||
<!-- Series -->
|
||||
<xsl:if test="marc:datafield[@tag=440 or @tag=490]">
|
||||
<span class="results_summary series"><span class="label">Series: </span>
|
||||
<!-- 440 -->
|
||||
<xsl:for-each select="marc:datafield[@tag=440]">
|
||||
<a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=se,phr:"<xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/>"</xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">av</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
<xsl:call-template name="part"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="position()=last()">
|
||||
<xsl:if test="../marc:datafield[@tag=490][@ind1!=1]">
|
||||
<xsl:text>; </xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:when>
|
||||
<xsl:otherwise><xsl:text> ; </xsl:text></xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:for-each>
|
||||
|
||||
<!-- 490 Series not traced, Ind1 = 0 -->
|
||||
<xsl:for-each select="marc:datafield[@tag=490][@ind1!=1]">
|
||||
<a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=se,phr:"<xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/>"</xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">av</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
<xsl:call-template name="part"/>
|
||||
<xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
|
||||
</xsl:for-each>
|
||||
<!-- 490 Series traced, Ind1 = 1 -->
|
||||
<xsl:if test="marc:datafield[@tag=490][@ind1=1]">
|
||||
<xsl:for-each select="marc:datafield[@tag=800 or @tag=810 or @tag=811]">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
|
||||
<a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=rcn:<xsl:value-of select="str:encode-uri(marc:subfield[@code='w'], true())"/></xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">a_t</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
</xsl:when>
|
||||
<xsl:when test="marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
|
||||
<a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="str:encode-uri(marc:subfield[@code=9], true())"/></xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">a_t</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=se,phr:"<xsl:value-of select="str:encode-uri(marc:subfield[@code='t'], true())"/>"&q=au:"<xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/>"</xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">a_t</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
<xsl:call-template name="part"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:text>: </xsl:text>
|
||||
<xsl:value-of select="marc:subfield[@code='v']" />
|
||||
<xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
|
||||
</xsl:for-each>
|
||||
<xsl:for-each select="marc:datafield[@tag=830]">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
|
||||
<a href="/cgi-bin/koha/catalogue/search.pl?q=rcn:{marc:subfield[@code='w']}">
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">a_t</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
</xsl:when>
|
||||
<xsl:when test="marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
|
||||
<a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=an:<xsl:value-of select="str:encode-uri(marc:subfield[@code=9], true())"/></xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">a_t</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<a><xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=se,phr:"<xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/>"</xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">a_t</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
<xsl:call-template name="part"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:text>: </xsl:text>
|
||||
<xsl:value-of select="marc:subfield[@code='v']" />
|
||||
<xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
|
||||
</xsl:for-each>
|
||||
</xsl:if>
|
||||
</span>
|
||||
</xsl:if>
|
||||
<xsl:call-template name="show-series">
|
||||
<xsl:with-param name="searchurl">/cgi-bin/koha/opac-search.pl</xsl:with-param>
|
||||
<xsl:with-param name="UseControlNumber" select="$UseControlNumber"/>
|
||||
<xsl:with-param name="UseAuthoritiesForTracings" select="$UseAuthoritiesForTracings"/>
|
||||
</xsl:call-template>
|
||||
|
||||
<!-- Analytics information -->
|
||||
<xsl:variable name="leader7_class">
|
||||
|
|
@ -1964,33 +1843,6 @@
|
|||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="part">
|
||||
<xsl:variable name="partNumber">
|
||||
<xsl:call-template name="specialSubfieldSelect">
|
||||
<xsl:with-param name="axis">n</xsl:with-param>
|
||||
<xsl:with-param name="anyCodes">n</xsl:with-param>
|
||||
<xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="partName">
|
||||
<xsl:call-template name="specialSubfieldSelect">
|
||||
<xsl:with-param name="axis">p</xsl:with-param>
|
||||
<xsl:with-param name="anyCodes">p</xsl:with-param>
|
||||
<xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<xsl:if test="string-length(normalize-space($partNumber))">
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString" select="$partNumber"/>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
<xsl:if test="string-length(normalize-space($partName))">
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString" select="$partName"/>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="specialSubfieldSelect">
|
||||
<xsl:param name="anyCodes"/>
|
||||
<xsl:param name="axis"/>
|
||||
|
|
|
|||
|
|
@ -22,6 +22,8 @@
|
|||
<!-- Option: Display Alternate Graphic Representation (MARC 880) -->
|
||||
<xsl:variable name="display880" select="boolean(marc:datafield[@tag=880])"/>
|
||||
|
||||
<xsl:variable name="UseControlNumber" select="marc:sysprefs/marc:syspref[@name='UseControlNumber']"/>
|
||||
<xsl:variable name="UseAuthoritiesForTracings" select="marc:sysprefs/marc:syspref[@name='UseAuthoritiesForTracings']"/>
|
||||
<xsl:variable name="OPACResultsLibrary" select="marc:sysprefs/marc:syspref[@name='OPACResultsLibrary']"/>
|
||||
<xsl:variable name="hidelostitems" select="marc:sysprefs/marc:syspref[@name='hidelostitems']"/>
|
||||
<xsl:variable name="DisplayOPACiconsXSLT" select="marc:sysprefs/marc:syspref[@name='DisplayOPACiconsXSLT']"/>
|
||||
|
|
@ -638,6 +640,12 @@
|
|||
</xsl:choose>
|
||||
</p>
|
||||
|
||||
<xsl:call-template name="show-series">
|
||||
<xsl:with-param name="searchurl">/cgi-bin/koha/opac-search.pl</xsl:with-param>
|
||||
<xsl:with-param name="UseControlNumber" select="$UseControlNumber"/>
|
||||
<xsl:with-param name="UseAuthoritiesForTracings" select="$UseAuthoritiesForTracings"/>
|
||||
</xsl:call-template>
|
||||
|
||||
<xsl:if test="marc:datafield[@tag=250]">
|
||||
<span class="results_summary edition">
|
||||
<span class="label">Edition: </span>
|
||||
|
|
|
|||
|
|
@ -367,6 +367,167 @@
|
|||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="show-series">
|
||||
<xsl:param name="searchurl"/>
|
||||
<xsl:param name="UseControlNumber"/>
|
||||
<xsl:param name="UseAuthoritiesForTracings"/>
|
||||
<!-- Series -->
|
||||
<xsl:if test="marc:datafield[@tag=440 or @tag=490]">
|
||||
<span class="results_summary series"><span class="label">Series: </span>
|
||||
<!-- 440 -->
|
||||
<xsl:for-each select="marc:datafield[@tag=440]">
|
||||
<a><xsl:attribute name="href"><xsl:value-of select="$searchurl"/>?q=se,phr:"<xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/>"</xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">av</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
<xsl:call-template name="part"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="position()=last()">
|
||||
<xsl:if test="../marc:datafield[@tag=490][@ind1!=1]">
|
||||
<xsl:text>; </xsl:text>
|
||||
</xsl:if>
|
||||
</xsl:when>
|
||||
<xsl:otherwise><xsl:text> ; </xsl:text></xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:for-each>
|
||||
|
||||
<!-- 490 Series not traced, Ind1 = 0 -->
|
||||
<xsl:for-each select="marc:datafield[@tag=490][@ind1!=1]">
|
||||
<a><xsl:attribute name="href"><xsl:value-of select="$searchurl"/>?q=se,phr:"<xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/>"</xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">av</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
<xsl:call-template name="part"/>
|
||||
<xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
|
||||
</xsl:for-each>
|
||||
<!-- 490 Series traced, Ind1 = 1 -->
|
||||
<xsl:if test="marc:datafield[@tag=490][@ind1=1]">
|
||||
<xsl:for-each select="marc:datafield[@tag=800 or @tag=810 or @tag=811]">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
|
||||
<a><xsl:attribute name="href"><xsl:value-of select="$searchurl"/>?q=rcn:<xsl:value-of select="str:encode-uri(marc:subfield[@code='w'], true())"/></xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">a_t</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
</xsl:when>
|
||||
<xsl:when test="marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
|
||||
<a><xsl:attribute name="href"><xsl:value-of select="$searchurl"/>?q=an:<xsl:value-of select="str:encode-uri(marc:subfield[@code=9], true())"/></xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">a_t</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<a><xsl:attribute name="href"><xsl:value-of select="$searchurl"/>?q=se,phr:"<xsl:value-of select="str:encode-uri(marc:subfield[@code='t'], true())"/>"&q=au:"<xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/>"</xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">a_t</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
<xsl:call-template name="part"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:text>: </xsl:text>
|
||||
<xsl:value-of select="marc:subfield[@code='v']" />
|
||||
<xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
|
||||
</xsl:for-each>
|
||||
|
||||
<xsl:for-each select="marc:datafield[@tag=830]">
|
||||
<xsl:choose>
|
||||
<xsl:when test="$UseControlNumber = '1' and marc:subfield[@code='w']">
|
||||
<a href="/cgi-bin/koha/catalogue/search.pl?q=rcn:{marc:subfield[@code='w']}">
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">a_t</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
</xsl:when>
|
||||
<xsl:when test="marc:subfield[@code=9] and $UseAuthoritiesForTracings='1'">
|
||||
<a><xsl:attribute name="href"><xsl:value-of select="$searchurl"/>?q=an:<xsl:value-of select="str:encode-uri(marc:subfield[@code=9], true())"/></xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">a_t</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<a><xsl:attribute name="href"><xsl:value-of select="$searchurl"/>?q=se,phr:"<xsl:value-of select="str:encode-uri(marc:subfield[@code='a'], true())"/>"</xsl:attribute>
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">a_t</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</a>
|
||||
<xsl:call-template name="part"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:text>: </xsl:text>
|
||||
<xsl:value-of select="marc:subfield[@code='v']" />
|
||||
<xsl:choose><xsl:when test="position()=last()"><xsl:text></xsl:text></xsl:when><xsl:otherwise><xsl:text>; </xsl:text></xsl:otherwise></xsl:choose>
|
||||
</xsl:for-each>
|
||||
</xsl:if>
|
||||
|
||||
</span>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="part">
|
||||
<xsl:variable name="partNumber">
|
||||
<xsl:call-template name="specialSubfieldSelect">
|
||||
<xsl:with-param name="axis">n</xsl:with-param>
|
||||
<xsl:with-param name="anyCodes">n</xsl:with-param>
|
||||
<xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<xsl:variable name="partName">
|
||||
<xsl:call-template name="specialSubfieldSelect">
|
||||
<xsl:with-param name="axis">p</xsl:with-param>
|
||||
<xsl:with-param name="anyCodes">p</xsl:with-param>
|
||||
<xsl:with-param name="afterCodes">fghkdlmor</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
<xsl:if test="string-length(normalize-space($partNumber))">
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString" select="$partNumber"/>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
<xsl:if test="string-length(normalize-space($partName))">
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString" select="$partName"/>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
||||
|
||||
<!-- Stylus Studio meta-information - (c)1998-2002 eXcelon Corp.
|
||||
|
|
|
|||
Loading…
Reference in New Issue