Bug 13296 - error when using z3950 with UNIMARC authorities
When using a z3950 connexion with UNIMARC authorities, you get an error :
Unsupported UNIMARC character encoding [ ] for XML output for UNIMARCAUTH; 100$a -> 20141119
I've seen thant Bug 2060 when adds authorities import adds a special behavior for UNIMARC : marc flavor must be UNIMARCAUTH instead of just UNIMARC.
This patch adds the same behavior when using z3950 connexion and import.
Test plan :
- Use a UNIMARC install
- Define a z3950 connexion for UNIMARC authorities
- Go to Authorities module
- Click on "New from Z39.50"
- Perform a search
=> Without patch : you get the error
=> With patch : you get results
- Import one result
=> You get the authoritie creation form with all datas
You may check same plan with MARC21 install
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Katrin Fischer <katrin.fischer@bsz-bw.de>
NOTE: depending on the target, the syntax in the configuration
might not be UNIMARC, but MARC21/USMARC instead!
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
(cherry picked from commit 9ccdbc49c7)
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
This commit is contained in:
parent
e8eb28df56
commit
bb2dcc53dc
|
|
@ -431,6 +431,9 @@ sub ImportBreedingAuth {
|
|||
my $searchbreeding = $dbh->prepare("select import_record_id from import_auths where control_number=? and authorized_heading=?");
|
||||
|
||||
# $encoding = C4::Context->preference("marcflavour") unless $encoding;
|
||||
my $marc_type = C4::Context->preference('marcflavour');
|
||||
$marc_type .= 'AUTH' if ($marc_type eq 'UNIMARC');
|
||||
|
||||
# fields used for import results
|
||||
my $imported=0;
|
||||
my $alreadyindb = 0;
|
||||
|
|
@ -440,7 +443,7 @@ sub ImportBreedingAuth {
|
|||
for (my $i=0;$i<=$#marcarray;$i++) {
|
||||
my ($marcrecord, $charset_result, $charset_errors);
|
||||
($marcrecord, $charset_result, $charset_errors) =
|
||||
MarcToUTF8Record($marcarray[$i]."\x1D", C4::Context->preference("marcflavour"), $encoding);
|
||||
MarcToUTF8Record($marcarray[$i]."\x1D", $marc_type, $encoding);
|
||||
|
||||
# Normalize the record so it doesn't have separated diacritics
|
||||
SetUTF8Flag($marcrecord);
|
||||
|
|
@ -542,6 +545,9 @@ sub Z3950SearchAuth {
|
|||
my $query;
|
||||
my $nterms=0;
|
||||
|
||||
my $marc_type = C4::Context->preference('marcflavour');
|
||||
$marc_type .= 'AUTH' if ($marc_type eq 'UNIMARC');
|
||||
|
||||
if ($nameany) {
|
||||
$query .= " \@attr 1=1002 \"$nameany\" "; #Any name (this includes personal, corporate, meeting/conference authors, and author names in subject headings)
|
||||
#This attribute is supported by both the Library of Congress and Libraries Australia 08/05/2013
|
||||
|
|
@ -655,7 +661,7 @@ sub Z3950SearchAuth {
|
|||
$marcdata = $rec->raw();
|
||||
|
||||
my ($charset_result, $charset_errors);
|
||||
($marcrecord, $charset_result, $charset_errors)= MarcToUTF8Record($marcdata, C4::Context->preference('marcflavour'), $encoding[$k]);
|
||||
($marcrecord, $charset_result, $charset_errors)= MarcToUTF8Record($marcdata, $marc_type, $encoding[$k]);
|
||||
|
||||
my $heading;
|
||||
my $heading_authtype_code;
|
||||
|
|
|
|||
Loading…
Reference in New Issue