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