]> 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;
 { local $/; $error_template = <DATA>; }
 
 use strict;
-our $VERSION = 2.11;
 
 sub template {
 
 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 {
     } 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>.
 
 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
 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