From 9c9bb3e2d46736e5c4648937747c70021e8e83fa Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Fri, 7 Jul 2017 10:44:57 +0000 Subject: [PATCH] Bug 18213 - Add Template plugin and fix for C4/Languages --- C4/Languages.pm | 8 ++++-- Koha/Template/Plugin/Languages.pm | 59 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 2 deletions(-) create mode 100644 Koha/Template/Plugin/Languages.pm diff --git a/C4/Languages.pm b/C4/Languages.pm index dc97cd5..70d9d8e 100644 --- a/C4/Languages.pm +++ b/C4/Languages.pm @@ -621,8 +621,12 @@ sub getlanguage { sub get_rfc4646_from_iso639 { my $iso_code = shift; - my $rfc_subtag = Koha::Database->new()->schema->resultset('LanguageRfc4646ToIso639')->find({iso639_2_code=>$iso_code})->rfc4646_subtag; - return $rfc_subtag; + my $rfc_subtag = Koha::Database->new()->schema->resultset('LanguageRfc4646ToIso639')->find({iso639_2_code=>$iso_code}); + if ( $rfc_subtag ) { + return $rfc_subtag->rfc4646_subtag; + } else { + return; + } } diff --git a/Koha/Template/Plugin/Languages.pm b/Koha/Template/Plugin/Languages.pm new file mode 100644 index 0000000..65534e5 --- /dev/null +++ b/Koha/Template/Plugin/Languages.pm @@ -0,0 +1,59 @@ +package Koha::Template::Plugin::Languages; + +# Copyright 2012 ByWater Solutions +# Copyright 2013-2014 BibLibre +# +# 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 3 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, see . + +use Modern::Perl; + +use Template::Plugin; +use base qw( Template::Plugin ); + +use C4::Koha; +use C4::Languages; + +sub GetByISOCode { + my ( $self, $lang, $code ) = @_; + $lang = substr($lang,0,2); #Get db code from Koha lang value + my $rfc = C4::Languages::get_rfc4646_from_iso639( $code ); + my $description = C4::Languages::language_get_description($rfc,$lang,'language'); + return $description; +} + +1; + +=head1 NAME + +Koha::Template::Plugin::Languages - TT Plugin for languages + +=head1 SYNOPSIS + +[% USE Languages %] + +[% Languages.GetByISOCode( 'LANG', 'ISO639CODE' ) %] + +=head1 ROUTINES + +=head2 GetByISOCode + +In a template, you can get the description for an language value with +the following TT code: [% Languages.GetByISOCode( 'LANGUAGE', 'ISO639CODE' ) %] + + +=head1 AUTHOR + +Nick Clemens + +=cut -- 2.1.4