view Lib/Engine/Output/Page.pm @ 122:a7efb3117295

Fixed bug in IMPL::DOM::Navigator::selectNodes Fixed bug in IMPL::DOM::Node::selectNodes renamed operator 'type' to 'typeof' in IMPL::Object::Abstract A proper implementation of the IMPL::DOM::Node::nodeProperty and a related changes in the IMPL::DOM::Property module, now the last is very simple.
author wizard
date Tue, 08 Jun 2010 20:12:45 +0400
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;