[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