View | Details | Raw Unified | Return to bug 12539
Collapse All | Expand All

(-)a/C4/Templates.pm (-20 / +12 lines)
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
- 

Return to bug 12539