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:
parent
9371bec02e
commit
9de11a766b
|
|
@ -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 %]&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 %]&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>
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Reference in New Issue