package Maypole::View::TT;
-use Class::C3;
use base 'Maypole::View::Base';
use Maypole::Constants;
use Template;
use File::Spec::Functions qw(catdir tmpdir);
+use Template::Constants qw( :all );
our $error_template;
{ local $/; $error_template = <DATA>; }
-our $VERSION = '2.11';
+our $VERSION = '2.13';
+
+my $debug_flags = DEBUG_ON;
use strict;
sub template {
my ( $self, $r ) = @_;
unless ($self->{tt}) {
- my $view_options = $r->config->view_options || {};
+ my $view_options = $r->config->view_options || { POST_CHOMP=>1, PRE_CHOMP=>1, TRIM=>1 };
+ if ($r->debug) {
+ $view_options->{DEBUG} = $debug_flags;
+ }
+
+ $view_options->{POST_CHOMP} = 1 unless (exists $view_options->{POST_CHOMP});
$self->{provider} = Template::Provider->new($view_options);
$self->{tt} = Template->new({
%$view_options,
# Need to be very careful here.
my $tt = Template->new;
unless (ref $r->{config}) {
- warn "no config for this request\n";
+ $r->warn("no config for this request");
$error .= '<br> There was a problem finding configuration for this request';
$r->{config} ||= {};
}
__DATA__
<html><head><title>Maypole error page</title>
<style type="text/css">
-body { background-color:#7d95b5; font-family: sans-serif}
-p { background-color: #fff; padding: 5px; }
-pre { background-color: #fff; padding: 5px; border: 1px dotted black }
-h1 { color: #fff }
-h2 { color: #fff }
-.lhs {background-color: #ffd; }
-.rhs {background-color: #dff; }
+body { background-color:#fff; font-family: sans-serif}
+p { background-color: #e3eaf0; padding: 5px; }
+pre { background-color: #e3eaf0; padding: 5px; border: 1px dotted red }
+.lhs {background-color: #b5cadc; }
+.rhs {background-color: #e3eaf0; }
</style>
</head> <body>
-<h1> Maypole application error </h1>
+<h1> Maypole Application Error </h1>
<p> This application living at <code>[%request.config.uri_base%]</code>,
[%request.config.application_name || "which is unnamed" %], has
<h2> Request details </h2>
-<table width="85%" cellspacing="2" cellpadding="1">
+<table width="100%" cellspacing="2" cellpadding="1">
[% FOR attribute = ["model_class", "table", "template", "path",
"content_type", "document_encoding", "action", "args", "objects"] %]
- <tr> <td class="lhs" width="35%"> <b>[% attribute %]</b> </td> <td class="rhs" width="65%"> [%
+ <tr> <td class="lhs" width="20%"> <b>[% attribute %]</b> </td> <td class="rhs" width="65%"> [%
request.$attribute.list.join(" , ") %] </td></tr>
[% END %]
<tr><td colspan="2"></tr>
<tr><td class="lhs" colspan="2"><b>CGI Parameters</b> </td></tr>
[% FOREACH param IN request.params %]
- <tr> <td class="lhs" width="35%">[% param.key %]</td> <td class="rhs" width="65%"> [% param.value %] </td></tr>
+ <tr> <td class="lhs" width="20%">[% param.key %]</td> <td class="rhs" width="65%"> [% param.value %] </td></tr>
[% END %]
</table>
<h2> Website / Template Paths </h2>
<table width="85%" cellspacing="2" cellpadding="1">
-<tr><td class="lhs" width="35%"> <b>Base URI</b> </td><td class="rhs" width="65%">[% request.config.uri_base %]</td></tr>
-<tr><td class="lhs" width="35%"> <b>Paths</b> </td><td class="rhs" width="65%"> [% paths %] </td></tr>
+<tr><td class="lhs" width="20%"> <b>Base URI</b> </td><td class="rhs" width="65%">[% request.config.uri_base %]</td></tr>
+<tr><td class="lhs" width="20%"> <b>Paths</b> </td><td class="rhs" width="65%"> [% paths %] </td></tr>
</table>
<h2> Application configuration </h2>
<table width="85%" cellspacing="2" cellpadding="1">
- <tr><td class="lhs" width="35%"> <b>Model </b> </td><td class="rhs" width="65%"> [% request.config.model %] </td></tr>
- <tr><td class="lhs" width="35%"> <b>View </b> </td><td class="rhs" width="65%"> [% request.config.view %] </td></tr>
- <tr><td class="lhs" width="35%"> <b>Classes</b> </td><td class="rhs" width="65%"> [% request.config.classes.list.join(" , ") %] </td></tr>
- <tr><td class="lhs" width="35%"> <b>Tables</b> </td><td class="rhs" width="65%"> [% request.config.display_tables.list.join(" , ") %] </td></tr>
+ <tr><td class="lhs" width="20%"> <b>Model </b> </td><td class="rhs" width="65%"> [% request.config.model %] </td></tr>
+ <tr><td class="lhs" width="20%"> <b>View </b> </td><td class="rhs" width="65%"> [% request.config.view %] </td></tr>
+ <tr><td class="lhs" width="20%"> <b>Classes</b> </td><td class="rhs" width="65%"> [% request.config.classes.list.join(" , ") %] </td></tr>
+ <tr><td class="lhs" width="20%"> <b>Tables</b> </td><td class="rhs" width="65%"> [% request.config.display_tables.list.join(" , ") %] </td></tr>
</table>
</body>