From 6f431883f8bf0e17995dd93cbbbb1b86f87f8cfb Mon Sep 17 00:00:00 2001 From: Kyle M Hall Date: Thu, 12 Jul 2012 10:48:12 -0400 Subject: [PATCH] Bug 4173 - Statuses not appearing in the OPAC For the authorised values LOST and DAMAGED, if an OPAC description is defined for the given value, display that description in the OPAC rather than the generic description. Signed-off-by: Jonathan Druart --- C4/Koha.pm | 7 ++-- Koha/Template/Plugin/KohaAuthorisedValues.pm | 32 +++++++++++++++++++ .../prog/en/includes/item-status.inc | 18 ++++++++--- 3 files changed, 50 insertions(+), 7 deletions(-) create mode 100644 Koha/Template/Plugin/KohaAuthorisedValues.pm diff --git a/C4/Koha.pm b/C4/Koha.pm index 26106cf418..c23a3b0c31 100644 --- a/C4/Koha.pm +++ b/C4/Koha.pm @@ -1074,13 +1074,14 @@ by the passed category and code =cut sub GetAuthorisedValueByCode { - my ( $category, $authvalcode ) = @_; + my ( $category, $authvalcode, $opac ) = @_; + my $field = $opac ? 'lib_opac' : 'lib'; my $dbh = C4::Context->dbh; - my $sth = $dbh->prepare("SELECT lib FROM authorised_values WHERE category=? AND authorised_value =?"); + my $sth = $dbh->prepare("SELECT $field FROM authorised_values WHERE category=? AND authorised_value =?"); $sth->execute( $category, $authvalcode ); while ( my $data = $sth->fetchrow_hashref ) { - return $data->{'lib'}; + return $data->{ $field }; } } diff --git a/Koha/Template/Plugin/KohaAuthorisedValues.pm b/Koha/Template/Plugin/KohaAuthorisedValues.pm new file mode 100644 index 0000000000..58297c09f7 --- /dev/null +++ b/Koha/Template/Plugin/KohaAuthorisedValues.pm @@ -0,0 +1,32 @@ +package Koha::Template::Plugin::KohaAuthorisedValues; + +# Copyright ByWater Solutions 2012 + +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# Koha is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +use Modern::Perl; + +use Template::Plugin; +use base qw( Template::Plugin ); + +use C4::Koha; + +sub GetByCode { + my ( $self, $category, $code, $opac ) = @_; + return GetAuthorisedValueByCode( $category, $code, $opac ); +} + +1; diff --git a/koha-tmpl/opac-tmpl/prog/en/includes/item-status.inc b/koha-tmpl/opac-tmpl/prog/en/includes/item-status.inc index d05583f5a4..c456675d3a 100644 --- a/koha-tmpl/opac-tmpl/prog/en/includes/item-status.inc +++ b/koha-tmpl/opac-tmpl/prog/en/includes/item-status.inc @@ -1,3 +1,5 @@ +[% USE KohaAuthorisedValues %] + [% IF ( item.datedue ) %] [% IF ( OPACShowCheckoutName ) %] Checked out to [% item.cardnumber %] [% item.firstname %] [% item.surname %] @@ -12,10 +14,14 @@ [% ELSIF ( item.wthdrawn ) %] Item withdrawn [% ELSIF ( item.itemlost ) %] - [% IF ( item.lostimageurl ) %] - [% item.lostimagelabel %] + [% IF KohaAuthorisedValues.GetByCode( 'LOST', item.itemlost, 1 ) %] + [% KohaAuthorisedValues.GetByCode( 'LOST', item.itemlost, 1 ) %] [% ELSE %] - Item lost + [% IF ( item.lostimageurl ) %] + [% item.lostimagelabel %] + [% ELSE %] + Item lost + [% END %] [% END %] [% ELSIF ( item.itemnotforloan ) %] [% IF ( item.notforloanvalue ) %] @@ -26,7 +32,11 @@ [% ELSIF ( item.notforloan_per_itemtype ) %] Not for loan [% IF ( item.restrictedopac ) %]([% item.restrictedopac %])[% END %] [% ELSIF ( item.damaged ) %] - Item damaged + [% IF KohaAuthorisedValues.GetByCode( 'DAMAGED', item.damaged, 1 ) %] + [% KohaAuthorisedValues.GetByCode( 'DAMAGED', item.damaged, 1 ) %] + [% ELSE %] + Item damaged + [% END %] [% ELSE %] Available [% IF ( item.restrictedopac ) %]([% item.restrictedopac %])[% END %] [% END %]