Mercurial > pub > Impl
diff Lib/IMPL/Web/View/TTDocument.pm @ 192:a9faf883cdce
IMPL::Web::View refactoring
author | cin |
---|---|
date | Fri, 06 Apr 2012 16:22:38 +0400 |
parents | 78a18a2b6266 |
children | 8e8401c0aea4 |
line wrap: on
line diff
--- a/Lib/IMPL/Web/View/TTDocument.pm Thu Apr 05 17:51:51 2012 +0400 +++ b/Lib/IMPL/Web/View/TTDocument.pm Fri Apr 06 16:22:38 2012 +0400 @@ -72,7 +72,10 @@ } sub require { - my ($this, $control) = @_; + my ($this, $control, $nodeProps) = @_; + + $nodeProps ||= {}; + $nodeProps->{document} = $this; if (my $factory = $this->controls->{$control}) { return $factory; @@ -90,7 +93,8 @@ typeof IMPL::Web::View::TTControl, $template, $ctx, - $opts + $opts, + { document => $this } ); my @parts = split(/\/+/,$control); @@ -174,11 +178,15 @@ =back Скприт шаблона формирует структуру документа, затем сформированная структура форматируется в готовый документ. -Процесс преобразования объектной модели в готовый документ может быть выполнена как вручную, так и при помощи +Процесс форматирования объектной модели в готовый документ может быть выполнена как вручную, так и при помощи вспомогательного шаблона - обертки. Если у шаблона документа указан C<layout> в метаданных, то он будет использован как шаблон для форматирования объектной модели, вывод самого шаблона будет проигнорирован. Если обертка не задана, то результатом будет вывод самого скрипта шаблона. +Использование объектной модели документа позволяет решить задачи по созданию элементов управления +контейнеров, у которых может быть сложное содежимое. Примером таких элементов могут быть формы, +внутри форм элементы управления могут группироваться. + =head2 Порядок обработки документа