#!/usr/local/bin/perl # edit_configs.cgi # Display all usermin modules and the config for one require './usermin-lib.pl'; &ReadParse(); &header($text{'configs_title2'}, ""); &get_usermin_miniserv_config(\%miniserv); if (-r "$miniserv{'root'}/$in{'mod'}/config.info") { # Display config form for the module %minfo = &get_usermin_module_info($in{'mod'}); print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "
",&text('config_header', $minfo{'desc'}), "
\n"; &read_file("$config{'usermin_dir'}/$in{'mod'}/config", \%config); # Use config.info to create config inputs &read_file("$miniserv{'root'}/$in{'mod'}/config.info", \%info, \@info_order); %einfo = %info; foreach $o (@lang_order_list) { &read_file("$miniserv{'root'}/$in{'mod'}/config.info.$o", \%info, \@info_order); } @info_order = &unique(@info_order); foreach $c (@info_order) { @p = split(/,/, $info{$c}); @ep = split(/,/, $einfo{$c}); if (scalar(@ep) > scalar(@p)) { push(@p, @ep[scalar(@p) .. @ep-1]); } if ($p[1] == 11) { print "\n" ; next; } print "\n"; print "\n"; } print "
\n" ; print "\t" . $p[0] . "\n
$p[0]\n"; $qw = $config{$c} =~ /'/ ? '"' : "'"; if ($p[1] == 0) { $size = $p[2] ? "size=$p[2]" : "size=40"; $max = $p[3] ? "maxlength=$p[3]" : ""; print "\n"; } elsif ($p[1] == 1) { for($i=2; $i<@p; $i++) { $p[$i] =~ /^(\S*)\-(.*)$/; printf "\n", $config{$c} eq $1 ? "checked" : ""; print "$2   \n"; } } elsif ($p[1] == 2) { local %sel; map { $sel{$_}++ } split(/,/, $config{$c}); print "\n"; } elsif ($p[1] == 3) { $none = $p[2] ? $p[2] : $text{'config_none'}; printf " $none\n", $c, $config{$c} eq "" ? "checked" : ""; print "  \n"; printf "\n", $c, $config{$c} eq "" ? "" : "checked"; print "\n"; } elsif ($p[1] == 4) { print "\n"; } elsif ($p[1] == 5) { if ($p[2]) { printf "$p[2]\n", $config{$c} eq "" ? "checked" : ""; printf "\n", $config{$c} eq "" ? "" : "checked"; } print &unix_user_input($c, $config{$c}); } elsif ($p[1] == 6) { if ($p[2]) { printf "$p[2]\n", $config{$c} eq "" ? "checked" : ""; printf "\n", $config{$c} eq "" ? "" : "checked"; } print &unix_group_input($c, $config{$c}); } elsif ($p[1] == 7) { print " ", &file_chooser_button($c, 1); } elsif ($p[1] == 8) { print " ", &file_chooser_button($c, 0); } elsif ($p[1] == 9) { local $cols = $p[2] ? $p[2] : 40; local $rows = $p[3] ? $p[3] : 5; local $sp = $p[4] ? eval "\"$p[4]\"" : " "; print "\n"; } elsif ($p[1] == 10) { local $fv = $config{$c}; for($i=2; $i<@p; $i++) { $p[$i] =~ /^(\S*)\-(.*)$/; printf "\n", $config{$c} eq $1 ? "checked" : ""; print "$2   \n"; $fv = undef if ($config{$c} eq $1); } printf "\n", $fv ? "checked" : ""; print "\n"; } print "
\n"; print "
\n"; } if (-r "$miniserv{'root'}/$in{'mod'}/uconfig.info") { # Display default user config form for the module %minfo = &get_usermin_module_info($in{'mod'}); print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "
",&text('configs_uheader', $minfo{'desc'}), "
\n"; &read_file("$miniserv{'root'}/$in{'mod'}/defaultuconfig", \%uconfig); &read_file("$config{'usermin_dir'}/$in{'mod'}/uconfig", \%uconfig); # Use config.info to create config inputs &read_file("$miniserv{'root'}/$in{'mod'}/uconfig.info", \%uinfo, \@uinfo_order); %einfo = %uinfo; &read_file("$miniserv{'root'}/$in{'mod'}/uconfig.info.$current_lang", \%uinfo, \@uinfo_order); @uinfo_order = &unique(@uinfo_order); foreach $c (@uinfo_order) { @p = split(/,/, $uinfo{$c}); @ep = split(/,/, $einfo{$c}); if (scalar(@ep) > scalar(@p)) { push(@p, @ep[scalar(@p) .. @ep-1]); } if ($p[1] == 11) { print "\n" ; next; } print "\n"; print "\n"; } print "
\n" ; print "\t" . $p[0] . "\n
$p[0]\n"; $qw = $uconfig{$c} =~ /'/ ? '"' : "'"; if ($p[1] == 0) { $size = $p[2] ? "size=$p[2]" : "size=40"; $max = $p[3] ? "maxlength=$p[3]" : ""; print "\n"; } elsif ($p[1] == 1) { for($i=2; $i<@p; $i++) { $p[$i] =~ /^(\S*)\-(.*)$/; printf "\n", $uconfig{$c} eq $1 ? "checked" : ""; print "$2   \n"; } } elsif ($p[1] == 2) { local %sel; map { $sel{$_}++ } split(/,/, $uconfig{$c}); print "\n"; } elsif ($p[1] == 3) { $none = $p[2] ? $p[2] : $text{'config_none'}; printf " $none\n", $c, $uconfig{$c} eq "" ? "checked" : ""; print "  \n"; printf "\n", $c, $uconfig{$c} eq "" ? "" : "checked"; print "\n"; } elsif ($p[1] == 4) { print "\n"; } elsif ($p[1] == 5) { if ($p[2]) { printf "$p[2]\n", $uconfig{$c} eq "" ? "checked" : ""; printf "\n", $uconfig{$c} eq "" ? "" : "checked"; } print &unix_user_input($c, $uconfig{$c}); } elsif ($p[1] == 6) { if ($p[2]) { printf "$p[2]\n", $uconfig{$c} eq "" ? "checked" : ""; printf "\n", $uconfig{$c} eq "" ? "" : "checked"; } print &unix_group_input($c, $uconfig{$c}); } elsif ($p[1] == 7) { print " ", &file_chooser_button($c, 1); } elsif ($p[1] == 8) { print " ", &file_chooser_button($c, 0); } elsif ($p[1] == 9) { local $cols = $p[2] ? $p[2] : 40; local $rows = $p[3] ? $p[3] : 5; print "\n"; } elsif ($p[1] == 10) { local $fv = $uconfig{$c}; for($i=2; $i<@p; $i++) { $p[$i] =~ /^(\S*)\-(.*)$/; printf "\n", $uconfig{$c} eq $1 ? "checked" : ""; print "$2   \n"; $fv = undef if ($uconfig{$c} eq $1); } printf "\n", $fv ? "checked" : ""; print "\n"; } print "
\n"; print "
\n"; } print "
\n"; &footer("list_configs.cgi", $text{'configs_return'});