[Koha-cvs] koha/C4 AuthoritiesMarc.pm [rel_2_2]
paul poulain
paul at koha-fr.org
Thu Aug 10 14:42:34 CEST 2006
CVSROOT: /cvsroot/koha
Module name: koha
Branch: rel_2_2
Changes by: paul poulain <tipaul> 06/08/10 12:42:33
Modified files:
C4 : AuthoritiesMarc.pm
Log message:
warn commenting + some bugfixes I forgot to commit (for authorities editing)
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/C4/AuthoritiesMarc.pm?cvsroot=koha&only_with_tag=rel_2_2&r1=1.9.2.23&r2=1.9.2.24
Patches:
Index: AuthoritiesMarc.pm
===================================================================
RCS file: /cvsroot/koha/koha/C4/AuthoritiesMarc.pm,v
retrieving revision 1.9.2.23
retrieving revision 1.9.2.24
diff -u -b -r1.9.2.23 -r1.9.2.24
--- AuthoritiesMarc.pm 3 Aug 2006 00:50:34 -0000 1.9.2.23
+++ AuthoritiesMarc.pm 10 Aug 2006 12:42:33 -0000 1.9.2.24
@@ -798,7 +798,6 @@
if ((@$tags[$i] ne $prevtag)){
$j++ unless (@$tags[$i] eq "");
- warn "IND:".substr(@$indicator[$j],0,1).substr(@$indicator[$j],1,1)." ".@$tags[$i];
if (!$first){
$xml.="</datafield>\n";
@@ -841,7 +840,7 @@
$prevtag = @$tags[$i];
}
$xml.= MARC::File::XML::footer();
- warn $xml;
+# warn $xml;
return $xml
}
sub AUTHhtml2marc {
@@ -853,38 +852,61 @@
my $field; # if tag >=10
for (my $i=0; $i< @$rtags; $i++) {
# rebuild MARC::Record
+# warn "0=>".@$rtags[$i].@$rsubfields[$i]." = ".@$rvalues[$i].": ";
if (@$rtags[$i] ne $prevtag) {
if ($prevtag < 10) {
if ($prevvalue) {
+ if (($prevtag ne '000') && ($prevvalue ne "")) {
$record->add_fields((sprintf "%03s",$prevtag),$prevvalue);
+ } elsif ($prevvalue ne ""){
+ $record->leader($prevvalue);
+ }
}
} else {
- if ($field) {
+ if (($field) && ($field ne "")) {
$record->add_fields($field);
}
}
$indicators{@$rtags[$i]}.=' ';
+ # skip blank tags, I hope this works
+ if (@$rtags[$i] eq ''){
+ $prevtag = @$rtags[$i];
+ undef $field;
+ next;
+ }
if (@$rtags[$i] <10) {
$prevvalue= @$rvalues[$i];
undef $field;
} else {
undef $prevvalue;
+ if (@$rvalues[$i] eq "") {
+ undef $field;
+ } else {
$field = MARC::Field->new( (sprintf "%03s",@$rtags[$i]), substr($indicators{@$rtags[$i]},0,1),substr($indicators{@$rtags[$i]},1,1), @$rsubfields[$i] => @$rvalues[$i]);
}
+# warn "1=>".@$rtags[$i].@$rsubfields[$i]." = ".@$rvalues[$i].": ".$field->as_formatted;
+ }
$prevtag = @$rtags[$i];
} else {
if (@$rtags[$i] <10) {
$prevvalue=@$rvalues[$i];
} else {
if (length(@$rvalues[$i])>0) {
+ if ($field) {
$field->add_subfields(@$rsubfields[$i] => @$rvalues[$i]);
+ } else {
+ $field = MARC::Field->new( (sprintf "%03s",@$rtags[$i]), substr($indicators{@$rtags[$i]},0,1),substr($indicators{@$rtags[$i]},1,1), @$rsubfields[$i] => @$rvalues[$i]);
+ }
+# warn "2=>".@$rtags[$i].@$rsubfields[$i]." = ".@$rvalues[$i].": ".$field->as_formatted;
}
}
$prevtag= @$rtags[$i];
}
}
+ #}
# the last has not been included inside the loop... do it now !
- $record->add_fields($field) if $field;
+ $record->add_fields($field) if (($field) && $field ne "");
+ #warn "HTML2MARC=".$record->as_formatted;
return $record;
}
@@ -1059,7 +1081,7 @@
sub FindDuplicate {
my ($record,$authtypecode)=@_;
- warn "IN for ".$record->as_formatted;
+# warn "IN for ".$record->as_formatted;
my $dbh = C4::Context->dbh;
# warn "".$record->as_formatted;
@@ -1075,7 +1097,7 @@
my @subfield = split /\[/, $taglist;
my $max = @subfield;
for (my $i=1; $i<$max;$i++){
- warn " ".$subfield[$i];
+# warn " ".$subfield[$i];
$subfield[$i]=substr($subfield[$i],3,1);
# warn " ".$subfield[$i];
}
@@ -1086,7 +1108,7 @@
# warn " field $auth_tag_to_report exists";
while (my ($tag,$subfield) = $sth->fetchrow){
if ($record->field($tag)->subfield($subfield)) {
- warn "tag :".$tag." subfield: $subfield value : ".$record->field($tag)->subfield($subfield);
+# warn "tag :".$tag." subfield: $subfield value : ".$record->field($tag)->subfield($subfield);
push @tags, $tag.$subfield;
# warn "'".$tag.$subfield."' value :". $record->field($tag)->subfield($subfield);
push @and_or, "and";
@@ -1100,7 +1122,7 @@
my ($finalresult,$nbresult) = authoritysearch($dbh,\@tags,\@and_or,\@excluding,\@operator,\@value,0,10,$authtypecode);
# there is at least 1 result => return the 1st one
if ($nbresult) {
- warn "XXXXX $nbresult => ".@$finalresult[0]->{authid},@$finalresult[0]->{summary};
+# warn "XXXXX $nbresult => ".@$finalresult[0]->{authid},@$finalresult[0]->{summary};
return @$finalresult[0]->{authid},@$finalresult[0]->{summary};
}
# no result, returns nothing
@@ -1311,8 +1333,11 @@
=cut
-# $Id: AuthoritiesMarc.pm,v 1.9.2.23 2006/08/03 00:50:34 kados Exp $
+# $Id: AuthoritiesMarc.pm,v 1.9.2.24 2006/08/10 12:42:33 tipaul Exp $
# $Log: AuthoritiesMarc.pm,v $
+# Revision 1.9.2.24 2006/08/10 12:42:33 tipaul
+# warn commenting + some bugfixes I forgot to commit (for authorities editing)
+#
# Revision 1.9.2.23 2006/08/03 00:50:34 kados
# fix to bug 1130: Summary display broken for MARC21 Authorities
#
More information about the Koha-cvs
mailing list