Lines 202-214
sub _get_template_file {
Link Here
|
202 |
my $is_intranet = $interface eq 'intranet'; |
202 |
my $is_intranet = $interface eq 'intranet'; |
203 |
my $htdocs = C4::Context->config($is_intranet ? 'intrahtdocs' : 'opachtdocs'); |
203 |
my $htdocs = C4::Context->config($is_intranet ? 'intrahtdocs' : 'opachtdocs'); |
204 |
my ($theme, $lang, $availablethemes) = themelanguage($htdocs, $tmplbase, $interface, $query); |
204 |
my ($theme, $lang, $availablethemes) = themelanguage($htdocs, $tmplbase, $interface, $query); |
205 |
|
|
|
206 |
# if the template doesn't exist, load the English one as a last resort |
207 |
my $filename = "$htdocs/$theme/$lang/modules/$tmplbase"; |
205 |
my $filename = "$htdocs/$theme/$lang/modules/$tmplbase"; |
208 |
unless (-f $filename) { |
206 |
|
209 |
$lang = 'en'; |
|
|
210 |
$filename = "$htdocs/$theme/$lang/modules/$tmplbase"; |
211 |
} |
212 |
return ($htdocs, $theme, $lang, $filename); |
207 |
return ($htdocs, $theme, $lang, $filename); |
213 |
} |
208 |
} |
214 |
|
209 |
|
Lines 266-271
sub gettemplate {
Link Here
|
266 |
|
261 |
|
267 |
#--------------------------------------------------------------------------------------------------------- |
262 |
#--------------------------------------------------------------------------------------------------------- |
268 |
# FIXME - POD |
263 |
# FIXME - POD |
|
|
264 |
# FIXME - Rewritten to remove hardcoded theme with minimal changes, need to be rethinked |
269 |
sub themelanguage { |
265 |
sub themelanguage { |
270 |
my ($htdocs, $tmpl, $interface, $query) = @_; |
266 |
my ($htdocs, $tmpl, $interface, $query) = @_; |
271 |
($query) or warn "no query in themelanguage"; |
267 |
($query) or warn "no query in themelanguage"; |
Lines 273-292
sub themelanguage {
Link Here
|
273 |
# Select a language based on cookie, syspref available languages & browser |
269 |
# Select a language based on cookie, syspref available languages & browser |
274 |
my $lang = C4::Languages::getlanguage($query); |
270 |
my $lang = C4::Languages::getlanguage($query); |
275 |
|
271 |
|
276 |
# Select theme |
272 |
# Get theme |
277 |
my $is_intranet = $interface eq 'intranet'; |
273 |
my $theme = C4::Context->preference( ($interface eq 'intranet') ? 'template' : 'opacthemes' ); |
278 |
my @themes = split(" ", C4::Context->preference( |
274 |
my @themes = ($theme); |
279 |
$is_intranet ? "template" : "opacthemes" )); |
275 |
|
280 |
push @themes, 'prog'; |
276 |
# Return theme for selected language, otherwise return same theme for English 'en' |
281 |
|
277 |
if ( -e "$htdocs/$theme/$lang/modules/$tmpl" ) { |
282 |
# Try to find first theme for the selected language |
278 |
return ($theme, $lang, \@themes); |
283 |
for my $theme (@themes) { |
279 |
} |
284 |
if ( -e "$htdocs/$theme/$lang/modules/$tmpl" ) { |
280 |
else { |
285 |
return ($theme, $lang, \@themes) |
281 |
return ($theme, 'en', \@themes); |
286 |
} |
|
|
287 |
} |
282 |
} |
288 |
# Otherwise, return prog theme in English 'en' |
|
|
289 |
return ('prog', 'en', \@themes); |
290 |
} |
283 |
} |
291 |
|
284 |
|
292 |
|
285 |
|
293 |
- |
|
|