koha-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


From: Paul POULAIN
Subject: [Koha-cvs] CVS: koha MARCdetail.pl,1.14,1.15
Date: Mon, 28 Apr 2003 06:07:47 -0700

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 ----




reply via email to

[Prev in Thread] Current Thread [Next in Thread]