[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Koha-cvs] koha/C4 Biblio.pm [rel_2_2]
From: |
Joshua Ferraro |
Subject: |
[Koha-cvs] koha/C4 Biblio.pm [rel_2_2] |
Date: |
Wed, 08 Mar 2006 16:31:04 +0000 |
CVSROOT: /sources/koha
Module name: koha
Branch: rel_2_2
Changes by: Joshua Ferraro <address@hidden> 06/03/08 16:31:04
Modified files:
C4 : Biblio.pm
Log message:
bugfix for Biblio.pm based on feedback from production system. previous
version was dropping subfields in cases where the previous tag in the
editor contained values (but only when multiple subfields existed in
both tags). This version will be tested again in production environment
to ensure it is actually fixed.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/koha/C4/Biblio.pm.diff?only_with_tag=rel_2_2&tr1=1.115.2.45&tr2=1.115.2.46&r1=text&r2=text
Patches:
Index: koha/C4/Biblio.pm
diff -u koha/C4/Biblio.pm:1.115.2.45 koha/C4/Biblio.pm:1.115.2.46
--- koha/C4/Biblio.pm:1.115.2.45 Wed Mar 8 10:49:36 2006
+++ koha/C4/Biblio.pm Wed Mar 8 16:31:04 2006
@@ -1040,60 +1040,61 @@
my ($tags,$subfields,$values,$indicator,$ind_tag) = @_;
use MARC::File::XML;
my $xml= MARC::File::XML::header();
- my $prevvalue;
- my $prevtag=-1;
- my $first=1;
+ my $prevvalue;
+ my $prevtag=-1;
+ my $first=1;
my $j = -1;
- for (my $i=0;$i<address@hidden;$i++){
+ for (my $i=0;$i<address@hidden;$i++){
if ((@$tags[$i] ne $prevtag)){
$j++ unless (@$tags[$i] eq "");
- # deal with &, <, >,", ' that are not valid in a XML
file.
- @$values[$i] =~ s/&/&/g;
- @$values[$i] =~ s/</</g;
- @$values[$i] =~ s/>/>/g;
- @$values[$i] =~ s/"/"/g;
- @$values[$i] =~ s/'/'/g;
+ #warn
"IND:".substr(@$indicator[$j],0,1).substr(@$indicator[$j],1,1)."
"address@hidden;
if (!$first){
- $xml.="</datafield>\n";
- $first=1;
+ $xml.="</datafield>\n";
+ if (@$tags[$i] > 10) {
+ my $ind1 =
substr(@$indicator[$j],0,1);
+ my $ind2 = substr(@$indicator[$j],1,1);
+ $xml.="<datafield tag=\"@$tags[$i]\" ind1=\"$ind1\"
ind2=\"$ind2\">\n";
+ $xml.="<subfield
code=\"@$subfields[$i]\">@$values[$i]</subfield>\n";
+ $first=0;
+ } else {
+ $first=1;
}
- else {
- if (@$values[$i] ne "") {
- # leader
- if (@$tags[$i] eq "000") {
+ } else {
+ if (@$values[$i] ne "") {
+ # leader
+ if (@$tags[$i] eq "000") {
$xml.="<leader>@$values[$i]</leader>\n";
$first=1;
- # rest of the fixed fields
- } elsif (@$tags[$i] < 10) {
+ # rest of the fixed fields
+ } elsif (@$tags[$i] < 10) {
$xml.="<controlfield
tag=\"@$tags[$i]\">@$values[$i]</controlfield>\n";
$first=1;
- }
- else {
+ } else {
my $ind1 =
substr(@$indicator[$j],0,1);
my $ind2 =
substr(@$indicator[$j],1,1);
$xml.="<datafield
tag=\"@$tags[$i]\" ind1=\"$ind1\" ind2=\"$ind2\">\n";
$xml.="<subfield
code=\"@$subfields[$i]\">@$values[$i]</subfield>\n";
$first=0;
- }
- }
- }
- } else {
- if (@$values[$i] eq "") {
+ }
+ }
}
- else {
- if ($first){
- my $ind1 = substr(@$indicator[$j],0,1);
- my $ind2 = substr(@$indicator[$j],1,1);
- $xml.="<datafield tag=\"@$tags[$i]\"
ind1=\"$ind1\" ind2=\"$ind2\">\n";
- $first=0;
+ } else { # @$tags[$i] eq $prevtag
+ if (@$values[$i] eq "") {
+ }
+ else {
+ if ($first){
+ my $ind1 =
substr(@$indicator[$j],0,1);
+ my $ind2 =
substr(@$indicator[$j],1,1);
+ $xml.="<datafield
tag=\"@$tags[$i]\" ind1=\"$ind1\" ind2=\"$ind2\">\n";
+ $first=0;
+ }
+ $xml.="<subfield
code=\"@$subfields[$i]\">@$values[$i]</subfield>\n";
}
- $xml.="<subfield
code=\"@$subfields[$i]\">@$values[$i]</subfield>\n";
- }
}
- $prevtag = @$tags[$i];
- }
- $xml.= MARC::File::XML::footer();
-# warn $xml;
+ $prevtag = @$tags[$i];
+ }
+ $xml.= MARC::File::XML::footer();
+ warn $xml;
return $xml
}
sub MARChtml2marc {
@@ -2992,10 +2993,14 @@
=cut
-# $Id: Biblio.pm,v 1.115.2.45 2006/03/08 10:49:36 tipaul Exp $
+# $Id: Biblio.pm,v 1.115.2.46 2006/03/08 16:31:04 kados Exp $
# $Log: Biblio.pm,v $
-# Revision 1.115.2.45 2006/03/08 10:49:36 tipaul
-# deal with &, <, >,", ' that are not valid in a XML file.
+# Revision 1.115.2.46 2006/03/08 16:31:04 kados
+# bugfix for Biblio.pm based on feedback from production system. previous
+# version was dropping subfields in cases where the previous tag in the
+# editor contained values (but only when multiple subfields existed in
+# both tags). This version will be tested again in production environment
+# to ensure it is actually fixed.
#
# Revision 1.115.2.44 2006/03/01 17:26:08 kados
# Adding 'use MARC::File::XML' to routine ... needed for additem.pl to work
- [Koha-cvs] koha/C4 Biblio.pm [rel_2_2], Joshua Ferraro, 2006/03/01
- [Koha-cvs] koha/C4 Biblio.pm [rel_2_2], Joshua Ferraro, 2006/03/01
- [Koha-cvs] koha/C4 Biblio.pm [rel_2_2], Joshua Ferraro, 2006/03/01
- [Koha-cvs] koha/C4 Biblio.pm [rel_2_2], Joshua Ferraro, 2006/03/02
- [Koha-cvs] koha/C4 Biblio.pm [rel_2_2], Joshua Ferraro, 2006/03/04
- [Koha-cvs] koha/C4 Biblio.pm [rel_2_2], paul poulain, 2006/03/08
- [Koha-cvs] koha/C4 Biblio.pm [rel_2_2],
Joshua Ferraro <=
- [Koha-cvs] koha/C4 Biblio.pm [rel_2_2], Joshua Ferraro, 2006/03/08
- [Koha-cvs] koha/C4 Biblio.pm [rel_2_2], Joshua Ferraro, 2006/03/08