Mercurial > pub > Impl
comparison Lib/IMPL/Web/View/TTLoader.pm @ 195:7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
author | cin |
---|---|
date | Wed, 11 Apr 2012 17:50:33 +0400 |
parents | 4d0e1962161c |
children | a705e848dcc7 |
comparison
equal
deleted
inserted
replaced
194:4d0e1962161c | 195:7a920771fd8e |
---|---|
16 BEGIN { | 16 BEGIN { |
17 public property options => PROP_ALL; | 17 public property options => PROP_ALL; |
18 public property provider => PROP_GET | PROP_OWNERSET; | 18 public property provider => PROP_GET | PROP_OWNERSET; |
19 public property context => PROP_GET | PROP_OWNERSET; | 19 public property context => PROP_GET | PROP_OWNERSET; |
20 public property ext => PROP_ALL; | 20 public property ext => PROP_ALL; |
21 public property layoutBase => PROP_GET | PROP_OWNERSET; | |
21 | 22 |
22 public property isInitialized => PROP_GET | PROP_OWNERSET; | 23 public property isInitialized => PROP_GET | PROP_OWNERSET; |
23 public property initializer => PROP_GET | PROP_OWNERSET; | 24 public property initializer => PROP_GET | PROP_OWNERSET; |
24 | 25 |
25 private property _globals => PROP_ALL; | 26 private property _globals => PROP_ALL; |
33 $this->ext($args{ext}) if $args{ext}; | 34 $this->ext($args{ext}) if $args{ext}; |
34 $this->initializer($args{initializer}) if $args{initializer}; | 35 $this->initializer($args{initializer}) if $args{initializer}; |
35 $this->_globals(ref $args{globals} eq 'HASH' ? $args{globals} : {}); | 36 $this->_globals(ref $args{globals} eq 'HASH' ? $args{globals} : {}); |
36 | 37 |
37 $this->options($refOpts); | 38 $this->options($refOpts); |
39 $this->layoutBase($args{layoutBase}) if $args{layoutBase}; | |
38 | 40 |
39 # to aviod cyclic references we need to do a copy of $refOpts | 41 # to aviod cyclic references we need to do a copy of $refOpts |
40 $refOpts->{LOAD_TEMPLATES} = $this->provider(new Template::Provider( { %$refOpts } )); | 42 $refOpts->{LOAD_TEMPLATES} = $this->provider(new Template::Provider( { %$refOpts } )); |
41 | 43 |
42 $this->context(new Template::Context($refOpts)); | 44 $this->context(new Template::Context($refOpts)); |
73 } elsif (defined $error and $error == STATUS_ERROR) { | 75 } elsif (defined $error and $error == STATUS_ERROR) { |
74 die new IMPL::Exception("Failed to load a template", $name, $tt); | 76 die new IMPL::Exception("Failed to load a template", $name, $tt); |
75 } | 77 } |
76 | 78 |
77 return $tt; | 79 return $tt; |
80 } | |
81 | |
82 sub layout { | |
83 my ($this,$name) = @_; | |
84 | |
85 my $layout; | |
86 | |
87 if ($this->layoutBase) { | |
88 $layout = $this->layoutBase . "/"; | |
89 } | |
90 | |
91 $layout .= $name; | |
92 return $this->template($layout); | |
78 } | 93 } |
79 | 94 |
80 sub _appendExt { | 95 sub _appendExt { |
81 my ($this,$name) = @_; | 96 my ($this,$name) = @_; |
82 | 97 |