koha-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Koha-cvs] koha acqui.simple/addbiblio.pl updater/updateda... [rel_2_2]


From: Henri-Damien LAURENT
Subject: [Koha-cvs] koha acqui.simple/addbiblio.pl updater/updateda... [rel_2_2]
Date: Fri, 21 Apr 2006 08:54:55 +0000

CVSROOT:        /cvsroot/koha
Module name:    koha
Branch:         rel_2_2
Changes by:     Henri-Damien LAURENT <address@hidden>   06/04/21 08:54:55

Modified files:
        acqui.simple   : addbiblio.pl 
        updater        : updatedatabase 

Log message:
        Adding two new sysprefs :
        - z3950NormalizeAuthor of type YesNo. Set this to yes if you want 
author field to be filled with authorities fields when importing biblio in z3950
        - z3950AuthorAuthfields, free text : type in comma-separated list of 
fields to search for author names for AuthorNormalization.
        
        Adding a feature on a Z3950 import.
        You can now automatically fill author with person name authority 
contained in the biblio if sysprefs are filled.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/koha/acqui.simple/addbiblio.pl.diff?only_with_tag=rel_2_2&tr1=1.52.2.39&tr2=1.52.2.40&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/koha/koha/updater/updatedatabase.diff?only_with_tag=rel_2_2&tr1=1.100.2.40&tr2=1.100.2.41&r1=text&r2=text

Patches:
Index: koha/acqui.simple/addbiblio.pl
diff -u koha/acqui.simple/addbiblio.pl:1.52.2.39 
koha/acqui.simple/addbiblio.pl:1.52.2.40
--- koha/acqui.simple/addbiblio.pl:1.52.2.39    Thu Apr 13 05:53:45 2006
+++ koha/acqui.simple/addbiblio.pl      Fri Apr 21 08:54:55 2006
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# $Id: addbiblio.pl,v 1.52.2.39 2006/04/13 05:53:45 kados Exp $
+# $Id: addbiblio.pl,v 1.52.2.40 2006/04/21 08:54:55 hdl Exp $
 
 # Copyright 2000-2002 Katipo Communications
 #
@@ -98,6 +98,44 @@
                if (ref($record) eq undef) {
                        return -1;
                } else {
+                       if (C4::Context->preference("z3950NormalizeAuthor") and 
C4::Context->preference("z3950AuthorAuthFields")){
+                               my ($tag,$subfield) = 
MARCfind_marc_from_kohafield($dbh,"biblio.author");
+#                              my $summary = 
C4::Context->preference("z3950authortemplate");
+                               my $auth_fields = 
C4::Context->preference("z3950AuthorAuthFields");
+                               my @auth_fields= split /,/,$auth_fields;
+                               my $field;
+                               warn $record->as_formatted;
+                               if ($record->field($tag)){
+                                       foreach my $tmpfield 
($record->field($tag)->subfields){
+#                                              foreach my $subfieldcode 
($tmpfield->subfields){
+                                               my $subfieldcode=shift 
@$tmpfield;
+                                               my $subfieldvalue=shift 
@$tmpfield;
+                                               if ($field){
+                                                       
$field->add_subfields("$subfieldcode"=>$subfieldvalue) if ($subfieldcode ne 
$subfield);
+                                               } else {
+                                                       
$field=MARC::Field->new($tag,"","",$subfieldcode=>$subfieldvalue) if 
($subfieldcode ne $subfield);
+                                               }
+                                       }
+                                       warn $field->as_formatted;
+#                                      }
+                               }
+                               $record->delete_field($record->field($tag));
+                               foreach my $fieldtag (@auth_fields){
+                                       next unless ($record->field($fieldtag));
+                                       my $lastname = 
$record->field($fieldtag)->subfield('a');
+                                       my $firstname= 
$record->field($fieldtag)->subfield('b');
+                                       my $title = 
$record->field($fieldtag)->subfield('c');
+                                       my $number= 
$record->field($fieldtag)->subfield('d');
+                                       if ($title){
+#                                              
$field->add_subfields("$subfield"=>"[ ".ucfirst($title).ucfirst($firstname)." 
".$number." ]");
+                                               
$field->add_subfields("$subfield"=>ucfirst($title)." ".ucfirst($firstname)." 
".$number);
+                                       }else{
+#                                              
$field->add_subfields("$subfield"=>"[ ".ucfirst($firstname).", 
".ucfirst($lastname)." ]");
+                                               
$field->add_subfields("$subfield"=>ucfirst($firstname).", ".ucfirst($lastname));
+                                       }
+                               }
+                               $record->insert_fields_ordered($field);
+                       }
                        return $record,$encoding;
                }
        }
Index: koha/updater/updatedatabase
diff -u koha/updater/updatedatabase:1.100.2.40 
koha/updater/updatedatabase:1.100.2.41
--- koha/updater/updatedatabase:1.100.2.40      Tue Apr 18 09:34:15 2006
+++ koha/updater/updatedatabase Fri Apr 21 08:54:55 2006
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 
-# $Id: updatedatabase,v 1.100.2.40 2006/04/18 09:34:15 plg Exp $
+# $Id: updatedatabase,v 1.100.2.41 2006/04/21 08:54:55 hdl Exp $
 
 # Database Updater
 # This script checks for required updates to the database.
@@ -1321,6 +1321,32 @@
 "If set, the MARC editor won't show you tag/subfields description",
             type => 'YesNo',
         },
+        {
+            uniquefieldrequired => 'variable',
+            variable            => 'z3950NormalizeAuthor',
+            value               => '0',
+            forceupdate         => {
+                'explanation' => 1,
+                '
+                                        type' => 1
+            },
+            explanation =>
+"If set, Personnal Authorities will replace authors in biblio.author",
+            type => 'YesNo',
+        },
+        {
+            uniquefieldrequired => 'variable',
+            variable            => 'z3950AuthorAuthFields',
+            value               => '701,702,700',
+            forceupdate         => {
+                'explanation' => 1,
+                '
+                                        type' => 1
+            },
+            explanation =>
+"contains the MARC biblio tags of person authorities to fill biblio.author 
with when importing biblio",
+            type => 'free',
+        },
     ],
 
 );
@@ -2054,6 +2080,14 @@
 exit;
 
 # $Log: updatedatabase,v $
+# Revision 1.100.2.41  2006/04/21 08:54:55  hdl
+# Adding two new sysprefs :
+# - z3950NormalizeAuthor of type YesNo. Set this to yes if you want author 
field to be filled with authorities fields when importing biblio in z3950
+# - z3950AuthorAuthfields, free text : type in comma-separated list of fields 
to search for author names for AuthorNormalization.
+#
+# Adding a feature on a Z3950 import.
+# You can now automatically fill author with person name authority contained 
in the biblio if sysprefs are filled.
+#
 # Revision 1.100.2.40  2006/04/18 09:34:15  plg
 # bug fixed: typo fixed in labels and labels_conf tables creation query.
 #




reply via email to

[Prev in Thread] Current Thread [Next in Thread]