X-Git-Url: http://koha-dev.rot13.org:8081/gitweb/?a=blobdiff_plain;f=C4%2FBiblio.pm;h=5508cbebeb0280d138e3ad807f38106f7e6ded4a;hb=65129084ef2bdc5c4a9dea4f98480b30fc646d98;hp=39a2b7abd49249c56782bca6a05e67099c2c47ea;hpb=4d26038dd23060de979f0b1751b05c5e4cc76083;p=koha_fer diff --git a/C4/Biblio.pm b/C4/Biblio.pm index 39a2b7abd4..5508cbebeb 100644 --- a/C4/Biblio.pm +++ b/C4/Biblio.pm @@ -1081,7 +1081,7 @@ sub GetMarcStructure { } $sth = $dbh->prepare( - "SELECT tagfield,tagsubfield,liblibrarian,libopac,tab,mandatory,repeatable,authorised_value,authtypecode,value_builder,kohafield,seealso,hidden,isurl,link,defaultvalue + "SELECT tagfield,tagsubfield,liblibrarian,libopac,tab,mandatory,repeatable,authorised_value,authtypecode,value_builder,kohafield,seealso,hidden,isurl,link,defaultvalue,maxlength FROM marc_subfield_structure WHERE frameworkcode=? ORDER BY tagfield,tagsubfield @@ -1100,10 +1100,12 @@ sub GetMarcStructure { my $isurl; my $link; my $defaultvalue; + my $maxlength; while ( ( $tag, $subfield, $liblibrarian, $libopac, $tab, $mandatory, $repeatable, $authorised_value, - $authtypecode, $value_builder, $kohafield, $seealso, $hidden, $isurl, $link, $defaultvalue + $authtypecode, $value_builder, $kohafield, $seealso, $hidden, $isurl, $link, $defaultvalue, + $maxlength ) = $sth->fetchrow ) { @@ -1120,6 +1122,7 @@ sub GetMarcStructure { $res->{$tag}->{$subfield}->{isurl} = $isurl; $res->{$tag}->{$subfield}->{'link'} = $link; $res->{$tag}->{$subfield}->{defaultvalue} = $defaultvalue; + $res->{$tag}->{$subfield}->{maxlength} = $maxlength; } $marc_structure_cache->{$forlibrarian}->{$frameworkcode} = $res; @@ -1686,7 +1689,7 @@ sub GetMarcSubjects { # ignore $9 my @this_link_loop = @link_loop; - push @subfields_loop, { code => $code, value => $value, link_loop => \@this_link_loop, separator => $separator } unless ( $subject_subfield->[0] eq 9 ); + push @subfields_loop, { code => $code, value => $value, link_loop => \@this_link_loop, separator => $separator } unless ( $subject_subfield->[0] eq 9 || $subject_subfield->[0] eq '0' ); $counter++; } @@ -1770,7 +1773,7 @@ sub GetMarcAuthors { link_loop => \@this_link_loop, separator => $separator } - unless ( $authors_subfield->[0] eq '9' ); + unless ( $authors_subfield->[0] eq '9' || $authors_subfield->[0] eq '0'); $count_auth++; } push @marcauthors, { MARCAUTHOR_SUBFIELDS_LOOP => \@subfields_loop }; @@ -1993,6 +1996,7 @@ sub TransformKohaToMarc { my $db_to_marc = C4::Context->marcfromkohafield; while ( my ($name, $value) = each %$hash ) { next unless my $dtm = $db_to_marc->{''}->{$name}; + next unless ( scalar( @$dtm ) ); my ($tag, $letter) = @$dtm; foreach my $value ( split(/\s?\|\s?/, $value, -1) ) { if ( my $field = $record->field($tag) ) { @@ -3465,9 +3469,12 @@ Function exported, but should NOT be used, unless you really know what you're do =cut sub ModBiblioMarc { - - # pass the MARC::Record to this function, and it will create the records in the marc field + # pass the MARC::Record to this function, and it will create the records in + # the marc field my ( $record, $biblionumber, $frameworkcode ) = @_; + + # Clone record as it gets modified + $record = $record->clone(); my $dbh = C4::Context->dbh; my @fields = $record->fields(); if ( !$frameworkcode ) {