Bug 10218: Add individual CSS classes for bibliographic information in OPAC (UNIMARC)
authorMathieu Saby <mathieu.saby@univ-rennes2.fr>
Thu, 13 Jun 2013 18:22:51 +0000 (20:22 +0200)
committerGalen Charlton <gmc@esilibrary.com>
Sat, 7 Sep 2013 20:57:04 +0000 (20:57 +0000)
Follow-up for UNIMARC XSLT Display
This patch adds class to span markup in list and detail display.
XSLT are not build in the same way in MARC21 and UNIMARC, so I had
to add a parameter "spanclass" to 3 templates called in UNIMARC :
tag_title, tag_7xx, tag_comma

To test, apply the patch on a Koha instance with UNIMARC records, and
- activate sysprefs  OPACXSLTDetailsDisplay and OPACXSLTDetailsDisplay
- make a search on the OPAC. In the results, check the spans with
"results_summary" class have also more a precise class.
Ex : span class="results_summary publication"
- view some records in detailed view. If possible, a record with
a series, a record with some subjects, a record with different authors,
a record with a link in 856. Check the spans with "results_summary"
have also a more precise class.

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Comment: Works exactly as described on results and detail.
No koha-qa errors

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
XSLT only change.
Tested in a UNIMARC install, HTML source code looks ok.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
koha-tmpl/opac-tmpl/prog/en/xslt/UNIMARCslim2OPACDetail.xsl
koha-tmpl/opac-tmpl/prog/en/xslt/UNIMARCslim2OPACResults.xsl
koha-tmpl/opac-tmpl/prog/en/xslt/UNIMARCslimUtils.xsl

index cb365d9..700b62f 100644 (file)
   <xsl:call-template name="tag_title">
     <xsl:with-param name="tag">454</xsl:with-param>
     <xsl:with-param name="label">Translation of</xsl:with-param>
+    <xsl:with-param name="spanclass">original_title</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_title">
     <xsl:with-param name="tag">461</xsl:with-param>
     <xsl:with-param name="label">Set Level</xsl:with-param>
+    <xsl:with-param name="spanclass">set_level</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_title">
     <xsl:with-param name="tag">464</xsl:with-param>
     <xsl:with-param name="label">Piece-Analytic Level</xsl:with-param>
+    <xsl:with-param name="spanclass">piece_analytic_level</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_7xx">
     <xsl:with-param name="tag">700</xsl:with-param>
     <xsl:with-param name="label">Main Author</xsl:with-param>
+    <xsl:with-param name="spanclass">main_author</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_7xx">
     <xsl:with-param name="tag">710</xsl:with-param>
     <xsl:with-param name="label">Corporate Author (Main)</xsl:with-param>
+    <xsl:with-param name="spanclass">corporate_main_author</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_7xx">
     <xsl:with-param name="tag">701</xsl:with-param>
     <xsl:with-param name="label">Coauthor</xsl:with-param>
+    <xsl:with-param name="spanclass">coauthor</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_7xx">
     <xsl:with-param name="tag">702</xsl:with-param>
     <xsl:with-param name="label">Secondary Author</xsl:with-param>
+    <xsl:with-param name="spanclass">secondary_author</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_7xx">
     <xsl:with-param name="tag">711</xsl:with-param>
     <xsl:with-param name="label">Corporate Author (Coauthor)</xsl:with-param>
+    <xsl:with-param name="spanclass">corporate_coauthor</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_7xx">
     <xsl:with-param name="tag">712</xsl:with-param>
     <xsl:with-param name="label">Corporate Author (Secondary)</xsl:with-param>
+    <xsl:with-param name="spanclass">corporate_secondary_author</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_title">
     <xsl:with-param name="tag">500</xsl:with-param>
     <xsl:with-param name="label">Uniform Title</xsl:with-param>
+    <xsl:with-param name="spanclass">uniform_title</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_title">
     <xsl:with-param name="tag">503</xsl:with-param>
     <xsl:with-param name="label">Uniform Conventional Heading</xsl:with-param>
+    <xsl:with-param name="spanclass">uniform_conventional_heading</xsl:with-param>
   </xsl:call-template>
 
   <xsl:if test="marc:datafield[@tag=101]">
-    <span class="results_summary">
-      <span class="label">Language:</span>
+    <span class="results_summary language">
+      <span class="label">Language: </span>
       <xsl:for-each select="marc:datafield[@tag=101]">
         <xsl:for-each select="marc:subfield">
           <xsl:choose>
   </xsl:if>
 
   <xsl:if test="marc:datafield[@tag=102]">
-         <span class="results_summary">
+         <span class="results_summary country">
       <span class="label">Country: </span>
       <xsl:for-each select="marc:datafield[@tag=102]">
         <xsl:for-each select="marc:subfield">
   <xsl:call-template name="tag_comma">
     <xsl:with-param name="tag">205</xsl:with-param>
     <xsl:with-param name="label">Edition Statement</xsl:with-param>
+    <xsl:with-param name="spanclass">edition</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_210" />
   <xsl:call-template name="tag_215" />
 
   <xsl:if test="marc:datafield[@tag=010]/marc:subfield[@code='a']">
-    <span class="results_summary"><span class="label">ISBN: </span>
+    <span class="results_summary isbn"><span class="label">ISBN: </span>
     <xsl:for-each select="marc:datafield[@tag=010]">
       <xsl:variable name="isbn" select="marc:subfield[@code='a']"/>
       <xsl:value-of select="marc:subfield[@code='a']"/>
   </xsl:if>
 
   <xsl:if test="marc:datafield[@tag=011]">
-    <span class="results_summary">
+    <span class="results_summary issn">
       <span class="label">ISSN: </span>
       <xsl:for-each select="marc:datafield[@tag=011]">
         <xsl:value-of select="marc:subfield[@code='a']"/>
   <xsl:call-template name="tag_title">
     <xsl:with-param name="tag">225</xsl:with-param>
     <xsl:with-param name="label">Series</xsl:with-param>
+    <xsl:with-param name="spanclass">series</xsl:with-param>
   </xsl:call-template>
 
   <xsl:if test="marc:datafield[@tag=676]">
-    <span class="results_summary">
+    <span class="results_summary dewey">
     <span class="label">Dewey: </span>
       <xsl:for-each select="marc:datafield[@tag=676]">
         <xsl:value-of select="marc:subfield[@code='a']"/>
   </xsl:if>
 
   <xsl:if test="marc:datafield[@tag=686]">
-    <span class="results_summary">
+    <span class="results_summary classification">
     <span class="label">Classification: </span>
       <xsl:for-each select="marc:datafield[@tag=686]">
         <xsl:value-of select="marc:subfield[@code='a']"/>
   </xsl:if>
 
   <xsl:if test="marc:datafield[@tag=327]">
-    <span class="results_summary">
+    <span class="results_summary contents">
       <span class="label">Contents note: </span>
       <xsl:for-each select="marc:datafield[@tag=327]">
         <xsl:call-template name="chopPunctuation">
   </xsl:if>
 
   <xsl:if test="marc:datafield[@tag=330]">
-    <span class="results_summary">
+    <span class="results_summary abstract">
       <span class="label">Abstract: </span>
       <xsl:for-each select="marc:datafield[@tag=330]">
         <xsl:value-of select="marc:subfield[@code='a']"/>
   </xsl:if>
 
   <xsl:if test="marc:datafield[@tag=317]">
-    <span class="results_summary">
+    <span class="results_summary provenance">
       <span class="label">Provenance note: </span>
       <xsl:for-each select="marc:datafield[@tag=317]">
           <xsl:value-of select="marc:subfield[@code='a']"/>
   </xsl:if>
 
   <xsl:if test="marc:datafield[@tag=320]">
-    <span class="results_summary">
+    <span class="results_summary bibliography">
       <span class="label">Bibliography: </span>
       <xsl:for-each select="marc:datafield[@tag=320]">
         <xsl:value-of select="marc:subfield[@code='a']"/>
   </xsl:if>
 
   <xsl:if test="marc:datafield[@tag=328]">
-    <span class="results_summary">
+    <span class="results_summary thesis">
       <span class="label">Thesis: </span>
       <xsl:for-each select="marc:datafield[@tag=328]">
         <xsl:value-of select="marc:subfield[@code='a']"/>
   </xsl:if>
 
   <xsl:if test="marc:datafield[@tag=333]">
-    <span class="results_summary">
+    <span class="results_summary audience">
       <span class="label">Audience: </span>
       <xsl:for-each select="marc:datafield[@tag=333]">
         <xsl:value-of select="marc:subfield[@code='a']"/>
   </xsl:if>
 
   <xsl:if test="marc:datafield[@tag=955]">
-    <span class="results_summary">
+    <span class="results_summary sudoc_serial_history">
       <span class="label">SUDOC serial history: </span>
       <xsl:for-each select="marc:datafield[@tag=955]">
         <xsl:value-of select="marc:subfield[@code='9']"/>:
   </xsl:call-template>
 
   <xsl:if test="marc:datafield[@tag=856]">
-    <span class="results_summary">
+    <span class="results_summary online_resources">
       <span class="label">Online Resources:</span>
       <xsl:for-each select="marc:datafield[@tag=856]">
         <a>
index a086d31..c4ae3c1 100644 (file)
   <xsl:call-template name="tag_title">
     <xsl:with-param name="tag">454</xsl:with-param>
     <xsl:with-param name="label">Translation of</xsl:with-param>
+    <xsl:with-param name="spanclass">original_title</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_title">
     <xsl:with-param name="tag">461</xsl:with-param>
     <xsl:with-param name="label">Set Level</xsl:with-param>
+    <xsl:with-param name="spanclass">set_level</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_title">
     <xsl:with-param name="tag">464</xsl:with-param>
     <xsl:with-param name="label">Piece-Analytic Level</xsl:with-param>
+    <xsl:with-param name="spanclass">piece_analytic_level</xsl:with-param>
   </xsl:call-template>
 
   <xsl:call-template name="tag_210" />
 
   <xsl:call-template name="tag_215" />
 
-  <span class="results_summary">
+  <span class="results_summary availability">
     <span class="label">Availability: </span>
     <xsl:choose>
       <xsl:when test="marc:datafield[@tag=856]">
index 91d9b3d..fc4faa1 100644 (file)
@@ -83,8 +83,9 @@
   <xsl:template name="tag_title">
     <xsl:param name="tag" />
     <xsl:param name="label" />
+    <xsl:param name="spanclass" />
     <xsl:if test="marc:datafield[@tag=$tag]">
-      <span class="results_summary">
+      <span class="results_summary {$spanclass}">
         <span class="label">
         <xsl:value-of select="$label"/>: </span>
         <xsl:for-each select="marc:datafield[@tag=$tag]">
   <xsl:template name="tag_comma">
     <xsl:param name="tag" />
     <xsl:param name="label" />
+    <xsl:param name="spanclass" />
     <xsl:if test="marc:datafield[@tag=$tag]">
-      <span class="results_summary">
+      <span class="results_summary {$spanclass}">
         <span class="label">
         <xsl:value-of select="$label"/>: </span>
         <xsl:for-each select="marc:datafield[@tag=$tag]">
   </xsl:template>
 
   <xsl:template name="tag_210">
-    <span class="results_summary">
-      <span class="label">Publication:</span>
+    <span class="results_summary publication">
+      <span class="label">Publication: </span>
       <xsl:for-each select="marc:datafield[@tag=210]">
         <span>
           <xsl:call-template name="addClassRtl" />
 
   <xsl:template name="tag_215">
     <xsl:for-each select="marc:datafield[@tag=215]">
-         <span class="results_summary">
+         <span class="results_summary description">
         <span class="label">Description: </span>
         <xsl:if test="marc:subfield[@code='a']">
           <xsl:value-of select="marc:subfield[@code='a']"/>
   <xsl:template name="tag_subject">
     <xsl:param name="tag" />
     <xsl:param name="label" />
+    <xsl:param name="spanclass" />
     <xsl:if test="marc:datafield[@tag=$tag]">
-      <span class="results_summary">
+      <span class="results_summary subjects {$spanclass}">
         <span class="label">
           <xsl:value-of select="$label"/>
           <xsl:text>: </xsl:text>
   <xsl:template name="tag_7xx">
     <xsl:param name="tag" />
     <xsl:param name="label" />
+    <xsl:param name="spanclass" />
     <xsl:if test="marc:datafield[@tag=$tag]">
-      <span class="results_summary">
+      <span class="results_summary author {$spanclass}">
         <span class="label">
           <xsl:value-of select="$label" />
           <xsl:text>: </xsl:text>