From 69c85285f7133012f93f9a508b1c218e6b26e164 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Wed, 31 Jan 2018 14:51:22 -0300 Subject: [PATCH] Bug 20116: Cache language list Signed-off-by: Liz Rea --- C4/Languages.pm | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/C4/Languages.pm b/C4/Languages.pm index 6f22452c65..65f8ff6a09 100644 --- a/C4/Languages.pm +++ b/C4/Languages.pm @@ -26,6 +26,7 @@ use Carp; use CGI; use List::MoreUtils qw( any ); use C4::Context; +use Koha::Caches; use Koha::Cache::Memory::Lite; use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $DEBUG); @@ -117,13 +118,27 @@ sub getTranslatedLanguages { ? split ",", C4::Context->preference('language') : split ",", C4::Context->preference('opaclanguage'); + my $cache = Koha::Caches->get_instance; + my $cache_key = "languages_${interface}_${theme}"; if ($interface && $interface eq 'opac' ) { my $htdocs = C4::Context->config('opachtdocs'); - @languages = _get_opac_language_dirs( $htdocs, $theme ); + my $cached = $cache->get_from_cache($cache_key); + if ( $cached ) { + @languages = @{$cached}; + } else { + @languages = _get_opac_language_dirs( $htdocs, $theme ); + $cache->set_in_cache($cache_key, \@languages ); + } } elsif ($interface && $interface eq 'intranet' ) { my $htdocs = C4::Context->config('intrahtdocs'); - @languages = _get_intranet_language_dirs( $htdocs, $theme ); + my $cached = $cache->get_from_cache($cache_key); + if ( $cached ) { + @languages = @{$cached}; + } else { + @languages = _get_intranet_language_dirs( $htdocs, $theme ); + $cache->set_in_cache($cache_key, \@languages ); + } } else { my $htdocs = C4::Context->config('intrahtdocs'); -- 2.11.0