From a3d0ccfc3c62174b39cf4aec35ba9989f9015dfc Mon Sep 17 00:00:00 2001 From: Galen Charlton <gmc@esilibrary.com> Date: Fri, 15 Mar 2013 14:17:09 -0700 Subject: [PATCH] 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> --- .../prog/en/xslt/MARC21slim2intranetDetail.xsl | 18 +++--------------- .../prog/en/xslt/MARC21slim2intranetResults.xsl | 19 +++---------------- .../prog/en/xslt/MARC21slim2OPACDetail.xsl | 18 +++--------------- .../prog/en/xslt/MARC21slim2OPACResults.xsl | 19 +++---------------- 4 files changed, 12 insertions(+), 62 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl index 1ce9d00..8004061 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl +++ b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetDetail.xsl @@ -831,18 +831,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"> @@ -871,17 +870,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"> @@ -947,7 +935,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> diff --git a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetResults.xsl b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetResults.xsl index ca517cd..eee9887 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetResults.xsl +++ b/koha-tmpl/intranet-tmpl/prog/en/xslt/MARC21slim2intranetResults.xsl @@ -346,7 +346,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> @@ -863,18 +863,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"> @@ -899,18 +898,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"> diff --git a/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACDetail.xsl b/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACDetail.xsl index 5130e8b..89f27d7 100644 --- a/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACDetail.xsl +++ b/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACDetail.xsl @@ -965,7 +965,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> @@ -991,18 +991,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"> @@ -1031,17 +1030,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"> diff --git a/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACResults.xsl b/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACResults.xsl index 4335e50..8f82fb9 100644 --- a/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACResults.xsl +++ b/koha-tmpl/opac-tmpl/prog/en/xslt/MARC21slim2OPACResults.xsl @@ -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"/>; @@ -1163,18 +1163,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"> @@ -1199,18 +1198,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"> -- 1.7.2.5