Lines 429-435
sub nsb_clean {
Link Here
|
429 |
SanitizeRecord($marcrecord); |
429 |
SanitizeRecord($marcrecord); |
430 |
|
430 |
|
431 |
Sanitize a record |
431 |
Sanitize a record |
432 |
This routine is called in the maintenance script misc/maintenance/batch_sanitize_records.pl. |
432 |
This routine is called in the maintenance script misc/maintenance/sanitize_records.pl. |
433 |
It cleans any string with '&...', replacing it by '&' |
433 |
It cleans any string with '&...', replacing it by '&' |
434 |
|
434 |
|
435 |
=cut |
435 |
=cut |
Lines 444-450
sub SanitizeRecord {
Link Here
|
444 |
foreach my $field ( $record->fields() ) { |
444 |
foreach my $field ( $record->fields() ) { |
445 |
if ( $field->is_control_field() ) { |
445 |
if ( $field->is_control_field() ) { |
446 |
my $value = $field->data(); |
446 |
my $value = $field->data(); |
447 |
my $sanitized_value = _entity_clean($value); |
447 |
my $sanitized_value = _clean_ampersand($value); |
448 |
$record_modified = 1 if $sanitized_value ne $value; |
448 |
$record_modified = 1 if $sanitized_value ne $value; |
449 |
$field->update($sanitized_value); |
449 |
$field->update($sanitized_value); |
450 |
} |
450 |
} |
Lines 456-462
sub SanitizeRecord {
Link Here
|
456 |
if $url_field eq $field->tag() |
456 |
if $url_field eq $field->tag() |
457 |
and $url_subfield eq $subfield->[0]; |
457 |
and $url_subfield eq $subfield->[0]; |
458 |
my $value = $subfield->[1]; |
458 |
my $value = $subfield->[1]; |
459 |
my $sanitized_value = _entity_clean($value); |
459 |
my $sanitized_value = _clean_ampersand($value); |
460 |
push @new_subfields, $subfield->[0] => $sanitized_value; |
460 |
push @new_subfields, $subfield->[0] => $sanitized_value; |
461 |
$record_modified = 1 if $sanitized_value ne $value; |
461 |
$record_modified = 1 if $sanitized_value ne $value; |
462 |
} |
462 |
} |
Lines 481-487
sub SanitizeRecord {
Link Here
|
481 |
return $record, $record_modified; |
481 |
return $record, $record_modified; |
482 |
} |
482 |
} |
483 |
|
483 |
|
484 |
sub _entity_clean { |
484 |
sub _clean_ampersand { |
485 |
my ($string) = @_; |
485 |
my ($string) = @_; |
486 |
$string =~ s/(&)(amp;)+/$1/g; |
486 |
$string =~ s/(&)(amp;)+/$1/g; |
487 |
return $string; |
487 |
return $string; |