3 # Show directives from a .htaccess
5 require './apache-lib.pl';
7 $conf = &get_htaccess_config($in{'file'});
8 $desc = &text('htindex_header', "<tt>$in{'file'}</tt>");
9 &ui_print_header($desc, $text{'show_title'}, "");
11 for($i=0; $i<$directive_type_count; $i++) {
12 foreach $e (&editable_directives($i, 'htaccess')) {
13 foreach $n (split(/\s+/, $e->{'name'})) {
15 push(@elist, { 'name' => $n, 'edit' => $e });
19 @elist = sort { $a->{'name'} cmp $b->{'name'} } @elist;
21 print "<table border><tr><td $cb><pre>\n\n";
22 &show_directives($conf, 0);
23 print "</pre></td></tr></table><p>\n";
25 print "<form action=edit_htaccess.cgi>\n";
26 print "<input type=hidden name=file value=\"$in{'file'}\">\n";
27 print "<b>$text{'show_edit'}</b>\n";
28 print "<select name=type>\n";
30 print "<option value=",$e->{'edit'}->{'type'},">",
33 print "</select> <input type=submit value=\"$text{'show_ok'}\">\n";
36 &ui_print_footer("htaccess_index.cgi?file=$in{'file'}", $text{'htindex_return'});
38 # show_directives(list, indent)
41 local ($list, $ind) = @_;
43 for($idx=0; $idx<@$list; $idx++) {
44 local $d = $list->[$idx];
45 next if ($d->{'name'} eq "dummy");
46 $t = $edit{lc($d->{'name'})};
48 # Recurse into section
51 if ($d->{'name'} =~ /Files/) {
52 $ed1 = "<a href=\"files_index.cgi?idx=$idx&".
53 "file=$in{'file'}\">";
56 print $ed1,"<",$d->{'name'}," ",$d->{'value'},
58 &show_directives($d->{'members'}, $ind+1);
60 print "</",$d->{'name'},">\n";
62 elsif ($_[1] || !$access_types{$t->{'type'}}) {
63 # Directives in section are not editable
64 &print_line($d, [ $d->{'name'}," ",$d->{'value'} ], $ind);
68 &print_line($d, [ $d->{'name'}," ",$d->{'value'} ], $ind,
69 "edit_htaccess.cgi?file=$in{'file'}&type=$t->{'type'}");