% unless ($error) { % if (@ids) { % my $i = 0; % foreach my $obj_id (@ids) { % my $obj = ref $objects eq 'HASH' && exists $objects->{$obj_id} ? $objects->{$obj_id} : undef; % }
НазваниеУдалить?
% if ( ref $obj ) { % my ($a1, $a2) = $obj->id ? ('','') : ('',''); <% $a1.($obj->name || 'Безымянный документ #'.$obj->id).$a2 %> % } else { Неверная ссылка!!! % }
% }
% } else { <% $error %> % } <%args> $object $name => undef $check => undef $prop => {} <%init> my ($objects, $lookup_string, $error); # Если оно хранится в поле типа integer[] то нам вернется массив, если в data, то ссылка на массив. # Просекаем фишку my @ids = ref($object->$name) eq 'ARRAY' ? @{ $object->$name } : $object->$name ? $object->$name : (); if ($prop && ref($prop) && ref($prop->{lookup_opts}) eq 'HASH') { if ( @ids ) { $objects = $keeper->get_documents ( in_id => \@ids, %{$prop->{lookup_opts}}, return_mode => 'hash_ref', ); } $lookup_string = '/contenido/find_document.html?nf='.$name.'_docname&vf='.$name.'_value'; $lookup_string .= '&class='.$prop->{lookup_opts}->{class} if exists $prop->{lookup_opts}->{class}; $lookup_string .= '&s='.$prop->{lookup_opts}->{s} if exists $prop->{lookup_opts}->{s}; $lookup_string .= '&search_by='.$prop->{lookup_opts}->{search_by} if exists $prop->{lookup_opts}->{search_by}; }else{ $error = 'Похоже неверное описание lookup_opts в документе'; }