@@ -, +, @@ --- C4/Templates.pm | 45 ++------------------------------------------- 1 files changed, 2 insertions(+), 43 deletions(-) --- a/C4/Templates.pm +++ a/C4/Templates.pm @@ -67,6 +67,7 @@ sub new { COMPILE_DIR => C4::Context->config('template_cache_dir')?C4::Context->config('template_cache_dir'):'',, INCLUDE_PATH => \@includes, FILTERS => {}, + ENCODING => 'utf8', } ) or die Template->error(); my $self = { @@ -90,7 +91,6 @@ sub output { my $self = shift; my $vars = shift; -# my $file = $self->htdocs . '/' . $self->theme .'/'.$self->lang.'/'.$self->filename; my $template = $self->{TEMPLATE}; if ( $self->interface eq 'intranet' ) { $vars->{themelang} = '/intranet-tmpl'; @@ -114,56 +114,15 @@ sub output { C4::Context->preference('opaclayoutstylesheet'); # add variables set via param to $vars for processing - # and clean any utf8 mess for my $k ( keys %{ $self->{VARS} } ) { $vars->{$k} = $self->{VARS}->{$k}; - if (ref($vars->{$k}) eq 'ARRAY'){ - utf8_arrayref($vars->{$k}); - } - elsif (ref($vars->{$k}) eq 'HASH'){ - utf8_hashref($vars->{$k}); - } - else { - utf8::encode($vars->{$k}) if utf8::is_utf8($vars->{$k}); - } } my $data; -# binmode( STDOUT, ":utf8" ); $template->process( $self->filename, $vars, \$data ) || die "Template process failed: ", $template->error(); + utf8::encode($data) if utf8::is_utf8($data); return $data; } - -sub utf8_arrayref { - my $arrayref = shift; - foreach my $element (@$arrayref){ - if (ref($element) eq 'ARRAY'){ - utf8_arrayref($element); - next; - } - if (ref($element) eq 'HASH'){ - utf8_hashref($element); - next; - } - utf8::encode($element) if utf8::is_utf8($element); - } -} - -sub utf8_hashref { - my $hashref = shift; - for my $key (keys %{$hashref}){ - if (ref($hashref->{$key}) eq 'ARRAY'){ - utf8_arrayref($hashref->{$key}); - next; - } - if (ref($hashref->{$key}) eq 'HASH'){ - utf8_hashref($hashref->{$key}); - next; - } - utf8::encode($hashref->{$key}) if utf8::is_utf8($hashref->{$key}); - } -} - # FIXME - this is a horrible hack to cache # the current known-good language, temporarily --