Bugzilla – Attachment 107559 Details for
Bug 26079
Use 008 positions 14-16 as authoritative authority entry type
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 26079: If syspref is enabled display 008 positions 14-16 as auth type
Bug-26079-If-syspref-is-enabled-display-008-positi.patch (text/plain), 4.36 KB, created by
Alex Buckley
on 2020-07-30 05:29:24 UTC
(
hide
)
Description:
Bug 26079: If syspref is enabled display 008 positions 14-16 as auth type
Filename:
MIME Type:
Creator:
Alex Buckley
Created:
2020-07-30 05:29:24 UTC
Size:
4.36 KB
patch
obsolete
>From 558728cf8d7fd8440c9b4b67d6f3f7bf6d7d70f3 Mon Sep 17 00:00:00 2001 >From: Alex Buckley <alexbuckley@catalyst.net.nz> >Date: Thu, 30 Jul 2020 08:58:16 +1200 >Subject: [PATCH] Bug 26079: If syspref is enabled display 008 positions 14-16 > as auth type > >--- > C4/AuthoritiesMarc.pm | 31 +++++++++++++++++++++- > authorities/detail.pl | 12 +++++++-- > .../prog/en/modules/authorities/detail.tt | 7 ++++- > 3 files changed, 46 insertions(+), 4 deletions(-) > >diff --git a/C4/AuthoritiesMarc.pm b/C4/AuthoritiesMarc.pm >index 90ef489c49..39c0272ba6 100644 >--- a/C4/AuthoritiesMarc.pm >+++ b/C4/AuthoritiesMarc.pm >@@ -63,6 +63,7 @@ BEGIN { > &FindDuplicateAuthority > > &GuessAuthTypeCode >+ &RetrieveAuthTypeFromAuthority008 > &GuessAuthId > ); > } >@@ -331,7 +332,7 @@ Get the record and tries to guess the adequate authtypecode from its content. > sub GuessAuthTypeCode { > my ($record, $heading_fields) = @_; > return unless defined $record; >- return '' if C4::Preferences('UseAuthority008AsAuthType'); >+ return '' if C4::Context->preference('UseAuthority008AsAuthType'); > $heading_fields //= { > "MARC21"=>{ > '100'=>{authtypecode=>'PERSO_NAME'}, >@@ -396,6 +397,34 @@ sub GuessAuthTypeCode { > return; > } > >+=head2 RetrieveAuthTypeFromAuthority008 >+ >+ my $type = RetrieveAuthTypeFromAuthority008 >+ >+If the UseAuthority008AsAuthType syspref is enabled then retrieve the multiple authority types from the authority 008 positions 14-16 >+ >+=cut >+ >+sub RetrieveAuthTypeFromAuthority008 { >+ >+ my ($record) = @_; >+ return unless ($record && $record->field('008')); >+ >+ my $name = 0; >+ my $subject= 0; >+ my $series = 0; >+ my $pos14 = substr($record->field('008')->data, 14, 1); >+ my $pos15 = substr($record->field('008')->data, 15, 1); >+ my $pos16 = substr($record->field('008')->data, 16, 1); >+ >+ $name = 1 if $pos14 eq 'a'; >+ $subject= 1 if $pos15 eq 'a'; >+ $series = 1 if $pos16 eq 'a'; >+ >+ my %authtypes = ( 'name' => $name, 'subject' => $subject, 'series' => $series); >+ return \%authtypes; >+} >+ > =head2 GuessAuthId > > my $authtid = GuessAuthId($record); >diff --git a/authorities/detail.pl b/authorities/detail.pl >index ca1654461d..b3d40b66d5 100755 >--- a/authorities/detail.pl >+++ b/authorities/detail.pl >@@ -45,6 +45,7 @@ use C4::Output; > use CGI qw ( -utf8 ); > use MARC::Record; > use C4::Koha; >+use C4::AuthoritiesMarc; > use Koha::Authorities; > > use Koha::Authority::Types; >@@ -225,12 +226,19 @@ my $servers = Koha::Z3950Servers->search( > }, > ); > >-my $type = $authority_types->find($authtypecode); >+my $type; >+if (C4::Context->preference('UseAuthority008AsAuthType')) { >+ $type = RetrieveAuthTypeFromAuthority008($record) if $record; >+ $template->param(name => $type->{name}, subject => $type->{subject}, serial => $type->{serial}); >+} else { >+ $type = $authority_types->find($authtypecode); >+ $template->param(authtypetext => $type ? $type->authtypetext: ""); >+} >+ > $template->param( > authid => $authid, > count => $count, > biblio_fields => $biblio_fields, >- authtypetext => $type ? $type->authtypetext: "", > authtypecode => $authtypecode, > authority_types => $authority_types, > csrf_token => Koha::Token->new->generate_csrf({ session_id => scalar $query->cookie('CGISESSID') }), >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/detail.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/detail.tt >index 618e325105..b8aad1b672 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/detail.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/authorities/detail.tt >@@ -1,4 +1,5 @@ > [% USE raw %] >+[% USE Koha %] > [% USE Asset %] > [% SET footerjs = 1 %] > [% PROCESS 'authorities.inc' %] >@@ -40,7 +41,11 @@ > [% IF ( unknownauthid ) %] > <div class="dialog message">The authority record you requested does not exist ([% errauthid | html %]).</div> > [% ELSE %] >-<h1>Authority #[% authid | html %] ([% authtypetext | html %])</h1> >+[% IF Koha.Preference('UseAuthority008AsAuthType') %] >+<h1>Authority #[% authid | html %] (Available for use as a [% IF name %] name [% END %] [% IF subject %] subject [% END %] [% IF series %] series [% END %] authority) </h1> >+[% ELSE %] >+ <h1>Authority #[% authid | html %] ([% authtypetext | html %])</h1> >+[% END %] > > <div id="action"> > [% IF count %] >-- >2.11.0
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 26079
:
107474
|
107475
|
107535
|
107536
| 107559