PluginProbe
AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress / 11.0.4
AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress v11.0.4
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 / Helpers / global / view.php

view.php in AcyMailing – An Ultimate Newsletter Plugin and Marketing Automation Solution for WordPress 11.0.4, at back/Helpers/global/view.php

506 lines 15.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 defined('ABSPATH') || die('Restricted Access');
3
4 function acym_getView(string $ctrl, string $view, bool $forceBackend = false): string
5 {
6 // Handle page override
7 $override = acym_getPageOverride($ctrl, $view, $forceBackend);
8
9 if (file_exists($override)) {
10 return $override;
11 } else {
12 $viewsFolder = ($forceBackend || acym_isAdmin()) ? ACYM_VIEW : ACYM_VIEW_FRONT;
13
14 return $viewsFolder.ucfirst($ctrl).DS.'tmpl'.DS.$view.'.php';
15 }
16 }
17
18 function acym_getPartial(string $family, string $view): string
19 {
20 return ACYM_PARTIAL.$family.DS.$view.'.php';
21 }
22
23 function acym_loadAssets(string $ctrl, string $task): void
24 {
25 $scope = acym_isAdmin() ? 'back' : 'front';
26 acym_loadCmsScripts();
27 $config = acym_config();
28
29 // Include JS
30 acym_addScript(
31 true,
32 'const ACYM_UPDATEME_API_URL = "'.ACYM_UPDATEME_API_URL.'";
33 const ACYM_MEDIA_URL = "'.ACYM_MEDIA_URL.'";
34 const ACYM_CMS = "'.addslashes(ACYM_CMS).'";
35 const ACYM_J40 = '.(defined('ACYM_J40') && ACYM_J40 ? 'true' : 'false').';
36 const FOUNDATION_FOR_EMAIL = "'.ACYM_CSS.'libraries/foundation_email.min.css?v='.filemtime(ACYM_MEDIA.'css'.DS.'libraries'.DS.'foundation_email.min.css').'";
37 const ACYM_FIXES_FOR_EMAIL = "'.str_replace('"', '\"', acym_getEmailCssFixes()).'";
38 const ACYM_REGEX_EMAIL = /^'.acym_getEmailRegex(true).'$/i;
39 const ACYM_JS_TXT = '.acym_getJSMessages().';
40 const ACYM_CORE_DYNAMICS_URL = "'.ACYM_CORE_DYNAMICS_URL.'";
41 const ACYM_PLUGINS_URL = "'.addslashes(ACYM_PLUGINS_URL).'";
42 const ACYM_ROOT_URI = "'.acym_rootURI().'";
43 const ACYM_CONTROLLER = "'.addslashes($ctrl).'";
44 const ACYM_TASK = "'.addslashes($task).'";
45 const ACYM_SOCIAL_MEDIA = "'.addslashes(ACYM_SOCIAL_MEDIA).'";
46 const ACYM_LEVEL = "'.addslashes($config->get('level', '')).'";'
47 );
48
49 acym_addScript(false, ACYM_JS.'helpers.min.js?v='.filemtime(ACYM_MEDIA.'js'.DS.'helpers.min.js'));
50
51 if ($ctrl !== 'archive') {
52 acym_addScript(false, ACYM_JS.'libraries/foundation.min.js?v='.filemtime(ACYM_MEDIA.'js'.DS.'libraries'.DS.'foundation.min.js'));
53 }
54
55 if ('back' === $scope) {
56 acym_addScript(false, ACYM_JS.'libraries/select2.min.js?v='.filemtime(ACYM_MEDIA.'js'.DS.'libraries'.DS.'select2.min.js'));
57 acym_addScript(false, ACYM_JS.$scope.'_helpers.min.js?v='.filemtime(ACYM_MEDIA.'js'.DS.$scope.'_helpers.min.js'));
58 }
59
60 acym_addScript(false, ACYM_JS.'global.min.js?v='.filemtime(ACYM_MEDIA.'js'.DS.'global.min.js'));
61 acym_addScript(false, ACYM_JS.$scope.'_global.min.js?v='.filemtime(ACYM_MEDIA.'js'.DS.$scope.'_global.min.js'));
62
63 if (file_exists(ACYM_MEDIA.'js'.DS.$scope.DS.$ctrl.'.min.js')) {
64 $params = [];
65 if ($ctrl === 'frontusers' && $task === 'unsubscribepage') {
66 $params['defer'] = true;
67 }
68 acym_addScript(false, ACYM_JS.$scope.'/'.$ctrl.'.min.js?v='.filemtime(ACYM_MEDIA.'js'.DS.$scope.DS.$ctrl.'.min.js'), $params);
69 }
70
71 if (file_exists(ACYM_MEDIA.'js'.DS.$scope.DS.$ctrl.DS.$task.'.min.js')) {
72 acym_addScript(false, ACYM_JS.$scope.'/'.$ctrl.'/'.$task.'.min.js?v='.filemtime(ACYM_MEDIA.'js'.DS.$scope.DS.$ctrl.DS.$task.'.min.js'));
73 }
74
75 // Include CSS
76 acym_addStyle(false, ACYM_CSS.'global.min.css?v='.filemtime(ACYM_MEDIA.'css'.DS.'global.min.css'));
77
78 if (!acym_isExcludedFrontView($ctrl, $task)) {
79 acym_addStyle(false, ACYM_CSS.$scope.'_global.min.css?v='.filemtime(ACYM_MEDIA.'css'.DS.$scope.'_global.min.css'));
80 }
81
82 if (file_exists(ACYM_MEDIA.'css'.DS.$scope.DS.$ctrl.'.min.css')) {
83 acym_addStyle(false, ACYM_CSS.$scope.'/'.$ctrl.'.min.css?v='.filemtime(ACYM_MEDIA.'css'.DS.$scope.DS.$ctrl.'.min.css'));
84 }
85 }
86
87 /**
88 * Get translated error message for JS form validation
89 */
90 function acym_getJSMessages(): string
91 {
92 $msg = '{';
93 $msg .= '"email": "'.acym_translation('ACYM_VALID_EMAIL', true).'",';
94 $msg .= '"number": "'.acym_translation('ACYM_VALID_NUMBER', true).'",';
95 $msg .= '"requiredMsg": "'.acym_translation('ACYM_REQUIRED_FIELD', true).'",';
96 $msg .= '"defaultMsg": "'.acym_translation('ACYM_DEFAULT_VALIDATION_ERROR', true).'"';
97
98 $keysToLoad = [
99 'ACYM_UNSUBSCRIBED_FROM_LIST',
100 'ACYM_SUBSCRIBED_TO_LIST',
101 'ACYM_FOLLOW_UP',
102 'ACYM_FOLLOW_UPS',
103 'ACYM_MAILBOX_ACTIONS',
104 'ACYM_MAILBOX_ACTION',
105 'ACYM_TEMPLATE',
106 'ACYM_TEMPLATES',
107 'ACYM_CAMPAIGN',
108 'ACYM_CAMPAIGNS',
109 'ACYM_ELEMENT',
110 'ACYM_FORMS',
111 'ACYM_FORM',
112 'ACYM_USERS',
113 'ACYM_USER',
114 'ACYM_FIELD',
115 'ACYM_FIELDS',
116 'ACYM_LIST',
117 'ACYM_LISTS',
118 'ACYM_SEGMENTS',
119 'ACYM_SEGMENT',
120 'ACYM_OVERRIDES',
121 'ACYM_AUTOMATION',
122 'ACYM_QUEUE',
123 'ACYM_BOUNCES',
124 'ACYM_OVERRIDE',
125 'ACYM_AUTOMATIONS',
126 'ACYM_BOUNCE',
127 'ACYM_ARE_YOU_SURE_DELETE_ONE_X',
128 'ACYM_ARE_YOU_SURE_DELETE_X',
129 'ACYM_ARE_YOU_SURE_ACTIVE_X',
130 'ACYM_ARE_YOU_SURE_INACTIVE_X',
131 'ACYM_ARE_YOU_SURE_ACTIVE_ONE_X',
132 'ACYM_ARE_YOU_SURE_INACTIVE_ONE_X',
133 'ACYM_BACKGROUND_IMAGE',
134 'ACYM_ACTIVATED',
135 'ACYM_DEACTIVATED',
136 'ACYM_NOT_ENABLED_YET',
137 'ACYM_LICENSE_ACTIVATED',
138 'ACYM_SELECT_FIELD',
139 'ACYM_NO_FIELD_AVAILABLE',
140 'ACYM_SUBMIT_AND_DEACTIVATE',
141 'ACYM_SKIP_AND_DEACTIVATE',
142 'ACYM_SAVE',
143 'ACYM_ARE_YOU_SURE',
144 'ACYM_INSERT_IMG_BAD_NAME',
145 'ACYM_NON_VALID_URL',
146 'ACYM_SEARCH',
147 'ACYM_CANCEL',
148 'ACYM_CONFIRM',
149 'ACYM_TEMPLATE_CHANGED_CLICK_ON_SAVE',
150 'ACYM_SURE_SEND_TRANSALTION',
151 'ACYM_TESTS_SPAM_SENT',
152 'ACYM_CONFIRMATION_CANCEL_CAMPAIGN_QUEUE',
153 'ACYM_EXPORT_SELECT_LIST',
154 'ACYM_YES',
155 'ACYM_NO',
156 'ACYM_NEXT',
157 'ACYM_BACK',
158 'ACYM_SKIP',
159 'ACYM_INTRO_DRAG_CONTENT',
160 'ACYM_SEND_TEST_SUCCESS',
161 'ACYM_SEND_TEST_ERROR',
162 'ACYM_COPY_DEFAULT_TRANSLATIONS_CONFIRM',
163 'ACYM_BECARFUL_BACKGROUND_IMG',
164 'ACYM_CANT_DELETE_AND_SAVE',
165 'ACYM_AND',
166 'ACYM_OR',
167 'ACYM_ERROR',
168 'ACYM_EDIT_MAIL',
169 'ACYM_CREATE_MAIL',
170 'ACYM_DELETE_MY_DATA_CONFIRM',
171 'ACYM_CHOOSE_COLUMN',
172 'ACYM_AUTOSAVE_USE',
173 'ACYM_SELECT_NEW_ICON',
174 'ACYM_SESSION_IS_GOING_TO_END',
175 'ACYM_CLICKS_OUT_OF',
176 'ACYM_OF_CLICKS',
177 'ACYM_ARE_SURE_DUPLICATE_TEMPLATE',
178 'ACYM_NOT_FOUND',
179 'ACYM_EMAIL',
180 'ACYM_EMAILS',
181 'ACYM_ERROR_SAVING',
182 'ACYM_LOADING_ERROR',
183 'ACYM_AT_LEAST_ONE_USER',
184 'ACYM_NO_DCONTENT_TEXT',
185 'ACYM_PREVIEW',
186 'ACYM_PREVIEW_DESC',
187 'ACYM_CONTENT_TYPE',
188 'ACYM_TEMPLATE_EMPTY',
189 'ACYM_DRAG_BLOCK_AND_DROP_HERE',
190 'ACYM_WELL_DONE_DROP_HERE',
191 'ACYM_REPLACE_CONFIRM',
192 'ACYM_STATS_START_DATE_LOWER',
193 'ACYM_ARE_YOU_SURE_DELETE_ADD_ON',
194 'ACYM_COULD_NOT_SUBMIT_FORM_CONTACT_ADMIN_WEBSITE',
195 'ACYM_TEMPLATE_CREATED',
196 'ACYM_UNSUBSCRIBE',
197 'ACYM_BUTTON',
198 'ACYM_SPACE_BETWEEN_BLOCK',
199 'ACYM_X1_AND_X2',
200 'ACYM_COULD_NOT_SAVE_THUMBNAIL_ERROR_X',
201 'ACYM_REQUEST_FAILED_TIMEOUT',
202 'ACYM_INSERT_DYNAMIC_TEXT',
203 'ACYM_PLEASE_SET_A_LICENSE_KEY',
204 'ACYM_COULD_NOT_UPLOAD_CSV_FILE',
205 'ACYM_RESET_VIEW_CONFIRM',
206 'ACYM_FILL_ALL_INFORMATION',
207 'ACYM_ASSIGN_EMAIL_COLUMN',
208 'ACYM_DUPLICATE_X_FOR_X',
209 'ACYM_SEARCH_FOR_GIFS',
210 'ACYM_NO_RESULTS_FOUND',
211 'ACYM_SEARCH_GIFS',
212 'ACYM_COULD_NOT_LOAD_GIF_TRY_AGAIN',
213 'ACYM_DONT_APPLY_STYLE_TAG_A',
214 'ACYM_TITLE',
215 'ACYM_PRICE',
216 'ACYM_SHORT_DESCRIPTION',
217 'ACYM_DESCRIPTION',
218 'ACYM_CATEGORIES',
219 'ACYM_DETAILS',
220 'ACYM_LINK',
221 'ACYM_INTRO_TEXT',
222 'ACYM_FULL_TEXT',
223 'ACYM_CATEGORY',
224 'ACYM_PUBLISHING_DATE',
225 'ACYM_READ_MORE',
226 'ACYM_IMAGE',
227 'ACYM_DOWNLOAD',
228 'ACYM_INTRO_ONLY',
229 'ACYM_EXCERPT',
230 'ACYM_LINK_DOWNLOAD',
231 'ACYM_IMAGE_HTML_TAG',
232 'ACYM_LOCATION',
233 'ACYM_TAGS',
234 'ACYM_START_DATE',
235 'ACYM_END_DATE',
236 'ACYM_FEATURED_IMAGE',
237 'ACYM_DATE',
238 'ACYM_START_DATE',
239 'ACYM_START_DATE_SIMPLE',
240 'ACYM_END_DATE_SIMPLE',
241 'ACYM_AUTHOR',
242 'ACYM_SHOW_FILTERS',
243 'ACYM_HIDE_FILTERS',
244 'ACYM_PLEASE_FILL_FORM_NAME',
245 'ACYM_SELECT',
246 'ACYM_CHANGE',
247 'ACYM_ENTER_SUBJECT',
248 'ACYM_REMOVE_LANG_CONFIRMATION',
249 'ACYM_RESET_TRANSLATION',
250 'ACYM_SAVE_AS_TEMPLATE_CONFIRMATION',
251 'ACYM_VERTICAL_PADDING',
252 'ACYM_HORIZONTAL_PADDING',
253 'ACYM_VERTICAL_PADDING_DESC',
254 'ACYM_HORIZONTAL_PADDING_DESC',
255 'ACYM_SELECT_A_PICTURE',
256 'ACYM_PLEASE_SELECT_FILTERS',
257 'ACYM_DELETE_THIS_FILTER',
258 'ACYM_IF_YOU_SELECT_SEGMENT_FILTERS_ERASE',
259 'ACYM_PLEASE_FILL_A_NAME_FOR_YOUR_SEGMENT',
260 'ACYM_COULD_NOT_SAVE_SEGMENT',
261 'ACYM_SENT',
262 'ACYM_RECIPIENTS',
263 'ACYM_RESET_OVERRIDES_CONFIRMATION',
264 'ACYM_OPEN_PERCENTAGE',
265 'ACYM_MONDAY',
266 'ACYM_TUESDAY',
267 'ACYM_WEDNESDAY',
268 'ACYM_THURSDAY',
269 'ACYM_FRIDAY',
270 'ACYM_SATURDAY',
271 'ACYM_SUNDAY',
272 'ACYM_SELECT2_RESULTS_NOT_LOADED',
273 'ACYM_SELECT2_DELETE_X_CHARACTERS',
274 'ACYM_SELECT2_ENTER_X_CHARACTERS',
275 'ACYM_SELECT2_LOADING_MORE_RESULTS',
276 'ACYM_SELECT2_LIMIT_X_ITEMS',
277 'ACYM_SELECT2_SEARCHING',
278 'ACYM_JANUARY',
279 'ACYM_FEBRUARY',
280 'ACYM_MARCH',
281 'ACYM_APRIL',
282 'ACYM_MAY',
283 'ACYM_JUNE',
284 'ACYM_JULY',
285 'ACYM_AUGUST',
286 'ACYM_SEPTEMBER',
287 'ACYM_OCTOBER',
288 'ACYM_NOVEMBER',
289 'ACYM_DECEMBER',
290 'ACYM_NEW_SUBSCRIBERS',
291 'ACYM_NEW_UNSUBSCRIBERS',
292 'ACYM_DEFAULT',
293 'ACYM_SELECT_IMAGE_TO_UPLOAD',
294 'ACYM_USE_THIS_IMAGE',
295 'ACYM_BACKGROUND_COLOR',
296 'ACYM_BACKGROUND_COLOR_DESC',
297 'ACYM_START_HOUR',
298 'ACYM_END_HOUR',
299 'ACYM_START_MINUTES',
300 'ACYM_END_MINUTES',
301 'ACYM_START_AM_PM',
302 'ACYM_END_AM_PM',
303 'ACYM_START_DAY_TIME',
304 'ACYM_END_DAY_TIME',
305 'ACYM_LOCATION_URL',
306 'ACYM_LATITUDE_LONGITUDE',
307 'ACYM_ADDRESS',
308 'ACYM_NO_FILE_CHOSEN',
309 'ACYM_BEFORE_FIELDS',
310 'ACYM_AFTER_FIELDS',
311 'ACYM_MODE_HORIZONTAL',
312 'ACYM_MODE_VERTICAL',
313 'ACYM_MODE_TABLELESS',
314 'ACYM_TEXT_INSIDE',
315 'ACYM_TEXT_OUTSIDE',
316 'ACYM_NO',
317 'ACYM_CONNECTED_USER_SUBSCRIBED',
318 'ACYM_SUCCESS_REPLACE',
319 'ACYM_SUCCESS_REPLACE_TEMP',
320 'ACYM_SUCCESS_TOP_TEMP',
321 'ACYM_SUCCESS_STANDARD',
322 'ACYM_LEFT',
323 'ACYM_CENTER',
324 'ACYM_RIGHT',
325 'ACYM_IN_HEADER',
326 'ACYM_ON_THE_MODULE',
327 'ACYM_ACYMAILING_SUBSCRIPTION_FORM',
328 'ACYM_MAIN_OPTIONS',
329 'ACYM_DISPLAY_MODE',
330 'ACYM_SUBSCRIBE_TEXT',
331 'ACYM_SUBSCRIBE_TEXT_LOGGED_IN',
332 'ACYM_AUTO_SUBSCRIBE_TO',
333 'ACYM_DISPLAYED_LISTS',
334 'ACYM_LISTS_CHECKED_DEFAULT',
335 'ACYM_DISPLAY_LISTS',
336 'ACYM_LISTS_OPTIONS',
337 'ACYM_FIELDS_OPTIONS',
338 'ACYM_FIELDS_TO_DISPLAY',
339 'ACYM_TEXT_MODE',
340 'ACYM_TERMS_POLICY_OPTIONS',
341 'ACYM_TERMS_CONDITIONS',
342 'ACYM_PRIVACY_POLICY',
343 'ACYM_TERMS_CONDITIONS_URL',
344 'ACYM_PRIVACY_POLICY_URL',
345 'ACYM_DISPLAY_TRACKING_CONSENT',
346 'ACYM_SUBSCRIBE_OPTIONS',
347 'ACYM_SUCCESS_MODE',
348 'ACYM_CONFIRMATION_MESSAGE',
349 'ACYM_UNSUBSCRIBE_OPTIONS',
350 'ACYM_DISPLAY_UNSUB_BUTTON',
351 'ACYM_UNSUBSCRIBE_TEXT',
352 'ACYM_REDIRECT_LINK_UNSUB',
353 'ACYM_ADVANCED_OPTIONS',
354 'ACYM_POST_TEXT',
355 'ACYM_ALIGNMENT',
356 'ACYM_MODULE_JS',
357 'ACYM_SOURCE',
358 'ACYM_FORM_AUTOFILL_ID',
359 'ACYM_REDIRECT_LINK',
360 'ACYM_DKIM_KEY',
361 'ACYM_VALUE',
362 'ACYM_CF_VALUE_CHANGED',
363 'ACYM_OLD_VALUE',
364 'ACYM_NEW_VALUE',
365 'ACYM_CUSTOM_FIELDS',
366 'ACYM_CUSTOM_VIEW_EDITOR_DESC',
367 'ACYM_PREVIEW_CUSTOM_VIEW',
368 'ACYM_ORGANIZER',
369 'ACYM_ACYMAILING_PROFILE_FORM',
370 'ACYM_VISIBLE_LISTS',
371 'ACYM_DROPDOWN_LISTS',
372 'ACYM_ACYMAILING_ARCHIVE_FORM',
373 'ACYM_ARCHIVE_POPUP',
374 'ACYM_ARCHIVE_ONLY_USER_LIST',
375 'ACYM_ZONE_NAME',
376 'ACYM_ZONE_SAVE_TEXT',
377 'ACYM_NEW_CUSTOM_ZONE',
378 'ACYM_INSERT',
379 'ACYM_LOAD',
380 'ACYM_CONFIRM_DELETION_ZONE',
381 'ACYM_WIDGET_CAMPAIGN_NUMBER_PER_PAGE',
382 'ACYM_OTHER_ORGANIZER',
383 'ACYM_OTHER_LOCATION',
384 'ACYM_NEXT_OCCURRENCES',
385 'ACYM_CONDITIONS_AND_FILTERS_WILL_BE_DELETED',
386 'ACYM_PENDING',
387 'ACYM_APPROVAL_FAILED',
388 'ACYM_VALIDATED',
389 'ACYM_WALK_ACYMAILER_STATUS_SUCCESS',
390 'ACYM_WALK_ACYMAILER_STATUS_FAIL',
391 'ACYM_WALK_ACYMAILER_STATUS_WAIT',
392 'ACYM_ALWAYS',
393 'ACYM_COULD_NOT_LOAD_UNSPLASH',
394 'ACYM_REACHED_SEARCH_LIMITS',
395 'ACYM_SEARCH_IMAGES',
396 'ACYM_SEARCH_FOR_IMAGES',
397 'ACYM_FULL_WIDTH',
398 'ACYM_MEDIUM',
399 'ACYM_SMALL',
400 'ACYM_THUMBNAIL',
401 'ACYM_ORIENTATION',
402 'ACYM_LANDSCAPE',
403 'ACYM_PORTRAIT',
404 'ACYM_SQUARISH',
405 'ACYM_UNSPLASH_KEY_NEEDED',
406 'ACYM_GET_ONE_HERE',
407 'ACYM_ENTITY',
408 'ACYM_DELETE_DOMAIN_CONFIRMATION',
409 'ACYM_GIPHY_KEY_NEEDED',
410 'ACYM_COPY_CODE',
411 'ACYM_SCENARIO_ARE_YOU_SURE_DELETE_X',
412 'ACYM_DELAY',
413 'ACYM_CONDITION',
414 'ACYM_ACTION',
415 'ACYM_TRIGGER',
416 'ACYM_MINUTES',
417 'ACYM_HOURS',
418 'ACYM_DAYS',
419 'ACYM_ADD_DELAY',
420 'ACYM_ADD_CONDITION',
421 'ACYM_ADD_ACTION',
422 'ACYM_WAIT_X_UNIT',
423 'ACYM_DELAY_MUST_BE_SET',
424 'ACYM_SETTINGS',
425 'ACYM_SCENARIO_ARE_YOU_SURE_DELETE_X_WITH_CHILDREN_NODES',
426 'ACYM_SCENARIO',
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',
433 ];
434
435 foreach ($keysToLoad as $oneKey) {
436 $msg .= ',"'.$oneKey.'": "'.acym_translation($oneKey, true).'"';
437 }
438
439 $msg .= '}';
440
441 return $msg;
442 }
443
444 function acym_isExcludedFrontView(string $ctrl, string $task): bool
445 {
446 if ('archive' === $ctrl && $task === 'view') {
447 return true;
448 }
449
450 if ('frontusers' === $ctrl && 'profile' === $task) {
451 return true;
452 }
453
454 return false;
455 }
456
457 function acym_listingActions(array $actions, string $deleteMessage = '', string $ctrl = ''): void
458 {
459 $defaultAction = new stdClass();
460 $defaultAction->value = 0;
461 $defaultAction->text = acym_translation('ACYM_CHOOSE_ACTION');
462 $defaultAction->disable = true;
463
464 array_unshift($actions, $defaultAction);
465
466
467 $attributes = [
468 'class' => 'medium-shrink cell margin-right-1',
469 ];
470 if (!empty($ctrl)) {
471 $attributes['data-ctrl'] = $ctrl;
472 }
473
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 }
490 }
491
492 function acym_backToListing(?string $listingName = null): void
493 {
494 if (empty($listingName)) {
495 $listingName = acym_getVar('cmd', 'ctrl');
496 }
497 ?>
498
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
505 }
506