<% (ref($object) && $object->id() ) ? 'Редактирование' : 'Создание' %> <% $PROTOS->{$proto}->[0] %> типа "<% $object->class_name() %>" % unless ( $proto eq 'sections' && $object->id == 1 ) { % if (( $proto eq 'documents' ) || ( $proto eq 'sections' )) { % } % }
% if ( $m->comp_exists ('/contenido/components/object_context_menu.msn') ) {
<& '/contenido/components/object_context_menu.msn', object => $object &>
% }
<%perl> my @properties = $object->structure(); for (0..$#properties) { my $prop = $properties[$_]; next if ($prop->{hidden} == 1) || ($prop->{type} eq 'image') || ($prop->{type} eq 'external') || ($prop->{type} =~ /^array/i) || ($prop->{type} =~ /^image/) || ($prop->{type} eq 'multimedia') || ($prop->{type} eq 'multimedia_new ') || ($prop->{type} eq 'multimedia_multi') || ($prop->{type} eq 'audio'); % if ($prop->{type} eq 'parent') % { % } % elsif( ( $prop->{type} ne 'flag' ) && ($prop->{type} ne 'checkbox') ) % { % } % }
% if( ( $prop->{type} eq 'flag' ) || ($prop->{type} eq 'checkbox') ) % { % } % if( $prop->{readonly} ) % { % }
<& "/contenido/components/inputs/checkbox.msn", prop => $prop, object=>$object, options=>$options, name => $prop->{attr}, check => $object->{$prop->{attr}}, id => $object->id() &><% $prop->{rusname} %> /  name="<% $prop->{attr} %>" / Значение нельзя изменить
<& "/contenido/components/inputs/$prop->{type}.msn", prop => $prop, object=>$object, options=>$options, name => $prop->{attr}, check => ($object->{$prop->{attr} } || $prop->{default} || $sect_id ), id => $object->id() &>
<& "/contenido/components/inputs/$prop->{type}.msn", prop => $prop, object=>$object, options => $options, name => $prop->{attr}, check => $object->{$prop->{attr}}, id => ($object->id() || 0) &>

% for (0..$#properties) % { % my $prop = $properties[$_]; % next if ($prop->{hidden} != 1); % next if ($prop->{attr} eq 'id' && $clone); % } %#если класса в свойствах обьекта нет все равно надо его пробросить как hidden % unless (grep {$_->{attr} eq 'class'} @properties) { % } % if ( $clone ) { % }

Мультимедиа-объекты к <% $PROTOS->{$proto}->[2] %>

% for (0..$#properties) % { % my $prop = $properties[$_]; % % if ($prop->{type} eq 'image') % { % my $IMAGE = $object->get_image( $prop->{attr} ); % if (ref($IMAGE) ne 'HASH') { next }; <& "/contenido/components/inputs/image.msn", IMAGE => $IMAGE, rusname => $prop->{rusname}, prop => $prop, object=>$object, attr => $prop->{attr}, options => $options, &> % } elsif ($prop->{type} eq 'images') % { % my $IMAGES = $object->get_image( $prop->{attr} ); % if (ref($IMAGES) ne 'HASH') { next }; % my $MN = $IMAGES->{maxnumber}+0; % for my $mn (1..$MN) % { % my $IMAGE = $IMAGES->{'image_'.$mn}; <& "/contenido/components/inputs/image.msn", rusname => $prop->{rusname}, prop => $prop, object=>$object, attr => $prop->{attr}.'_'.$mn, IMAGE => $IMAGE, options => $options, &> % } % my $ME = exists $prop->{empty_slots} ? $prop->{empty_slots} : 5; % $ME = ($ME + $IMAGES->{maxnumber}) >= 100 ? 0 : (100 - $IMAGES->{maxnumber} < $ME ? 100 - $IMAGES->{maxnumber} : $ME ); % for my $mn (1..$ME) % { <& "/contenido/components/inputs/image.msn", IMAGE => {}, rusname => $prop->{rusname}, prop => $prop, object=>$object, attr => $prop->{attr}.'_'.($MN+$mn), options => $options, &> % } % } elsif ($prop->{type} eq 'multimedia') % { % my $MULTI = $object->get_image( $prop->{attr} ); <& "/contenido/components/inputs/multimedia.msn", rusname => $prop->{rusname}, prop => $prop, object=>$object, attr => $prop->{attr}, MULTI => $MULTI, options => $options, &> % } elsif ($prop->{type} eq 'multimedia_new') { % my $MULTI = $object->get_image( $prop->{attr} ); <& "/contenido/components/inputs/multimedia_new.msn", rusname => $prop->{rusname}, prop => $prop, object=>$object, attr => $prop->{attr}, MULTI => $MULTI, options => $options, &> % } elsif ($prop->{type} eq 'multimedia_multi') { % my $FILES = $object->get_image( $prop->{attr} ); % if (ref($FILES) ne 'HASH') { next }; % my $MN = $FILES->{maxnumber}+0; % for my $mn (1..$MN) { % my $MULTI = $FILES->{'file_'.$mn}; <& "/contenido/components/inputs/multimedia_new.msn", rusname => $prop->{rusname}, prop => $prop, object=>$object, attr => $prop->{attr}.'_'.$mn, MULTI => $MULTI, options => $options, &> % } % my $ME = exists $prop->{empty_slots} ? $prop->{empty_slots} : 3; % $ME = ($ME + $FILES->{maxnumber}) >= 100 ? 0 : (100 - $FILES->{maxnumber} < $ME ? 100 - $FILES->{maxnumber} : $ME ); % for my $mn (1..$ME) { <& "/contenido/components/inputs/multimedia_new.msn", rusname => $prop->{rusname}, prop => $prop, object=>$object, attr => $prop->{attr}.'_'.($MN+$mn), MULTI => {}, options => $options, &> % } % } elsif ($prop->{type} eq 'audio') { % my $MULTI = $object->get_image( $prop->{attr} ); <& "/contenido/components/inputs/audio.msn", rusname => $prop->{rusname}, prop => $prop, object=>$object, attr => $prop->{attr}, MULTI => $MULTI, options => $options, &> % } % }
% unless ( $proto eq 'sections' && $object->id == 1 ) {
%# %# %# Как же сохранять эти гребанные связи? %# onClick="javascript:updateList(parent.opener.links.links,'link_6_20_DefaultLink','test');" %# % if ($object->id > 0 && !$clone) { \ % } % if ( ref $filter_params eq 'HASH' ) { % while ( my ($key, $value) = each %$filter_params ) { % next if grep { $_->{attr} eq $key } $object->structure(); % } % } % if (( $proto eq 'documents' ) || ( $proto eq 'sections' )) { % unless ( $clone ) { % } % }
% }
<%ARGS> $proto => 'documents' $object => undef $clone => undef $sect_id => 1 $filter_params => undef <%ONCE> my $PROTOS = { 'documents' => ['документа','document.html','документу','документе'], 'sections' => ['секции','section.html','секции','секции'], 'links' => ['связи','link.html','связи','связи'], 'users' => ['пользователя','users.html','пользователю','пользователе'], }; <%INIT> return undef unless ref($object); my $toopi = $project->$proto(); my $options = {}; if ($toopi && (ref($toopi) eq 'HASH') && (exists($toopi->{ $object->class }))) { %{ $options } = %{ $toopi->{ $object->class } }; } my $is_multimedia = scalar( grep { $_->{type} =~ /(image|multimedia|audio)/ } $object->structure ); my $is_pickup = scalar( grep { $_->{type} =~ /(pickup)/ } $object->structure );