NAME

Egg::Plugin::ErrorDocument - Plugin to display original error screen for Egg.

SYNOPSIS

package MYPROJECT;
use strict;
sue Egg qw{ ErrorDocument };

Configuration.

plugin_error_document=> {
  view_name      => 'Mason',
  template_name  => '/error/document.tt',
  default_status => 404,
  ignore_status  => 200,
  no_cache       => 1,
  },

Template : /MYPROJECT_ROOT/comp/error/document.tt

<%init>
my $code= $e->stash->{response_code};
</%init>
%
<html>
<head>
<title><% $e->page_title %></title>
</head>
<body>
<h1><% $e->page_title %></h1>
<hr>
<p>
% if ($code == 401) {

  Un authorized. ..... ... ..

% } elsif ($code == 403) {

  Forbidden. ..... ... ..

% } elsif ($code == 404) {

  Object Not Found.  ..... ... ..

% } elsif ($code == 500) {

  Internal Server Error. ..... ... ..

% } else {

  Internal Error.  ..... ... ..

% }
</p>
</body>
</html>

DESCRIPTION

This plugin displays the original error page.

It doesn't live well in usual CGI and FastCGI though it only has to leave 'mod_perl' to the server now if an appropriate result code is returned when processing is ended. Then, this plug-in helps to make and to output the error page matched to the response code.

Because it relies on a prescribed template, the place of VIEW and the template for the template will be set to the configuration in making the error page.

CONFIGURATION

view_name

The name of View to handle the template is set.

As for default, the one whose priority level is the highest in the setting of VIEW is used.

template_name

The template to generate the error page is set.

It should be a form that can be treated with View specified with view_name though is not to saying.

There is no default. It makes an error of the unspecification.

default_status

The code that wants to do to the default when it is called like the response status undefinition is set.

Default is '404'.

ignore_status

The response code in which nothing is done is specified.

Default is '200'.

status_codeset

The data to obtain the character corresponding to the status code is set by the HASH reference.

Default is {
  401 => 'AUTH_REQUIRED',
  403 => 'FORBIDDEN',
  404 => 'NOT_FOUND',
  500 => 'SERVER_ERROR',
  }

no_cache

When the error page is output, the no_cache header is included.

* I think the no_cache header also for the thing erased by the proxy etc. to exist. When the following sources are included in the template, it is more certain.

<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="expires" content="0">

METHODS

error_document ([STATUS_CODE])

It is called at the end of processing if it is assumed $e->finished(404) usually.

The error page is output to the making client.

response_status ([STATUS_CODE])

The character corresponding to the status code is returned.

'INTERNAL_ERROR' returns when the corresponding one is not found.

The data set with status_codeset is used.

SEE ALSO

Egg::Engine, Egg::Release,

AUTHOR

Masatoshi Mizuno, <lushe@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2007 Bee Flag, Corp. <http://egg.bomcity.com/>, All Rights Reserved.

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.6 or, at your option, any later version of Perl 5 you may have available.