comparison 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
comparison
equal deleted inserted replaced
191:78a18a2b6266 192:a9faf883cdce
70 return $this->stash->get($name); 70 return $this->stash->get($name);
71 } 71 }
72 } 72 }
73 73
74 sub require { 74 sub require {
75 my ($this, $control) = @_; 75 my ($this, $control, $nodeProps) = @_;
76
77 $nodeProps ||= {};
78 $nodeProps->{document} = $this;
76 79
77 if (my $factory = $this->controls->{$control}) { 80 if (my $factory = $this->controls->{$control}) {
78 return $factory; 81 return $factory;
79 } else { 82 } else {
80 83
88 91
89 $factory = new IMPL::Web::View::TTFactory( 92 $factory = new IMPL::Web::View::TTFactory(
90 typeof IMPL::Web::View::TTControl, 93 typeof IMPL::Web::View::TTControl,
91 $template, 94 $template,
92 $ctx, 95 $ctx,
93 $opts 96 $opts,
97 { document => $this }
94 ); 98 );
95 99
96 my @parts = split(/\/+/,$control); 100 my @parts = split(/\/+/,$control);
97 101
98 $this->controls->{$control} = $factory; 102 $this->controls->{$control} = $factory;
172 =item * Меню и т.п. 176 =item * Меню и т.п.
173 177
174 =back 178 =back
175 179
176 Скприт шаблона формирует структуру документа, затем сформированная структура форматируется в готовый документ. 180 Скприт шаблона формирует структуру документа, затем сформированная структура форматируется в готовый документ.
177 Процесс преобразования объектной модели в готовый документ может быть выполнена как вручную, так и при помощи 181 Процесс форматирования объектной модели в готовый документ может быть выполнена как вручную, так и при помощи
178 вспомогательного шаблона - обертки. Если у шаблона документа указан C<layout> в метаданных, то он будет 182 вспомогательного шаблона - обертки. Если у шаблона документа указан C<layout> в метаданных, то он будет
179 использован как шаблон для форматирования объектной модели, вывод самого шаблона будет проигнорирован. Если 183 использован как шаблон для форматирования объектной модели, вывод самого шаблона будет проигнорирован. Если
180 обертка не задана, то результатом будет вывод самого скрипта шаблона. 184 обертка не задана, то результатом будет вывод самого скрипта шаблона.
181 185
186 Использование объектной модели документа позволяет решить задачи по созданию элементов управления
187 контейнеров, у которых может быть сложное содежимое. Примером таких элементов могут быть формы,
188 внутри форм элементы управления могут группироваться.
189
182 190
183 =head2 Порядок обработки документа 191 =head2 Порядок обработки документа
184 192
185 =over 193 =over
186 194