%# vim:syn=mason: % users_index_tree( $sect, 0, \$line, $level, $mode, $profile, $width_limit, $root ); <%args> $root => 1 $level => 3 $mode => 1 $width_limit => undef <%init> my $profile = $m->comp('/contenido/components/context.msn', name => 'profile'); sub users_index_tree { my ($sect, $offset, $line_ref, $count_offset, $viewmode, $profile, $width_limit, $root) = @_; my $section_access = $user->section_accesses($user, $sect->{id}); my $spacer = ''; for(my $c=1; $c<$offset; $c++) { $spacer = $spacer.(($c == $offset-1) ? '  »  ' : '     '); } if( $sect->{id} && ($sect->{id} != 1) && ($offset != 0) && $section_access > 0) { $$line_ref++; my $href = 'sections.html?id='.$sect->id; my $sname = $sect->name(); $sname = substr($sname, 0, $width_limit - $offset).' ...' if defined $width_limit && $offset + length($sname) > $width_limit; my $html_sect = (!$sect->status ? '' : '').($section_access ? '' : '').$sname.' ' . ($section_access ? '' : '') . ' '.(!$sect->status ? '  (скрытый)' : $sect->status == 3 ? ' (отложено)' : ''); my $style = ($offset == 1) ? ($viewmode ? ' style="font-size:110%;"':' style="font-size:95%;"') : ''; $m->out(<  ${$line_ref} Переместить секцию на шаг вверх Переместить секцию на шаг вниз
  $spacer $html_sect
EOT if ($viewmode) { my $fhref = '/contenido/?set_context=filter-'.$sect->id(); $m->out(qq^\nуст.фильтр^); $m->out(qq^   доб.докум^) if $section_access == 2; $m->out(""); } $m->out(''); } my $childs = $sect->{childs} || []; if( ref($childs) && @$childs && $offset < $count_offset ) { $offset++; foreach my $child (@$childs) { next if ( $child->class() ne 'users::Section' ); next if (! $request->{cCLASSES}->{$child->class()}); users_index_tree( $child, $offset, $line_ref, $count_offset, $viewmode, $profile, $width_limit, $root ); } $offset--; } } my $sect = $keeper->get_tree(light=>1, root=>$root); return undef unless ref $sect; $user->get_accesses(); my $line = 0; $request->{cCLASSES} = {}; $request->{cCLASSES}->{'users::Section'} = 1; if (ref($request->{tab}->{sections})) { map { $request->{cCLASSES}->{$_} = 1 } (@{ $request->{tab}->{sections} }); } return undef if (scalar(keys(%{ $request->{cCLASSES} })) == 0);