#!/usr/local/bin/perl # virt_index.cgi # Display a menu for some specific virtual server, or the default server require './proftpd-lib.pl'; &ReadParse(); ($conf, $v) = &get_virtual_config($in{'virt'}); $desc = $in{'virt'} eq '' ? $text{'virt_header2'} : &text('virt_header1', $v->{'value'}); &ui_print_header($desc, $text{'virt_title'}, "", undef, undef, undef, undef, &restart_button()); # Display header and icons print "

$text{'virt_opts'}

\n"; $anon_icon = { "icon" => "images/anon.gif", "name" => $text{'virt_anon'}, "link" => "anon_index.cgi?virt=$in{'virt'}" }; $virt_icon = { "icon" => "images/virt.gif", "name" => $text{'virt_virt'}, "link" => "edit_vserv.cgi?virt=$in{'virt'}" }; $ed_icon = { "icon" => "images/edit.gif", "name" => $text{'virt_edit'}, "link" => "manual_form.cgi?virt=$in{'virt'}" }; &config_icons("virtual", "edit_virt.cgi?virt=$in{'virt'}&", $anon_icon, $in{'virt'} ? ( $virt_icon, $ed_icon ) : ( ) ); # Display per-directory/limit options @dir = ( &find_directive_struct("Directory", $conf) , &find_directive_struct("Limit", $conf) ); if (@dir) { print &ui_hr(); print "

$text{'virt_header'}

\n"; foreach $d (@dir) { if ($d->{'name'} eq 'Limit') { push(@links, "limit_index.cgi?limit=". &indexof($d, @$conf)."&virt=$in{'virt'}"); push(@titles, &text('virt_limit', $d->{'value'})); push(@icons, "images/limit.gif"); } else { push(@links, "dir_index.cgi?idx=". &indexof($d, @$conf)."&virt=$in{'virt'}"); push(@titles, &text('virt_dir', $d->{'value'})); push(@icons, "images/dir.gif"); } } &icons_table(\@links, \@titles, \@icons, 3); } print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "
$text{'virt_adddir'}
\n"; print "\n"; print "\n"; print "
$text{'virt_path'}\n"; print "
\n"; print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "
$text{'virt_addlimit'}
\n"; print "\n"; print "\n"; print "
$text{'virt_cmds'}\n"; print "
\n"; print "
\n"; &ui_print_footer("", $text{'index_return'});