[Patches] [PATCH] Use MARCAuthorityControlField008 in AddAuthority for empty 008s

koha-patchbot at kohaaloha.com koha-patchbot at kohaaloha.com
Sat Dec 3 14:15:05 NZDT 2011


From: =?UTF-8?q?Fr=C3=A9d=C3=A9rick=20Capovilla?= <frederick.capovilla at libeo.com>
Date: Thu, 20 Oct 2011 12:05:02 -0400
Subject: [PATCH] Use MARCAuthorityControlField008 in AddAuthority for empty 008s
Content-Type: text/plain; charset="UTF-8"

The old default value for field 008 didn't have the correct length,
which could potentially cause data corruptions.

Uses the MARCAuthorityControlField008 preference added by BUG4839.

http://bugs.koha-community.org/show_bug.cgi?id=7072
Signed-off-by: Jared Camins-Esakov <jcamins at cpbibliography.com>
---
 C4/AuthoritiesMarc.pm |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm
index d58798d..b3c5070 100644
--- a/C4/AuthoritiesMarc.pm
+++ b/C4/AuthoritiesMarc.pm
@@ -639,9 +639,16 @@ sub AddAuthority {
 		}
 		my $date=POSIX::strftime("%y%m%d",localtime);
 		if (!$record->field('008')) {
-			$record->insert_fields_ordered(
-				MARC::Field->new('008',$date."|||a||||||           | |||     d")
-			);
+            # Get a valid default value for field 008
+            my $default_008 = C4::Context->preference('MARCAuthorityControlField008');
+            if(!$default_008 or length($default_008)<34) {
+                $default_008 = '|| aca||aabn           | a|a     d';
+            }
+            else {
+                $default_008 = substr($default_008,0,34);
+            }
+
+            $record->insert_fields_ordered( MARC::Field->new('008',$date.$default_008) );
 		}
 		if (!$record->field('040')) {
 		 $record->insert_fields_ordered(
-- 
1.7.2.5


More information about the Patches mailing list