[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}=" " 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