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 226-232
sub Z3950Search {
Link Here
|
226 |
} |
227 |
} |
227 |
|
228 |
|
228 |
my $pref_addnumber = C4::Context->preference('AdditionalFieldsInZ3950ResultSearch'); |
229 |
my $pref_addnumber = C4::Context->preference('AdditionalFieldsInZ3950ResultSearch'); |
229 |
$pref_addnumber =~ s/\s+//g; |
230 |
$pref_addnumber =~ s/^\s+|\s+$//g; |
|
|
231 |
$pref_addnumber =~ s/\h+/ /g; |
230 |
if ($pref_addnumber){ |
232 |
if ($pref_addnumber){ |
231 |
$template->param( |
233 |
$template->param( |
232 |
additionalFields => '1', |
234 |
additionalFields => '1', |
Lines 353-377
sub _add_rowdata {
Link Here
|
353 |
$row->{isbn}=_isbn_replace($row->{isbn}); |
355 |
$row->{isbn}=_isbn_replace($row->{isbn}); |
354 |
|
356 |
|
355 |
my $pref_addnumber = C4::Context->preference('AdditionalFieldsInZ3950ResultSearch'); |
357 |
my $pref_addnumber = C4::Context->preference('AdditionalFieldsInZ3950ResultSearch'); |
356 |
$pref_addnumber =~ s/\s+//g; |
358 |
|
357 |
my @addnumber_array = split /;/, $pref_addnumber; |
359 |
$pref_addnumber =~ s/^\s+|\s+$//g; |
|
|
360 |
$pref_addnumber =~ s/\h+/ /g; |
361 |
my @addnumber_array = split / /, $pref_addnumber; |
358 |
my @addnumberfields; |
362 |
my @addnumberfields; |
359 |
foreach (@addnumber_array) { |
363 |
foreach (@addnumber_array) { |
360 |
my $length = length($_); |
364 |
my $length = length($_); |
361 |
my $adTag = substr($_, 0, 3); |
365 |
my $adTag = substr($_, 0, 3); |
362 |
my $row_field = 'field_'.$adTag; |
|
|
363 |
if ($record->field($adTag)) { |
366 |
if ($record->field($adTag)) { |
364 |
my $field = $record->field($adTag); |
367 |
my $field = $record->field($adTag); |
365 |
my $fieldContent=''; |
368 |
my $fieldContent=''; |
366 |
if ($length > 3){ |
369 |
if ($length > 3){ |
367 |
my $adSubfield; |
370 |
my $adSubfield; |
368 |
for (my $i=0; $i<$length-3; $i++){ |
371 |
for (my $i=0; $i<$length-4; $i++){ # 4 because 3 digits, 1 dollar sign ($) |
369 |
$adSubfield = substr($_, 3+$i, 1); |
372 |
$adSubfield = substr($_, 4+$i, 1); |
370 |
$fieldContent = $fieldContent.$field->subfield($adSubfield).' '; |
373 |
$fieldContent = $fieldContent.$field->subfield($adSubfield).' '; |
371 |
} |
374 |
} |
372 |
push(@addnumberfields, $_); |
375 |
push(@addnumberfields, $_); |
373 |
$row->{$_} = $fieldContent; |
376 |
$row->{$_} = $fieldContent; |
374 |
} |
377 |
} |
|
|
378 |
else { |
379 |
if($adTag <= 10){ |
380 |
my $data = $field->data(); |
381 |
push(@addnumberfields, $_); |
382 |
$row->{$_} = $data; |
383 |
} |
384 |
else { |
385 |
my $subfields_text = $field->as_string(); |
386 |
push(@addnumberfields, $_); |
387 |
$row->{$_} = $subfields_text; |
388 |
} |
389 |
} |
375 |
} |
390 |
} |
376 |
} |
391 |
} |
377 |
|
392 |
|