Mercurial > pub > Impl
comparison Lib/IMPL/Web/View/TTDocument.pm @ 193:8e8401c0aea4
sync
| author | sergey |
|---|---|
| date | Tue, 10 Apr 2012 08:13:22 +0400 |
| parents | a9faf883cdce |
| children | 4d0e1962161c |
comparison
equal
deleted
inserted
replaced
| 192:a9faf883cdce | 193:8e8401c0aea4 |
|---|---|
| 82 } else { | 82 } else { |
| 83 | 83 |
| 84 my $path = $control; | 84 my $path = $control; |
| 85 if ( my $template = $this->loader->template($path) ) { | 85 if ( my $template = $this->loader->template($path) ) { |
| 86 | 86 |
| 87 my $opts = { %{$this->loader->options} }; | 87 my $opts = { %{$this->opts} }; |
| 88 $opts->{STASH} = $this->loader->context->stash->clone(); | 88 $opts->{STASH} = $this->context->stash->clone(); |
| 89 | 89 |
| 90 my $ctx = new Template::Context($opts); | 90 my $ctx = new Template::Context($opts); |
| 91 | 91 |
| 92 $factory = new IMPL::Web::View::TTFactory( | 92 $factory = new IMPL::Web::View::TTFactory( |
| 93 typeof IMPL::Web::View::TTControl, | 93 typeof IMPL::Web::View::TTControl, |
| 107 die new IMPL::KeyNotFoundException($control); | 107 die new IMPL::KeyNotFoundException($control); |
| 108 } | 108 } |
| 109 } | 109 } |
| 110 } | 110 } |
| 111 | 111 |
| 112 sub renderBlock { | |
| 113 $_[0]->template; | |
| 114 } | |
| 115 | |
| 116 sub Render { | 112 sub Render { |
| 117 my ($this,$args) = @_; | 113 my ($this,$args) = @_; |
| 118 | 114 |
| 119 my $output; | 115 my $output; |
| 120 | 116 |
| 185 | 181 |
| 186 Использование объектной модели документа позволяет решить задачи по созданию элементов управления | 182 Использование объектной модели документа позволяет решить задачи по созданию элементов управления |
| 187 контейнеров, у которых может быть сложное содежимое. Примером таких элементов могут быть формы, | 183 контейнеров, у которых может быть сложное содежимое. Примером таких элементов могут быть формы, |
| 188 внутри форм элементы управления могут группироваться. | 184 внутри форм элементы управления могут группироваться. |
| 189 | 185 |
| 186 =head2 Элементы управления (компоненты) | |
| 187 | |
| 188 Документ состоит из узлов, часть которых наследуется от C<IMPL::Web::View::TTControl>, такие узлы называются | |
| 189 элементами управления. Каждый элемент управления имеет собственный контекст, который наследуется от контекста | |
| 190 документа. | |
| 191 | |
| 192 =head2 Фабрика элементов управления | |
| 193 | |
| 194 Для создания элементов управления используются фабрики. Каждый элемен управления имеет свой шаблон для | |
| 195 форматиорвания содержимого, фабрика связывает шаблон и класс элемента управления, для чего при загрузке | |
| 196 шаблона используется свойство C<type> из метаданных. Фабрика загружается в документ при том только один | |
| 197 раз, повторные загрузки фабрики возвращают уже загруженную. Для загрузки фабрики используется метод | |
| 198 C<require()>. | |
| 199 | |
| 190 | 200 |
| 191 =head2 Порядок обработки документа | 201 =head2 Порядок обработки документа |
| 192 | 202 |
| 193 =over | 203 =over |
| 194 | 204 |
