<& "/contenido/components/header.msn", title => 'Настройка '.$PROTOS->{$proto}->[0] &>
% if (($class) && (ref($object))) % { % if ($proto eq 'links') { % } % }
Настройка <% $PROTOS->{$proto}->[0] %>

Ниже приведены все поля, которые вы можете настроить в классе <% $PROTOS->{$proto}->[1] %> "<% $class %>". Заполните нижеследующие поля и нажмите кнопку [сохранить].

При редактировании значений селектов действует следующее правило - одна строка содержит в себе один вариант для выбора. Каждый список объектов характеризуется двумя полями - начальной секцией и набором классов для оборажения.
Настройка <% $PROTOS->{$proto}->[1] %> "<% $object->class_name %>" (<% $class %>)
<% $object->class_description() %>
<& "/contenido/components/selects.msn", object=>$object, options=>$options &>
<& "/contenido/components/link_source_id.msn", object=>$object, options=>$options &>
<& "/contenido/components/obj_lists.msn", object=>$object, options=>$options &>
<%ARGS> $proto => undef $class => undef $save => undef <%INIT> use vars qw($keeper $request); my $PROTOS = { 'documents' => ['документов','документа'], 'sections' => ['секций','секции'], 'links' => ['связей','связи'], 'users' => ['пользователей','пользователя'], 'locals' => ['локальных модулей', 'локального модуля'], }; if (! exists($PROTOS->{$proto})) { $proto = 'documents'; } # Проверка корректности класса... my @correct_classes = @{ $state->{'available_'.$proto} }; if (! (grep { $_ eq $class } @correct_classes)) { # Класс задан, но он не корректный $class = undef; } my $options; my $object; # Сохранение изменений!!! if (($save == 1) && ($class)) { my $toopi = $project->$proto(); if ((ref($toopi) eq 'HASH') && (exists($toopi->{$class})) ) { $options = $toopi->{ $class }; } else { $options = {}; } $request->{local_codepage} = 'KOI8'; $request->{local_codepage} = 'WIN' if Convert::Cyrillic::cstocs('WIN', 'KOI8', $ARGS{control_charset}) eq 'Контроль'; $request->{local_codepage} = 'UTF8' if Convert::Cyrillic::cstocs('UTF8', 'KOI8', $ARGS{control_charset}) eq 'Контроль'; warn "Contenido Debug: Форма для редактирования описания объекта пришла в кодировке ".$request->{local_codepage}."\n" if ($state->debug()); foreach my $attr (keys(%ARGS)) { if ($attr =~ /^(.+)\.selectdata$/) { my $local_select = $1; my @local_values = split(/\n/, $m->comp('/contenido/components/filter.msn', str => $ARGS{$attr} )); $options->{$local_select} = \@local_values; } } foreach my $attr (keys(%ARGS)) { if ($attr =~ /^(.+)\.obj_list_root$/) { my $local_obj_list = $1; my $local_value = $ARGS{$attr}; $options->{$local_obj_list}->[0] = $local_value; } elsif ($attr =~ /^(.+)\.obj_list_classes$/) { my $local_obj_list = $1; my @local_values = (); if (ref($ARGS{$attr}) eq 'ARRAY') { @local_values = @{ $ARGS{$attr} }; } else { @local_values = ( $ARGS{$attr} ); } $options->{ $local_obj_list }->[1] = join(',',@local_values); } } $toopi->{ $class } = $options; $project->$proto($toopi); $project->store($keeper); } if ($class) { $object = new $class ($keeper); my $toopi = $project->$proto(); if ((ref($toopi) eq 'HASH') && (exists($toopi->{$class})) ) { $options = $toopi->{ $class }; } else { $options = {}; } }