Bug 15851: Display analytics links for more cases

The current XSLT displays the link to linked analytics only for serials.
This patch makes it show for all the relevant position 7 on the leader
values. I left out a and b as recommended by expert librarians on my
team, but I can revert that if required.

The current implementation adds a new CSS class for each case, so
libraries willing to keep the current behaviour or just have more
granular control on the cases they want the link to display, just can.

This patch makes sense with the follow-up one, which will display the
link only if there are really related records.

To test:
1. Open a non-serial record, notice there's no link to analytics
2. Apply this patch and reload
=> SUCCESS: There's an 'Analytics' link
3. Inspect the produced HTML
=> SUCCESS: A special class with analytic_* value has been added, and
thus we now can control its display through CSS
4. Sign off :-D

Sponsored-by: Orex Digital

Signed-off-by: Hugo Agud <hagud@orex.es>

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:
Tomás Cohen Arazi 2020-06-24 13:08:25 -03:00 committed by Jonathan Druart
parent 8a37842e1a
commit f70df9b194

View file

@ -339,22 +339,35 @@
</span>
</xsl:if>
<!-- Analytics -->
<xsl:if test="$leader7='s'">
<span class="results_summary analytics"><span class="label">Analytics: </span>
<!-- Analytics information -->
<xsl:variable name="leader7_class">
<xsl:choose>
<!--xsl:when test="$leader7='a'">analytic_mcp</xsl:when-->
<!--xsl:when test="$leader7='b'">analytic_scp</xsl:when-->
<xsl:when test="$leader7='c'">analytic_collection</xsl:when>
<xsl:when test="$leader7='d'">analytic_subunit</xsl:when>
<xsl:when test="$leader7='i'">analytic_ires</xsl:when>
<xsl:when test="$leader7='m'">analytic_monograph</xsl:when>
<xsl:when test="$leader7='s'">analytic_serial</xsl:when>
<xsl:otherwise>analytic_undefined</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:element name="span">
<xsl:attribute name="class">results_summary analytics <xsl:value-of select="$leader7_class"/></xsl:attribute>
<span class="label">Analytics: </span>
<a>
<xsl:choose>
<xsl:when test="$UseControlNumber = '1' and marc:controlfield[@tag=001]">
<xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=rcn:<xsl:value-of select="str:encode-uri(marc:controlfield[@tag=001], true())"/>+AND+(bib-level:a+OR+bib-level:b)</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=Host-item:<xsl:value-of select="str:encode-uri(translate(marc:datafield[@tag=245]/marc:subfield[@code='a'], '/', ''), true())"/></xsl:attribute>
</xsl:otherwise>
<xsl:when test="$UseControlNumber = '1' and marc:controlfield[@tag=001]">
<xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=rcn:<xsl:value-of select="str:encode-uri(marc:controlfield[@tag=001], true())"/>+AND+(bib-level:a+OR+bib-level:b)</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="href">/cgi-bin/koha/opac-search.pl?q=Host-item:<xsl:value-of select="str:encode-uri(translate(marc:datafield[@tag=245]/marc:subfield[@code='a'], '/', ''), true())"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:text>Show analytics</xsl:text>
</a>
</span>
</xsl:if>
</xsl:element>
<!-- Volumes of sets and traced series -->
<xsl:if test="$materialTypeCode='ST' or substring($controlField008,22,1)='m'">