Mercurial > pub > Impl
comparison Lib/IMPL/Web/View/TTDocument.pm @ 313:ec4ec1f056fe
TTView: page content now rendered lazy therefore a page layout must wrap the document content
| author | cin |
|---|---|
| date | Tue, 30 Apr 2013 01:27:05 +0400 |
| parents | d3b5a67ad2e8 |
| children | 9bdccdf1f50b |
comparison
equal
deleted
inserted
replaced
| 312:75a78cbf7dcf | 313:ec4ec1f056fe |
|---|---|
| 46 my ($this,$args) = @_; | 46 my ($this,$args) = @_; |
| 47 | 47 |
| 48 $args ||= {}; | 48 $args ||= {}; |
| 49 $args->{document} = $this; | 49 $args->{document} = $this; |
| 50 | 50 |
| 51 #$this->context->stash->update({ | |
| 52 # document => sub { $this } | |
| 53 #}); | |
| 54 | 51 |
| 55 my $text = eval { | 52 if ($this->layout) { |
| 56 | 53 my $layout = $this->registry->Require(join('/',$this->layoutBase, $this->layout))->new(); |
| 57 if ($this->layout) { | 54 |
| 58 my $layout = $this->registry->Require(join('/',$this->layoutBase, $this->layout))->new(); | 55 my $next = $this->next::can(); |
| 59 | 56 |
| 60 my $content = $this->next::method($args); | 57 return $layout->Render({ |
| 61 return $layout->Render({ | 58 content => sub { $this->$next($args) }, |
| 62 content => $content, | 59 template => $this->template, |
| 63 template => $this->template, | 60 document => $this |
| 64 document => $this | 61 }); |
| 65 }); | |
| 66 } else { | |
| 67 return $this->next::method($args); | |
| 68 } | |
| 69 }; | |
| 70 | |
| 71 my $e = $@; | |
| 72 | |
| 73 # undef $this; | |
| 74 | |
| 75 if ($e) { | |
| 76 die $e; | |
| 77 } else { | 62 } else { |
| 78 return $text; | 63 return $this->next::method($args); |
| 79 } | 64 } |
| 80 } | 65 } |
| 81 | 66 |
| 82 sub GetTemplate { | 67 sub GetTemplate { |
| 83 my ($this,$name) = @_; | 68 my ($this,$name) = @_; |
