Mercurial > pub > Impl
comparison Lib/Engine/Output/Page.pm @ 0:03e58a454b20
Создан репозитарий
author | Sergey |
---|---|
date | Tue, 14 Jul 2009 12:54:37 +0400 |
parents | |
children | 16ada169ca75 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:03e58a454b20 |
---|---|
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; |