$start = $v->{'line'}+1; $end = $v->{'eline'}-1;
}
else {
# Edit whole file
$start = $end = undef;
}
}
}
else {
if (defined($in{'idx'})) {
# files within .htaccess file
$hconf = &get_htaccess_config($in{'file'});
$d = $hconf->[$in{'idx'}];
$file = $in{'file'};
$start = $d->{'line'}+1; $end = $d->{'eline'}-1;
$title = &text('htfile_header', &dir_name($d),
"$in{'file'}");
$return = "htaccess_index.cgi"; $rmsg = $text{'htindex_return'};
}
else {
# .htaccess file
$file = $in{'file'};
$title = &text('htindex_header', "$in{'file'}");
$return = "htaccess_index.cgi"; $rmsg = $text{'htindex_return'};
$dir = "files_index.cgi";
}
}
@files = ( $file ) if (!@files);
&ui_print_header($title, $text{'manual_title'}, "");
foreach $h ('virt', 'idx', 'file') {
if (defined($in{$h})) {
$hiddens .= &ui_hidden($h, $in{$h}),"\n";
push(@args, "$h=$in{$h}");
}
}
$args = join('&', @args);
# Show file selector (if needed)
if (@files > 1) {
print &ui_form_start("manual_form.cgi");
print $text{'manual_editfile'},"\n";
print &ui_select("editfile", $file,
[ map { [ $_ ] } @files ]),"\n";
print &ui_submit($text{'manual_switch'});
print $hiddens;
print &ui_form_end();
}
else {
print &text('manual_header', "$file"),"\n";
}
# Show actual editor form
print &ui_form_start("manual_save.cgi", "form-data");
print $hiddens;
print &ui_hidden("editfile", $in{'editfile'}),"\n";
$lref = &read_file_lines($file);
if (!defined($start)) {
$start = 0;
$end = @$lref - 1;
}
for($i=$start; $i<=$end; $i++) {
push(@buf, $lref->[$i]);
}
# Display nicely too
&format_config(\@buf);
$buf = join("\n", @buf);
print &ui_textarea("directives", $buf, 15, 80, undef, undef,
"style='width:100%'"),"
\n";
print &ui_submit($text{'save'});
print &ui_form_end();
&ui_print_footer("$return?$args", $rmsg);
# print_directives(&list, indent)
sub print_directives
{
foreach $c (@{$_[0]}) {
next if ($c->{'name'} eq 'dummy');
if ($c->{'type'}) {
print $_[1],"<",$c->{'name'}," ",$c->{'value'},">\n";
&print_directives($c->{'members'}, $_[1].' ');
print $_[1],"",$c->{'name'},">\n";
}
else {
print $_[1],$c->{'name'}," ",$c->{'value'},"\n";
}
}
}