PluginProbe
AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress / 11.1.0
AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress v11.1.0
11.1.1 11.1.0 11.0.5 11.0.4 11.0.3 11.0.2 11.0.1 11.0.0 10.11.1 10.11.0 10.10.2 10.10.1 10.10.0 10.9.1 trunk 10.0.0 10.0.1 10.1.0 10.1.1 10.1.2 10.1.3 10.1.4 10.2.0 10.2.1 10.2.2 All 62 releases
acymailing / back / Views / Configuration / tmpl / security.php

security.php in AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress 11.1.0, at back/Views/Configuration/tmpl/security.php

686 lines 32.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 // phpcs:disable WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound -- View file, its variables are local to the include scope, not true globals.
3 defined('ABSPATH') || die('Restricted Access');
4 ?>
5 <div class="acym__content acym_area padding-vertical-1 padding-horizontal-2 margin-bottom-2">
6 <?php if (acym_level(ACYM_ESSENTIAL)) { ?>
7 <div class="margin-bottom-2 acym__configuration__rest_api cell grid-x">
8 <div class="acym__title acym__title__secondary grid-x">
9 <?php echo esc_html(acym_translation('ACYM_REST_API')); ?>
10 <?php acym_externalLink(
11 'ACYM_DOCUMENTATION',
12 ACYM_DOCUMENTATION.'v/rest-api/',
13 true,
14 true,
15 ['margin-left-1 margin-right-1']
16 ); ?>
17 </div>
18 <div class="cell grid-x acym_vcenter">
19 <label class="cell large-3" for="php_overrides">
20 <?php echo esc_html(acym_translation('ACYM_ACTIVATE_REST_API'));
21 acym_info(['textShownInTooltip' => 'ACYM_ACTIVATE_REST_API_DESC']); ?>
22 </label>
23 <div class="cell grid-x large-9">
24 <?php
25 acym_switch([
26 'name' => 'config[rest_api]',
27 'value' => $this->config->get('rest_api', 0),
28 ]);
29 ?>
30 </div>
31 </div>
32 <div class="cell grid-x acym_vcenter margin-top-1">
33 <label class="cell large-3" for="api_key">
34 <?php echo esc_html(acym_translation('ACYM_API_KEY'));
35 acym_info(['textShownInTooltip' => 'ACYM_API_KEY_DESC']); ?>
36 </label>
37 <input class="cell large-9"
38 id="api_key"
39 type="text"
40 name="config[api_key]"
41 value="<?php echo esc_attr($this->config->get('api_key')); ?>" />
42 </div>
43 </div>
44 <?php } ?>
45
46 <?php if (isset($data['level']) && isset($data['captchaOptions'])) { ?>
47 <div class="margin-bottom-2 cell margin-y acym__configuration__security__captcha">
48 <div class="acym__title acym__title__secondary">
49 <?php echo esc_html(acym_translation('ACYM_CONFIGURATION_CAPTCHA')); ?>
50 <?php
51 if (!acym_level(ACYM_ESSENTIAL)) {
52 echo esc_html(' '.acym_translation('ACYM_PRO_VERSION_ONLY'));
53 }
54 ?>
55 </div>
56 <div class="grid-x grid-margin-x margin-y">
57 <div class="cell medium-6 grid-x">
58 <label class="cell large-3" for="security_key">
59 <?php echo esc_html(acym_translation('ACYM_CONFIGURATION_CAPTCHA'));
60 acym_info(['textShownInTooltip' => 'ACYM_CAPTCHA_DESC']); ?>
61 </label>
62 <div class="cell large-9">
63 <?php
64 $attribs = [
65 'class' => 'acym__select',
66 'data-toggle-select' => '{"acym_ireCaptcha":".acym__config__captcha__recaptcha","acym_reCaptcha_v3":".acym__config__captcha__recaptcha, .acym__config__captcha__recaptcha_v3","acym_hcaptcha":".acym__config__captcha__hcaptcha" }',
67 ];
68 // To disable Captcha dropdown
69 if (!$data['level']) {
70 $attribs['disabled'] = '';
71 }
72
73 acym_select(
74 $data['captchaOptions'],
75 'config[captcha]',
76 $this->config->get('captcha', 'none'),
77 $attribs,
78 'value',
79 'text',
80 null,
81 false,
82 true
83 );
84 ?>
85 </div>
86 </div>
87 <?php if ($data['level']) { ?>
88 <div class="cell medium-6 grid-x">
89 <label class="cell large-3" for="security_key">
90 <?php echo esc_html(acym_translation('ACYM_SECURITY_KEY'));
91 acym_info(['textShownInTooltip' => 'ACYM_SECURITY_KEY_DESC']); ?>
92 </label>
93 <input class="cell large-9"
94 id="security_key"
95 type="text"
96 name="config[security_key]"
97 value="<?php echo esc_attr($this->config->get('security_key')); ?>" />
98 </div>
99 <div class="cell medium-6 grid-x acym__config__captcha__hcaptcha">
100 <label class="cell large-3" for="hcaptcha_sitekey">
101 <?php
102 echo esc_html(acym_translation('ACYM_GENERAL_SITE_KEY'));
103 acym_tooltip(
104 [
105 'hoveredText' => '<span class="acym__tooltip__info__container"><i class="acym__tooltip__info__icon acymicon-info-circle"></i></span>',
106 'textShownInTooltip' => acym_translation('ACYM_CLICK_HERE_TO_CREATE'),
107 'classContainer' => 'acym__tooltip__info',
108 'link' => 'https://dashboard.hcaptcha.com/sites/new',
109 ]
110 );
111 ?>
112 </label>
113 <input class="cell large-9"
114 id="hcaptcha_sitekey"
115 type="text"
116 name="config[hcaptcha_sitekey]"
117 value="<?php echo esc_attr($this->config->get('hcaptcha_sitekey')); ?>" />
118 </div>
119 <div class="cell medium-6 grid-x acym__config__captcha__hcaptcha">
120 <label class="cell large-3" for="hcaptcha_secretkey">
121 <?php
122 echo esc_html(acym_translation('ACYM_GENERAL_SECRET_KEY'));
123 acym_tooltip(
124 [
125 'hoveredText' => '<span class="acym__tooltip__info__container"><i class="acym__tooltip__info__icon acymicon-info-circle"></i></span>',
126 'textShownInTooltip' => acym_translation('ACYM_CLICK_HERE_TO_CREATE'),
127 'classContainer' => 'acym__tooltip__info',
128 'link' => 'https://dashboard.hcaptcha.com/sites/new',
129 ]
130 );
131 ?>
132 </label>
133 <input class="cell large-9"
134 id="hcaptcha_secretkey"
135 type="text"
136 name="config[hcaptcha_secretkey]"
137 value="<?php echo esc_attr($this->config->get('hcaptcha_secretkey')); ?>" />
138 </div>
139
140 <div class="cell medium-6 grid-x acym__config__captcha__recaptcha">
141 <label class="cell large-3" for="recaptcha_sitekey">
142 <?php
143 echo esc_html(acym_translation('ACYM_SITE_KEY'));
144 acym_tooltip(
145 [
146 'hoveredText' => '<span class="acym__tooltip__info__container"><i class="acym__tooltip__info__icon acymicon-info-circle"></i></span>',
147 'textShownInTooltip' => acym_translation('ACYM_CLICK_HERE_TO_CREATE'),
148 'classContainer' => 'acym__tooltip__info',
149 'link' => 'https://www.google.com/recaptcha/admin',
150 ]
151 );
152 ?>
153 </label>
154 <input class="cell large-9"
155 id="recaptcha_sitekey"
156 type="text"
157 name="config[recaptcha_sitekey]"
158 value="<?php echo esc_attr($this->config->get('recaptcha_sitekey')); ?>" />
159 </div>
160 <div class="cell medium-6 grid-x acym__config__captcha__recaptcha">
161 <label class="cell large-3" for="recaptcha_secretkey">
162 <?php
163 echo esc_html(acym_translation('ACYM_SECRET_KEY'));
164 acym_tooltip(
165 [
166 'hoveredText' => '<span class="acym__tooltip__info__container"><i class="acym__tooltip__info__icon acymicon-info-circle"></i></span>',
167 'textShownInTooltip' => acym_translation('ACYM_CLICK_HERE_TO_CREATE'),
168 'classContainer' => 'acym__tooltip__info',
169 'link' => 'https://www.google.com/recaptcha/admin',
170 ]
171 );
172 ?>
173 </label>
174 <input class="cell large-9"
175 id="recaptcha_secretkey"
176 type="text"
177 name="config[recaptcha_secretkey]"
178 value="<?php echo esc_attr($this->config->get('recaptcha_secretkey')); ?>" />
179 </div>
180 <div class="cell medium-6 grid-x acym__config__captcha__recaptcha_v3">
181 <label class="cell large-3" for="recaptcha_score">
182 <?php
183 echo esc_html(acym_translation('ACYM_CAPTCHA_SCORE'));
184 acym_tooltip(
185 [
186 'hoveredText' => '<span class="acym__tooltip__info__container"><i class="acym__tooltip__info__icon acymicon-info-circle"></i></span>',
187 'textShownInTooltip' => acym_translation('ACYM_CAPTCHA_SCORE_DESC'),
188 'classContainer' => 'acym__tooltip__info',
189 'link' => 'https://developers.google.com/recaptcha/docs/v3',
190 ]
191 );
192 ?>
193 </label>
194 <input class="cell large-9"
195 id="recaptcha_score"
196 type="number"
197 name="config[recaptcha_score]"
198 min="0"
199 max="1"
200 step="0.1"
201 onKeyDown="return false"
202 value="<?php echo esc_attr($this->config->get('recaptcha_score', 0.5)); ?>" />
203 </div>
204 <?php } ?>
205 </div>
206 </div>
207 <?php } ?>
208
209 <div class="acym__configuration__security__email cell grid-x">
210 <div class="acym__title acym__title__secondary grid-x">
211 <?php echo esc_html(acym_translation('ACYM_EMAIL_VERIFICATION')); ?>
212 <div class="margin-left-1">
213 <?php
214 $score = 100;
215 $tooltip = [];
216 if ($this->config->get('email_checkdomain') == 0) {
217 $score -= 10;
218 $tooltip[] = acym_translation('ACYM_EMAIL_VERIFICATION_SCORE_DESC_DOMAIN_VERIFICATION');
219 }
220 if (empty($this->config->get('require_confirmation', 1))) {
221 $score -= 30;
222 $tooltip[] = acym_translation('ACYM_EMAIL_VERIFICATION_SCORE_DESC_DOUBLE_OPT_IN');
223 }
224 if ($this->config->get('email_spellcheck') == 0) {
225 $score -= 10;
226 $tooltip[] = acym_translation('ACYM_EMAIL_VERIFICATION_SCORE_DESC_TYPO');
227 }
228
229 if (!acym_isAcyCheckerInstalled()) {
230 $score -= 50;
231 $tooltip[] = acym_translation('ACYM_EMAIL_VERIFICATION_SCORE_DESC_CHECKER');
232 } else {
233 if ($this->config->get('email_verification') == 0) {
234 $score -= 50;
235 $tooltip[] = acym_translation('ACYM_EMAIL_VERIFICATION_SCORE_DESC_CHECKER');
236 }
237
238 $oneEnabled = false;
239
240 if ($this->config->get('email_verification', 0) != 0) {
241 $verificationOptions = [
242 'email_verification_non_existing',
243 'email_verification_disposable',
244 'email_verification_free',
245 'email_verification_role',
246 'email_verification_acceptall',
247 ];
248
249 foreach ($verificationOptions as $verificationOption) {
250 if ($this->config->get($verificationOption, 0) == 0) continue;
251
252 $oneEnabled = true;
253 break;
254 }
255 }
256
257 if (!$oneEnabled) $tooltip[] = acym_translation('ACYM_YOU_SHOULD_ENABLE_CHECK');
258 }
259
260 echo '('.esc_html(acym_translationSprintf('ACYM_EMAIL_VERIFICATION_SCORE', $score)).')';
261 if (!empty($tooltip)) {
262 acym_info(
263 [
264 'textShownInTooltip' => implode('<br />', $tooltip),
265 ]
266 );
267 }
268 ?>
269 </div>
270 </div>
271 <div class="grid-x margin-y">
272 <div class="cell medium-6 grid-x">
273 <?php
274 acym_switch([
275 'name' => 'config[email_checkdomain]',
276 'value' => $this->config->get('email_checkdomain'),
277 'label' => acym_translation('ACYM_CHECK_DOMAIN_EXISTS'),
278 'labelClass' => 'xlarge-9 large-6 small-9',
279 ]);
280 ?>
281 </div>
282 <div class="cell medium-6 grid-x">
283 <?php
284 acym_switch([
285 'name' => 'config[email_spellcheck]',
286 'value' => $this->config->get('email_spellcheck'),
287 'label' => acym_translation('ACYM_SPELLCHECK_SUGGESTIONS'),
288 'tip' => ['textShownInTooltip' => 'ACYM_SPELLCHECK_SUGGESTIONS_DESC'],
289 'labelClass' => 'xlarge-9 large-6 small-9',
290 ]);
291 ?>
292 </div>
293 <div class="cell medium-6 grid-x">
294 <?php
295 acym_switch([
296 'name' => 'config[email_confirmation]',
297 'value' => $this->config->get('email_confirmation'),
298 'label' => acym_translation('ACYM_ENABLE_EMAIL_CONFIRMATION_FOR_SUBSCRIPTION_FORM'),
299 'tip' => ['textShownInTooltip' => 'ACYM_ENABLE_EMAIL_CONFIRMATION_FOR_SUBSCRIPTION_FORM_DESC'],
300 'labelClass' => 'xlarge-9 large-6 small-9',
301 ]);
302 ?>
303 </div>
304 <div class="cell grid-x acychecker_ad">
305 <div class="cell ">
306 <h6>
307 <?php echo esc_html(acym_translation('ACYM_ACYCHECKER_CONFIG_AD_TITLE')); ?>
308 <img class="acychecker_logo" alt="logo AcyChecker" src="<?php echo esc_url(ACYM_IMAGES.'icons/logo_acychecker.png'); ?>" />
309 </h6>
310 </div>
311 <div class="cell xlarge-6 grid-x">
312 <?php
313 acym_switch([
314 'name' => 'config[email_verification]',
315 'value' => $this->config->get('email_verification'),
316 'label' => acym_translation('ACYM_ACYCHECKER_CHECK_SUBSCRIPTION'),
317 'labelClass' => 'xlarge-9 large-6 small-9',
318 'toggle' => $data['acychecker_installed'] ? 'email_verification' : null,
319 'disabled' => !$data['acychecker_installed'],
320 ]);
321 ?>
322 </div>
323 <div id="email_verification" class="cell grid-x">
324 <label class="cell margin-top-1">
325 <?php echo esc_html(acym_translation('ACYM_ACYCHECKER_CHECK_SUBSCRIPTION_BLOCK')); ?>
326 </label>
327 <div class="cell large-6 grid-x">
328 <?php
329 $verificationOptions = [
330 'email_verification_non_existing' => ['ACYM_ACYCHECKER_CHECK_SUBSCRIPTION_BLOCK_NON_EXISTING', ''],
331 'email_verification_disposable' => [
332 'ACYM_ACYCHECKER_CHECK_SUBSCRIPTION_BLOCK_DISPOSABLE',
333 'ACYM_ACYCHECKER_CHECK_SUBSCRIPTION_BLOCK_DISPOSABLE_DESC',
334 ],
335 'email_verification_free' => ['ACYM_ACYCHECKER_CHECK_SUBSCRIPTION_BLOCK_FREE', 'ACYM_ACYCHECKER_CHECK_SUBSCRIPTION_BLOCK_FREE_DESC'],
336 'email_verification_role' => ['ACYM_ACYCHECKER_CHECK_SUBSCRIPTION_BLOCK_ROLE', 'ACYM_ACYCHECKER_CHECK_SUBSCRIPTION_BLOCK_ROLE_DESC'],
337 'email_verification_acceptall' => [
338 'ACYM_ACYCHECKER_CHECK_SUBSCRIPTION_BLOCK_ACCEPT_ALL',
339 'ACYM_ACYCHECKER_CHECK_SUBSCRIPTION_BLOCK_ACCEPT_ALL_DESC',
340 ],
341 ];
342
343 foreach ($verificationOptions as $option => $label) {
344 echo '<div class="cell grid-x margin-bottom-1">';
345 $switchOptions = [
346 'name' => 'config['.$option.']',
347 'value' => $this->config->get($option),
348 'label' => acym_translation($label[0]),
349 'labelClass' => 'small-9',
350 'disabled' => !$data['acychecker_installed'],
351 ];
352 if (!empty($label[1])) {
353 $switchOptions['tip'] = ['textShownInTooltip' => $label[1]];
354 }
355 acym_switch($switchOptions);
356 echo '</div>';
357 }
358 ?>
359 </div>
360 <?php if (!$data['acychecker_installed']) { ?>
361 <div class="cell large-6 grid-x align-center">
362 <div class="cell large-6 grid-x align-center text-center">
363 <?php echo esc_html(acym_translation('ACYM_ACYCHECKER_CONFIG_AD')); ?>
364 <a target="_blank" class="cell shrink button button-secondary" href="<?php echo esc_url($data['acychecker_get_link']); ?>">
365 <?php echo esc_html(acym_translation('ACYM_ACYCHECKER_CONFIG_AD_BUTTON')); ?>
366 </a>
367 </div>
368 </div>
369 <?php } ?>
370 </div>
371 </div>
372 </div>
373 </div>
374 </div>
375
376 <div class="acym__content acym_area padding-horizontal-2 acym__configuration__advanced">
377 <div class="cell grid-x acym__configuration__showmore-head">
378 <div class="acym__title acym__title__secondary cell auto margin-bottom-0"><?php echo esc_html(acym_translation('ACYM_CONFIGURATION_ADVANCED')); ?></div>
379 <div class="cell shrink">
380 <?php acym_showMore('acym__configuration__security__advanced__content'); ?>
381 </div>
382 </div>
383 <div id="acym__configuration__security__advanced__content" style="display:none;">
384 <?php if ($data['adminPermissions']) { ?>
385 <div class="margin-bottom-2">
386 <div class="acym__title acym__title__secondary"><?php echo esc_html(acym_translation('ACYM_PERMISSIONS')); ?></div>
387 <div class="grid-x grid-margin-x margin-y">
388 <?php acym_cmsPermission(); ?>
389 <div class="cell grid-x">
390 <label class="cell large-3 medium-5 small-9">
391 <?php echo esc_html(acym_translation('ACYM_ADVANCED_ACL'));
392 acym_info(['textShownInTooltip' => 'ACYM_ADVANCED_ACL_DESC']); ?>
393 </label>
394 <div class="cell auto">
395 <button type="button" class="button button-secondary" id="acym__configuration__acl__toggle"><?php echo esc_html(
396 acym_translation('ACYM_SHOW_HIDE')
397 ); ?></button>
398 </div>
399 </div>
400 </div>
401 <div class="grid-x grid-margin-x" id="acym__configuration__acl__zone">
402 <input type="hidden" name="json_acl" id="json_acl" />
403 <?php foreach ($data['acl_advanced'] as $page => $title) { ?>
404 <div class="cell grid-x acym__configuration__acl__row">
405 <div class="cell large-3 margin-left-1">
406 <?php echo esc_html(acym_translation($title)); ?>
407 </div>
408 <div class="cell auto">
409 <?php $data['aclType']->display($page); ?>
410 </div>
411 </div>
412 <?php } ?>
413 </div>
414 </div>
415 <?php } ?>
416 <?php if ('joomla' === ACYM_CMS) {
417 if (acym_level(ACYM_ENTERPRISE)) { ?>
418 <div class="margin-bottom-2">
419 <div class="acym__title acym__title__secondary"><?php echo esc_html(acym_translation('ACYM_FRONTEND_EDITION')); ?></div>
420 <div class="grid-x grid-margin-x grid-margin-y">
421 <div class="cell large-3 small-12"><?php echo esc_html(acym_translation('ACYM_FRONT_DELETE_BUTTON'));
422 acym_info(
423 ['textShownInTooltip' => 'ACYM_FRONT_DELETE_BUTTON_DESC']
424 ); ?></div>
425 <div class="cell auto">
426 <?php
427 acym_radio(
428 [
429 'delete' => acym_translation('ACYM_DELETE_THE_SUBSCRIBER'),
430 'removesub' => acym_translation('ACYM_REMOVE_USER_SUBSCRIPTION'),
431 ],
432 'config[frontend_delete_button]',
433 $this->config->get('frontend_delete_button', 'delete')
434 );
435 ?>
436 </div>
437 </div>
438 <div class="grid-x grid-margin-x grid-margin-y">
439 <div class="cell large-3"><?php echo esc_html(acym_translation('ACYM_FRONT_FILTER_CAMPAIGNS')); ?></div>
440 <div class="cell large-9">
441 <?php
442 acym_select(
443 [
444 'own' => acym_translation('ACYM_FRONT_ONLY_CREATED_CAMPAIGNS'),
445 'allowed' => acym_translation('ACYM_FRONT_SENT_TO_ALLOWED_LISTS'),
446 ],
447 'config[front_campaigns_filter]',
448 $this->config->get('front_campaigns_filter', 'own'),
449 [
450 'class' => 'acym__select',
451 ],
452 'value',
453 'text',
454 null,
455 false,
456 true
457 );
458 ?>
459 </div>
460 </div>
461 </div>
462 <?php // __END__enterprise_
463 }
464 } ?>
465 <div class="margin-bottom-2">
466 <div class="acym__title acym__title__secondary"><?php echo esc_html(acym_translation('ACYM_FILES')); ?></div>
467 <div class="grid-x grid-margin-y margin-y">
468
469 <label class="cell large-3" for="allowed_files">
470 <?php echo esc_html(acym_translation('ACYM_ALLOWED_FILES'));
471 acym_info(['textShownInTooltip' => 'ACYM_ALLOWED_FILES_DESC']); ?>
472 </label>
473 <input class="cell auto"
474 id="allowed_files"
475 type="text"
476 name="config[allowed_files]"
477 value="<?php echo esc_attr($this->config->get('allowed_files')); ?>" />
478 </div>
479 <div class="grid-x grid-margin-y margin-y">
480 <label class="cell large-3" for="uploadfolder">
481 <?php echo esc_html(acym_translation('ACYM_UPLOAD_FOLDER'));
482 acym_info(['textShownInTooltip' => 'ACYM_UPLOAD_FOLDER_DESC']); ?>
483 </label>
484 <input class="cell large-9" id="uploadfolder" type="text" name="config[uploadfolder]" value="<?php echo esc_attr($this->config->get('uploadfolder')); ?>" />
485 </div>
486 <?php
487 ?>
488 <div class="cell grid-x grid-margin-y margin-y acym_vcenter">
489 <label class="cell large-3" for="php_overrides">
490 <?php echo esc_html(acym_translation('ACYM_ALLOW_PHP_OVERRIDES'));
491 acym_info(['textShownInTooltip' => 'ACYM_ALLOW_PHP_OVERRIDES_DESC']); ?>
492 </label>
493 <div class="cell grid-x large-9">
494 <?php
495 acym_switch([
496 'name' => 'config[php_overrides]',
497 'value' => $this->config->get('php_overrides', 0),
498 ]);
499 ?>
500 </div>
501 </div>
502 </div>
503 <div class="acym__configuration__check-database margin-bottom-2">
504 <div class="acym__title acym__title__secondary"><?php echo esc_html(acym_translation('ACYM_REDIRECTIONS')); ?></div>
505 <div class="grid-x grid-margin-x margin-y">
506 <div class="cell grid-x acym_vcenter">
507 <label class="cell large-3" for="allowed_files">
508 <?php echo esc_html(acym_translation('ACYM_ALLOWED_HOSTS'));
509 acym_info(['textShownInTooltip' => 'ACYM_ALLOWED_HOSTS_DESC']); ?>
510 </label>
511 <div class="cell grid-x large-9">
512 <?php
513 $allowedHosts = $this->config->get('allowed_hosts', '');
514 if (empty($allowedHosts)) {
515 $allowedHosts = [];
516 } else {
517 $allowedHosts = explode(',', $allowedHosts);
518 }
519 $allowedHostsFormatted = [];
520 if (!empty($allowedHosts)) {
521 foreach ($allowedHosts as $host) {
522 $allowedHostsFormatted[$host] = $host;
523 }
524 }
525 acym_selectMultiple(
526 $allowedHostsFormatted,
527 'config[allowed_hosts]',
528 $allowedHosts,
529 ['class' => 'acym__allowed__hosts__select', 'placeholder' => acym_translation('ACYM_ENTER_NEW_DOMAIN')],
530 'value',
531 'text',
532 true
533 );
534 ?>
535 </div>
536 </div>
537 <div class="cell grid-x acym_vcenter">
538 <label class="cell large-3" for="allowed_files">
539 <?php
540 echo esc_html(acym_translation('ACYM_ACTIVATE_AUTOLOGIN_URLS'));
541 acym_info(['textShownInTooltip' => 'ACYM_ACTIVATE_AUTOLOGIN_URLS_DESCRIPTION']);
542 ?>
543 </label>
544 <div class="cell grid-x large-9">
545 <?php
546 acym_switch([
547 'name' => 'config[autologin_urls]',
548 'value' => $this->config->get('autologin_urls', 0),
549 'toggle' => 'autologin_urls_duration',
550 ]);
551 ?>
552 </div>
553 </div>
554 <div class="cell grid-x acym_vcenter" id="autologin_urls_duration">
555 <label class="cell large-3">
556 <?php echo esc_html(acym_translation('ACYM_AUTOLOGIN_TOKEN_DURATION'));
557 acym_info(['textShownInTooltip' => 'ACYM_AUTOLOGIN_TOKEN_DURATION_DESC']); ?>
558 </label>
559 <div class="cell large-9">
560 <input type="number"
561 name="config[autologin_token_duration]"
562 value="<?php echo intval($this->config->get('autologin_token_duration', 48)); ?>"
563 min="1"
564 class="intext_input" />
565 </div>
566 </div>
567 </div>
568 </div>
569 <div class="margin-bottom-2">
570 <div class="acym__title acym__title__secondary"><?php echo esc_html(acym_translation('ACYM_CRON')); ?></div>
571 <div class="grid-x grid-margin-x margin-y">
572 <div class="cell grid-x acym_vcenter">
573 <label class="cell large-3" for="cron_security">
574 <?php echo esc_html(acym_translation('ACYM_ADD_SECURITY_KEY_CRON')); ?>
575 </label>
576 <div class="cell grid-x large-9">
577 <?php
578 acym_switch([
579 'name' => 'config[cron_security]',
580 'value' => $this->config->get('cron_security', 0),
581 ]);
582 ?>
583 </div>
584 </div>
585 </div>
586 <div class="grid-x grid-margin-y margin-y">
587 <label class="cell large-3" for="cron_key">
588 <?php echo esc_html(acym_translation('ACYM_CRON_KEY'));
589 acym_info(['textShownInTooltip' => 'ACYM_CRON_KEY_DESC']); ?>
590 </label>
591 <input class="cell large-9"
592 id="cron_key"
593 type="text"
594 name="config[cron_key]"
595 value="<?php echo esc_attr($this->config->get('cron_key', $this->config->get('security_key', ''))); ?>" />
596 </div>
597 </div>
598
599 <div class="margin-bottom-2">
600 <div class="acym__title acym__title__secondary"><?php echo esc_html(acym_translation('ACYM_URL')); ?></div>
601 <div class="grid-x grid-margin-x margin-y">
602 <div class="cell grid-x acym_vcenter">
603 <label class="cell large-3" for="different_admin_url_toggle">
604 <?php echo esc_html(acym_translation('ACYM_FRONT_BACK_URL')); ?>
605 </label>
606 <div class="cell grid-x large-9">
607 <?php
608 acym_switch([
609 'name' => 'config[different_admin_url_toggle]',
610 'value' => $this->config->get('different_admin_url_toggle', 0),
611 'toggle' => 'cron_security_config',
612 ]);
613 ?>
614 </div>
615 </div>
616 </div>
617 <div class="grid-x grid-margin-y margin-y" id="cron_security_config">
618 <div class="cell grid-x acym_vcenter">
619 <label class="cell large-3" for="different_admin_url_value">
620 <?php echo esc_html(acym_translation('ACYM_BACKEND_URL')); ?>
621 </label>
622 <?php $differentUrl = $this->config->get('different_admin_url_value'); ?>
623 <input class="cell large-9"
624 id="different_admin_url_value"
625 type="text"
626 name="config[different_admin_url_value]"
627 placeholder="<?php echo esc_attr(rtrim(ACYM_LIVE, '/')); ?>"
628 value="<?php echo esc_attr($differentUrl); ?>" />
629 </div>
630 </div>
631 </div>
632
633 <div class="acym__configuration__check-database margin-bottom-2">
634 <div class="acym__title acym__title__secondary"><?php echo esc_html(acym_translation('ACYM_CONFIGURATION_DB_MAINTENANCE')); ?></div>
635 <div class="grid-x grid-margin-x margin-y">
636 <div class="cell grid-x">
637 <?php
638 acym_tooltip(
639 [
640 'hoveredText' => '<button type="button" class="cell medium-shrink button button-secondary" id="checkdb_button">'.acym_translation(
641 'ACYM_CHECK_DB'
642 ).'</button>',
643 'textShownInTooltip' => acym_translation('ACYM_INTRO_CHECK_DATABASE'),
644 'classContainer' => 'cell medium-shrink',
645 ]
646 );
647 ?>
648 <div class="cell auto padding-left-1" id="checkdb_report"></div>
649 </div>
650 <?php if (acym_existsAcyMailing59()) { ?>
651 <div class="cell grid-x">
652 <button type="submit" data-task="redomigration" class="cell medium-shrink button button-secondary acy_button_submit">
653 <?php echo esc_html(acym_translation('ACYM_REDO_MIGRATION')); ?>
654 </button>
655 </div>
656 <?php } ?>
657 </div>
658 </div>
659
660 <?php if (acym_isLogFileErrorExist()) { ?>
661 <div class="acym__configuration__log">
662 <div class="acym__title acym__title__secondary"><?php echo esc_html(acym_translation('ACYM_LOG_FILE')); ?></div>
663 <div class="grid-x grid-margin-x margin-y">
664 <div class="cell grid-x">
665 <div class="cell grid-x">
666 <?php
667 acym_modal(
668 acym_translation('ACYM_REPORT_SEE'),
669 '',
670 null,
671 [],
672 [
673 'class' => 'button button-secondary',
674 'data-ajax' => 'true',
675 'data-iframe' => '&ctrl=configuration&task=seeLogs&filename='.acym_getErrorLogFilename(),
676 ]
677 );
678 ?>
679 </div>
680 </div>
681 </div>
682 </div>
683 <?php } ?>
684 </div>
685 </div>
686