49
|
1 package Engine;
|
|
2 our $Encoding;
|
|
3
|
|
4 package Engine::Output::Page;
|
|
5 use strict;
|
|
6
|
|
7 use Common;
|
|
8 use DOM;
|
|
9
|
|
10 sub Print {
|
|
11 my ($class,$Query,$Action) = @_;
|
|
12
|
|
13 if (DOM::Site->can('LoadPage')) {
|
|
14 my $pageId = $Action->RequestURI->path;
|
|
15 DOM::Site->RegisterObject("Request",$Action);
|
|
16 my $Page = DOM::Site->LoadPage($pageId);
|
|
17 print $Query->header(-status => 200);
|
|
18 undef $@;
|
|
19 eval {
|
|
20 $Page->Properties->{Encoding} = $Engine::Encoding;
|
|
21 $Page->Render(*STDOUT);
|
|
22 };
|
|
23 if ($@) {
|
|
24 print $Query->start_html('Error processing template');
|
|
25 print $Query->p("Page: $pageId");
|
|
26 print $Query->p("Error: $@");
|
|
27 print $Query->end_html;
|
|
28 }
|
|
29 } else {
|
|
30 die new Exception('The site doesn\'t support page output');
|
|
31 }
|
|
32 }
|
|
33
|
|
34 1;
|