Lines 23-28
use strict;
Link Here
|
23 |
#use warnings; FIXME - Bug 2505 |
23 |
#use warnings; FIXME - Bug 2505 |
24 |
use Carp; |
24 |
use Carp; |
25 |
use C4::Context; |
25 |
use C4::Context; |
|
|
26 |
use List::MoreUtils qw/any/; |
26 |
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $DEBUG); |
27 |
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $DEBUG); |
27 |
|
28 |
|
28 |
eval { |
29 |
eval { |
Lines 36-44
eval {
Link Here
|
36 |
key_prefix => C4::Context->config('memcached_namespace') || 'koha', |
37 |
key_prefix => C4::Context->config('memcached_namespace') || 'koha', |
37 |
}; |
38 |
}; |
38 |
|
39 |
|
39 |
memoize_memcached('getTranslatedLanguages', memcached => $memcached, expire_time => 600); #cache for 10 minutes |
40 |
memoize_memcached('getTranslatedLanguages', memcached => $memcached, expire_time => 600000); #cache for 10 minutes |
40 |
memoize_memcached('getFrameworkLanguages' , memcached => $memcached, expire_time => 600); |
41 |
memoize_memcached('getFrameworkLanguages' , memcached => $memcached, expire_time => 600000); |
41 |
memoize_memcached('getAllLanguages', memcached => $memcached, expire_time => 600); |
42 |
memoize_memcached('getAllLanguages', memcached => $memcached, expire_time => 600000); |
|
|
43 |
memoize_memcached('language_get_description', memcached => $memcached, expire_time => 600000); |
42 |
} |
44 |
} |
43 |
}; |
45 |
}; |
44 |
|
46 |
|
Lines 94-110
sub getFrameworkLanguages {
Link Here
|
94 |
closedir MYDIR; |
96 |
closedir MYDIR; |
95 |
|
97 |
|
96 |
# pull out all data for the dir names that exist |
98 |
# pull out all data for the dir names that exist |
97 |
for my $dirname (@listdir) { |
99 |
my @languages=grep { |
98 |
for my $language_set (@$all_languages) { |
100 |
my $language=$_; |
99 |
|
101 |
any {$language->{languagecode} eq $_ |
100 |
if ($dirname eq $language_set->{language_code}) { |
102 |
} @listdir |
101 |
push @languages, { |
103 |
} @$all_languages; |
102 |
'language_code'=>$dirname, |
|
|
103 |
'language_description'=>$language_set->{language_description}, |
104 |
'native_descrition'=>$language_set->{language_native_description} } |
105 |
} |
106 |
} |
107 |
} |
108 |
return \@languages; |
104 |
return \@languages; |
109 |
} |
105 |
} |
110 |
|
106 |
|
Lines 130-136
sub getTranslatedLanguages {
Link Here
|
130 |
my @enabled_languages; |
126 |
my @enabled_languages; |
131 |
|
127 |
|
132 |
if ($interface && $interface eq 'opac' ) { |
128 |
if ($interface && $interface eq 'opac' ) { |
133 |
@enabled_languages = split ",", C4::Context->preference('opaclanguages'); |
129 |
my $languages= C4::Context->preference('opaclanguage') ||'en'; |
|
|
130 |
@enabled_languages = split ",", $languages; |
134 |
$htdocs = C4::Context->config('opachtdocs'); |
131 |
$htdocs = C4::Context->config('opachtdocs'); |
135 |
if ( $theme and -d "$htdocs/$theme" ) { |
132 |
if ( $theme and -d "$htdocs/$theme" ) { |
136 |
(@languages) = _get_language_dirs($htdocs,$theme); |
133 |
(@languages) = _get_language_dirs($htdocs,$theme); |
Lines 142-148
sub getTranslatedLanguages {
Link Here
|
142 |
} |
139 |
} |
143 |
} |
140 |
} |
144 |
elsif ($interface && $interface eq 'intranet' ) { |
141 |
elsif ($interface && $interface eq 'intranet' ) { |
145 |
@enabled_languages = split ",", C4::Context->preference('language'); |
142 |
my $languages= C4::Context->preference('language') ||'en'; |
|
|
143 |
@enabled_languages = split ",", $languages; |
146 |
$htdocs = C4::Context->config('intrahtdocs'); |
144 |
$htdocs = C4::Context->config('intrahtdocs'); |
147 |
if ( $theme and -d "$htdocs/$theme" ) { |
145 |
if ( $theme and -d "$htdocs/$theme" ) { |
148 |
@languages = _get_language_dirs($htdocs,$theme); |
146 |
@languages = _get_language_dirs($htdocs,$theme); |
Lines 154-160
sub getTranslatedLanguages {
Link Here
|
154 |
} |
152 |
} |
155 |
} |
153 |
} |
156 |
else { |
154 |
else { |
157 |
@enabled_languages = split ",", C4::Context->preference('opaclanguages'); |
155 |
my $languages= C4::Context->preference('opaclanguage') ||'en'; |
|
|
156 |
@enabled_languages = split ",", $languages; |
158 |
my $htdocs = C4::Context->config('intrahtdocs'); |
157 |
my $htdocs = C4::Context->config('intrahtdocs'); |
159 |
foreach my $theme ( _get_themes('intranet') ) { |
158 |
foreach my $theme ( _get_themes('intranet') ) { |
160 |
push @languages, _get_language_dirs($htdocs,$theme); |
159 |
push @languages, _get_language_dirs($htdocs,$theme); |
Lines 184-191
Returns a reference to an array of hashes:
Link Here
|
184 |
|
183 |
|
185 |
=cut |
184 |
=cut |
186 |
|
185 |
|
|
|
186 |
my @languages_loop; |
187 |
|
187 |
sub getAllLanguages { |
188 |
sub getAllLanguages { |
188 |
my @languages_loop; |
189 |
return \@languages_loop if scalar(@languages_loop); |
189 |
my $dbh=C4::Context->dbh; |
190 |
my $dbh=C4::Context->dbh; |
190 |
my $current_language = shift || 'en'; |
191 |
my $current_language = shift || 'en'; |
191 |
my $sth = $dbh->prepare('SELECT * FROM language_subtag_registry WHERE type=\'language\''); |
192 |
my $sth = $dbh->prepare('SELECT * FROM language_subtag_registry WHERE type=\'language\''); |
192 |
- |
|
|