Bug 9820: display titles in MARC21 name headings better in XSLT mode
Prior to this patch, if a 100/700 had a $c, it would be
displayed with no space between the contents of $a and $c in XSLT mode.
For example,
100 1#$aSeuss,$cDr.
would be displayed as
SeussDr
The problem was caused by the original version of the stylesheets
drawing a bit too much from the MARC21 to MODS transformation.
To test:
[1] In a MARC21 database, turn on XSLT display mode for
staff and OPAC.
[2] Create or identify a bib that has a 100 or 700 field
with both a $a and a $c.
[3] Before applying the patch, verify that the name is
displayed in bib details and search results with the
name and title squashed together. For example, "SeussDr"
[3] After applying the patch, verify that the name displays
in bib details and search results with a space and
intervening punctuation between the name and the title. For
example, "Seuss, Dr."
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Passes test plan, works nicely.
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
This commit is contained in:
parent
dcf0bf5233
commit
75959da681
|
|
@ -834,18 +834,17 @@
|
|||
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="nameABCDQ">
|
||||
<xsl:template name="nameABCQ">
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">aq</xsl:with-param>
|
||||
<xsl:with-param name="codes">abcq</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
<xsl:with-param name="punctuation">
|
||||
<xsl:text>:,;/ </xsl:text>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name="termsOfAddress"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="nameABCDN">
|
||||
|
|
@ -874,17 +873,6 @@
|
|||
<xsl:with-param name="codes">acdeq</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template name="termsOfAddress">
|
||||
<xsl:if test="marc:subfield[@code='b' or @code='c']">
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">bc</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="part">
|
||||
<xsl:variable name="partNumber">
|
||||
|
|
@ -950,7 +938,7 @@
|
|||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:choose>
|
||||
<xsl:when test="@tag=100 or @tag=700"><xsl:call-template name="nameABCDQ"/></xsl:when>
|
||||
<xsl:when test="@tag=100 or @tag=700"><xsl:call-template name="nameABCQ"/></xsl:when>
|
||||
<xsl:when test="@tag=110 or @tag=710"><xsl:call-template name="nameABCDN"/></xsl:when>
|
||||
<xsl:when test="@tag=111 or @tag=711"><xsl:call-template name="nameACDEQ"/></xsl:when>
|
||||
</xsl:choose>
|
||||
|
|
|
|||
|
|
@ -347,7 +347,7 @@
|
|||
<xsl:attribute name="href">/cgi-bin/koha/catalogue/search.pl?q=au:"<xsl:value-of select="marc:subfield[@code='a']"/>"</xsl:attribute>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:call-template name="nameABCDQ"/></a>
|
||||
<xsl:call-template name="nameABCQ"/></a>
|
||||
<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>
|
||||
|
|
@ -867,18 +867,17 @@
|
|||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="nameABCDQ">
|
||||
<xsl:template name="nameABCQ">
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">aq</xsl:with-param>
|
||||
<xsl:with-param name="codes">abcq</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
<xsl:with-param name="punctuation">
|
||||
<xsl:text>:,;/ </xsl:text>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name="termsOfAddress"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="nameABCDN">
|
||||
|
|
@ -903,18 +902,6 @@
|
|||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="termsOfAddress">
|
||||
<xsl:if test="marc:subfield[@code='b' or @code='c']">
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">bc</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="nameDate">
|
||||
<xsl:for-each select="marc:subfield[@code='d']">
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
|
|
|
|||
|
|
@ -966,7 +966,7 @@
|
|||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
<xsl:choose>
|
||||
<xsl:when test="@tag=100 or @tag=700"><xsl:call-template name="nameABCDQ"/></xsl:when>
|
||||
<xsl:when test="@tag=100 or @tag=700"><xsl:call-template name="nameABCQ"/></xsl:when>
|
||||
<xsl:when test="@tag=110 or @tag=710"><xsl:call-template name="nameABCDN"/></xsl:when>
|
||||
<xsl:when test="@tag=111 or @tag=711"><xsl:call-template name="nameACDEQ"/></xsl:when>
|
||||
</xsl:choose>
|
||||
|
|
@ -992,18 +992,17 @@
|
|||
<xsl:text>.</xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="nameABCDQ">
|
||||
<xsl:template name="nameABCQ">
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">aq</xsl:with-param>
|
||||
<xsl:with-param name="codes">abcq</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
<xsl:with-param name="punctuation">
|
||||
<xsl:text>:,;/ </xsl:text>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name="termsOfAddress"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="nameABCDN">
|
||||
|
|
@ -1032,17 +1031,6 @@
|
|||
<xsl:with-param name="codes">acdeq</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
<xsl:template name="termsOfAddress">
|
||||
<xsl:if test="marc:subfield[@code='b' or @code='c']">
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">bc</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="part">
|
||||
<xsl:variable name="partNumber">
|
||||
|
|
|
|||
|
|
@ -455,7 +455,7 @@
|
|||
<xsl:for-each select="marc:datafield[(@tag=100 or @tag=700) and @ind1!='z']">
|
||||
<xsl:choose>
|
||||
<xsl:when test="position()=last()">
|
||||
<xsl:call-template name="nameABCDQ"/>.
|
||||
<xsl:call-template name="nameABCQ"/>.
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:call-template name="nameABCDQ"/>;
|
||||
|
|
@ -1180,18 +1180,17 @@
|
|||
</xsl:choose>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="nameABCDQ">
|
||||
<xsl:template name="nameABCQ">
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">aq</xsl:with-param>
|
||||
<xsl:with-param name="codes">abcq</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
<xsl:with-param name="punctuation">
|
||||
<xsl:text>:,;/ </xsl:text>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
<xsl:call-template name="termsOfAddress"/>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="nameABCDN">
|
||||
|
|
@ -1216,18 +1215,6 @@
|
|||
</xsl:call-template>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="termsOfAddress">
|
||||
<xsl:if test="marc:subfield[@code='b' or @code='c']">
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
<xsl:with-param name="chopString">
|
||||
<xsl:call-template name="subfieldSelect">
|
||||
<xsl:with-param name="codes">bc</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:with-param>
|
||||
</xsl:call-template>
|
||||
</xsl:if>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template name="nameDate">
|
||||
<xsl:for-each select="marc:subfield[@code='d']">
|
||||
<xsl:call-template name="chopPunctuation">
|
||||
|
|
|
|||
Loading…
Reference in New Issue