Mercurial > pub > Impl
annotate Lib/IMPL/Web/View/TTDocument.pm @ 286:d357b5d85d25
*TTView refactoring
| author | sergey | 
|---|---|
| date | Mon, 18 Feb 2013 14:46:06 +0400 | 
| parents | 546957c50a36 | 
| children | 2d253e6e4a88 | 
| rev | line source | 
|---|---|
| 181 | 1 package IMPL::Web::View::TTDocument; | 
| 2 use strict; | |
| 3 | |
| 236 | 4 use Scalar::Util qw(weaken); | 
| 5 use IMPL::Const qw(:prop); | |
| 241 
f48a1a9f4fa2
+Added ViewResult to allow implementation of the view environment.
 sergey parents: 
238diff
changeset | 6 use IMPL::lang qw(:hash); | 
| 181 | 7 | 
| 236 | 8 use IMPL::declare { | 
| 9 require => { | |
| 10 TTFactory => 'IMPL::Web::View::TTFactory', | |
| 11 TTControl => 'IMPL::Web::View::TTControl', | |
| 12 Loader => 'IMPL::Code::Loader' | |
| 13 }, | |
| 14 base => [ | |
| 15 'IMPL::Web::View::TTControl' => sub { | |
| 16 my ($template,$contextOpts) = @_; | |
| 17 'document', | |
| 238 | 18 $template, # template | 
| 19 Template::Context->new($contextOpts) # context | |
| 236 | 20 } | 
| 21 ], | |
| 22 props => [ | |
| 23 layout => PROP_RW, | |
| 24 opts => PROP_RO, | |
| 25 loader => PROP_RW, | |
| 26 controls => PROP_RO, | |
| 241 
f48a1a9f4fa2
+Added ViewResult to allow implementation of the view environment.
 sergey parents: 
238diff
changeset | 27 creationArgs => PROP_RO, | 
| 236 | 28 | 
| 29 # store the stash separately to make require() method to work correctly | |
| 30 # even when a stash of the context is modified during the processing | |
| 31 stash => PROP_RO | |
| 32 ] | |
| 33 }; | |
| 181 | 34 | 
| 35 BEGIN { | |
| 236 | 36 | 
| 181 | 37 } | 
| 38 | |
| 39 sub CTOR { | |
| 194 | 40 my ($this,$template,$refOpts,$loader,$vars) = @_; | 
| 41 | |
| 42 $this->controls({}); | |
| 43 $this->loader($loader) if $loader; | |
| 44 | |
| 45 $this->layout( $template->layout ) unless $this->layout; | |
| 46 | |
| 47 $this->opts($refOpts); | |
| 48 $this->stash($this->context->stash); | |
| 241 
f48a1a9f4fa2
+Added ViewResult to allow implementation of the view environment.
 sergey parents: 
238diff
changeset | 49 $this->creationArgs($vars); | 
| 194 | 50 | 
| 51 my $self = $this; | |
| 52 weaken($self); | |
| 53 | |
| 241 
f48a1a9f4fa2
+Added ViewResult to allow implementation of the view environment.
 sergey parents: 
238diff
changeset | 54 $this->templateVars(require => sub { | 
| 194 | 55 my $doc = $self; | 
| 56 die new IMPL::Exception("A document is destroyed or invalid") unless $doc; | |
| 236 | 57 $doc->RequireControl(@_); | 
| 194 | 58 }); | 
| 59 | |
| 241 
f48a1a9f4fa2
+Added ViewResult to allow implementation of the view environment.
 sergey parents: 
238diff
changeset | 60 $this->templateVars(document => sub { $self } ); | 
| 194 | 61 $this->InitInstance($vars); | 
| 181 | 62 } | 
| 63 | |
| 189 | 64 sub templateVars { | 
| 194 | 65 my $this = shift; | 
| 66 my $name = shift; | |
| 67 | |
| 68 if (@_) { | |
| 69 return $this->stash->set($name, shift); | |
| 70 } else { | |
| 71 return $this->stash->get($name); | |
| 72 } | |
| 189 | 73 } | 
| 74 | |
| 236 | 75 sub RequireControl { | 
| 267 | 76 my ($this, $control) = @_; | 
| 194 | 77 | 
| 78 if (my $factory = $this->controls->{$control}) { | |
| 79 return $factory; | |
| 80 } else { | |
| 81 | |
| 82 my $path = $control; | |
| 267 | 83 | 
| 194 | 84 if ( my $template = $this->loader->template($path) ) { | 
| 85 my $opts = { %{$this->opts} }; | |
| 189 | 86 | 
| 245 | 87 # factory will create a clone of the stash | 
| 88 # $opts->{STASH} = $this->stash->clone(); | |
| 188 | 89 | 
| 194 | 90 my $ctx = new Template::Context($opts); | 
| 91 | |
| 92 $factory = new IMPL::Web::View::TTFactory( | |
| 263 | 93 $template->class || TTControl, | 
| 194 | 94 $template, | 
| 95 $ctx, | |
| 267 | 96 $opts, | 
| 97 join( '/', splice( @{[split(/\//,$path)]}, 0, -1 ) ) | |
| 194 | 98 ); | 
| 99 | |
| 236 | 100 if ($template->class) { | 
| 101 Loader->safe->Require($template->class); | |
| 102 } | |
| 103 | |
| 194 | 104 $this->controls->{$control} = $factory; | 
| 105 | |
| 106 return $factory; | |
| 188 | 107 | 
| 194 | 108 } else { | 
| 109 die new IMPL::KeyNotFoundException($control); | |
| 110 } | |
| 111 } | |
| 181 | 112 } | 
| 113 | |
| 114 sub Render { | |
| 194 | 115 my ($this,$args) = @_; | 
| 116 | |
| 241 
f48a1a9f4fa2
+Added ViewResult to allow implementation of the view environment.
 sergey parents: 
238diff
changeset | 117 $args ||= {}; | 
| 
f48a1a9f4fa2
+Added ViewResult to allow implementation of the view environment.
 sergey parents: 
238diff
changeset | 118 | 
| 
f48a1a9f4fa2
+Added ViewResult to allow implementation of the view environment.
 sergey parents: 
238diff
changeset | 119 my $newArgs = hashMerge($this->creationArgs, $args); | 
| 194 | 120 | 
| 121 if ($this->layout) { | |
| 286 | 122 my $tlayout = $this->loader->layout($this->layout); | 
| 123 if(my $init = $tlayout->blocks->{INIT}) { | |
| 124 $this->context->process( | |
| 125 $init, | |
| 126 hashMerge( | |
| 127 $newArgs, | |
| 128 { | |
| 129 this => $this, | |
| 130 template => $this->template | |
| 131 } | |
| 132 ) | |
| 133 ); | |
| 134 } | |
| 241 
f48a1a9f4fa2
+Added ViewResult to allow implementation of the view environment.
 sergey parents: 
238diff
changeset | 135 return $this->context->include( | 
| 286 | 136 $tlayout, | 
| 194 | 137 { | 
| 241 
f48a1a9f4fa2
+Added ViewResult to allow implementation of the view environment.
 sergey parents: 
238diff
changeset | 138 %{$newArgs}, | 
| 245 | 139 content => $this->RenderContent($newArgs), | 
| 194 | 140 this => $this, | 
| 141 template => $this->template | |
| 142 } | |
| 143 ); | |
| 144 } else { | |
| 241 
f48a1a9f4fa2
+Added ViewResult to allow implementation of the view environment.
 sergey parents: 
238diff
changeset | 145 return $this->RenderContent($newArgs); | 
| 194 | 146 } | 
| 181 | 147 } | 
| 148 | |
| 190 
cd1ff7029a63
IMLP::Web::View refactored, added new method 'require' which is available inside templates. Changed document rendering.
 cin parents: 
189diff
changeset | 149 sub RenderContent { | 
| 194 | 150 my $this = shift; | 
| 151 return $this->SUPER::Render(@_); | |
| 190 
cd1ff7029a63
IMLP::Web::View refactored, added new method 'require' which is available inside templates. Changed document rendering.
 cin parents: 
189diff
changeset | 152 } | 
| 
cd1ff7029a63
IMLP::Web::View refactored, added new method 'require' which is available inside templates. Changed document rendering.
 cin parents: 
189diff
changeset | 153 | 
| 181 | 154 1; | 
| 155 | |
| 156 __END__ | |
| 157 | |
| 158 =pod | |
| 159 | |
| 160 =head1 NAME | |
| 161 | |
| 162 C<IMPL::Web::View::TTDocument> - документ для построения HTML страницы на основе шаблонов TT. | |
| 163 | |
| 164 =head1 SYNOPSIS | |
| 165 | |
| 166 =begin code | |
| 167 | |
| 168 use IMPL::Web::View::TTDocument(); | |
| 169 | |
| 170 my $doc = new IMPL::Wbe::View::TTDocument($template,$ttOptions); | |
| 171 | |
| 172 return $doc->Render(); | |
| 173 | |
| 174 =end code | |
| 175 | |
| 176 Однако, более предпочтительный способ использовать C<IMPL::Web::View::TTLoader>. | |
| 177 | |
| 178 =head1 DESCRIPTION | |
| 179 | |
| 180 Документ для представления данных. Документы представляют собой иерархически организованные данные, | |
| 181 элементами данного документа являются данные для отображения, такие как | |
| 182 | |
| 183 =over | |
| 184 | |
| 185 =item * Объекты из БД | |
| 186 | |
| 187 =item * Навигационные цепочки | |
| 188 | |
| 189 =item * Меню и т.п. | |
| 190 | |
| 191 =back | |
| 192 | |
| 193 Скприт шаблона формирует структуру документа, затем сформированная структура форматируется в готовый документ. | |
| 192 | 194 Процесс форматирования объектной модели в готовый документ может быть выполнена как вручную, так и при помощи | 
| 189 | 195 вспомогательного шаблона - обертки. Если у шаблона документа указан C<layout> в метаданных, то он будет | 
| 181 | 196 использован как шаблон для форматирования объектной модели, вывод самого шаблона будет проигнорирован. Если | 
| 197 обертка не задана, то результатом будет вывод самого скрипта шаблона. | |
| 198 | |
| 195 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 199 Использование объектной модели документа позволяет решить задачи по созданию контейнеров, | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 200 у которых может быть сложное содежимое. Примером таких элементов могут быть формы, | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 201 внутри форм элементы управления также могут группироваться. | 
| 192 | 202 | 
| 193 | 203 =head2 Элементы управления (компоненты) | 
| 204 | |
| 205 Документ состоит из узлов, часть которых наследуется от C<IMPL::Web::View::TTControl>, такие узлы называются | |
| 206 элементами управления. Каждый элемент управления имеет собственный контекст, который наследуется от контекста | |
| 207 документа. | |
| 208 | |
| 209 =head2 Фабрика элементов управления | |
| 210 | |
| 211 Для создания элементов управления используются фабрики. Каждый элемен управления имеет свой шаблон для | |
| 212 форматиорвания содержимого, фабрика связывает шаблон и класс элемента управления, для чего при загрузке | |
| 213 шаблона используется свойство C<type> из метаданных. Фабрика загружается в документ при том только один | |
| 214 раз, повторные загрузки фабрики возвращают уже загруженную. Для загрузки фабрики используется метод | |
| 195 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 215 C<require()> с указанием элемента управления. | 
| 190 
cd1ff7029a63
IMLP::Web::View refactored, added new method 'require' which is available inside templates. Changed document rendering.
 cin parents: 
189diff
changeset | 216 | 
| 185 | 217 =head2 Порядок обработки документа | 
| 218 | |
| 195 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 219 Построение представления данных состоит из двух этапов | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 220 | 
| 185 | 221 =over | 
| 222 | |
| 195 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 223 =item 1 Создание объектной модели документа. На данном этапе создаются все элементы управления. | 
| 185 | 224 | 
| 195 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 225 =item 1 Преобразование объектной модели в конечнное представление. На данном этапе происходит | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 226 форматирование документа. | 
| 185 | 227 | 
| 228 =back | |
| 181 | 229 | 
| 195 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 230 | 
| 181 | 231 =head2 Загрузка элемента управления | 
| 232 | |
| 233 =over | |
| 234 | |
| 194 | 235 =item 1 C<TInput = require('my/org/input')> | 
| 181 | 236 | 
| 195 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 237 =item 1 Загружается шаблон C<my/org/input.tt> | 
| 181 | 238 | 
| 195 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 239 =item 1 Создается фабрика элементов управления с собственным контекстом, унаследованным от контекст документа. | 
| 181 | 240 | 
| 195 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 241 =item 1 При первом создании элемента управления фабрика инициализируется выполнением блока C<INIT>. | 
| 181 | 242 | 
| 243 =back | |
| 244 | |
| 245 =head2 Создание элемента управления | |
| 246 | |
| 247 =over | |
| 248 | |
| 194 | 249 =item 1 C<< TInput.new('login') >> | 
| 181 | 250 | 
| 251 =item 1 Создается новый дочерний контекст к контексту фабрики | |
| 252 | |
| 253 =item 1 Создается экземпляр элемента управления | |
| 254 | |
| 195 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 255 =item 1 Выполняется блок конструктора C<CTOR> в контексте элемента управления, параметр C<this> имеет значение | 
| 181 | 256 нового экземпляра элемента управления | 
| 257 | |
| 258 =back | |
| 259 | |
| 260 =head1 MEMBERS | |
| 261 | |
| 262 =over | |
| 263 | |
| 195 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 264 =item C<CTOR($template, $contextOpts, $loader[, $vars])> | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 265 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 266 Создает экземпляр документа с указанным шаблоном и параметрами. | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 267 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 268 =over | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 269 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 270 =item C<$template> | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 271 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 272 C<Template::Document> шаблон документа. | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 273 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 274 =item C<$contextOpts> | 
| 181 | 275 | 
| 195 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 276 C<HASH> Параметры контекста C<Template::Context> для документа. Эти параметры будут сохранены | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 277 в свойстве C<opts>, а также на их основе будет создан контекст текщего документа. Как правило | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 278 эти параметы задаются загрузчиком документа C<IMPL::Web::View::TTLoader>, таким образом, что | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 279 C<Template::Stash> создаваемого контекста наследует переменные из контекста загрузчика. | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 280 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 281 =item C<$loader> | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 282 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 283 C<IMPL::Web::View::TTLoader> загрузчик, который будет использоваться для загрузки элементов управления, | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 284 а также для получения обертки, заданной в свойстве документа C<layout>. | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 285 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 286 =item C<$vars> | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 287 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 288 C<HASH> Необязательный параметр. переменные которые будут переданы в блок конструктора C<INIT>. | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 289 Как правило они используются для передачи данных для построения документа | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 290 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 291 =back | 
| 181 | 292 | 
| 293 =back | |
| 294 | |
| 195 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 295 =over | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 296 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 297 =item C<templateVars($name[,$newValue])> | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 298 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 299 Получает или задает переменную для шаблона документа. Имя переменнной может быть составным, | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 300 например C<'my.var.name'>, см. C<Template::Stash::set()>. | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 301 | 
| 236 | 302 =item C<RequireControl($controlName)> | 
| 195 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 303 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 304 Загружает фабрику элемента управления, если она уже была загружена, возвращает на нее ссылку. | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 305 При загрузки фабрики для нее создается собственный контекст на основе параметров из свойства | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 306 C<opts> и ее пространство имен наследуется от пространства имен документа из свойства C<stash>. | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 307 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 308 =item C<Render($vars)> | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 309 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 310 Выполняет блок C<renderBlock> документа для получения конечного представления, C<$vars> | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 311 содержит переменные для блока. | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 312 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 313 =item C<RenderContent($vars)> | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 314 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 315 Выполняет шаблон документа для получения представления содержимого, в отличии от | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 316 метода C<Render> не использует обертку указанную в свойстве C<layout>, если обертка | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 317 не указана, то эти методы идентичны. | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 318 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 319 =item C<[get,set]layout> | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 320 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 321 Обертка, которая будет использована для построения представления документа. В обертке | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 322 будет доступна специальная переменная C<content>, при обращении к которой будет B<выполнен> | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 323 метод C<RenderContent()> и возвращен результат его работы. Для получения шаблона обертки | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 324 используется загрузчик из свойства C<loader>. | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 325 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 326 =item C<[get]opts> | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 327 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 328 Параметры контекста, используются для создания контекстов фабрик элементов управления. | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 329 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 330 =item C<[get]loader> | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 331 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 332 Загрузчик, используется для загрузки шаблонов фабрик элементов управления и обертки. | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 333 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 334 =item C<[get]controls> | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 335 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 336 C<HASH> Коллекция загруженных фабрик элементов управления, ключем является | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 337 квалифицированное имя элемента управления. | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 338 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 339 =item C<[get]stash> | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 340 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 341 C<Template::Stash> Пространство имен документа, оно используется как родительское | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 342 для пространств имен загружаемых фабрик элементов управления. | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 343 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 344 =back | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 345 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 346 =head1 TEMPLATES | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 347 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 348 =begin text | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 349 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 350 [%META layout='default'%] | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 351 [% BLOCK CTOR; | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 352 section('top','TOP'); | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 353 section('bottom','BOTTOM'); | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 354 section('client','CLIENT'); | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 355 END %] | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 356 [% BLOCK TOP; | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 357 TMenu = require('my/org/Menu'); | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 358 append(TMenu.new()); | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 359 END %] | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 360 | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 361 =end | 
| 
7a920771fd8e
IMPL::Web::View changed document layout handling, docs, examples
 cin parents: 
194diff
changeset | 362 | 
| 181 | 363 =cut | 
