diff Lib/Engine/Output/Page.pm @ 0:03e58a454b20

Создан репозитарий
author Sergey
date Tue, 14 Jul 2009 12:54:37 +0400
parents
children 16ada169ca75
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Lib/Engine/Output/Page.pm	Tue Jul 14 12:54:37 2009 +0400
@@ -0,0 +1,34 @@
+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;