package OpenFrame::Example::ApacheSimple;
use strict;
use warnings;
use Apache;
use Apache::Constants qw(:response);
use File::Spec::Functions qw(catfile);
use Pipeline;
use OpenFrame::Example::Redirector;
use OpenFrame::Response;
use OpenFrame::Segment::Apache;
use OpenFrame::Segment::Apache::NoImages;
use OpenFrame::Segment::ContentLoader;
our $VERSION = '1.02';
sub handler {
my $r = shift;
my $dir = catfile($r->dir_config('cwd'), 'webpages');
my $request = OpenFrame::Segment::Apache::Request->new();
my $response = OpenFrame::Segment::Apache::Response->new();
my $redirect = OpenFrame::Example::Redirector->new();
my $noimages = OpenFrame::Segment::Apache::NoImages->new()
->directory($dir);
my $content = OpenFrame::Segment::ContentLoader->new()
->directory($dir);
if ($r->dir_config('debug')) {
# debugorama
$request->debug(10);
$redirect->debug(10);
$noimages->debug(10);
$content->debug(10);
$response->debug(10);
}
my $pipeline = Pipeline->new();
$pipeline->add_segment($request, $redirect, $noimages, $content);
$pipeline->cleanups->add_segment($response);
my $store = Pipeline::Store::Simple->new();
$pipeline->store($store->set($r));
my $out = $pipeline->dispatch();
if ($out->code == ofDECLINE) {
return DECLINED;
} else {
return OK;
}
}
1;
__END__
=head1 NAME
OpenFrame::Example::ApacheSimple - Demo Apache Pipeline
=head1 SYNOPSIS
SetHandler perl-script
PerlSetVar cwd /home/website/
# PerlSetVar debug 1
PerlHandler OpenFrame::Example::ApacheSimple
=head1 DESCRIPTION
OpenFrame::Example::ApacheSimple is an example pipeline which loads
static content.
The actual handler is quite short. The important part is to set up a
pipeline which has a OpenFrame::Segment::Apache::Request segment at
the beginning and a OpenFrame::Segment::Apache::Response as a cleanup
segment. Also, remember to check for an ofDECLINE and return DECLINED
in that case, or OK otherwise.
=head1 AUTHOR
Leon Brocard <acme@astray.com>
=head1 COPYRIGHT
Copyright 2002 Fotango Ltd.
Licensed under the same terms as Perl itself.
=cut