Ok, I did an override of the load_tmpl function like this:
sub load_tmpl {
my $self = shift;
my ($tmpl_file, @extra_params) = @_;
# add tmpl_path to path array if one is set, otherwise add a path
+arg
if (my $tmpl_path = $self->tmpl_path) {
my @tmpl_paths = (ref $tmpl_path eq 'ARRAY') ? @$tmpl_path : $
+tmpl_path;
my $found = 0;
for( my $x = 0; $x < @extra_params; $x += 2 ) {
if ($extra_params[$x] eq 'path' and
ref $extra_params[$x+1] eq 'ARRAY') {
unshift @{$extra_params[$x+1]}, @tmpl_paths;
$found = 1;
last;
}
}
push(@extra_params, path => [ @tmpl_paths ]) unless $found;
}
my %tmpl_params = ();
my %ht_params = @extra_params;
%ht_params = () unless keys %ht_params;
# Define our extension if doesn't already exist;
$self->{__CURRENT_TMPL_EXTENSION} = '.html' unless defined $self->
+{__CURRENT_TMPL_EXTENSION};
# Define a default templat name based on the current run mode
unless (defined $tmpl_file) {
$tmpl_file = $self->get_current_runmode . $self->{__CURRENT_TM
+PL_EXTENSION};
}
$self->call_hook('load_tmpl', \%ht_params, \%tmpl_params, $tmpl_fi
+le);
#require HTML::Template;
# let's check $tmpl_file and see what kind of parameter it is - we
# now support 3 options: scalar (filename), ref to scalar (the
# actual html/template content) and reference to FILEHANDLE
#my $t = undef;
#if ( ref $tmpl_file eq 'SCALAR' ) {
# $t = HTML::Template->new_scalar_ref( $tmpl_file, %ht_params )
+;
#} elsif ( ref $tmpl_file eq 'GLOB' ) {
# $t = HTML::Template->new_filehandle( $tmpl_file, %ht_params )
+;
#} else {
# $t = HTML::Template->new_file($tmpl_file, %ht_params);
#}
require Template::Alloy;
my $t = undef;
if ( ref $tmpl_file eq 'SCALAR' ) {
$t = Template::Alloy->new(type => 'filename', source =>
+ $tmpl_file, %ht_params, ENCODING => 'UTF-8');
} elsif ( ref $tmpl_file eq 'GLOB' ) {
$t = Template::Alloy->new(type => 'scalarref', source => $t
+mpl_file, %ht_params, ENCODING => 'UTF-8');
} else {
$t = Template::Alloy->new(type => 'filename', source => $tmpl_
+file, %ht_params, ENCODING => 'UTF-8');
}
if (keys %tmpl_params) {
$t->param(%tmpl_params);
}
return $t;
}
It works, but I still get strange characters. My template files displays the strange question mark symbol (firefox), square emtpy box (IE) instead of å, ä and ö.
�ndra ditt l�senord
The data from my database displays as before
Törjebjöåärne
I have tried to save my template files as UTF-8 without BOM, without any success. Am I doing some kind of double encoding? Why does it give me different characters, sometimes an ö will give me � and sometimes ö
|