Bug 21644: better UNIMARC XSLT display of 210 in intranet
In intranet default UNIMARC XSLT display of 210 is tricky. It tests each subfield with a complex conditional prefix. In OPAC default UNIMARC XSLT display 210 is simply displayed with a loop on all subfields. I propose to use the same code as OPAC in intranet. It allows to display $f and removes strange middle-score character. Test plan: 1) Doni't apply patch 2) Use an UNIMARC database 3) Use default XSLT in all displays 4) Configure a framework to allow 210 subfields from 'a' to 'h' 5) Edit a record with this framework 6) In each 210 subfield enter its letter : $a a, $b b ... 7) Save record 8) Look at record in OPAC, you see : "Publication: a, b : c, d, e, f : g, h" 9) Look at record in intranet 10) You see : ""Publication: a, b : c, d - e : g, h 11) Apply patch 12) Look at record in intranet 13) You see : "Publication: a, b : c, d, e, f : g, h" Signed-off-by: Andreas Roussos <arouss1980@gmail.com> Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> This patch makes intranet consistent with staff again on this area. Note that we loose some punctuation like "- e". Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
This commit is contained in:
parent
38481c253d
commit
7b16603b31
|
|
@ -34,31 +34,22 @@
|
|||
<xsl:for-each select="marc:datafield[@tag=210]">
|
||||
<span>
|
||||
<xsl:call-template name="addClassRtl" />
|
||||
<xsl:value-of select="marc:subfield[@code='a']"/>
|
||||
<xsl:if test="marc:subfield[@code='b']">
|
||||
<xsl:if test="marc:subfield[@code='a']">, </xsl:if>
|
||||
<xsl:value-of select="marc:subfield[@code='b']"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="marc:subfield[@code='a' or @code='b']">
|
||||
<xsl:if test="marc:subfield[@code='a']"> : </xsl:if>
|
||||
<xsl:value-of select="marc:subfield[@code='c']"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="marc:subfield[@code='d']">
|
||||
<xsl:if test="marc:subfield[@code='a' or @code='c']">, </xsl:if>
|
||||
<xsl:value-of select="marc:subfield[@code='d']"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="marc:subfield[@code='e']">
|
||||
<xsl:if test="marc:subfield[@code='a' or @code='c' or @code='d']"> — </xsl:if>
|
||||
<xsl:value-of select="marc:subfield[@code='e']"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="marc:subfield[@code='g']">
|
||||
<xsl:if test="marc:subfield[@code='e']"> : </xsl:if>
|
||||
<xsl:value-of select="marc:subfield[@code='g']"/>
|
||||
</xsl:if>
|
||||
<xsl:if test="marc:subfield[@code='h']">
|
||||
<xsl:if test="marc:subfield[@code='e' or @code='g']">, </xsl:if>
|
||||
<xsl:value-of select="marc:subfield[@code='h']"/>
|
||||
</xsl:if>
|
||||
<xsl:for-each select="marc:subfield">
|
||||
<xsl:choose>
|
||||
<xsl:when test="@code='c' or @code='g'">
|
||||
<xsl:if test="position()>1">
|
||||
<xsl:text> : </xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:value-of select="."/>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:if test="position()>1">
|
||||
<xsl:text>, </xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:value-of select="."/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:for-each>
|
||||
<xsl:if test="not (position() = last())">
|
||||
<xsl:text> • </xsl:text>
|
||||
</xsl:if>
|
||||
|
|
|
|||
Loading…
Reference in New Issue