|
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 |
- |
|
|