@@ -, +, @@
---
C4/Breeding.pm | 27 +++++++++++++++++-----
.../en/modules/admin/preferences/cataloguing.pref | 2 +-
2 files changed, 22 insertions(+), 7 deletions(-)
--- a/C4/Breeding.pm
+++ a/C4/Breeding.pm
@@ -25,6 +25,7 @@ use C4::Biblio;
use C4::Koha;
use C4::Charset;
use MARC::File::USMARC;
+use MARC::Field;
use C4::ImportBatch;
use C4::AuthoritiesMarc; #GuessAuthTypeCode, FindDuplicateAuthority
use C4::Languages;
@@ -226,7 +227,8 @@ sub Z3950Search {
}
my $pref_addnumber = C4::Context->preference('AdditionalFieldsInZ3950ResultSearch');
- $pref_addnumber =~ s/\s+//g;
+ $pref_addnumber =~ s/^\s+|\s+$//g;
+ $pref_addnumber =~ s/\h+/ /g;
if ($pref_addnumber){
$template->param(
additionalFields => '1',
@@ -353,25 +355,38 @@ sub _add_rowdata {
$row->{isbn}=_isbn_replace($row->{isbn});
my $pref_addnumber = C4::Context->preference('AdditionalFieldsInZ3950ResultSearch');
- $pref_addnumber =~ s/\s+//g;
- my @addnumber_array = split /;/, $pref_addnumber;
+
+ $pref_addnumber =~ s/^\s+|\s+$//g;
+ $pref_addnumber =~ s/\h+/ /g;
+ my @addnumber_array = split / /, $pref_addnumber;
my @addnumberfields;
foreach (@addnumber_array) {
my $length = length($_);
my $adTag = substr($_, 0, 3);
- my $row_field = 'field_'.$adTag;
if ($record->field($adTag)) {
my $field = $record->field($adTag);
my $fieldContent='';
if ($length > 3){
my $adSubfield;
- for (my $i=0; $i<$length-3; $i++){
- $adSubfield = substr($_, 3+$i, 1);
+ for (my $i=0; $i<$length-4; $i++){ # 4 because 3 digits, 1 dollar sign ($)
+ $adSubfield = substr($_, 4+$i, 1);
$fieldContent = $fieldContent.$field->subfield($adSubfield).' ';
}
push(@addnumberfields, $_);
$row->{$_} = $fieldContent;
}
+ else {
+ if($adTag <= 10){
+ my $data = $field->data();
+ push(@addnumberfields, $_);
+ $row->{$_} = $data;
+ }
+ else {
+ my $subfields_text = $field->as_string();
+ push(@addnumberfields, $_);
+ $row->{$_} = $subfields_text;
+ }
+ }
}
}
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/cataloguing.pref
+++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences/cataloguing.pref
@@ -227,7 +227,7 @@ Cataloging:
-
- Determines the MARC field/subfields
- pref: AdditionalFieldsInZ3950ResultSearch
- - "are displayed in 'Additional fields' column in the result of a search Z3950 (use semicolon as delimiter ex: 082ab
;090ab
)"
+ - "are displayed in 'Additional fields' column in the result of a search Z3950 (use whitespace as delimiter ex: 082$ab
090$ab
)"
-
- When matching on ISSN with the record import tool,
- pref: AggressiveMatchOnISSN
--