Lines 25-30
use C4::Biblio;
Link Here
|
25 |
use C4::Koha; |
25 |
use C4::Koha; |
26 |
use C4::Charset; |
26 |
use C4::Charset; |
27 |
use MARC::File::USMARC; |
27 |
use MARC::File::USMARC; |
|
|
28 |
use MARC::Field; |
28 |
use C4::ImportBatch; |
29 |
use C4::ImportBatch; |
29 |
use C4::AuthoritiesMarc; #GuessAuthTypeCode, FindDuplicateAuthority |
30 |
use C4::AuthoritiesMarc; #GuessAuthTypeCode, FindDuplicateAuthority |
30 |
use C4::Languages; |
31 |
use C4::Languages; |
Lines 228-234
sub Z3950Search {
Link Here
|
228 |
} |
229 |
} |
229 |
|
230 |
|
230 |
my $pref_addnumber = C4::Context->preference('AdditionalFieldsInZ3950ResultSearch'); |
231 |
my $pref_addnumber = C4::Context->preference('AdditionalFieldsInZ3950ResultSearch'); |
231 |
$pref_addnumber =~ s/\s+//g; |
232 |
$pref_addnumber =~ s/^\s+|\s+$//g; |
|
|
233 |
$pref_addnumber =~ s/\h+/ /g; |
232 |
if ($pref_addnumber){ |
234 |
if ($pref_addnumber){ |
233 |
$template->param( |
235 |
$template->param( |
234 |
additionalFields => '1', |
236 |
additionalFields => '1', |
Lines 355-379
sub _add_rowdata {
Link Here
|
355 |
$row->{isbn}=_isbn_replace($row->{isbn}); |
357 |
$row->{isbn}=_isbn_replace($row->{isbn}); |
356 |
|
358 |
|
357 |
my $pref_addnumber = C4::Context->preference('AdditionalFieldsInZ3950ResultSearch'); |
359 |
my $pref_addnumber = C4::Context->preference('AdditionalFieldsInZ3950ResultSearch'); |
358 |
$pref_addnumber =~ s/\s+//g; |
360 |
|
359 |
my @addnumber_array = split /;/, $pref_addnumber; |
361 |
$pref_addnumber =~ s/^\s+|\s+$//g; |
|
|
362 |
$pref_addnumber =~ s/\h+/ /g; |
363 |
my @addnumber_array = split / /, $pref_addnumber; |
360 |
my @addnumberfields; |
364 |
my @addnumberfields; |
361 |
foreach (@addnumber_array) { |
365 |
foreach (@addnumber_array) { |
362 |
my $length = length($_); |
366 |
my $length = length($_); |
363 |
my $adTag = substr($_, 0, 3); |
367 |
my $adTag = substr($_, 0, 3); |
364 |
my $row_field = 'field_'.$adTag; |
|
|
365 |
if ($record->field($adTag)) { |
368 |
if ($record->field($adTag)) { |
366 |
my $field = $record->field($adTag); |
369 |
my $field = $record->field($adTag); |
367 |
my $fieldContent=''; |
370 |
my $fieldContent=''; |
368 |
if ($length > 3){ |
371 |
if ($length > 3){ |
369 |
my $adSubfield; |
372 |
my $adSubfield; |
370 |
for (my $i=0; $i<$length-3; $i++){ |
373 |
for (my $i=0; $i<$length-4; $i++){ # 4 because 3 digits, 1 dollar sign ($) |
371 |
$adSubfield = substr($_, 3+$i, 1); |
374 |
$adSubfield = substr($_, 4+$i, 1); |
372 |
$fieldContent = $fieldContent.$field->subfield($adSubfield).' '; |
375 |
$fieldContent = $fieldContent.$field->subfield($adSubfield).' '; |
373 |
} |
376 |
} |
374 |
push(@addnumberfields, $_); |
377 |
push(@addnumberfields, $_); |
375 |
$row->{$_} = $fieldContent; |
378 |
$row->{$_} = $fieldContent; |
376 |
} |
379 |
} |
|
|
380 |
else { |
381 |
if($adTag <= 10){ |
382 |
my $data = $field->data(); |
383 |
push(@addnumberfields, $_); |
384 |
$row->{$_} = $data; |
385 |
} |
386 |
else { |
387 |
my $subfields_text = $field->as_string(); |
388 |
push(@addnumberfields, $_); |
389 |
$row->{$_} = $subfields_text; |
390 |
} |
391 |
} |
377 |
} |
392 |
} |
378 |
} |
393 |
} |
379 |
|
394 |
|