1 |
michel |
1.1 |
diff -urN smeserver-webhosting-0.0.9.old/createlinks smeserver-webhosting-0.0.9/createlinks |
2 |
|
|
--- smeserver-webhosting-0.0.9.old/createlinks 2021-12-01 22:52:01.000000000 +0400 |
3 |
|
|
+++ smeserver-webhosting-0.0.9/createlinks 2021-12-02 18:34:30.986000000 +0400 |
4 |
|
|
@@ -16,4 +16,8 @@ |
5 |
|
|
} |
6 |
|
|
$event="smeserver-webhosting-update"; |
7 |
|
|
event_link("navigation-conf", $event, "70"); |
8 |
|
|
- |
9 |
|
|
+# for smeserver-manager |
10 |
|
|
+safe_symlink('restart', "root/etc/e-smith/events/$event/services2adjust/smanager"); |
11 |
|
|
+event_link('navigation2-conf', "$event", '80'); |
12 |
|
|
+event_link('routes2-conf', "$event", '80'); |
13 |
|
|
+event_link('locales2-conf', "$event", '80'); |
14 |
|
|
diff -urN smeserver-webhosting-0.0.9.old/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/webhosting.pm smeserver-webhosting-0.0.9/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/webhosting.pm |
15 |
|
|
--- smeserver-webhosting-0.0.9.old/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/webhosting.pm 2021-12-01 22:52:01.000000000 +0400 |
16 |
|
|
+++ smeserver-webhosting-0.0.9/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/webhosting.pm 2021-12-02 18:36:29.629000000 +0400 |
17 |
|
|
@@ -396,7 +396,7 @@ |
18 |
|
|
FileUpload => 'fileupload', |
19 |
|
|
UploadMaxFilesize => 'uploadmaxfilesize', |
20 |
|
|
PostMaxSize => 'postmaxsize', |
21 |
|
|
- MaxExecTime => 'maxexecutiontime', |
22 |
|
|
+ MaxExecutionTime => 'maxexecutiontime', |
23 |
|
|
MaxInputTime => 'maxinputtime', |
24 |
|
|
AllowPHTML => 'allowphtml', |
25 |
|
|
MailForceSender => 'mailforcesender', |
26 |
|
|
diff -urN smeserver-webhosting-0.0.9.old/root/usr/share/smanager/lib/SrvMngr/Controller/Webhosting.pm smeserver-webhosting-0.0.9/root/usr/share/smanager/lib/SrvMngr/Controller/Webhosting.pm |
27 |
|
|
--- smeserver-webhosting-0.0.9.old/root/usr/share/smanager/lib/SrvMngr/Controller/Webhosting.pm 1970-01-01 04:00:00.000000000 +0400 |
28 |
|
|
+++ smeserver-webhosting-0.0.9/root/usr/share/smanager/lib/SrvMngr/Controller/Webhosting.pm 2021-12-01 21:52:12.000000000 +0400 |
29 |
|
|
@@ -0,0 +1,407 @@ |
30 |
|
|
+package SrvMngr::Controller::Webhosting; |
31 |
|
|
+ |
32 |
|
|
+#---------------------------------------------------------------------- |
33 |
|
|
+# heading : Collaboration |
34 |
|
|
+# description : Webhosting |
35 |
|
|
+# navigation : 2000 2500 |
36 |
|
|
+# |
37 |
|
|
+# name : webhosting, method : get, url : /webhosting, ctlact : webhosting#main |
38 |
|
|
+# name : webhostingu, method : post, url : /webhosting, ctlact : webhosting#do_action |
39 |
|
|
+# name : webhostingr, method : get, url : /webhosting2, ctlact : webhosting#do_display |
40 |
|
|
+# |
41 |
|
|
+# routes : end |
42 |
|
|
+#---------------------------------------------------------------------- |
43 |
|
|
+use strict; |
44 |
|
|
+use warnings; |
45 |
|
|
+use Mojo::Base 'Mojolicious::Controller'; |
46 |
|
|
+ |
47 |
|
|
+use Locale::gettext; |
48 |
|
|
+use SrvMngr::I18N; |
49 |
|
|
+use SrvMngr qw( theme_list init_session is_normal_password ); |
50 |
|
|
+ |
51 |
|
|
+use esmith::AccountsDB; |
52 |
|
|
+use esmith::ConfigDB; |
53 |
|
|
+use esmith::DomainsDB; |
54 |
|
|
+use esmith::php; |
55 |
|
|
+ |
56 |
|
|
+our $adb = esmith::AccountsDB->open() || die "Couldn't open accounts db"; |
57 |
|
|
+our $cdb = esmith::ConfigDB->open() || die "Couldn't open config db"; |
58 |
|
|
+ |
59 |
|
|
+#TODO those 3 variables should be exported from esmith::php |
60 |
|
|
+our $defaultdisabledfunc='system,show_source,' . |
61 |
|
|
+ 'symlink,exec,dl,shell_exec,' . |
62 |
|
|
+ 'passthru,phpinfo,' . |
63 |
|
|
+ 'escapeshellarg,escapeshellcmd'; |
64 |
|
|
+ |
65 |
|
|
+our $BASEPHP = 54; |
66 |
|
|
+ |
67 |
|
|
+our %defaultproperties = ( |
68 |
|
|
+ MemoryLimit => '128M', |
69 |
|
|
+ MaxExecutionTime => '30', |
70 |
|
|
+ MaxInputTime => '60', |
71 |
|
|
+ AllowUrlFopen => 'disabled', |
72 |
|
|
+ PostMaxSize => '20M', |
73 |
|
|
+ UploadMaxFilesize => '10M', |
74 |
|
|
+ FileUpload => 'enabled', |
75 |
|
|
+ PHPBaseDir => '/home/e-smith/files/ibays/$key:/var/lib/php/$key', |
76 |
|
|
+ DisabledFunctions => $defaultdisabledfunc, |
77 |
|
|
+ MailForceSender => "admin@".$cdb->get_value('DomainName'), |
78 |
|
|
+ AllowPHTML => 'disabled', |
79 |
|
|
+ |
80 |
|
|
+ ModDav => "disabled", |
81 |
|
|
+ AllowOverride => "None", |
82 |
|
|
+ FollowSymLinks => "disabled", |
83 |
|
|
+ Indexes => "enabled", |
84 |
|
|
+ ); |
85 |
|
|
+ |
86 |
|
|
+# those are ok to be defined here and not in core. |
87 |
|
|
+our %sizehash = ('20M' => 'S0020MB', '30M' => 'S0030MB', '40M' => 'S0040MB', '50M' => 'S0050MB', |
88 |
|
|
+ '75M' => 'S0075MB', '100M' => 'S0100MB', '125M' => 'S0125MB', '150M' => 'S0150MB', '175M' => 'S0175MB', |
89 |
|
|
+ '200M' => 'S0200MB', '300M' => 'S0300MB','400M' => 'S0400MB', '500M' => 'S0500MB', '600M' => 'S0600MB', |
90 |
|
|
+ '700M' => 'S0700MB', '800M' => 'S0800MB', '900M' => 'S0900MB', '1000M' => 'S1000MB', '1250M' => 'S1250MB', |
91 |
|
|
+ '1500M' => 'S1500MB', '1750M' => 'S1750MB', '1999M' => 'S2000MB'); |
92 |
|
|
+ |
93 |
|
|
+our %binary = ('disabled' => 'DISABLED', 'enabled' => 'ENABLED'); |
94 |
|
|
+ |
95 |
|
|
+our %timehash = ( '60' => 'T001m', '120' => 'T002m', '180' => 'T003m', '240' => 'T004m', '300' => 'T005m', |
96 |
|
|
+ '360' => 'T006m', '420' => 'T007m', '480' => 'T008m', '540' => 'T009m', '600' => 'T010m', '900' => 'T015m', |
97 |
|
|
+ '1800' => 'T030m', '2700' => 'T045m', '3600' => 'T060m', '7200' => 'T120m', '0' => 'UNLIMITED'); |
98 |
|
|
+ |
99 |
|
|
+our %optionsproperties =( |
100 |
|
|
+ MemoryLimit => {'64M' => 'M0064MB', '128M' => 'M0128MB', |
101 |
|
|
+ '256M' => 'M0256MB', '512M' => 'M0512MB', '768M' => 'M0768MB','1024M' => 'M1024MB'}, |
102 |
|
|
+ MaxExecutionTime => {%timehash}, |
103 |
|
|
+ MaxInputTime => {%timehash}, |
104 |
|
|
+ AllowUrlFopen => {%binary}, |
105 |
|
|
+ PostMaxSize => {%sizehash}, |
106 |
|
|
+ UploadMaxFilesize => {%sizehash}, |
107 |
|
|
+ FileUpload => {%binary}, |
108 |
|
|
+ DisabledFunctions => $defaultdisabledfunc, |
109 |
|
|
+ AllowPHTML => {%binary}, |
110 |
|
|
+ ModDav => {%binary}, |
111 |
|
|
+ AllowOverride => { None =>'None' , |
112 |
|
|
+ All => 'All', |
113 |
|
|
+ AuthConfig => 'AuthConfig', |
114 |
|
|
+ FileInfo => 'FileInfo', |
115 |
|
|
+ Indexes => 'Indexes', |
116 |
|
|
+ Limit => 'Limit', |
117 |
|
|
+ 'FileInfo Indexes' => 'FileInfo Indexes', |
118 |
|
|
+ }, |
119 |
|
|
+ FollowSymLinks => {%binary}, |
120 |
|
|
+ Indexes => {%binary}, |
121 |
|
|
+); |
122 |
|
|
+ |
123 |
|
|
+sub main { |
124 |
|
|
+ |
125 |
|
|
+ my $c = shift; |
126 |
|
|
+ $c->app->log->info($c->log_req); |
127 |
|
|
+ |
128 |
|
|
+ my %wh_datas = (); |
129 |
|
|
+ my $title = $c->l('wh_FORM_TITLE'); |
130 |
|
|
+ |
131 |
|
|
+ $wh_datas{'trt'} = 'LIST'; |
132 |
|
|
+ |
133 |
|
|
+ my @ibays = $adb->ibays(); |
134 |
|
|
+ |
135 |
|
|
+ $c->stash( title => $title, wh_datas => \%wh_datas, ibays => \@ibays ); |
136 |
|
|
+ $c->render(template => 'webhosting'); |
137 |
|
|
+ |
138 |
|
|
+}; |
139 |
|
|
+ |
140 |
|
|
+ |
141 |
|
|
+sub do_display { |
142 |
|
|
+ |
143 |
|
|
+ my $c = shift; |
144 |
|
|
+ $c->app->log->info($c->log_req); |
145 |
|
|
+ |
146 |
|
|
+ my $rt = $c->current_route; |
147 |
|
|
+ my $trt = ($c->param('trt') || ''); |
148 |
|
|
+ my $ibay = $c->param('ibay') || ''; |
149 |
|
|
+ |
150 |
|
|
+ my %wh_datas = (); |
151 |
|
|
+ my $title = $c->l('wh_FORM_TITLE'); |
152 |
|
|
+ my $modul = ''; |
153 |
|
|
+ |
154 |
|
|
+ $wh_datas{'trt'} = $trt; |
155 |
|
|
+ |
156 |
|
|
+ if ( $trt eq 'UPD' ) { |
157 |
|
|
+ |
158 |
|
|
+ my $rec = $adb->get($ibay); |
159 |
|
|
+ if ($rec and $rec->prop('type') eq 'ibay') { |
160 |
|
|
+ $wh_datas{ibay} = $ibay; |
161 |
|
|
+ $wh_datas{description} = $rec->prop('Name'); |
162 |
|
|
+ $wh_datas{indexes} = get_current_value($c, $ibay, 'Indexes'); |
163 |
|
|
+ $wh_datas{followsymLinks} = get_current_value($c, $ibay, 'FollowSymLinks'); |
164 |
|
|
+ $wh_datas{allowoverride} = get_current_value($c, $ibay, 'AllowOverride'); |
165 |
|
|
+ $wh_datas{allowurlfopen} = get_current_value($c, $ibay, 'AllowUrlFopen'); |
166 |
|
|
+ $wh_datas{memorylimit} = get_current_value($c, $ibay, 'MemoryLimit'); |
167 |
|
|
+ $wh_datas{uploadmaxfilesize} = get_current_value($c, $ibay, 'UploadMaxFilesize'); |
168 |
|
|
+ $wh_datas{postmaxsize} = get_current_value($c, $ibay, 'PostMaxSize'); |
169 |
|
|
+ $wh_datas{maxexecutiontime} = get_current_value($c, $ibay, 'MaxExecutionTime'); |
170 |
|
|
+ $wh_datas{maxinputtime} = get_current_value($c, $ibay, 'MaxInputTime'); |
171 |
|
|
+ $wh_datas{fileupload} = get_current_value($c, $ibay, 'FileUpload'); |
172 |
|
|
+ $wh_datas{allowphtml} = get_current_value($c, $ibay, 'AllowPHTML'); |
173 |
|
|
+ $wh_datas{mailforcesender} = $rec->prop('MailForceSender'); |
174 |
|
|
+ my $df = ($rec->prop('DisabledFunctions'))? $rec->prop('DisabledFunctions') : $defaultdisabledfunc; |
175 |
|
|
+ $wh_datas{disabledfunctions} = $df; # yes we want todo this one this way. |
176 |
|
|
+ $wh_datas{phpbasedir} = $rec->prop('PHPBaseDir'); # yes we keep this one simple |
177 |
|
|
+ $wh_datas{moddav} = get_current_value($c, $ibay, 'ModDav'); |
178 |
|
|
+ $wh_datas{phpversion} = get_current_php_value($c, $ibay, 'PHPVersion'); |
179 |
|
|
+ # we set phpversion using function called by cgi file |
180 |
|
|
+ } |
181 |
|
|
+ |
182 |
|
|
+ } |
183 |
|
|
+ |
184 |
|
|
+ if ( $trt eq 'LIST' ) { |
185 |
|
|
+ my @ibays = $adb->ibays(); |
186 |
|
|
+ $c->stash( ibays => \@ibays ); |
187 |
|
|
+ } |
188 |
|
|
+ |
189 |
|
|
+ $c->stash( title => $title, modul => $modul, wh_datas => \%wh_datas ); |
190 |
|
|
+ $c->render( template => 'webhosting' ); |
191 |
|
|
+ |
192 |
|
|
+}; |
193 |
|
|
+ |
194 |
|
|
+ |
195 |
|
|
+sub do_action { |
196 |
|
|
+ |
197 |
|
|
+ my $c = shift; |
198 |
|
|
+ $c->app->log->info($c->log_req); |
199 |
|
|
+ |
200 |
|
|
+ my $rt = $c->current_route; |
201 |
|
|
+ my $trt = ($c->param('trt') || ''); |
202 |
|
|
+ |
203 |
|
|
+ my %wh_datas = (); |
204 |
|
|
+ my $title = $c->l('wh_FORM_TITLE'); |
205 |
|
|
+ |
206 |
|
|
+ $wh_datas{'trt'} = $trt; |
207 |
|
|
+ |
208 |
|
|
+ my $result = ''; |
209 |
|
|
+ my $res; |
210 |
|
|
+ |
211 |
|
|
+ |
212 |
|
|
+ if ( $trt eq 'UPD' ) { |
213 |
|
|
+ |
214 |
|
|
+ my $name = ($c->param('ibay') || ''); |
215 |
|
|
+ |
216 |
|
|
+ # controls |
217 |
|
|
+ $res = validate_up_post( $c ); |
218 |
|
|
+ $result .= $res unless $res eq 'OK'; |
219 |
|
|
+ |
220 |
|
|
+ if ( ! $result ) { |
221 |
|
|
+ $res = modify_ibay( $c, $name ); |
222 |
|
|
+ $result .= $res unless $res eq 'OK'; |
223 |
|
|
+ if ( ! $result ) { |
224 |
|
|
+ $result = $c->l('wh_SUCCESSFULLY_MODIFIED_IBAY') . ' ' . $name; |
225 |
|
|
+ $wh_datas{trt} = 'LST'; |
226 |
|
|
+ } |
227 |
|
|
+ } |
228 |
|
|
+ } |
229 |
|
|
+ |
230 |
|
|
+ |
231 |
|
|
+ # common parts |
232 |
|
|
+ |
233 |
|
|
+ if ($res ne 'OK') { |
234 |
|
|
+ $c->stash( error => $result ); |
235 |
|
|
+ $c->stash( title => $title, wh_datas => \%wh_datas ); |
236 |
|
|
+ return $c->render('webhosting'); |
237 |
|
|
+ } |
238 |
|
|
+ |
239 |
|
|
+ my $message = "'Ibays' updates ($trt) DONE"; |
240 |
|
|
+ $c->app->log->info($message); |
241 |
|
|
+ $c->flash( success => $result ); |
242 |
|
|
+ |
243 |
|
|
+ $c->redirect_to('/webhosting'); |
244 |
|
|
+}; |
245 |
|
|
+ |
246 |
|
|
+ |
247 |
|
|
+sub modify_ibay { |
248 |
|
|
+ |
249 |
|
|
+ my ($c, $name) = @_; |
250 |
|
|
+ |
251 |
|
|
+ my $msg; |
252 |
|
|
+ my $acct = $adb->get($name); |
253 |
|
|
+ if ( ! $acct or $acct->prop('type') ne 'ibay') { |
254 |
|
|
+ return $c->l('wh_CANT_FIND_IBAY') if $msg ne 'OK'; |
255 |
|
|
+ } |
256 |
|
|
+ |
257 |
|
|
+ # real & current ibay |
258 |
|
|
+ my %doing=( Indexes => 'indexes', |
259 |
|
|
+ FollowSymLinks => 'followSymLinks', |
260 |
|
|
+ AllowOverride => 'allowOverride', |
261 |
|
|
+ ModDav => 'modDav', |
262 |
|
|
+ PHPVersion => 'phpVersion', |
263 |
|
|
+ AllowUrlFopen => 'allowUrlFopen', |
264 |
|
|
+ MemoryLimit => 'memorylimit', |
265 |
|
|
+ FileUpload => 'fileupload', |
266 |
|
|
+ UploadMaxFilesize => 'uploadmaxfilesize', |
267 |
|
|
+ PostMaxSize => 'postmaxsize', |
268 |
|
|
+ MaxExecutionTime => 'maxexecutiontime', |
269 |
|
|
+ MaxInputTime => 'maxinputtime', |
270 |
|
|
+ AllowPHTML => 'allowphtml', |
271 |
|
|
+ MailForceSender => 'mailforcesender', |
272 |
|
|
+ DisabledFunctions => 'disabledfunctions', |
273 |
|
|
+ PHPBaseDir => 'phpbasedir', |
274 |
|
|
+ ); |
275 |
|
|
+ foreach my $prop (keys %doing) { |
276 |
|
|
+ my $value = $c->param($doing{$prop}); |
277 |
|
|
+ $value = "" if ( $value eq "$BASEPHP" && $prop eq 'PHPVersion'); |
278 |
|
|
+ my $default = $defaultproperties{$prop} || ""; |
279 |
|
|
+ # exceptions to handle |
280 |
|
|
+ # DisabledFunctions if equal def delprop |
281 |
|
|
+ if ($prop eq 'DisabledFunctions' && $value eq $default) { |
282 |
|
|
+ $acct->delete_prop($prop) ; |
283 |
|
|
+ next; |
284 |
|
|
+ } |
285 |
|
|
+ # MailForceSender if empty delprop |
286 |
|
|
+ if ($prop eq 'MailForceSender' && $value eq "" ) { |
287 |
|
|
+ $acct->delete_prop($prop) ; |
288 |
|
|
+ next |
289 |
|
|
+ } |
290 |
|
|
+ # PHPBaseDir if empty delprop |
291 |
|
|
+ if ($prop eq 'PHPBaseDir' && $value eq "" ) { |
292 |
|
|
+ $acct->delete_prop($prop) ; |
293 |
|
|
+ next |
294 |
|
|
+ } |
295 |
|
|
+ # others if == default delprop |
296 |
|
|
+ if ($value eq "default") { |
297 |
|
|
+ $acct->delete_prop($prop) ; |
298 |
|
|
+ next; |
299 |
|
|
+ } |
300 |
|
|
+ $acct->merge_props($prop => $value); |
301 |
|
|
+ #TODO store them in a hash and call merge_props once |
302 |
|
|
+ } |
303 |
|
|
+ |
304 |
|
|
+ # Untaint $name before use in system() |
305 |
|
|
+ $name =~ /(.+)/; $name = $1; |
306 |
|
|
+ if (system ("/sbin/e-smith/signal-event", "webhosting-modify", |
307 |
|
|
+ $name) == 0) |
308 |
|
|
+ { |
309 |
|
|
+ $msg = 'OK'; |
310 |
|
|
+ } else { |
311 |
|
|
+ $msg = $c->l('wh_ERROR_WHILE_MODIFYING_IBAY'); |
312 |
|
|
+ } |
313 |
|
|
+ |
314 |
|
|
+ return $msg; |
315 |
|
|
+ |
316 |
|
|
+} |
317 |
|
|
+ |
318 |
|
|
+ |
319 |
|
|
+sub get_current_value{ |
320 |
|
|
+ my ($c, $name, $property) = @_; |
321 |
|
|
+ my $ibay = $adb->get($name); |
322 |
|
|
+ my $key = $ibay->key; |
323 |
|
|
+ my $default = $defaultproperties{$property} || ""; |
324 |
|
|
+ $default =~ s/\$key/$key/g if $property eq "PHPBaseDir"; |
325 |
|
|
+ my $value = ($ibay->prop($property))? $ibay->prop($property) : "default" ; |
326 |
|
|
+ return $value; |
327 |
|
|
+ |
328 |
|
|
+} |
329 |
|
|
+ |
330 |
|
|
+ |
331 |
|
|
+=head2 validate_up_post |
332 |
|
|
+ |
333 |
|
|
+verify that the upload_max_filesize value is not greater than the post_max_size value. If yes then display an error message. |
334 |
|
|
+ |
335 |
|
|
+=cut |
336 |
|
|
+ |
337 |
|
|
+sub validate_up_post{ |
338 |
|
|
+ |
339 |
|
|
+ my $c = shift; |
340 |
|
|
+ my $upmaxfilesize = $c->param('uploadmaxfilesize'); |
341 |
|
|
+ my $postmaxsizeform = $c->param('postmaxsize'); |
342 |
|
|
+##set value to "0M" if disabled in order to compare uploadmaxfilesize and postmaxsize |
343 |
|
|
+ $upmaxfilesize = "0M" if $upmaxfilesize eq 'disabled'; |
344 |
|
|
+ $upmaxfilesize = $defaultproperties{'UploadMaxFilesize'} if $upmaxfilesize eq 'default'; |
345 |
|
|
+ $postmaxsizeform = "0M" if $postmaxsizeform eq 'disabled'; |
346 |
|
|
+ $postmaxsizeform =$defaultproperties{'PostMaxSize'} if $postmaxsizeform eq 'default'; |
347 |
|
|
+##remove the 'M' unit |
348 |
|
|
+ my $upmaxfilesizechop = chop($upmaxfilesize); |
349 |
|
|
+ my $postmaxsizeformchop = chop($postmaxsizeform); |
350 |
|
|
+##test the condition |
351 |
|
|
+ if ( $upmaxfilesize > $postmaxsizeform ) { |
352 |
|
|
+ return $c->l('wh_UPLOADMAXFILESIZE_IS_GREATER_THAN_POSTMAXSIZE'); |
353 |
|
|
+ } else { |
354 |
|
|
+ return "OK"; |
355 |
|
|
+ } |
356 |
|
|
+} |
357 |
|
|
+ |
358 |
|
|
+ |
359 |
|
|
+sub get_current_php_value { |
360 |
|
|
+ |
361 |
|
|
+ my ($c, $name) = @_; |
362 |
|
|
+ my $ibay= $adb->get($name); |
363 |
|
|
+ return "default" unless defined $ibay->prop('PHPVersion'); |
364 |
|
|
+ return VersionToUse($adb->get($name)); |
365 |
|
|
+ |
366 |
|
|
+} |
367 |
|
|
+ |
368 |
|
|
+ |
369 |
|
|
+sub get_php_options { |
370 |
|
|
+ |
371 |
|
|
+ my ($c) = @_; |
372 |
|
|
+ my $translate = $c->l('wh_DEFAULT'); |
373 |
|
|
+ my %opts= listPHPVersionHash(); |
374 |
|
|
+ # transform options list |
375 |
|
|
+ my @opts = [ "$translate: ".PHPdefault(), 'default' ]; |
376 |
|
|
+ foreach my $key ( sort keys %opts ) { |
377 |
|
|
+ push @opts, [ $opts{$key}, $key ]; |
378 |
|
|
+ } |
379 |
|
|
+# push @opts, [ "$translate: ".PHPdefault(), 'default' ]; |
380 |
|
|
+ |
381 |
|
|
+ return \@opts; |
382 |
|
|
+ |
383 |
|
|
+} |
384 |
|
|
+ |
385 |
|
|
+ |
386 |
|
|
+sub print_options { |
387 |
|
|
+ |
388 |
|
|
+ my ($c, $property) = @_; |
389 |
|
|
+ |
390 |
|
|
+ my $translate = $c->l('wh_DEFAULT'); |
391 |
|
|
+ my $name = $c->param('ibay'); |
392 |
|
|
+ my $ibay = $adb->get($name); |
393 |
|
|
+ my $key = $ibay->key; |
394 |
|
|
+ my $default = $defaultproperties{$property} || ""; |
395 |
|
|
+ $default =~ s/\$key/$key/g if $property eq "PHPBaseDir"; |
396 |
|
|
+ $default=$c->l(uc("$default")) unless ($property eq 'AllowOverride'); |
397 |
|
|
+ |
398 |
|
|
+ # transform options list |
399 |
|
|
+ my @opts; |
400 |
|
|
+ foreach my $key ( sort keys %{$optionsproperties{$property}} ) { |
401 |
|
|
+ push @opts, [ $c->l($optionsproperties{$property}{$key}), $key ]; |
402 |
|
|
+ } |
403 |
|
|
+ push @opts, ["$translate: ".$default => 'default']; |
404 |
|
|
+ |
405 |
|
|
+ return \@opts |
406 |
|
|
+ |
407 |
|
|
+} |
408 |
|
|
+ |
409 |
|
|
+ |
410 |
|
|
+sub print_disabledfunctions { |
411 |
|
|
+ |
412 |
|
|
+ my ($c) = @_; |
413 |
|
|
+ my $translate = $c->l('wh_DESC_DISABLEDFUNCTIONS'); |
414 |
|
|
+ my $name = $c->param('ibay'); |
415 |
|
|
+ my $ibay= $adb->get($name); # ?? |
416 |
|
|
+ return "$translate : ". $defaultdisabledfunc ; |
417 |
|
|
+ |
418 |
|
|
+} |
419 |
|
|
+ |
420 |
|
|
+ |
421 |
|
|
+sub print_phpbasedir { |
422 |
|
|
+ |
423 |
|
|
+ my ($c) = @_; |
424 |
|
|
+ my $translate = $c->l('wh_DESC_PHPBASEDIR'); |
425 |
|
|
+ my $name = $c->param('ibay'); |
426 |
|
|
+ my $ibay= $adb->get($name); |
427 |
|
|
+ my $key = $ibay->key; |
428 |
|
|
+ my $default = $defaultproperties{'PHPBaseDir'} ||''; |
429 |
|
|
+ $default =~ s/\$key/$key/g; |
430 |
|
|
+ my $basedir = ($ibay->prop('PHPBaseDir')) ? $ibay->prop('PHPBaseDir') : $defaultproperties{'PHPBaseDir'}; |
431 |
|
|
+ return "$translate : ". $default ; |
432 |
|
|
+ |
433 |
|
|
+} |
434 |
|
|
+ |
435 |
|
|
+ |
436 |
|
|
+1 |
437 |
|
|
diff -urN smeserver-webhosting-0.0.9.old/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Webhosting/webhosting_en.lex smeserver-webhosting-0.0.9/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Webhosting/webhosting_en.lex |
438 |
|
|
--- smeserver-webhosting-0.0.9.old/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Webhosting/webhosting_en.lex 1970-01-01 04:00:00.000000000 +0400 |
439 |
|
|
+++ smeserver-webhosting-0.0.9/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Webhosting/webhosting_en.lex 2021-11-29 21:26:55.000000000 +0400 |
440 |
|
|
@@ -0,0 +1,80 @@ |
441 |
|
|
+'wh_FORM_TITLE' => 'Web Hosting Contrib', |
442 |
|
|
+'wh_webhosting' => 'I-bays - Web Hosting', |
443 |
|
|
+'wh_FIRSTPAGE_DESC' => 'Manage Apache and PHP settings', |
444 |
|
|
+'wh_ADD_TITLE' => 'Modify Apache and PHP Settings.', |
445 |
|
|
+'wh_NAME_FIELD_DESC' => 'These parameters will be effective only if the access from the web is allowed for the concerned I-bay in the informations bays panel.', |
446 |
|
|
+'wh_NAME_LABEL' => 'Information bay name', |
447 |
|
|
+'wh_NO_IBAYS' => 'There are no I-bays currently configured.', |
448 |
|
|
+'wh_CANT_FIND_IBAY' => 'Can\'t find account for {$name} (does it exist?)', |
449 |
|
|
+'wh_ERROR_WHILE_MODIFYING_IBAY' => 'An error occurred while modifying the I-bay.', |
450 |
|
|
+'wh_SUCCESSFULLY_MODIFIED_IBAY' => 'Successfully modified I-bay.', |
451 |
|
|
+'wh_VIRTUAL_HOST_MESSAGE' => 'The following virtual domains were using this information bay as their content and will be changed to the primary web site (you can change them to something else afterward).', |
452 |
|
|
+'wh_VHOST_MESSAGE' => '<P>The following virtual domains were using this information bay as their content and will be changed to the primary web site (you can change them to something else afterward):</P><ul>{$vhostList}</ul>', |
453 |
|
|
+'wh_Information bays' => 'Information bays', |
454 |
|
|
+'wh_DESC_HTTP_SETTINGS' => 'The following settings control the access of this I-bay using the HTTP/HTTPS protocol.', |
455 |
|
|
+'wh_DESC_PHP_SETTINGS' => 'The following settings control the PHP values of this I-bay.', |
456 |
|
|
+'wh_INDEXES' => 'Allow directory listing (+Indexes)', |
457 |
|
|
+'wh_FOLLOWSYMLINKS' => 'Follow symbolic links (FollowSymLinks)', |
458 |
|
|
+'wh_ALLOWOVERRIDE' => 'Allow .htaccess policy (AllowOverride)', |
459 |
|
|
+'wh_ALLOWURLFOPEN' => 'Allow access to remote files (Allow_url_fopen)', |
460 |
|
|
+'wh_DEFAULT' => 'Default value', |
461 |
|
|
+'M0064MB' => '64MB', |
462 |
|
|
+'M0128MB' => '128MB', |
463 |
|
|
+'M0256MB' => '256MB', |
464 |
|
|
+'M0512MB' => '512MB', |
465 |
|
|
+'M0768MB' => '768MB', |
466 |
|
|
+'M1024MB' => '1024MB', |
467 |
|
|
+'T001m' => '1 minute', |
468 |
|
|
+'T002m' => '2 minutes', |
469 |
|
|
+'T003m' => '3 minutes', |
470 |
|
|
+'T004m' => '4 minutes', |
471 |
|
|
+'T005m' => '5 minutes', |
472 |
|
|
+'T006m' => '6 minutes', |
473 |
|
|
+'T007m' => '7 minutes', |
474 |
|
|
+'T008m' => '8 minutes', |
475 |
|
|
+'T009m' => '9 minutes', |
476 |
|
|
+'T010m' => '10 minutes', |
477 |
|
|
+'T015m' => '15 minutes ', |
478 |
|
|
+'T030m' => '30 minutes', |
479 |
|
|
+'T045m' => '45 minutes', |
480 |
|
|
+'T060m' => 'One hour', |
481 |
|
|
+'T120m' => 'Two hours', |
482 |
|
|
+'wh_UNLIMITED' => 'Unlimited', |
483 |
|
|
+'S0020MB' => '20MB', |
484 |
|
|
+'S0030MB' => '30MB', |
485 |
|
|
+'S0040MB' => '40MB', |
486 |
|
|
+'S0050MB' => '50MB', |
487 |
|
|
+'S0075MB' => '75MB', |
488 |
|
|
+'S0100MB' => '100MB', |
489 |
|
|
+'S0125MB' => '125MB', |
490 |
|
|
+'S0150MB' => '150MB', |
491 |
|
|
+'S0175MB' => '175MB', |
492 |
|
|
+'S0200MB' => '200MB', |
493 |
|
|
+'S0300MB' => '300MB', |
494 |
|
|
+'S0400MB' => '400MB', |
495 |
|
|
+'S0500MB' => '500MB', |
496 |
|
|
+'S0600MB' => '600MB', |
497 |
|
|
+'S0700MB' => '700MB', |
498 |
|
|
+'S0800MB' => '800MB', |
499 |
|
|
+'S0900MB' => '900MB', |
500 |
|
|
+'S1000MB' => '1000MB', |
501 |
|
|
+'S1250MB' => '1250MB', |
502 |
|
|
+'S1500MB' => '1500MB ', |
503 |
|
|
+'S1750MB' => '1750MB', |
504 |
|
|
+'S2000MB' => '2000MB', |
505 |
|
|
+'wh_MEMORYLIMIT' => 'Php memory limit (memory_limit)', |
506 |
|
|
+'wh_UPLOADMAXFILESIZE' => 'Maximum upload size (upload_max_filesize)', |
507 |
|
|
+'wh_POSTMAXSIZE' => 'Maximum post size (post_max_size)', |
508 |
|
|
+'wh_MAXEXECUTIONTIME' => 'Maximum execution time (max_execution_time)', |
509 |
|
|
+'wh_UPLOADMAXFILESIZE_IS_GREATER_THAN_POSTMAXSIZE' => ' The maximum upload file size is greater than the maximum post size form ', |
510 |
|
|
+'wh_PHPBASEDIR' => 'Enter Path(s) for PHP Scripts (PHPBasedir) ', |
511 |
|
|
+'wh_DESC_PHPBASEDIR' => 'You must specify the full path to the I-bay or remove the content to get back to default value ', |
512 |
|
|
+'wh_DESC_DAV_SETTINGS' => 'The following settings control the WebDav files transfer protocol of this I-bay.', |
513 |
|
|
+'wh_ENABLE_MOD_DAV' => 'Allow WebDav', |
514 |
|
|
+'wh_PHPVERSION' => 'Select the php-fpm version you want to use with this I-bay', |
515 |
|
|
+'wh_FILEUPLOAD' => 'Whether or not to allow HTTP file uploads (file_upload)', |
516 |
|
|
+'wh_MAXINPUTTIME' => 'Maximum time in seconds a script is allowed to parse input data (max_input_time)', |
517 |
|
|
+'wh_ALLOWPHTML' => 'Allow parsing php code inside html, phtml, htm and xml files.', |
518 |
|
|
+'wh_MAILFORCESENDER' => 'Force an email sender address for the script in this I-bay.', |
519 |
|
|
+'wh_DISABLEDFUNCTIONS' => 'List of php disabled functions (disable_functions)', |
520 |
|
|
+'wh_DESC_DISABLEDFUNCTIONS' => 'Leave empty or with a random string to disable. Copy and paste the following default list to reset to default', |
521 |
|
|
diff -urN smeserver-webhosting-0.0.9.old/root/usr/share/smanager/themes/default/templates/partials/_wh_list.html.ep smeserver-webhosting-0.0.9/root/usr/share/smanager/themes/default/templates/partials/_wh_list.html.ep |
522 |
|
|
--- smeserver-webhosting-0.0.9.old/root/usr/share/smanager/themes/default/templates/partials/_wh_list.html.ep 1970-01-01 04:00:00.000000000 +0400 |
523 |
|
|
+++ smeserver-webhosting-0.0.9/root/usr/share/smanager/themes/default/templates/partials/_wh_list.html.ep 2021-11-28 22:05:34.000000000 +0400 |
524 |
|
|
@@ -0,0 +1,45 @@ |
525 |
|
|
+<div id='wh_list'> |
526 |
|
|
+ |
527 |
|
|
+ <p> |
528 |
|
|
+ %=l 'wh_FIRSTPAGE_DESC' |
529 |
|
|
+ <br><br> |
530 |
|
|
+ </p> |
531 |
|
|
+ |
532 |
|
|
+ % my $numIbays = @$ibays; |
533 |
|
|
+ % if ($numIbays == 0){ |
534 |
|
|
+ %=l 'wh_NO_IBAYS' |
535 |
|
|
+ % } else { |
536 |
|
|
+ <table class="sme-border"><tbody> |
537 |
|
|
+ <tr> |
538 |
|
|
+ <th class='sme-border'> |
539 |
|
|
+ %=l 'NAME' |
540 |
|
|
+ </th> |
541 |
|
|
+ <th class='sme-border'> |
542 |
|
|
+ %=l 'DESCRIPTION' |
543 |
|
|
+ </th> |
544 |
|
|
+ <th class='sme-border'> |
545 |
|
|
+ %=l 'ACTION' |
546 |
|
|
+ </th> |
547 |
|
|
+ </tr> |
548 |
|
|
+ % foreach my $ibay (@$ibays) |
549 |
|
|
+ % { |
550 |
|
|
+ % my $modifiable = $ibay->prop('Modifiable') || 'yes'; |
551 |
|
|
+ <tr> |
552 |
|
|
+ %= t td => (class => 'sme-border') => $ibay->key |
553 |
|
|
+ %= t td => (class => 'sme-border') => $ibay->prop('Name') |
554 |
|
|
+ % my $actionModify = ' '; |
555 |
|
|
+ % if ($modifiable eq 'yes') { |
556 |
|
|
+ % $actionModify = "<a href='webhosting2?CsrfDef=TOKEN&trt=UPD&ibay=" . $ibay->key . "'>" . l('MODIFY') . "</a>"; |
557 |
|
|
+ % } |
558 |
|
|
+ <td class='sme-border'><%= $c->render_to_string(inline => $actionModify) %></td> |
559 |
|
|
+ |
560 |
|
|
+ </tr> |
561 |
|
|
+ % } |
562 |
|
|
+ </tbody> |
563 |
|
|
+ </table> |
564 |
|
|
+ |
565 |
|
|
+ <%} %> |
566 |
|
|
+ |
567 |
|
|
+ %= hidden_field 'trt' => $wh_datas->{trt} |
568 |
|
|
+ |
569 |
|
|
+</div> |
570 |
|
|
diff -urN smeserver-webhosting-0.0.9.old/root/usr/share/smanager/themes/default/templates/partials/_wh_upd.html.ep smeserver-webhosting-0.0.9/root/usr/share/smanager/themes/default/templates/partials/_wh_upd.html.ep |
571 |
|
|
--- smeserver-webhosting-0.0.9.old/root/usr/share/smanager/themes/default/templates/partials/_wh_upd.html.ep 1970-01-01 04:00:00.000000000 +0400 |
572 |
|
|
+++ smeserver-webhosting-0.0.9/root/usr/share/smanager/themes/default/templates/partials/_wh_upd.html.ep 2021-12-01 21:50:47.000000000 +0400 |
573 |
|
|
@@ -0,0 +1,149 @@ |
574 |
|
|
+<div id='wh_upd'> |
575 |
|
|
+ |
576 |
|
|
+ %= form_for '/webhosting' => (method => 'POST') => begin |
577 |
|
|
+ <p> |
578 |
|
|
+ <h2> |
579 |
|
|
+ %=l 'wh_ADD_TITLE' |
580 |
|
|
+ </h2> |
581 |
|
|
+ <br> |
582 |
|
|
+ %=l 'wh_NAME_FIELD_DESC' |
583 |
|
|
+ </p> |
584 |
|
|
+ |
585 |
|
|
+ <p> |
586 |
|
|
+ <span class=label> |
587 |
|
|
+ %=l 'wh_NAME_LABEL', class => 'label' |
588 |
|
|
+ </span><span class=data> |
589 |
|
|
+ %= $wh_datas->{ibay}, class => 'data' |
590 |
|
|
+ </span> |
591 |
|
|
+ </p> |
592 |
|
|
+ |
593 |
|
|
+ <p><span class=label> |
594 |
|
|
+ %=l 'wh_INDEXES' |
595 |
|
|
+ </span><span class=data> |
596 |
|
|
+ % param 'indexes' => $wh_datas->{indexes} unless param 'indexes'; |
597 |
|
|
+ %= select_field 'indexes' => $c->print_options('Indexes'), class => 'input' |
598 |
|
|
+ <br></span></p> |
599 |
|
|
+ |
600 |
|
|
+ <p><span class=label> |
601 |
|
|
+ %=l 'wh_FOLLOWSYMLINKS' |
602 |
|
|
+ </span><span class=data> |
603 |
|
|
+ % param 'followSymLinks' => $wh_datas->{followsymLinks} unless param 'followSymLinks'; |
604 |
|
|
+ %= select_field 'followSymLinks' => $c->print_options('FollowSymLinks'), class => 'input' |
605 |
|
|
+ <br></span></p> |
606 |
|
|
+ |
607 |
|
|
+ <p><span class=label> |
608 |
|
|
+ %=l 'wh_ALLOWOVERRIDE' |
609 |
|
|
+ </span><span class=data> |
610 |
|
|
+ % param 'allowOverride' => $wh_datas->{allowoverride} unless param 'allowOverride'; |
611 |
|
|
+ %= select_field 'allowOverride' => $c->print_options('AllowOverride'), class => 'input' |
612 |
|
|
+ <br></span></p> |
613 |
|
|
+ |
614 |
|
|
+ <p><%=l 'wh_DESC_DAV_SETTINGS', class => 'label'%></p> |
615 |
|
|
+ |
616 |
|
|
+ <p><span class=label> |
617 |
|
|
+ %=l 'wh_ENABLE_MOD_DAV' |
618 |
|
|
+ </span><span class=data> |
619 |
|
|
+ % param 'modDav' => $wh_datas->{moddav} unless param 'modDav'; |
620 |
|
|
+ %= select_field 'modDav' => $c->print_options('ModDav'), class => 'input' |
621 |
|
|
+ <br></span></p> |
622 |
|
|
+ |
623 |
|
|
+ <p><%=l 'wh_DESC_PHP_SETTINGS', class => 'label'%></p> |
624 |
|
|
+ |
625 |
|
|
+ <p><span class=label> |
626 |
|
|
+ %=l 'wh_PHPVERSION' |
627 |
|
|
+ </span><span class=data> |
628 |
|
|
+ % param 'phpVersion' => $wh_datas->{phpversion} unless param 'phpVersion'; |
629 |
|
|
+ %= select_field 'phpVersion' => $c->get_php_options(), class => 'input' |
630 |
|
|
+ <br></span></p> |
631 |
|
|
+ |
632 |
|
|
+ <p><span class=label> |
633 |
|
|
+ %=l 'wh_ALLOWURLFOPEN' |
634 |
|
|
+ </span><span class=data> |
635 |
|
|
+ % param 'allowUrlFopen' => $wh_datas->{allowurlfopen} unless param 'allowUrlFopen'; |
636 |
|
|
+ %= select_field 'allowUrlFopen' => $c->print_options('AllowUrlFopen'), class => 'input' |
637 |
|
|
+ <br></span></p> |
638 |
|
|
+ |
639 |
|
|
+ <p><span class=label> |
640 |
|
|
+ %=l 'wh_MEMORYLIMIT' |
641 |
|
|
+ </span><span class=data> |
642 |
|
|
+ % param 'memorylimit' => $wh_datas->{memorylimit} unless param 'memorylimit'; |
643 |
|
|
+ %= select_field 'memorylimit' => $c->print_options('MemoryLimit'), class => 'input' |
644 |
|
|
+ <br></span></p> |
645 |
|
|
+ |
646 |
|
|
+ <p><span class=label> |
647 |
|
|
+ %=l 'wh_FILEUPLOAD' |
648 |
|
|
+ </span><span class=data> |
649 |
|
|
+ % param 'fileupload' => $wh_datas->{fileupload} unless param 'fileupload'; |
650 |
|
|
+ %= select_field 'fileupload' => $c->print_options('FileUpload'), class => 'input' |
651 |
|
|
+ <br></span></p> |
652 |
|
|
+ |
653 |
|
|
+ <p><span class=label> |
654 |
|
|
+ %=l 'wh_UPLOADMAXFILESIZE' |
655 |
|
|
+ </span><span class=data> |
656 |
|
|
+ % param 'uploadmaxfilesize' => $wh_datas->{uploadmaxfilesize} unless param 'uploadmaxfilesize'; |
657 |
|
|
+ %= select_field 'uploadmaxfilesize' => $c->print_options('UploadMaxFilesize'), class => 'input' |
658 |
|
|
+ <br></span></p> |
659 |
|
|
+ |
660 |
|
|
+ <p><span class=label> |
661 |
|
|
+ %=l 'wh_POSTMAXSIZE' |
662 |
|
|
+ </span><span class=data> |
663 |
|
|
+ % param 'postmaxsize' => $wh_datas->{postmaxsize} unless param 'postmaxsize'; |
664 |
|
|
+ %= select_field 'postmaxsize' => $c->print_options('PostMaxSize'), class => 'input' |
665 |
|
|
+ <br></span></p> |
666 |
|
|
+ |
667 |
|
|
+ <p><span class=label> |
668 |
|
|
+ %=l 'wh_MAXEXECUTIONTIME' |
669 |
|
|
+ </span><span class=data> |
670 |
|
|
+ % param 'maxexecutiontime' => $wh_datas->{maxexecutiontime} unless param 'maxexecutiontime'; |
671 |
|
|
+ %= select_field 'maxexecutiontime' => $c->print_options('MaxExecutionTime'), class => 'input' |
672 |
|
|
+ <br></span></p> |
673 |
|
|
+ |
674 |
|
|
+ <p><span class=label> |
675 |
|
|
+ %=l 'wh_MAXINPUTTIME' |
676 |
|
|
+ </span><span class=data> |
677 |
|
|
+ % param 'maxinputtime' => $wh_datas->{maxinputtime} unless param 'maxinputtime'; |
678 |
|
|
+ %= select_field 'maxinputtime' => $c->print_options('MaxInputTime'), class => 'input' |
679 |
|
|
+ <br></span></p> |
680 |
|
|
+ |
681 |
|
|
+ <p><span class=label> |
682 |
|
|
+ %=l 'wh_ALLOWPHTML' |
683 |
|
|
+ </span><span class=data> |
684 |
|
|
+ % param 'allowphtml' => $wh_datas->{allowphtml} unless param 'allowphtml'; |
685 |
|
|
+ %= select_field 'allowphtml' => $c->print_options('AllowPHTML'), class => 'input' |
686 |
|
|
+ <br></span></p> |
687 |
|
|
+ |
688 |
|
|
+ <p><span class=label> |
689 |
|
|
+ %=l 'wh_MAILFORCESENDER' |
690 |
|
|
+ </span><span class=data> |
691 |
|
|
+ % param 'mailforcesender' => $wh_datas->{mailforcesender} unless param 'mailforcesender'; |
692 |
|
|
+ %=text_field 'mailforcesender' => size => '60', class => 'input' |
693 |
|
|
+ <br></span></p> |
694 |
|
|
+ |
695 |
|
|
+ <p><span class=label> |
696 |
|
|
+ %=l 'wh_DISABLEDFUNCTIONS' |
697 |
|
|
+ </span><span class=data> |
698 |
|
|
+ % param 'disabledfunctions' => $wh_datas->{disabledfunctions} unless param 'disabledfunctions'; |
699 |
|
|
+ %=text_field 'disabledfunctions' => size => '60', class => 'input' |
700 |
|
|
+ <br></span></p> |
701 |
|
|
+ |
702 |
|
|
+ <p><%= $c->print_disabledfunctions() %></p> |
703 |
|
|
+ |
704 |
|
|
+ <p><span class=label> |
705 |
|
|
+ %=l 'wh_PHPBASEDIR' |
706 |
|
|
+ </span><span class=data> |
707 |
|
|
+ % param 'phpbasedir' => $wh_datas->{phpbasedir} unless param 'phpbasedir'; |
708 |
|
|
+ %=text_field 'phpbasedir' => size => '60', class => 'input' |
709 |
|
|
+ <br></span></p> |
710 |
|
|
+ |
711 |
|
|
+ <p><%= $c->print_phpbasedir() %></p> |
712 |
|
|
+ |
713 |
|
|
+ <div class='center'> |
714 |
|
|
+ %= submit_button l('SAVE'), class => 'action' |
715 |
|
|
+ </div> |
716 |
|
|
+ |
717 |
|
|
+ %= hidden_field 'trt' => $wh_datas->{trt} |
718 |
|
|
+ %= hidden_field 'ibay' => $wh_datas->{ibay} |
719 |
|
|
+ |
720 |
|
|
+ % end |
721 |
|
|
+ |
722 |
|
|
+</div> |
723 |
|
|
diff -urN smeserver-webhosting-0.0.9.old/root/usr/share/smanager/themes/default/templates/webhosting.html.ep smeserver-webhosting-0.0.9/root/usr/share/smanager/themes/default/templates/webhosting.html.ep |
724 |
|
|
--- smeserver-webhosting-0.0.9.old/root/usr/share/smanager/themes/default/templates/webhosting.html.ep 1970-01-01 04:00:00.000000000 +0400 |
725 |
|
|
+++ smeserver-webhosting-0.0.9/root/usr/share/smanager/themes/default/templates/webhosting.html.ep 2021-11-28 22:14:28.000000000 +0400 |
726 |
|
|
@@ -0,0 +1,33 @@ |
727 |
|
|
+% layout 'default', title => "Sme server 2 - webhosting"; |
728 |
|
|
+ |
729 |
|
|
+% content_for 'module' => begin |
730 |
|
|
+<div id="module"> |
731 |
|
|
+ |
732 |
|
|
+ % if ($config->{debug} == 1) { |
733 |
|
|
+ <p> |
734 |
|
|
+ %= dumper $c->current_route |
735 |
|
|
+ %= dumper $wh_datas |
736 |
|
|
+ </p> |
737 |
|
|
+ % } |
738 |
|
|
+ |
739 |
|
|
+ % if ( stash 'error' ) { |
740 |
|
|
+ <br><div class=sme-error> |
741 |
|
|
+ %= $c->render_to_string(inline => stash 'error') |
742 |
|
|
+ </div> |
743 |
|
|
+ %} |
744 |
|
|
+ |
745 |
|
|
+ <h1><%= $title%></h1> |
746 |
|
|
+ |
747 |
|
|
+ % if ( stash 'modul' ) { |
748 |
|
|
+ %= $c->render_to_string(inline => stash 'modul' ); |
749 |
|
|
+ % } |
750 |
|
|
+ |
751 |
|
|
+ % if ($wh_datas->{trt} eq 'UPD') { |
752 |
|
|
+ %= include 'partials/_wh_upd' |
753 |
|
|
+ %} else { |
754 |
|
|
+ %= include 'partials/_wh_list' |
755 |
|
|
+ %} |
756 |
|
|
+ |
757 |
|
|
+</div> |
758 |
|
|
+%end |
759 |
|
|
+ |