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 <kohadevinim@devinim.com.tr>

Signed-off-by: Charles Farmer <charles.farmer@inLibro.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

https://bugs.koha-community.org/show_bug.cgi?id=21817

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
This commit is contained in:
Owen Leonard 2018-11-21 13:54:45 +00:00 committed by Nick Clemens
parent 9371bec02e
commit 9de11a766b
2 changed files with 41 additions and 2 deletions

View File

@ -109,6 +109,40 @@
</div>
[% END %]
[% IF ( MARCURLS ) %]
<div class="authstanza online_resources">
<span class="label">Online resources:</span>
<ul>
[% FOREACH MARCurl IN MARCURLS %]
<li>[% IF ( MARCurl.part ) %][% MARCurl.part | html %]<br />[% END %]
[% IF ( OPACURLOpenInNewWindow ) %]
[% IF trackclicks == 'track' || trackclicks == 'anonymous' %]
<a href="/cgi-bin/koha/tracklinks.pl?uri=[% MARCurl.MARCURL | uri %]&amp;biblionumber=[% biblio.biblionumber | uri %]" title="[% MARCurl.MARCURL | html %]" target="_blank" rel="noreferrer">
[% ELSE %]
<a href="[% MARCurl.MARCURL | url %]" title="[% MARCurl.MARCURL | html %]" target="_blank" rel="noreferrer">
[% END %]
[% ELSE %]
[% IF trackclicks == 'track' || trackclicks == 'anonymous' %]
<a href="/cgi-bin/koha/tracklinks.pl?uri=[% MARCurl.MARCURL | uri %]&amp;biblionumber=[% biblio.biblionumber | uri %]" title="[% MARCurl.MARCURL | html %]">
[% ELSE %]
<a href="[% MARCurl.MARCURL | url %]" title="[% MARCurl.MARCURL | html %]">
[% END %]
[% END %]
[% MARCurl.linktext | html %]</a>
[% IF ( MARCurl.notes ) %]
<ul>
[% FOREACH note IN MARCurl.notes %]
<li>[% note.note | html %]</li>
[% END %]
</ul>
[% END %]
</li>
[% END # /FOREACH MARCURLS %]
</ul>
</div>
[% END # / IF MARCURLS %]
<div id="authdescriptions" class="toptabs">
<ul>
<li id="tab_descriptions"><a href="#descriptions">Notes</a></li>

View File

@ -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 {