From: Simon Cozens Date: Sat, 19 Jun 2004 14:49:42 +0000 (+0000) Subject: Be a bit friendlier on returning "not found" errors. X-Git-Tag: 2.10~214 X-Git-Url: https://git.decadent.org.uk/gitweb/?a=commitdiff_plain;h=5c9dc9134cf6a75aa65f91dc5eb02c4a294d21b8;p=maypole.git Be a bit friendlier on returning "not found" errors. git-svn-id: http://svn.maypole.perl.org/Maypole/trunk@148 48953598-375a-da11-a14b-00016c27c3ee --- diff --git a/lib/Maypole/View/Base.pm b/lib/Maypole/View/Base.pm index 58eda6a..8229d21 100644 --- a/lib/Maypole/View/Base.pm +++ b/lib/Maypole/View/Base.pm @@ -64,7 +64,33 @@ sub process { sub error { my ($self, $r) = @_; warn $r->{error}; - if ($r->{error} =~ /not found$/) { return -1 } + if ($r->{error} =~ /not found$/) { + # This is a rough test to see whether or not we're a template or + # a static page + return -1 unless @{$r->{objects}||[]}; + + $r->{error} = < Template not found + +This template was not found while processing the following request: + +@{[$r->{action}]} on table @{[ $r->{table} ]} with objects: + +
+@{[join "\n", @{$r->{objects}}]}
+
+ +Looking for template @{[$r->{template}]} 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;