X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=lib%2FMaypole%2FView%2FBase.pm;h=3164c0110ef8a25369a9dd19d1cd55c304439e18;hb=3526f64ac57c9f3502f6a56aed4615c2354dc6c3;hp=9615950d0bf141babecac61003218050f6e9bed7;hpb=1832705643db5a1ca965d83db327dc5c7ec73ad1;p=maypole.git diff --git a/lib/Maypole/View/Base.pm b/lib/Maypole/View/Base.pm index 9615950..3164c01 100644 --- a/lib/Maypole/View/Base.pm +++ b/lib/Maypole/View/Base.pm @@ -19,12 +19,13 @@ sub paths { push(@output, ( $r->model_class - && File::Spec->catdir( $path, $r->model_class->moniker ) + && File::Spec->catdir( $path, $r->model_class->table ) ) ); push(@output, File::Spec->catdir( $path, "custom" )); push(@output, File::Spec->catdir( $path, "factory" )); } + return @output; } @@ -73,8 +74,6 @@ sub vars { sub process { my ( $self, $r ) = @_; - $r->{content_type} ||= "text/html"; - $r->{document_encoding} ||= "utf-8"; my $status = $self->template($r); return $self->error($r) if $status != OK; return OK; @@ -83,38 +82,41 @@ sub process { sub error { my ( $self, $r, $desc ) = @_; $desc = $desc ? "$desc: " : ""; - carp $desc . $r->{error}; if ( $r->{error} =~ /not found$/ ) { - + warn "template not found error : ", $r->{error}; # This is a rough test to see whether or not we're a template or # a static page return -1 unless @{ $r->{objects} || [] }; + my $template_error = $r->{error}; $r->{error} = < Template not found -

Template not found

+A template was not found while processing the following request: -This template was not found while processing the following request: +@{[$r->{action}]} on table +@{[ $r->{table} ]} with objects: -@{[$r->{action}]} on table @{[ $r->{table} ]} with objects: - -
+
 @{[join "\n", @{$r->{objects}}]}
-
+
+ -Looking for template @{[$r->{template}]} in paths: +The main template is @{[$r->{template}]}. +The template subsystem's error message was +
+$template_error
+
+We looked in paths: -
+
 @{[ join "\n", $self->paths($r) ]}
-
+
EOF $r->{content_type} = "text/html"; $r->{output} = $r->{error}; return OK; } - $r->{content_type} = "text/plain"; - $r->{output} = $r->{error}; - $r->send_output; return ERROR; }