Line # Revision Author
1 3 ahitrov@rambler.ru % foreach my $cls ( @$lclasses ) {
2 <div class="pad_<% $class eq $cls ? 'active' : 'passive' %>">
3 % if ( $class eq $cls ) {
4 <nowrap><% $cls->class_name |h %></nowrap>
5 % } else {
6 <nowrap><a href="?id=<% $document->id %>&class=<% $document->class %>&link_class=<% $cls %>"><% $cls->class_name %></a></nowrap>
7 % }
8 </div>
9 % }
10 <br clear="all">
11 <div style="padding:4px 0 2px;"><a target="_top"
12 href="link_frame.html?class=<% $class %>&<% $link_class_name %>=<% $document->class %>&<% $link_id_name %>=<% $document->id %>"><b>�������� �����</b></a></div>
13 % if ( $total > $size ) {
14 <div style="padding:2px 0 4px;"><b>��������:</b> &nbsp;<&
15 '/inc/pages_.msn', total => $total, n => $size, p => $p,
16 params => { id => $document->id, class => $document->class, link_class => $class },
17 &></div>
18 % }
19 <& /contenido/components/document_links_list.msn,
20 links => $links, docs => $docs, $link_id_name eq 'dest_id' ? (destination => $document) : (source => $document) &>
21 <%args>
22
23 $document => undef
24 $lclasses => undef
25 $class => undef
26 $p => 1
27 $opts => {}
28 $link_id_name => 'dest_id'
29 $link_class_name=> 'dest_class'
30
31 </%args>
32 <%init>
33
34 return unless ref $document;
35 return unless ref $lclasses eq 'ARRAY' && @$lclasses;
36 $class ||= $lclasses->[0];
37
38 my $size = 20;
39 my $revert_id = $link_id_name eq 'dest_id' ? 'source_id' : 'dest_id';
40 my $revert_class = $link_class_name eq 'dest_class' ? 'source_class' : 'dest_class';
41 $opts->{order_by} ||= 'id desc';
42 my $links = $keeper->get_links (
43 class => $class,
44 $link_id_name => $document->id,
45 $link_class_name => $document->class,
46 limit => $size,
47 offset => $size*($p-1),
48 %$opts,
49 return_mode => 'array_ref',
50 );
51 my $total = $keeper->get_links (
52 class => $class,
53 $link_id_name => $document->id,
54 $link_class_name => $document->class,
55 count => 1,
56 %$opts,
57 );
58 my $docs = {};
59 my %dclasses = map { $_->$revert_class => 1 } @$links if ref $links eq 'ARRAY';
60 my @dclasses = keys %dclasses;
61 foreach my $cls ( @dclasses ) {
62 my %sids = map { $_->$revert_id => 1 } @$links if ref $links eq 'ARRAY';
63 my @sids = keys %sids;
64 my @docs = $keeper->get_documents (
65 id => \@sids,
66 class => $cls,
67 ) if @sids;
68 map { $docs->{$_->id} = $_ } @docs;
69 }
70
71 </%init>