Mercurial > pub > Impl
diff Lib/IMPL/Web/View/TTDocument.pm @ 193:8e8401c0aea4
sync
author | sergey |
---|---|
date | Tue, 10 Apr 2012 08:13:22 +0400 |
parents | a9faf883cdce |
children | 4d0e1962161c |
line wrap: on
line diff
--- a/Lib/IMPL/Web/View/TTDocument.pm Fri Apr 06 16:22:38 2012 +0400 +++ b/Lib/IMPL/Web/View/TTDocument.pm Tue Apr 10 08:13:22 2012 +0400 @@ -84,8 +84,8 @@ my $path = $control; if ( my $template = $this->loader->template($path) ) { - my $opts = { %{$this->loader->options} }; - $opts->{STASH} = $this->loader->context->stash->clone(); + my $opts = { %{$this->opts} }; + $opts->{STASH} = $this->context->stash->clone(); my $ctx = new Template::Context($opts); @@ -109,10 +109,6 @@ } } -sub renderBlock { - $_[0]->template; -} - sub Render { my ($this,$args) = @_; @@ -187,6 +183,20 @@ контейнеров, у которых может быть сложное содежимое. Примером таких элементов могут быть формы, внутри форм элементы управления могут группироваться. +=head2 Элементы управления (компоненты) + +Документ состоит из узлов, часть которых наследуется от C<IMPL::Web::View::TTControl>, такие узлы называются +элементами управления. Каждый элемент управления имеет собственный контекст, который наследуется от контекста +документа. + +=head2 Фабрика элементов управления + +Для создания элементов управления используются фабрики. Каждый элемен управления имеет свой шаблон для +форматиорвания содержимого, фабрика связывает шаблон и класс элемента управления, для чего при загрузке +шаблона используется свойство C<type> из метаданных. Фабрика загружается в документ при том только один +раз, повторные загрузки фабрики возвращают уже загруженную. Для загрузки фабрики используется метод +C<require()>. + =head2 Порядок обработки документа