]> git.decadent.org.uk Git - maypole.git/blobdiff - lib/Maypole/View/TT.pm
tested and it seems to work
[maypole.git] / lib / Maypole / View / TT.pm
index 78aad9325199f07101d71afbffa116540d2f9cac..b7a59a2f565813c9a5c3c4a7ffaee12d845ac232 100644 (file)
@@ -8,41 +8,40 @@ our $error_template;
 { local $/; $error_template = <DATA>; }
 
 use strict;
-our $VERSION = 2.11;
 
 sub template {
-    my ( $self, $r ) = @_;
-    unless ($self->{tt}) {
-        my $view_options = $r->config->view_options || {};
-        $self->{provider} = Template::Provider->new($view_options);
-        $self->{tt}       = Template->new({
-            %$view_options,
-            LOAD_TEMPLATES => [ $self->{provider} ],
-        });
-    }
-
-    $self->{provider}->include_path([ $self->paths($r) ]);
-
-    my $template_file = $r->template;
-
-    my $ext = $r->config->template_extension;
-    $template_file .= $ext if defined $ext;
-
-    my $output;
-    my $processed_ok = eval{$self->{tt}->process($template_file, { $self->vars($r) }, \$output );};
-    if ($processed_ok) {
-      $r->{output} = $output;
-      return OK;
+  my ( $self, $r ) = @_;
+  unless ($self->{tt}) {
+    my $view_options = $r->config->view_options || {};
+    $self->{provider} = Template::Provider->new($view_options);
+    $self->{tt}       = Template->new({
+                                      %$view_options,
+                                      LOAD_TEMPLATES => [ $self->{provider} ],
+                                     });
+  }
+
+  $self->{provider}->include_path([ $self->paths($r) ]);
+
+  my $template_file = $r->template;
+
+  my $ext = $r->config->template_extension;
+  $template_file .= $ext if defined $ext;
+
+  my $output;
+  my $processed_ok = eval{$self->{tt}->process($template_file, { $self->vars($r) }, \$output );};
+  if ($processed_ok) {
+    $r->{output} = $output;
+    return OK;
+  } else {
+    if ($@) {
+      warn "fatal error in template '$template_file' : $@\n";
+      $r->{error} = "fatal error in template '$template_file' : $@";
     } else {
-      if ($@) {
-       warn "fatal error in template '$template_file' : $@\n";
-       $r->{error} = "fatal error in template '$template_file' : $@";
-      } else {
-       warn "TT error for template '$template_file'\n" . $self->{tt}->error;
-       $r->{error} = "TT error for template '$template_file'\n" . $self->{tt}->error;
-      }
-      return ERROR;
+      warn "TT error for template '$template_file'\n" . $self->{tt}->error;
+      $r->{error} = "TT error for template '$template_file'\n" . $self->{tt}->error;
     }
+    return ERROR;
+  }
 }
 
 
@@ -287,6 +286,18 @@ truncate, format, escape or encode trivially. A useful selection is included
 with Template Toolkit and they can also be found on CPAN or can be written
 easily. See L<Template::Manual::Filters>.
 
+TT provides stderr and stdout filters, which allow you to write handy macros
+like this one to output debug information to your web server log, etc :
+
+=over 4
+
+[% MACRO debug_msg(text)
+    FILTER stderr; "[TT debug_msg] $text\n"; END;
+%]
+
+=back
+
+
 TT Macros allow you to reuse small blocks of content, directives, etc. The MACRO
 directive allows you to define a directive or directive block which is then
 evaluated each time the macro is called. Macros can be passed named parameters