From ed7a73f722b3aff059c272b0b35a3dd845de77a9 Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Wed, 21 Nov 2018 13:54:45 +0000 Subject: [PATCH] Bug 21871: Show authority 856 links in the OPAC This patch modifies the authority detail view in the OPAC so that any links found in 856 tags are displayed and active. To test, apply the patch and locate or create an authority record which contains one or more URLs in 856 tags. - View this record in the OPAC and confirm that the links appear. - Test records with and without link text. - Test records with and without public notes. Signed-off-by: Devinim Signed-off-by: Charles Farmer --- .../bootstrap/en/modules/opac-auth-detail.tt | 34 ++++++++++++++++++++++ opac/opac-authoritiesdetail.pl | 9 ++++-- 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-auth-detail.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-auth-detail.tt index 7d19e6b..db3d30f 100644 --- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-auth-detail.tt +++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-auth-detail.tt @@ -109,6 +109,40 @@ [% END %] + [% IF ( MARCURLS ) %] +
+ Online resources: + +
+ [% END # / IF MARCURLS %] +
  • Notes
  • diff --git a/opac/opac-authoritiesdetail.pl b/opac/opac-authoritiesdetail.pl index 0f389a0..562457b 100755 --- a/opac/opac-authoritiesdetail.pl +++ b/opac/opac-authoritiesdetail.pl @@ -40,6 +40,7 @@ use Modern::Perl; use C4::AuthoritiesMarc; use C4::Auth; +use C4::Biblio; use C4::Context; use C4::Output; use CGI qw ( -utf8 ); @@ -54,6 +55,7 @@ my $query = new CGI; my $dbh = C4::Context->dbh; my $display_hierarchy = C4::Context->preference("AuthDisplayHierarchy"); +my $marcflavour = C4::Context->preference("marcflavour"); my $show_marc = $query->param('marc'); # open template @@ -86,11 +88,14 @@ if ($display_hierarchy){ my $count = $authority ? $authority->get_usage_count : 0; my $authority_types = Koha::Authority::Types->search( {}, { order_by => ['authtypecode'] } ); +my $marcurlsarray = GetMarcUrls( $record, $marcflavour ); + $template->param( authority_types => $authority_types, authtypetext => $authority_types->find($authtypecode)->authtypetext, authid => $authid, count => $count, + MARCURLS => $marcurlsarray, ); # find the marc field/subfield used in biblio by this authority @@ -117,7 +122,7 @@ if ($show_marc) { my @subfields_data; # skip UNIMARC fields <200, they are useless for a patron - next if C4::Context->preference('marcflavour') eq 'UNIMARC' && $field->tag() <200; + next if $marcflavour eq 'UNIMARC' && $field->tag() <200; # if tag <10, there's no subfield, use the "@" trick if ( $field->tag() < 10 ) { @@ -129,7 +134,7 @@ if ($show_marc) { $subfield_data{marc_tag} = $field->tag(); push( @subfields_data, \%subfield_data ); } - elsif ( C4::Context->preference('marcflavour') eq 'MARC21' && $field->tag() eq 667 ) { + elsif ( $marcflavour eq 'MARC21' && $field->tag() eq 667 ) { # tagfield 667 is a nonpublic general note in MARC21, which shouldn't be shown in the OPAC } else { -- 2.7.4