view Lib/Engine/Output/Page.pm @ 12:955b2324c1bf

Работа над навигаторами и схемой DOM модели
author Sergey
date Mon, 31 Aug 2009 01:37:43 +0400
parents 03e58a454b20
children 16ada169ca75
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;