|
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 |
$pref_addnumber =~ s/^\s+|\s+$//g; |
| 359 |
my @addnumber_array = split /;/, $pref_addnumber; |
361 |
$pref_addnumber =~ s/\h+/ /g; |
|
|
362 |
my @addnumber_array = split / /, $pref_addnumber; |
| 360 |
my @addnumberfields; |
363 |
my @addnumberfields; |
| 361 |
foreach (@addnumber_array) { |
364 |
foreach (@addnumber_array) { |
| 362 |
my $length = length($_); |
365 |
my $length = length($_); |
| 363 |
my $adTag = substr($_, 0, 3); |
366 |
my $adTag = substr($_, 0, 3); |
| 364 |
my $row_field = 'field_'.$adTag; |
|
|
| 365 |
if ($record->field($adTag)) { |
367 |
if ($record->field($adTag)) { |
| 366 |
my $field = $record->field($adTag); |
368 |
my $field = $record->field($adTag); |
| 367 |
my $fieldContent=''; |
369 |
my $fieldContent=''; |
| 368 |
if ($length > 3){ |
370 |
if ($length > 3){ |
| 369 |
my $adSubfield; |
371 |
my $adSubfield; |
| 370 |
for (my $i=0; $i<$length-3; $i++){ |
372 |
for (my $i=0; $i<$length-4; $i++){ # 4 because 3 digits, 1 dollar sign ($) |
| 371 |
$adSubfield = substr($_, 3+$i, 1); |
373 |
$adSubfield = substr($_, 4+$i, 1); |
| 372 |
$fieldContent = $fieldContent.$field->subfield($adSubfield).' '; |
374 |
$fieldContent = $fieldContent.$field->subfield($adSubfield).' '; |
| 373 |
} |
375 |
} |
| 374 |
push(@addnumberfields, $_); |
376 |
push(@addnumberfields, $_); |
| 375 |
$row->{$_} = $fieldContent; |
377 |
$row->{$_} = $fieldContent; |
| 376 |
} |
378 |
} |
|
|
379 |
else { |
| 380 |
if($adTag <= 10){ |
| 381 |
my $data = $field->data(); |
| 382 |
push(@addnumberfields, $_); |
| 383 |
$row->{$_} = $data; |
| 384 |
} |
| 385 |
else { |
| 386 |
my $subfields_text = $field->as_string(); |
| 387 |
push(@addnumberfields, $_); |
| 388 |
$row->{$_} = $subfields_text; |
| 389 |
} |
| 390 |
} |
| 377 |
} |
391 |
} |
| 378 |
} |
392 |
} |
| 379 |
|
393 |
|