The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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, <mizuno@bomcity.com>

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.