diff --git a/lib/calcms/template.pm b/lib/calcms/template.pm index af3a68b..6e9cd5e 100644 --- a/lib/calcms/template.pm +++ b/lib/calcms/template.pm @@ -6,6 +6,7 @@ use strict; use Data::Dumper; use HTML::Template::Compiled(); use HTML::Template::Compiled::Plugin::XMLEscape(); +#use HTML::Template::JIT(); use JSON(); use Cwd(); @@ -64,47 +65,14 @@ sub process { return; } - #print STDERR $filename."\n"; - log::error( $config, "cannot find template $filename " ) unless -e $filename; - log::error( $config, "cannot read template $filename " ) unless -r $filename; - - my $default_escape = '0'; - $default_escape = 'JS' if ( $filename =~ /\.js$/ ); - $default_escape = 'JS' if ( $filename =~ /\.json$/ ); - $default_escape = 'HTML_ALL' if ( $filename =~ /\.html$/ ); - - my $html_template = undef; - - unless ( $filename =~ /\.xml$/ ) { - $html_template = HTML::Template::Compiled->new( - filename => $filename, - die_on_bad_params => 0, - case_sensitive => 0, - loop_context_vars => 0, - global_vars => 0, - tagstyle => '-asp -comment', - default_escape => $default_escape, - cache => 0, - utf8 => 1, - ); - } else { - $html_template = HTML::Template::Compiled->new( - filename => $filename, - die_on_bad_params => 0, - case_sensitive => 1, - loop_context_vars => 0, - global_vars => 0, - tagstyle => '-asp -comment', - default_escape => 'XML', - plugin => [qw(HTML::Template::Compiled::Plugin::XMLEscape)], - utf8 => 1 - ); + unless (-r $filename){ + log::error($config, qq{template "$filename" does not exist}) unless -e $filename; + log::error($config, qq{missing permissions to read "$filename"}); } + my $html_template = initTemplate($filename); - #$params= setRelativeUrls( $params, 0 ) unless ( defined $params->{extern} ) && ( $params->{extern} eq '1' ); - # HTML::Template::Compiled->preload($cache_dir); $html_template->param($params); if ( ( defined $_[1] ) && ( $_[1] eq 'print' ) ) { print $html_template->output; @@ -113,6 +81,42 @@ sub process { } } +sub initTemplate{ + my $filename=shift; + + my $default_escape = 'none'; + $default_escape = 'js' if ( $filename =~ /\.js$/ ); + $default_escape = 'js' if ( $filename =~ /\.json$/ ); + $default_escape = 'html_all' if ( $filename =~ /\.html$/ ); + + if ( $filename =~ /\.xml$/ ) { + return HTML::Template::Compiled->new( + filename => $filename, + die_on_bad_params => 1, + case_sensitive => 1, + loop_context_vars => 0, + global_vars => 0, + tagstyle => '-asp -comment --comment --tt', + default_escape => 'XML', + cache => 1, + utf8 => 1, + plugin => [qw(HTML::Template::Compiled::Plugin::XMLEscape)], + ); + } + + return HTML::Template::Compiled->new( + filename => $filename, + die_on_bad_params => 1, + case_sensitive => 1, + loop_context_vars => 0, + global_vars => 0, + tagstyle => '-asp -comment --comment --tt', + default_escape => $default_escape, + cache => 1, + utf8 => 1, + ); +} + # set relative urls in nested params structure sub setRelativeUrls { my $params = shift; diff --git a/website/agenda/planung/templates/edit_comment.html b/website/agenda/planung/templates/edit_comment.html index f55ee52..5e567ad 100644 --- a/website/agenda/planung/templates/edit_comment.html +++ b/website/agenda/planung/templates/edit_comment.html @@ -19,8 +19,8 @@
