C4::AuthoritiesMarc::MARC21
use C4::AuthoritiesMarc::MARC21;
This is a helper module providing functions used by C4::AuthoritiesMarc
to deal with behavior specific to MARC21 authority records (as opposed to other MARC formats).
Functions from this module generally should not be used directly; instead,
use the appropriate function from C4::Authorities
that will dispatch the appropriate function based on the marcflavour system preference.
my $auth_type = get_auth_type_from_marc($marc);
Given a MARC::Record object containing an authority record, determine its heading type (e.g., personal name, topical term, etc.).
my ($tag, $subfield) = default_auth_type_location();
Get the tag and subfield used to store the heading type if not specified in the MARC framework. For MARC21, this defaults to 942$a.
fix_marc21_auth_type_location($auth_marc, $auth_type_tag, $auth_type_subfield);
If the incoming MARC::Record
object has a 152$b, remove it. If no field already exists that contains the specified $auth_type_tag
and $auth_type_subfield
, create a new field whose contents are the original contents of the 152$b.
This routine exists to deal with a historical problem: MARC21 authority records in previous versions of Koha kept the authority type in the 152$b. While the 152 may be OK for UNIMARC, a 9XX should have been used for MARC21.
This function is meant to be called from GetAuthority, GetAuthorityXML, and AddAuthority.
FIXME: This function should be removed once it's determined that no MARC21 users of Koha are using the 152$b to store the authority type.
Koha Development Team <http://koha-community.org/>
Galen Charlton <galen.charlton@liblime.com>