Mercurial > pub > Impl
comparison Lib/IMPL/Web/QueryHandler/PageFormat.pm @ 146:60fd224f3e3c
fixed cgi parameters processing
Added parameters inflating feature
Added preprocessed templates, reformatting output
| author | wizard |
|---|---|
| date | Mon, 26 Jul 2010 03:19:06 +0400 |
| parents | b56ebc31bf18 |
| children | eb478083f72b |
comparison
equal
deleted
inserted
replaced
| 145:bd10093bb122 | 146:60fd224f3e3c |
|---|---|
| 8 use IMPL::Class::Property; | 8 use IMPL::Class::Property; |
| 9 use IMPL::Web::TT::Document; | 9 use IMPL::Web::TT::Document; |
| 10 use Template::Plugin::URL; | 10 use Template::Plugin::URL; |
| 11 use IMPL::Security::Context; | 11 use IMPL::Security::Context; |
| 12 use File::Spec; | 12 use File::Spec; |
| 13 use HTML::TreeBuilder; | |
| 13 use Error qw(:try); | 14 use Error qw(:try); |
| 14 | 15 |
| 15 $Template::Plugin::URL::JOINT = '&'; | 16 $Template::Plugin::URL::JOINT = '&'; |
| 16 | 17 |
| 17 BEGIN { | 18 BEGIN { |
| 18 public property templatesCharset => prop_all; | 19 public property templatesCharset => prop_all; |
| 19 public property templatesBase => prop_all; | 20 public property templatesBase => prop_all; |
| 20 public property defaultTarget => prop_all; | 21 public property defaultTarget => prop_all; |
| 21 public property pathinfoPrefix => prop_all; | 22 public property pathinfoPrefix => prop_all; |
| 22 public property cache => prop_all; | 23 public property cache => prop_all; |
| 24 public property preprocess => prop_all; | |
| 25 public property formatOutput => prop_all; | |
| 23 } | 26 } |
| 24 | 27 |
| 25 sub CTOR { | 28 sub CTOR { |
| 26 my ($this) = @_; | 29 my ($this) = @_; |
| 27 | 30 |
| 31 } | 34 } |
| 32 | 35 |
| 33 sub Process { | 36 sub Process { |
| 34 my ($this,$action,$nextHandler) = @_; | 37 my ($this,$action,$nextHandler) = @_; |
| 35 | 38 |
| 36 my $doc = new IMPL::Web::TT::Document(cache => $this->cache); | 39 my $doc = new IMPL::Web::TT::Document(cache => $this->cache, preprocess => $this->preprocess); |
| 37 | 40 |
| 38 try { | 41 try { |
| 39 | 42 |
| 40 $this->templatesBase($ENV{DOCUMENT_ROOT}) unless $this->templatesBase; | 43 $this->templatesBase($ENV{DOCUMENT_ROOT}) unless $this->templatesBase; |
| 41 | 44 |
| 86 $doc->AddVar( escape_string => sub { $_[0] =~ s/"/"/g; $_[0] } ); | 89 $doc->AddVar( escape_string => sub { $_[0] =~ s/"/"/g; $_[0] } ); |
| 87 | 90 |
| 88 | 91 |
| 89 $action->response->contentType('text/html'); | 92 $action->response->contentType('text/html'); |
| 90 my $hOut = $action->response->streamBody; | 93 my $hOut = $action->response->streamBody; |
| 91 print $hOut $doc->Render(); | 94 if ($this->formatOutput == 1) { |
| 95 my $tree = new HTML::TreeBuilder(); | |
| 96 try { | |
| 97 $tree->parse_content($doc->Render()); | |
| 98 print $hOut $tree->as_HTML('<>&'," ",{}); | |
| 99 } finally { | |
| 100 $tree->delete; | |
| 101 }; | |
| 102 } elsif ($this->formatOutput() == 2 ) { | |
| 103 (my $data = $doc->Render()) =~ s/\s+/ /g; | |
| 104 print $hOut $data; | |
| 105 } else { | |
| 106 print $hOut $doc->Render(); | |
| 107 } | |
| 92 } finally { | 108 } finally { |
| 93 $doc->Dispose; | 109 $doc->Dispose; |
| 94 }; | 110 }; |
| 95 } | 111 } |
| 96 | 112 |
