view Lib/Engine/Output/Page.pm @ 57:bf59ee1cd506

Web application main class functionality
author wizard
date Fri, 05 Mar 2010 13:59:29 +0300
parents 16ada169ca75
children
line wrap: on
line source

package Engine;
our $Encoding;

package Engine::Output::Page;
use strict;

use Common;
use DOM;

sub Print {
    my ($class,$Query,$Action) = @_;
    
    if (DOM::Site->can('LoadPage')) {
        my $pageId = $Action->RequestURI->path;
        DOM::Site->RegisterObject("Request",$Action);
        my $Page = DOM::Site->LoadPage($pageId);
        print $Query->header(-status => 200);
        undef $@;
        eval {
            $Page->Properties->{Encoding} = $Engine::Encoding;
            $Page->Render(*STDOUT);
        };
        if ($@) {
            print $Query->start_html('Error processing template');
            print $Query->p("Page: $pageId");
            print $Query->p("Error: $@");
            print $Query->end_html;
        }
    } else {
        die new Exception('The site doesn\'t support page output');
    }
}

1;