Handle hostnames with upper-case letters
[webmin.git] / apache / mod_php4.pl
1 # mod_php4.pl
2 # PHP4 Directives
3 # By Sebastian Delmont <sdelmont@loquesea.com>
4
5 sub mod_php4_directives
6 {
7 $rv = [ [ 'php_value', 1, 16, 'virtual directory htaccess', undef, 10 ],
8         [ 'php_flag', 1, 16, 'virtual directory htaccess', undef, 2 ],
9         [ 'php_admin_value', 1, 16, 'virtual directory htaccess', undef, 10 ],
10         [ 'php_admin_flag', 1, 16, 'virtual directory htaccess', undef, 2 ],
11       ];
12 return &make_directives($rv, $_[0], "mod_php4");
13 }
14
15 sub mod_php4_handlers
16 {
17 return ("php4-script");
18 }
19
20 sub edit_php_value
21 {
22 return &php_value_form($_[0], "php_value");
23 }
24
25 sub edit_php_admin_value
26 {
27 return &php_value_form($_[0], "php_admin_value");
28 }
29
30 # php_value_form(&values, name)
31 sub php_value_form
32 {
33 local($rv, $name, $value, $len);
34 $rv = "";
35
36 $len = @{$_[0]} + 1;
37 for($i=0; $i<$len; $i++) {
38         if ($_[0]->[$i]->{'value'} =~ /^(\S+)\s+(.+)$/) {
39                 $name = $1; $value = $2;
40                 }
41         else { $name = $value = ""; }
42         $rv .= "<input name=mod_$_[1]_name_$i size=20 value='$name'>&nbsp;";
43         $rv .= "<input name=mod_$_[1]_value_$i size=30 value='$value'><BR>\n";
44         }
45 return (2, "$text{'mod_'.$_[1]}", $rv);
46 }
47
48 sub save_php_value
49 {
50 return &php_value_save("php_value");
51 }
52
53 sub save_php_admin_value
54 {
55 return &php_value_save("php_admin_value");
56 }
57
58 # php_value_save(name)
59 sub php_value_save
60 {
61 local($i, $name, $value, @rv);
62 for($i=0; defined($in{"mod_$_[0]_name_$i"}); $i++) {
63         $name = $in{"mod_$_[0]_name_$i"}; $value = $in{"mod_$_[0]_value_$i"};
64         if ($name !~ /\S/ && $value !~ /\S/) { next; }
65         $name =~ /^(\S+)$/ || &error(&text('mod_php_ename', $name));
66         $value =~ /^(.+)$/ || &error(&text('mod_php_evalue', $name, $value));
67         push(@rv, "$name $value");
68         }
69 return ( \@rv );
70 }
71
72 sub edit_php_flag
73 {
74 return &php_flag_form($_[0], "php_flag");
75 }
76
77 sub edit_php_admin_flag
78 {
79 return &php_flag_form($_[0], "php_admin_flag");
80 }
81
82 # php_flag_form(&values, name)
83 sub php_flag_form
84 {
85 local($rv, $name, $value, $len);
86 $rv = "";
87
88 $len = @{$_[0]} + 1;
89 for($i=0; $i<$len; $i++) {
90         if ($_[0]->[$i]->{'value'} =~ /^(\S+)\s+(on|off)$/) {
91                 $name = $1; $value = $2;
92                 }
93         else { $name = $value = ""; }
94         $rv .= "<input name=mod_$_[1]_name_$i size=20 value='$name'>&nbsp;";
95         $rv .= "<input name=mod_$_[1]_value_$i type=radio value=on" . ($value eq "on" ? " checked" : "" ) . ">on&nbsp;";
96         $rv .= "<input name=mod_$_[1]_value_$i type=radio value=off" . ($value eq "off" ? " checked" : "" ) . ">off&nbsp;<BR>";
97         }
98 return (2, "$text{'mod_'.$_[1]}", $rv);
99 }
100
101 sub save_php_flag
102 {
103 return &php_flag_save("php_flag");
104 }
105
106 sub save_php_admin_flag
107 {
108 return &php_flag_save("php_admin_flag");
109 }
110
111 # php_flag_save(name)
112 sub php_flag_save
113 {
114 local($i, $name, $value, @rv);
115 for($i=0; defined($in{"mod_$_[0]_name_$i"}); $i++) {
116         $name = $in{"mod_$_[0]_name_$i"}; $value = $in{"mod_$_[0]_value_$i"};
117         if ($name !~ /\S/ ) { next; }
118         $name =~ /^(\S+)$/ || &error(&text('mod_php_ename', $name));
119         $value =~ /^(on|off)$/i || &error(&text('mod_php_evalue', $name, $value));
120         push(@rv, "$name $value");
121         }
122 return ( \@rv );
123 }
124
125 1;