[Koha-cvs] CVS: koha MARCdetail.pl,1.14,1.15

Paul POULAIN tipaul at users.sourceforge.net
Mon Apr 28 15:07:47 CEST 2003


Update of /cvsroot/koha/koha
In directory sc8-pr-cvs1:/tmp/cvs-serv27858

Modified Files:
	MARCdetail.pl 
Log Message:
Those fixes solves the "internal server error" with MARC::Record 1.12.
It was due to an illegal contruction in Koha : we tried to retrive subfields from <10 tags.
That's not possible. MARC::Record accepted this in 0.93 version, but it was fixed after.
Now, the construct/retrieving is OK !

Index: MARCdetail.pl
===================================================================
RCS file: /cvsroot/koha/koha/MARCdetail.pl,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -r1.14 -r1.15
*** MARCdetail.pl	7 Apr 2003 14:06:29 -0000	1.14
--- MARCdetail.pl	28 Apr 2003 13:07:14 -0000	1.15
***************
*** 89,109 ****
  	my @loop_data =();
  	foreach my $field (@fields) {
! 		my @subf=$field->subfields;
! #		my $previous_tag = '';
! 		my @subfields_data;
! # loop through each subfield
! 		for my $i (0..$#subf) {
! #			$previous_tag = $field->tag();
! 			$subf[$i][0] = "@" unless $subf[$i][0];
! 			next if ($tagslib->{$field->tag()}->{$subf[$i][0]}->{tab}  ne $tabloop);
  			my %subfield_data;
! 			$subfield_data{marc_lib}=$tagslib->{$field->tag()}->{$subf[$i][0]}->{lib};
! 			if ($field->tag()<10) {
! 				$subfield_data{marc_value}=$field->data();
! 			} else {
! 				$subfield_data{marc_value}=$subf[$i][1];
! 			}
! 			$subfield_data{marc_tag}=$subf[$i][0];
  			push(@subfields_data, \%subfield_data);
  		}
  		if ($#subfields_data>=0) {
--- 89,113 ----
  	my @loop_data =();
  	foreach my $field (@fields) {
! 			my @subfields_data;
! 		# if tag <10, there's no subfield, use the "@" trick
! 		if ($field->tag()<10) {
!   			next if ($tagslib->{$field->tag()}->{'@'}->{tab}  ne $tabloop);
  			my %subfield_data;
! 			$subfield_data{marc_lib}=$tagslib->{$field->tag()}->{'@'}->{lib};
! 			$subfield_data{marc_value}=$field->data();
! 			$subfield_data{marc_tag}='@';
  			push(@subfields_data, \%subfield_data);
+ 		} else {
+ 			my @subf=$field->subfields;
+ 	# loop through each subfield
+ 			for my $i (0..$#subf) {
+ 				$subf[$i][0] = "@" unless $subf[$i][0];
+ 				next if ($tagslib->{$field->tag()}->{$subf[$i][0]}->{tab}  ne $tabloop);
+ 				my %subfield_data;
+ 				$subfield_data{marc_lib}=$tagslib->{$field->tag()}->{$subf[$i][0]}->{lib};
+ 					$subfield_data{marc_value}=$subf[$i][1];
+ 				$subfield_data{marc_tag}=$subf[$i][0];
+ 				push(@subfields_data, \%subfield_data);
+ 			}
  		}
  		if ($#subfields_data>=0) {
***************
*** 125,128 ****
--- 129,133 ----
  my @big_array;
  foreach my $field (@fields) {
+ 	next if ($field->tag()<10);
  	my @subf=$field->subfields;
  	my %this_row;
***************
*** 141,145 ****
  	for (my $i=0;$i<=$#big_array;$i++) {
  		$big_array[$i]{$subfield_code}="&nbsp;" unless ($big_array[$i]{$subfield_code});
- #		warn "filled : ".$big_array[$i]{$subfield_code};
  	}
  }
--- 146,149 ----
***************
*** 152,156 ****
  		$items_data .="<td>".$big_array[$i]{$subfield_code}."</td>";
  	}
- #	warn $items_data;
  	my %row_data;
  	$row_data{item_value} = $items_data;
--- 156,159 ----





More information about the Koha-cvs mailing list