@@ -, +, @@ "Replace record with ZR39.50/SRU" (Authority page detail) --- cataloguing/z3950_auth_search.pl | 42 ++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) --- a/cataloguing/z3950_auth_search.pl +++ a/cataloguing/z3950_auth_search.pl @@ -24,11 +24,23 @@ use C4::Auth qw( get_template_and_user ); use C4::Output qw( output_html_with_http_headers ); use C4::Context; use C4::Breeding qw( Z3950Search Z3950SearchAuth ); +use C4::AuthoritiesMarc qw( GetAuthority); +use MARC::Record; +use Koha::Authorities; +use Koha::Authority::Types; my $input = CGI->new; my $dbh = C4::Context->dbh; +my $marcflavour = C4::Context->preference("marcflavour"); my $error = $input->param('error'); my $authid = $input->param('authid') || 0; + +my $record = GetAuthority($authid); +my $authobj = Koha::Authorities->find($authid); +my $authtypecode = $authobj ? $authobj->authtypecode : ''; +my $authority_type = Koha::Authority::Types->find($authtypecode); +my $authtag = $authority_type->auth_tag_to_report; +my $authfields = $authtag ? $record->field($authtag) : ''; my $nameany = $input->param('nameany'); my $authorany = $input->param('authorany'); my $authorcorp = $input->param('authorcorp'); @@ -45,6 +57,36 @@ my $index =$input->param('index'); $page = $input->param('goto_page') if $input->param('changepage_goto'); my $controlnumber = $input->param('controlnumber'); +if (! $authorpersonal) { + if ($marcflavour eq 'MARC21' && $authtag == 100) { + $authorpersonal = $authfields->subfield('a'); + } elsif ($marcflavour eq 'UNIMARC' && $authtag == 200) { + $authorpersonal = $authfields->subfield('a'); + } +} + +if (! $authormeetingcon) { + if ($marcflavour eq 'MARC21' && $authtag == 110) { + $authormeetingcon = $authfields->subfield('a'); + } elsif ($marcflavour eq 'UNIMARC' && $authtag == 210) { + $authormeetingcon = $authfields->subfield('a'); + } +} + +if (! $uniformtitle) { + if ($marcflavour eq 'MARC21' && $authtag == 130) { + $uniformtitle = $authfields->subfield('a'); + } elsif ($marcflavour eq 'UNIMARC' && $authtag == 230) { + $uniformtitle = $authfields->subfield('a'); + } +} + +if (! $subject) { + if ($marcflavour eq 'UNIMARC' && $authtag == 250) { + $subject = $authfields->subfield('a'); + } +} + my ( $template, $loggedinuser, $cookie ) = get_template_and_user({ template_name => "cataloguing/z3950_auth_search.tt", query => $input, --