Bug 14766: Complete cataloguing plugin unimarc_field_4XX
authorPaul Poulain <paul.poulain@biblibre.com>
Wed, 26 Aug 2015 08:54:30 +0000 (10:54 +0200)
committerTomas Cohen Arazi <tomascohen@theke.io>
Mon, 7 Sep 2015 14:14:48 +0000 (11:14 -0300)
Add subfields l, n and o for better UNIMARC compliance

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>

Note: I just did a code audit here, as I don't know enough about
UNIMARC to know if the 4XX fields should have these subfields.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>

cataloguing/value_builder/unimarc_field_4XX.pl
koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/unimarc_field_4XX.tt

index 56b5e14..a378618 100755 (executable)
@@ -241,6 +241,18 @@ sub plugin {
             $subfield_value_i = $marcrecord->field('500')->subfield("i");
         }
 
+        my $subfield_value_l;
+        $subfield_value_l = $marcrecord->field('200')->subfield("d")
+            if ( $marcrecord->field('200') );
+
+        my $subfield_value_n;
+        $subfield_value_n = $marcrecord->field('210')->subfield("c")
+            if ( $marcrecord->field('210') );
+
+        my $subfield_value_o;
+        $subfield_value_o = $marcrecord->field('200')->subfield("e")
+            if ( $marcrecord->field('200') );
+
         my $subfield_value_p;
        $subfield_value_p = $marcrecord->field('215')->subfield("a")
           if ( $marcrecord->field('215') );
@@ -301,6 +313,9 @@ sub plugin {
         $subfield_value_e =~ s/'/\\'/g;
         $subfield_value_h =~ s/'/\\'/g;
         $subfield_value_i =~ s/'/\\'/g;
+        $subfield_value_l =~ s/'/\\'/g;
+        $subfield_value_n =~ s/'/\\'/g;
+        $subfield_value_o =~ s/'/\\'/g;
         $subfield_value_p =~ s/'/\\'/g;
         $subfield_value_t =~ s/'/\\'/g;
         $subfield_value_u =~ s/'/\\'/g;
@@ -319,6 +334,9 @@ sub plugin {
             subfield_value_e => "$subfield_value_e",
             subfield_value_h => "$subfield_value_h",
             subfield_value_i => "$subfield_value_i",
+            subfield_value_l => "$subfield_value_l",
+            subfield_value_n => "$subfield_value_n",
+            subfield_value_o => "$subfield_value_o",
             subfield_value_p => "$subfield_value_p",
             subfield_value_t => "$subfield_value_t",
             subfield_value_u => "$subfield_value_u",
index 447257a..868a839 100644 (file)
                         if(code.value == 'i'){
                                 subfield.value = "[% subfield_value_i |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]";
                         }
+                        if(code.value == 'l'){
+                                subfield.value = "[% subfield_value_l %]";
+                        }
+                        if(code.value == 'n'){
+                                subfield.value = "[% subfield_value_n %]";
+                        }
+                        if(code.value == 'o'){
+                                subfield.value = "[% subfield_value_o %]";
+                        }
                         if(code.value == 'p'){
                                 subfield.value = "[% subfield_value_p |replace("'", "\'") |replace('"', '\"') |replace('\n', '\\n') |replace('\r', '\\r') %]";
                         }