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