Merge remote-tracking branch 'origin/new/bug_8408'
[srvgit] / C4 / Languages.pm
index 091d3bb..415a798 100644 (file)
@@ -23,27 +23,11 @@ use strict;
 #use warnings; FIXME - Bug 2505
 use Carp;
 use C4::Context;
+use Koha::Cache;
 use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $DEBUG);
 
-eval {
-    my $servers = C4::Context->config('memcached_servers');
-    if ($servers) {
-        require Memoize::Memcached;
-        import Memoize::Memcached qw(memoize_memcached);
-        my $memcached = {
-            servers    => [ $servers ],
-            key_prefix => C4::Context->config('memcached_namespace') || 'koha',
-        };
-
-        memoize_memcached('getTranslatedLanguages', memcached => $memcached, expire_time => 600); #cache for 10 minutes
-        memoize_memcached('getFrameworkLanguages' , memcached => $memcached, expire_time => 600);
-        memoize_memcached('getAllLanguages',        memcached => $memcached, expire_time => 600);
-    }
-};
-
 BEGIN {
-    $VERSION = 3.00;
+    $VERSION = 3.07.00.049;
     require Exporter;
     @ISA    = qw(Exporter);
     @EXPORT = qw(
@@ -83,6 +67,15 @@ Returns a reference to an array of hashes:
 =cut
 
 sub getFrameworkLanguages {
+
+    my $cache;
+    if (Koha::Cache->is_cache_active()) {
+        $cache = Koha::Cache->new();
+        if (defined $cache) {
+            my $cached = $cache->get_from_cache("getFrameworkLanguages");
+            return $cached if $cached;
+        }
+    }
     # get a hash with all language codes, names, and locale names
     my $all_languages = getAllLanguages();
     my @languages;
@@ -105,6 +98,9 @@ sub getFrameworkLanguages {
             }
         }
     }
+    if (Koha::Cache->is_cache_active() && defined $cache) {
+        $cache->set_in_cache("getFrameworkLanguages",\@languages,1000)
+    }
     return \@languages;
 }
 
@@ -185,6 +181,17 @@ Returns a reference to an array of hashes:
 =cut
 
 sub getAllLanguages {
+    # retrieve from cache if applicable
+    my $cache;
+    if (Koha::Cache->is_cache_active()) {
+        $cache = Koha::Cache->new();
+        if (defined $cache) {
+            my $cached = $cache->get_from_cache("getAllLanguages");
+            if ($cached) {
+                return $cached;
+            }
+        }
+    }
     my @languages_loop;
     my $dbh=C4::Context->dbh;
     my $current_language = shift || 'en';
@@ -219,6 +226,9 @@ sub getAllLanguages {
         }
         push @languages_loop, $language_subtag_registry;
     }
+    if (Koha::Cache->is_cache_active() && defined $cache) {
+        $cache->set_in_cache("getAllLanguages",\@languages_loop,1000);
+    }
     return \@languages_loop;
 }