| ClearPress documentation | Contained in the ClearPress distribution. |
ClearPress::view::error - specialised view for error handling
$LastChangedRevision: 384 $
$oErrorView->errstr($sErrorMessage); my $sErrorMessage = $oErrorView->errstr();
my $sErrorOutput = $oErrorView->render();
Roger Pettett, <rpettett@cpan.org>
Copyright (C) 2007 by Roger Pettett
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.
| ClearPress documentation | Contained in the ClearPress distribution. |
######### # Author: rmp # Maintainer: $Author: zerojinx $ # Created: 2007-03-28 # Last Modified: $Date: 2010-09-24 09:38:52 +0100 (Fri, 24 Sep 2010) $ # Id: $Id: error.pm 384 2010-09-24 08:38:52Z zerojinx $ # $HeadURL: https://clearpress.svn.sourceforge.net/svnroot/clearpress/trunk/lib/ClearPress/view/error.pm $ # package ClearPress::view::error; use strict; use warnings; use base qw(ClearPress::view Class::Accessor); use English qw(-no_match_vars); use Template; use Carp; __PACKAGE__->mk_accessors(qw(errstr)); our $VERSION = do { my ($r) = q$LastChangedRevision: 384 $ =~ /(\d+)/smx; $r; }; sub render { my $self = shift; my $aspect = $self->aspect(); my $errstr = q(Error: ) . ($self->errstr()||q[]); if(Template->error()) { $errstr .= q(Template Error: ) . Template->error(); } # if($EVAL_ERROR) { # $errstr .= q(Eval Error: ) . $EVAL_ERROR; # } print {*STDERR} "Serving error: $errstr\n" or croak $ERRNO; $errstr =~ s/[ ]at[ ]\S+[ ]line[ ][[:digit:]]+//smxg; $errstr =~ s/\s+$//smx; ######### # initialise tt_filters by resetting tt # my $util = $self->util; delete $util->{tt}; my $tt = $self->tt; if($aspect =~ /(?:ajax|xml|rss|atom)$/smx) { my $escaped = $self->tt_filters->{xml_entity}->($errstr); return qq[<?xml version='1.0'?>\n<error>$escaped</error>]; } if($aspect =~ /json$/smx) { my $escaped = $self->tt_filters->{js_string}->($errstr); return qq[{"error":"$escaped"}]; } my $escaped = $self->tt_filters->{xml_entity}->($errstr); return q(<div id="main"><h2 class="error">An Error Occurred</h2>) . $self->actions() . q(<p class="error">) . $escaped . q(</p></div>); } 1; __END__