Bug 6499: Add Zebra index "Other-control-number" covering MARC21 035$a, 035$z and...
authorBarton Chittenden <barton@bywatersolutions.com>
Thu, 10 Jul 2014 13:54:56 +0000 (09:54 -0400)
committerKyle M Hall <kyle@bywatersolutions.com>
Tue, 9 Aug 2016 10:13:10 +0000 (10:13 +0000)
1) Apply patch
2) Make sure that you have a bib that has MARC21 035$a (and possibly also 035$z) populated.

pre 3) Replace all modified zebra files and restart zebra server

3) Rebuild zebra: misc/migration_tools/rebuild_zebra.pl -x -b -z
4) Add the following to the intranetuserjs syspref:

$(document).ready(function(){
    // Add Other Control Number to advanced search
    if (window.location.href.indexOf("catalogue/search.pl") > -1) {
        $(".advsearch").append('<option value="Other-control-number">Other Control Number</option>');
    }
});

5) Do an advanced search, select "Other Control Number" from the search menu, then add the Other Control Number in 035$a for the bib specified in step 1.

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Works, no koha-qa errors

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
C4/Search.pm
etc/zebradb/biblios/etc/bib1.att
etc/zebradb/ccl.properties
etc/zebradb/marc_defs/marc21/biblios/biblio-koha-indexdefs.xml
etc/zebradb/marc_defs/marc21/biblios/biblio-zebra-indexdefs.xsl
etc/zebradb/marc_defs/marc21/biblios/record.abs

index 36c4cfa..88dbc80 100644 (file)
@@ -1179,6 +1179,7 @@ sub getIndexes{
                     'notes',
                     'ns',
                     'nt',
+                    'Other-control-number',
                     'pb',
                     'Personal-name',
                     'Personal-name-heading',
index ff63a36..a88b2ce 100644 (file)
@@ -191,7 +191,8 @@ att 1207    Instruments-total-number
 att 1208    Instruments-distint-number
 att 1209    Identifier-URN
 att 1210    Sears-Subject-Heading
-att 1211    OCLC-Number
+#att 1211    OCLC-Number
+att 1211    Other-control-number
 att 1212    Composition
 att 1213    Intellectual-level
 att 1214    EAN
index 873c749..24f192e 100644 (file)
@@ -364,6 +364,9 @@ dtlm Date/time-last-modified
 Dissertation-information 1=1056
 diss Dissertation-information
 
+#OCLC Number          1211  OCLC Number                     MARC21 035
+Other-control-number 1=1211
+
 #EAN                  1214  European article number         UNIMARC 073
 EAN 1=1214
 ean EAN
index 35b1c71..b3877dd 100644 (file)
   <index_data_field tag="034">
     <target_index>Map-scale:w</target_index>
   </index_data_field>
-  <!--record.abs line 68: melm 037        Identifier-standard,Stock-number-->
+  <!--record.abs line 75: melm 035$a      Other-control-number-->
+  <index_subfields tag="035" subfields="a">
+    <target_index>Other-control-number:w</target_index>
+  </index_subfields>
+  <!--record.abs line 76: melm 035$z      Other-control-number-->
+  <index_subfields tag="035" subfields="z">
+    <target_index>Other-control-number:w</target_index>
+  </index_subfields>
+  <!--record.abs line 77: melm 035        Other-control-number-->
+  <index_data_field tag="035">
+    <target_index>Other-control-number:w</target_index>
+  </index_data_field>
+  <!--record.abs line 78: melm 037        Identifier-standard,Stock-number-->
   <index_data_field tag="037">
     <target_index>Identifier-standard:w</target_index>
     <target_index>Stock-number:w</target_index>
index 16b339e..e6dc25b 100644 (file)
@@ -191,6 +191,22 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
       </xslo:for-each>
     </xslo:if>
   </xslo:template>
+  <xslo:template mode="index_subfields" match="marc:datafield[@tag='035']">
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('a', @code)">
+        <z:index name="Other-control-number:w">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+    <xslo:for-each select="marc:subfield">
+      <xslo:if test="contains('z', @code)">
+        <z:index name="Other-control-number:w">
+          <xslo:value-of select="."/>
+        </z:index>
+      </xslo:if>
+    </xslo:for-each>
+  </xslo:template>
   <xslo:template mode="index_subfields" match="marc:datafield[@tag='041']">
     <xslo:for-each select="marc:subfield">
       <xslo:if test="contains('a', @code)">
@@ -1588,6 +1604,19 @@ definition file (probably something like {biblio,authority}-koha-indexdefs.xml)
       <xslo:value-of select="normalize-space($raw_heading)"/>
     </z:index>
   </xslo:template>
+  <xslo:template mode="index_data_field" match="marc:datafield[@tag='035']">
+    <z:index name="Other-control-number:w">
+      <xslo:variable name="raw_heading">
+        <xslo:for-each select="marc:subfield">
+          <xslo:if test="position() &gt; 1">
+            <xslo:value-of select="substring(' ', 1, 1)"/>
+          </xslo:if>
+          <xslo:value-of select="."/>
+        </xslo:for-each>
+      </xslo:variable>
+      <xslo:value-of select="normalize-space($raw_heading)"/>
+    </z:index>
+  </xslo:template>
   <xslo:template mode="index_data_field" match="marc:datafield[@tag='037']">
     <z:index name="Identifier-standard:w Stock-number:w">
       <xslo:variable name="raw_heading">
index efdcf80..1c2b269 100644 (file)
@@ -72,7 +72,9 @@ melm 028        Identifier-publisher-for-music,Identifier-standard
 melm 030        CODEN,Identifier-standard
 #melm 033       Date
 melm 034        Map-scale
-#melm 035       Local-number,Identifier-standard
+melm 035$a      Other-control-number
+melm 035$z      Other-control-number
+melm 035        Other-control-number
 melm 037        Identifier-standard,Stock-number
 melm 040        Code-institution,Record-source
 melm 041$a      ln,ln-audio:w