X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=C4%2FRecord.pm;h=25df9ad65fba88ec1a1c3bf71be30c7940782493;hb=29e5fa7ca2cd3531ebc319f480a3ae2a983bed2c;hp=b274fd7e5efe8dfff1e441bf2286c7dae620f8a6;hpb=3cfbcb63ce765c061db321cc7870f0c2e9c47def;p=koha.git diff --git a/C4/Record.pm b/C4/Record.pm index b274fd7e5e..25df9ad65f 100644 --- a/C4/Record.pm +++ b/C4/Record.pm @@ -517,8 +517,19 @@ sub marcrecord2csv { foreach (@fields) { my $value; - # Getting authorised value - $value = defined $authvalues->{$_->as_string} ? $authvalues->{$_->as_string} : $_->as_string; + # If it is a control field + if ($_->is_control_field) { + $value = defined $authvalues->{$_->as_string} ? $authvalues->{$_->as_string} : $_->as_string; + } else { + + # If it is a field, we gather all subfields, joined by the subfield separator + my @subvaluesarray; + my @subfields = $_->subfields; + foreach my $subfield (@subfields) { + push (@subvaluesarray, defined $authvalues->{$subfield->[1]} ? $authvalues->{$subfield->[1]} : $subfield->[1]); + } + $value = join ($subfieldseparator, @subvaluesarray); + } # Field processing eval $fieldprocessing if ($fieldprocessing);