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/Helpers/global/view.php +59 -34 10.2.2 → 11.1.0 View file →
@@ -1,8 +1,10 @@
1 1 <?php
2 +defined('ABSPATH') || die('Restricted Access');
2 3
3 -function acym_getView(string $ctrl, string $view, bool $forceBackend = false)
4 +function acym_getView(string $ctrl, string $view, bool $forceBackend = false): string
4 5 {
6 + // Handle page override
5 7 $override = acym_getPageOverride($ctrl, $view, $forceBackend);
6 8
7 9 if (file_exists($override)) {
8 10 return $override;
@@ -12,23 +14,23 @@
12 14 return $viewsFolder.ucfirst($ctrl).DS.'tmpl'.DS.$view.'.php';
13 15 }
14 16 }
15 17
16 -function acym_getPartial($family, $view)
18 +function acym_getPartial(string $family, string $view): string
17 19 {
18 20 return ACYM_PARTIAL.$family.DS.$view.'.php';
19 21 }
20 22
21 -function acym_loadAssets($ctrl, $task)
23 +function acym_loadAssets(string $ctrl, string $task): void
22 24 {
23 25 $scope = acym_isAdmin() ? 'back' : 'front';
24 26 acym_loadCmsScripts();
27 + $config = acym_config();
25 28
29 + // Include JS
26 30 acym_addScript(
27 31 true,
28 - 'const ACYM_AVAILABLE_PLUGINS = "'.str_replace('"', '\"', ACYM_AVAILABLE_PLUGINS).'";
29 - const ACYM_UPDATEME_API_URL = "'.ACYM_UPDATEME_API_URL.'";
30 - const AJAX_URL_ACYMAILING = "'.ACYM_ACYMAILING_WEBSITE.'";
32 + 'const ACYM_UPDATEME_API_URL = "'.ACYM_UPDATEME_API_URL.'";
31 33 const ACYM_MEDIA_URL = "'.ACYM_MEDIA_URL.'";
32 34 const ACYM_CMS = "'.addslashes(ACYM_CMS).'";
33 35 const ACYM_J40 = '.(defined('ACYM_J40') && ACYM_J40 ? 'true' : 'false').';
34 36 const FOUNDATION_FOR_EMAIL = "'.ACYM_CSS.'libraries/foundation_email.min.css?v='.filemtime(ACYM_MEDIA.'css'.DS.'libraries'.DS.'foundation_email.min.css').'";
@@ -39,9 +41,10 @@
39 41 const ACYM_PLUGINS_URL = "'.addslashes(ACYM_PLUGINS_URL).'";
40 42 const ACYM_ROOT_URI = "'.acym_rootURI().'";
41 43 const ACYM_CONTROLLER = "'.addslashes($ctrl).'";
42 44 const ACYM_TASK = "'.addslashes($task).'";
43 - const ACYM_SOCIAL_MEDIA = "'.addslashes(ACYM_SOCIAL_MEDIA).'";'
45 + const ACYM_SOCIAL_MEDIA = "'.addslashes(ACYM_SOCIAL_MEDIA).'";
46 + const ACYM_LEVEL = "'.addslashes($config->get('level', '')).'";'
44 47 );
45 48
46 49 acym_addScript(false, ACYM_JS.'helpers.min.js?v='.filemtime(ACYM_MEDIA.'js'.DS.'helpers.min.js'));
47 50
@@ -68,8 +71,9 @@
68 71 if (file_exists(ACYM_MEDIA.'js'.DS.$scope.DS.$ctrl.DS.$task.'.min.js')) {
69 72 acym_addScript(false, ACYM_JS.$scope.'/'.$ctrl.'/'.$task.'.min.js?v='.filemtime(ACYM_MEDIA.'js'.DS.$scope.DS.$ctrl.DS.$task.'.min.js'));
70 73 }
71 74
75 + // Include CSS
72 76 acym_addStyle(false, ACYM_CSS.'global.min.css?v='.filemtime(ACYM_MEDIA.'css'.DS.'global.min.css'));
73 77
74 78 if (!acym_isExcludedFrontView($ctrl, $task)) {
75 79 acym_addStyle(false, ACYM_CSS.$scope.'_global.min.css?v='.filemtime(ACYM_MEDIA.'css'.DS.$scope.'_global.min.css'));
@@ -79,11 +83,14 @@
79 83 acym_addStyle(false, ACYM_CSS.$scope.'/'.$ctrl.'.min.css?v='.filemtime(ACYM_MEDIA.'css'.DS.$scope.DS.$ctrl.'.min.css'));
80 84 }
81 85 }
82 86
83 -function acym_getJSMessages()
87 +/**
88 + * Get translated error message for JS form validation
89 + */
90 +function acym_getJSMessages(): string
84 91 {
85 - $msg = "{";
92 + $msg = '{';
86 93 $msg .= '"email": "'.acym_translation('ACYM_VALID_EMAIL', true).'",';
87 94 $msg .= '"number": "'.acym_translation('ACYM_VALID_NUMBER', true).'",';
88 95 $msg .= '"requiredMsg": "'.acym_translation('ACYM_REQUIRED_FIELD', true).'",';
89 96 $msg .= '"defaultMsg": "'.acym_translation('ACYM_DEFAULT_VALIDATION_ERROR', true).'"';
@@ -332,8 +339,11 @@
332 339 'ACYM_TEXT_MODE',
333 340 'ACYM_TERMS_POLICY_OPTIONS',
334 341 'ACYM_TERMS_CONDITIONS',
335 342 'ACYM_PRIVACY_POLICY',
343 + 'ACYM_TERMS_CONDITIONS_URL',
344 + 'ACYM_PRIVACY_POLICY_URL',
345 + 'ACYM_DISPLAY_TRACKING_CONSENT',
336 346 'ACYM_SUBSCRIBE_OPTIONS',
337 347 'ACYM_SUCCESS_MODE',
338 348 'ACYM_CONFIRMATION_MESSAGE',
339 349 'ACYM_UNSUBSCRIBE_OPTIONS',
@@ -395,9 +405,9 @@
395 405 'ACYM_UNSPLASH_KEY_NEEDED',
396 406 'ACYM_GET_ONE_HERE',
397 407 'ACYM_ENTITY',
398 408 'ACYM_DELETE_DOMAIN_CONFIRMATION',
399 - 'ACYM_TENOR_KEY_NEEDED',
409 + 'ACYM_GIPHY_KEY_NEEDED',
400 410 'ACYM_COPY_CODE',
401 411 'ACYM_SCENARIO_ARE_YOU_SURE_DELETE_X',
402 412 'ACYM_DELAY',
403 413 'ACYM_CONDITION',
@@ -414,8 +424,13 @@
414 424 'ACYM_SETTINGS',
415 425 'ACYM_SCENARIO_ARE_YOU_SURE_DELETE_X_WITH_CHILDREN_NODES',
416 426 'ACYM_SCENARIO',
417 427 'ACYM_SCENARIOS',
428 + 'ACYM_EXTRA_INFORMATION',
429 + 'ACYM_SELECT_A_PAGE',
430 + 'ACYM_DEDICATED_SENDING_PROCESS_WARNING',
431 + 'ACYM_GET_MY_API_KEY',
432 + 'ACYM_DOMAIN_UNDER_REVIEW',
418 433 ];
419 434
420 435 foreach ($keysToLoad as $oneKey) {
421 436 $msg .= ',"'.$oneKey.'": "'.acym_translation($oneKey, true).'"';
@@ -420,22 +435,27 @@
420 435 foreach ($keysToLoad as $oneKey) {
421 436 $msg .= ',"'.$oneKey.'": "'.acym_translation($oneKey, true).'"';
422 437 }
423 438
424 - $msg .= "}";
439 + $msg .= '}';
425 440
426 441 return $msg;
427 442 }
428 443
429 -function acym_isExcludedFrontView($ctrl, $task)
444 +function acym_isExcludedFrontView(string $ctrl, string $task): bool
430 445 {
431 - if ('archive' === $ctrl && in_array($task, ['view'])) return true;
432 - if ('frontusers' === $ctrl && 'profile' === $task) return true;
446 + if ('archive' === $ctrl && $task === 'view') {
447 + return true;
448 + }
433 449
450 + if ('frontusers' === $ctrl && 'profile' === $task) {
451 + return true;
452 + }
453 +
434 454 return false;
435 455 }
436 456
437 -function acym_listingActions($actions, $deleteMessage = '', $ctrl = '')
457 +function acym_listingActions(array $actions, string $deleteMessage = '', string $ctrl = ''): void
438 458 {
439 459 $defaultAction = new stdClass();
440 460 $defaultAction->value = 0;
441 461 $defaultAction->text = acym_translation('ACYM_CHOOSE_ACTION');
@@ -442,9 +462,8 @@
442 462 $defaultAction->disable = true;
443 463
444 464 array_unshift($actions, $defaultAction);
445 465
446 - $completeMessage = '<input id="acym__listing__action__delete-message" value="'.(empty($deleteMessage) ? '' : acym_escape($deleteMessage)).'" type="hidden">';
447 466
448 467 $attributes = [
449 468 'class' => 'medium-shrink cell margin-right-1',
450 469 ];
@@ -449,32 +468,38 @@
449 468 'class' => 'medium-shrink cell margin-right-1',
450 469 ];
451 470 if (!empty($ctrl)) {
452 471 $attributes['data-ctrl'] = $ctrl;
453 - $completeMessage .= ' <input type="hidden" name="return_listing">';
454 472 }
455 473
456 - return acym_select(
457 - $actions,
458 - '',
459 - 0,
460 - $attributes,
461 - 'value',
462 - 'text',
463 - 'listing_actions'
464 - ).$completeMessage;
474 + acym_select(
475 + $actions,
476 + '',
477 + 0,
478 + $attributes,
479 + 'value',
480 + 'text',
481 + 'listing_actions',
482 + false,
483 + true
484 + );
485 +
486 + echo '<input id="acym__listing__action__delete-message" value="'.esc_attr(empty($deleteMessage) ? '' : $deleteMessage).'" type="hidden">';
487 + if (!empty($ctrl)) {
488 + echo ' <input type="hidden" name="return_listing">';
489 + }
465 490 }
466 491
467 -function acym_backToListing($listingName = null): string
492 +function acym_backToListing(?string $listingName = null): void
468 493 {
469 494 if (empty($listingName)) {
470 495 $listingName = acym_getVar('cmd', 'ctrl');
471 496 }
497 + ?>
472 498
473 - $returnLink = '<p class="acym__back_to_listing">';
474 - $returnLink .= '<a href="'.acym_completeLink($listingName).'" class="acym_vcenter">';
475 - $returnLink .= '<i class="acymicon-chevron-left"></i> '.acym_translation('ACYM_BACK_TO_LISTING');
476 - $returnLink .= '</a>';
477 - $returnLink .= '</p>';
478 -
479 - return $returnLink;
499 + <p class="acym__back_to_listing">
500 + <a href="<?php echo esc_url(acym_completeLink($listingName)); ?>" class="acym_vcenter">
501 + <i class="acymicon-chevron-left"></i> <?php echo esc_html(acym_translation('ACYM_BACK_TO_LISTING')); ?>
502 + </a>
503 + </p>
504 + <?php
480 505 }