Shortcodes Ultimate - Version 5.10.2

Version Description

Download this release

Release Info

Developer gn_themes
Plugin Icon 128x128 Shortcodes Ultimate
Version 5.10.2
Comparing to
See all releases

Code changes from version 5.10.1 to 5.10.2

Files changed (66) hide show
  1. admin/class-shortcodes-ultimate-admin-settings.php +145 -109
  2. admin/class-shortcodes-ultimate-notice-unsafe-features.php +37 -0
  3. admin/class-shortcodes-ultimate-notice.php +15 -17
  4. admin/class-shortcodes-ultimate-widget.php +1 -1
  5. admin/partials/notices/unsafe-features.php +23 -0
  6. changelog.txt +16 -0
  7. inc/core/generator.php +1 -1
  8. includes/class-shortcodes-ultimate-activator.php +2 -4
  9. includes/class-shortcodes-ultimate-upgrade.php +19 -3
  10. includes/class-shortcodes-ultimate.php +14 -0
  11. includes/config/default-settings.php +1 -0
  12. includes/deprecated/class-su-widget.php +61 -0
  13. includes/functions-helpers.php +27 -2
  14. includes/shortcodes/accordion.php +19 -17
  15. includes/shortcodes/animate.php +54 -48
  16. includes/shortcodes/audio.php +40 -34
  17. includes/shortcodes/box.php +5 -5
  18. includes/shortcodes/button.php +19 -5
  19. includes/shortcodes/carousel.php +137 -115
  20. includes/shortcodes/column.php +37 -31
  21. includes/shortcodes/csv-table.php +13 -0
  22. includes/shortcodes/custom-gallery.php +4 -1
  23. includes/shortcodes/dailymotion.php +1 -1
  24. includes/shortcodes/divider.php +1 -1
  25. includes/shortcodes/document.php +1 -1
  26. includes/shortcodes/dropcap.php +38 -31
  27. includes/shortcodes/dummy-image.php +47 -39
  28. includes/shortcodes/expand.php +69 -63
  29. includes/shortcodes/frame.php +30 -24
  30. includes/shortcodes/guests.php +18 -16
  31. includes/shortcodes/heading.php +1 -1
  32. includes/shortcodes/highlight.php +34 -27
  33. includes/shortcodes/label.php +37 -29
  34. includes/shortcodes/list.php +2 -2
  35. includes/shortcodes/media.php +17 -13
  36. includes/shortcodes/menu.php +32 -23
  37. includes/shortcodes/meta.php +49 -41
  38. includes/shortcodes/note.php +5 -1
  39. includes/shortcodes/permalink.php +38 -32
  40. includes/shortcodes/post.php +1 -7
  41. includes/shortcodes/private.php +16 -14
  42. includes/shortcodes/pullquote.php +30 -23
  43. includes/shortcodes/qrcode.php +4 -4
  44. includes/shortcodes/quote.php +2 -2
  45. includes/shortcodes/row.php +18 -16
  46. includes/shortcodes/screenr.php +18 -12
  47. includes/shortcodes/service.php +1 -1
  48. includes/shortcodes/siblings.php +33 -24
  49. includes/shortcodes/slider.php +118 -92
  50. includes/shortcodes/spacer.php +30 -24
  51. includes/shortcodes/spoiler.php +2 -2
  52. includes/shortcodes/subpages.php +38 -29
  53. includes/shortcodes/table.php +14 -0
  54. includes/shortcodes/tabs.php +4 -4
  55. includes/shortcodes/tooltip.php +6 -6
  56. includes/shortcodes/user.php +1 -7
  57. includes/shortcodes/video.php +61 -55
  58. includes/shortcodes/vimeo.php +2 -2
  59. includes/shortcodes/youtube-advanced.php +5 -1
  60. includes/shortcodes/youtube.php +1 -1
  61. includes/upgrade/5.1.1.php +0 -13
  62. includes/upgrade/5.2.0.php +0 -20
  63. includes/upgrade/5.4.0.php +0 -8
  64. languages/shortcodes-ultimate.pot +304 -278
  65. readme.txt +10 -10
  66. shortcodes-ultimate.php +3 -3
admin/class-shortcodes-ultimate-admin-settings.php CHANGED
@@ -54,6 +54,138 @@ final class Shortcodes_Ultimate_Admin_Settings extends Shortcodes_Ultimate_Admin
54
 
55
  }
56
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
  /**
58
  * Add menu page.
59
  *
@@ -104,6 +236,8 @@ final class Shortcodes_Ultimate_Admin_Settings extends Shortcodes_Ultimate_Admin
104
 
105
  $setting = wp_parse_args( $setting, $this->setting_defaults );
106
 
 
 
107
  add_settings_field(
108
  $setting['id'],
109
  $setting['title'],
@@ -191,120 +325,22 @@ final class Shortcodes_Ultimate_Admin_Settings extends Shortcodes_Ultimate_Admin
191
 
192
  }
193
 
194
- /**
195
- * Retrieve the plugin settings data.
196
- *
197
- * @since 5.0.0
198
- * @access protected
199
- * @return array The plugin settings data.
200
- */
201
- protected function get_plugin_settings() {
202
-
203
- if ( empty( $this->plugin_settings ) ) {
204
-
205
- /**
206
- * General settings
207
- */
208
-
209
- $this->plugin_settings[] = array(
210
- 'id' => 'su_option_custom-css',
211
- 'type' => 'css',
212
- 'sanitize' => 'wp_strip_all_tags',
213
- 'title' => __( 'Custom CSS code', 'shortcodes-ultimate' ),
214
- 'description' => __( 'In this field you can write your custom CSS code for shortcodes. These styles will have higher priority compared to original styles of shortcodes. You can use variables in your CSS code. These variables will be replaced by respective values.', 'shortcodes-ultimate' ),
215
- );
216
-
217
- $this->plugin_settings[] = array(
218
- 'id' => 'su_option_supported_blocks',
219
- 'type' => 'checkbox-group',
220
- 'sanitize' => array( $this, 'sanitize_checkbox_group' ),
221
- 'title' => __( 'Supported blocks', 'shortcodes-ultimate' ),
222
- 'description' => __( 'Enable the "Insert Shortcode" button in selected blocks', 'shortcodes-ultimate' ),
223
- 'options' => su_get_config( 'supported-blocks' ),
224
- );
225
-
226
- $this->plugin_settings[] = array(
227
- 'id' => 'su_option_enable_shortcodes_in',
228
- 'type' => 'checkbox-group',
229
- 'sanitize' => array( $this, 'sanitize_checkbox_group' ),
230
- 'title' => __( 'Enable shortcodes in', 'shortcodes-ultimate' ),
231
- 'description' => __( 'This option allows you to enable shortcodes in places where they are disabled by default', 'shortcodes-ultimate' ),
232
- 'options' => array(
233
- 'term_description' => __( 'Term descriptions (Categories, Tags, Custom Taxonomies)', 'shortcodes-ultimate' ),
234
- 'widget_text' => __( 'Text widgets', 'shortcodes-ultimate' ),
235
- ),
236
- );
237
-
238
- /**
239
- * Advanced settings
240
- */
241
-
242
- $this->plugin_settings[] = array(
243
- 'id' => 'su_option_prefix',
244
- 'sanitize' => array( $this, 'sanitize_prefix' ),
245
- 'page' => $this->plugin_prefix . 'advanced-settings',
246
- 'group' => $this->plugin_prefix . 'advanced-settings',
247
- 'section' => $this->plugin_prefix . 'advanced',
248
- 'title' => __( 'Shortcodes prefix', 'shortcodes-ultimate' ),
249
- 'description' => __( 'This prefix will be used in shortcode names. For example: set <code>MY_</code> prefix and shortcodes will look like <code>[MY_button]</code>. Please note that this setting does not change shortcodes that have been inserted earlier. Change this setting very carefully.', 'shortcodes-ultimate' ),
250
- );
251
-
252
- $this->plugin_settings[] = array(
253
- 'id' => 'su_option_custom-formatting',
254
- 'type' => 'checkbox',
255
- 'sanitize' => array( $this, 'sanitize_checkbox' ),
256
- 'page' => $this->plugin_prefix . 'advanced-settings',
257
- 'group' => $this->plugin_prefix . 'advanced-settings',
258
- 'section' => $this->plugin_prefix . 'advanced',
259
- 'title' => __( 'Custom formatting', 'shortcodes-ultimate' ),
260
- 'description' => __( 'Enable this option if you face any problems with formatting of nested shortcodes.', 'shortcodes-ultimate' ),
261
- );
262
-
263
- $this->plugin_settings[] = array(
264
- 'id' => 'su_option_skip',
265
- 'type' => 'checkbox',
266
- 'sanitize' => array( $this, 'sanitize_checkbox' ),
267
- 'page' => $this->plugin_prefix . 'advanced-settings',
268
- 'group' => $this->plugin_prefix . 'advanced-settings',
269
- 'section' => $this->plugin_prefix . 'advanced',
270
- 'title' => __( 'Skip default settings', 'shortcodes-ultimate' ),
271
- 'description' => __( 'Enable this option if you don\'t want the inserted shortcode to contain any settings that were not changed by you. As a result, inserted shortcodes will be much shorter.', 'shortcodes-ultimate' ),
272
- );
273
-
274
- $this->plugin_settings[] = array(
275
- 'id' => 'su_option_generator_access',
276
- 'page' => $this->plugin_prefix . 'advanced-settings',
277
- 'group' => $this->plugin_prefix . 'advanced-settings',
278
- 'section' => $this->plugin_prefix . 'advanced',
279
- 'title' => __( 'Required user capability', 'shortcodes-ultimate' ),
280
- 'description' => __( 'A user must have this capability to be able to use the "Insert Shortcode" button. Do not change this value if you do not understand its meaning as this may lower the plugin security.', 'shortcodes-ultimate' ),
281
- );
282
 
283
- $this->plugin_settings[] = array(
284
- 'id' => 'su_option_hide_deprecated',
285
- 'type' => 'checkbox',
286
- 'sanitize' => array( $this, 'sanitize_checkbox' ),
287
- 'page' => $this->plugin_prefix . 'advanced-settings',
288
- 'group' => $this->plugin_prefix . 'advanced-settings',
289
- 'section' => $this->plugin_prefix . 'advanced',
290
- 'title' => __( 'Hide deprecated shortcodes', 'shortcodes-ultimate' ),
291
- 'description' => __( 'This option hides all deprecated shortcodes from the Insert Shortcode window and at the Available Shortcodes page. Hidden shortcodes will continue to work.', 'shortcodes-ultimate' ),
292
- );
293
 
294
- $this->plugin_settings[] = array(
295
- 'id' => 'su_option_do_nested_shortcodes_alt',
296
- 'type' => 'checkbox',
297
- 'sanitize' => array( $this, 'sanitize_checkbox' ),
298
- 'page' => $this->plugin_prefix . 'advanced-settings',
299
- 'group' => $this->plugin_prefix . 'advanced-settings',
300
- 'section' => $this->plugin_prefix . 'advanced',
301
- 'title' => __( 'Nested shortcodes alternative mode', 'shortcodes-ultimate' ),
302
- 'description' => __( 'This option enables alternative (deprecated) mode for nested shortcodes.', 'shortcodes-ultimate' ),
303
- );
304
 
 
 
305
  }
306
 
307
- return apply_filters( 'su/admin/settings', $this->plugin_settings );
 
308
 
309
  }
310
 
54
 
55
  }
56
 
57
+ /**
58
+ * Retrieve the plugin settings data.
59
+ *
60
+ * @since 5.0.0
61
+ * @access protected
62
+ * @return array The plugin settings data.
63
+ */
64
+ protected function get_plugin_settings() {
65
+
66
+ if ( empty( $this->plugin_settings ) ) {
67
+
68
+ /**
69
+ * General settings
70
+ */
71
+
72
+ $this->plugin_settings[] = array(
73
+ 'id' => 'su_option_custom-css',
74
+ 'type' => 'css',
75
+ 'sanitize' => 'wp_strip_all_tags',
76
+ 'title' => __( 'Custom CSS code', 'shortcodes-ultimate' ),
77
+ 'description' => __( 'In this field you can write your custom CSS code for shortcodes. These styles will have higher priority compared to original styles of shortcodes. You can use variables in your CSS code. These variables will be replaced by respective values.', 'shortcodes-ultimate' ),
78
+ );
79
+
80
+ $this->plugin_settings[] = array(
81
+ 'id' => 'su_option_supported_blocks',
82
+ 'type' => 'checkbox-group',
83
+ 'sanitize' => array( $this, 'sanitize_checkbox_group' ),
84
+ 'title' => __( 'Supported blocks', 'shortcodes-ultimate' ),
85
+ 'description' => __( 'Enable the "Insert Shortcode" button in selected blocks', 'shortcodes-ultimate' ),
86
+ 'options' => su_get_config( 'supported-blocks' ),
87
+ );
88
+
89
+ $this->plugin_settings[] = array(
90
+ 'id' => 'su_option_enable_shortcodes_in',
91
+ 'type' => 'checkbox-group',
92
+ 'sanitize' => array( $this, 'sanitize_checkbox_group' ),
93
+ 'title' => __( 'Enable shortcodes in', 'shortcodes-ultimate' ),
94
+ 'description' => __( 'This option allows you to enable shortcodes in places where they are disabled by default', 'shortcodes-ultimate' ),
95
+ 'options' => array(
96
+ 'term_description' => __( 'Term descriptions (Categories, Tags, Custom Taxonomies)', 'shortcodes-ultimate' ),
97
+ 'widget_text' => __( 'Text widgets', 'shortcodes-ultimate' ),
98
+ ),
99
+ );
100
+
101
+ /**
102
+ * Advanced settings
103
+ */
104
+
105
+ $this->plugin_settings[] = array(
106
+ 'id' => 'su_option_prefix',
107
+ 'sanitize' => array( $this, 'sanitize_prefix' ),
108
+ 'page' => $this->plugin_prefix . 'advanced-settings',
109
+ 'group' => $this->plugin_prefix . 'advanced-settings',
110
+ 'section' => $this->plugin_prefix . 'advanced',
111
+ 'title' => __( 'Shortcodes prefix', 'shortcodes-ultimate' ),
112
+ 'description' => __( 'This prefix will be used in shortcode names. For example: set <code>MY_</code> prefix and shortcodes will look like <code>[MY_button]</code>. Please note that this setting does not change shortcodes that have been inserted earlier. Change this setting very carefully.', 'shortcodes-ultimate' ),
113
+ );
114
+
115
+ $this->plugin_settings[] = array(
116
+ 'id' => 'su_option_custom-formatting',
117
+ 'type' => 'checkbox',
118
+ 'sanitize' => array( $this, 'sanitize_checkbox' ),
119
+ 'page' => $this->plugin_prefix . 'advanced-settings',
120
+ 'group' => $this->plugin_prefix . 'advanced-settings',
121
+ 'section' => $this->plugin_prefix . 'advanced',
122
+ 'title' => __( 'Custom formatting', 'shortcodes-ultimate' ),
123
+ 'description' => __( 'Enable this option if you face any problems with formatting of nested shortcodes.', 'shortcodes-ultimate' ),
124
+ );
125
+
126
+ $this->plugin_settings[] = array(
127
+ 'id' => 'su_option_skip',
128
+ 'type' => 'checkbox',
129
+ 'sanitize' => array( $this, 'sanitize_checkbox' ),
130
+ 'page' => $this->plugin_prefix . 'advanced-settings',
131
+ 'group' => $this->plugin_prefix . 'advanced-settings',
132
+ 'section' => $this->plugin_prefix . 'advanced',
133
+ 'title' => __( 'Skip default settings', 'shortcodes-ultimate' ),
134
+ 'description' => __( 'Enable this option if you don\'t want the inserted shortcode to contain any settings that were not changed by you. As a result, inserted shortcodes will be much shorter.', 'shortcodes-ultimate' ),
135
+ );
136
+
137
+ $this->plugin_settings[] = array(
138
+ 'id' => 'su_option_generator_access',
139
+ 'page' => $this->plugin_prefix . 'advanced-settings',
140
+ 'group' => $this->plugin_prefix . 'advanced-settings',
141
+ 'section' => $this->plugin_prefix . 'advanced',
142
+ 'title' => __( 'Required user capability', 'shortcodes-ultimate' ),
143
+ 'description' => __( 'A user must have this capability to be able to use the "Insert Shortcode" button. Do not change this value if you do not understand its meaning as this may lower the plugin security.', 'shortcodes-ultimate' ),
144
+ );
145
+
146
+ $this->plugin_settings[] = array(
147
+ 'id' => 'su_option_unsafe_features',
148
+ 'type' => 'checkbox',
149
+ 'sanitize' => array( $this, 'sanitize_checkbox' ),
150
+ 'page' => $this->plugin_prefix . 'advanced-settings',
151
+ 'group' => $this->plugin_prefix . 'advanced-settings',
152
+ 'section' => $this->plugin_prefix . 'advanced',
153
+ 'title' => __( 'Unsafe features', 'shortcodes-ultimate' ),
154
+ 'description' => sprintf(
155
+ '%s <a href="https://getshortcodes.com/docs/unsafe-features/" target="_blank">%s</a>.',
156
+ __( 'This option enables potentially unsafe features of the plugin such as onlick attribute of the Button shortcode. The option is enabled by default and is turned off automatically once you have more than one non-admin user on the site.', 'shortcodes-ultimate' ),
157
+ __( 'Learn more', 'shortcodes-ultimate' )
158
+ ),
159
+ );
160
+
161
+ $this->plugin_settings[] = array(
162
+ 'id' => 'su_option_hide_deprecated',
163
+ 'type' => 'checkbox',
164
+ 'sanitize' => array( $this, 'sanitize_checkbox' ),
165
+ 'page' => $this->plugin_prefix . 'advanced-settings',
166
+ 'group' => $this->plugin_prefix . 'advanced-settings',
167
+ 'section' => $this->plugin_prefix . 'advanced',
168
+ 'title' => __( 'Hide deprecated shortcodes', 'shortcodes-ultimate' ),
169
+ 'description' => __( 'This option hides all deprecated shortcodes from the Insert Shortcode window and at the Available Shortcodes page. Hidden shortcodes will continue to work.', 'shortcodes-ultimate' ),
170
+ );
171
+
172
+ $this->plugin_settings[] = array(
173
+ 'id' => 'su_option_do_nested_shortcodes_alt',
174
+ 'type' => 'checkbox',
175
+ 'sanitize' => array( $this, 'sanitize_checkbox' ),
176
+ 'page' => $this->plugin_prefix . 'advanced-settings',
177
+ 'group' => $this->plugin_prefix . 'advanced-settings',
178
+ 'section' => $this->plugin_prefix . 'advanced',
179
+ 'title' => __( 'Nested shortcodes alternative mode', 'shortcodes-ultimate' ),
180
+ 'description' => __( 'This option enables alternative (deprecated) mode for nested shortcodes.', 'shortcodes-ultimate' ),
181
+ );
182
+
183
+ }
184
+
185
+ return apply_filters( 'su/admin/settings', $this->plugin_settings );
186
+
187
+ }
188
+
189
  /**
190
  * Add menu page.
191
  *
236
 
237
  $setting = wp_parse_args( $setting, $this->setting_defaults );
238
 
239
+ $setting['label_for'] = $setting['id'];
240
+
241
  add_settings_field(
242
  $setting['id'],
243
  $setting['title'],
325
 
326
  }
327
 
328
+ public function maybe_disable_unsafe_features() {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
329
 
330
+ if ( '' === get_option( 'su_option_unsafe_features' ) ) {
331
+ return;
332
+ }
 
 
 
 
 
 
 
333
 
334
+ if ( su_current_user_can_insert() ) {
335
+ return;
336
+ }
 
 
 
 
 
 
 
337
 
338
+ if ( 0 !== get_option( 'su_option_unsafe_features_auto_off', 0 ) ) {
339
+ return;
340
  }
341
 
342
+ update_option( 'su_option_unsafe_features', '' );
343
+ add_option( 'su_option_unsafe_features_auto_off', true );
344
 
345
  }
346
 
admin/class-shortcodes-ultimate-notice-unsafe-features.php ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ final class Shortcodes_Ultimate_Notice_Unsafe_Features extends Shortcodes_Ultimate_Notice {
4
+
5
+ public function display_notice() {
6
+
7
+ if ( ! get_option( 'su_option_unsafe_features_auto_off' ) ) {
8
+ return;
9
+ }
10
+
11
+ if ( $this->is_dismissed() ) {
12
+ return;
13
+ }
14
+
15
+ if ( ! $this->current_user_can_view() ) {
16
+ return;
17
+ }
18
+
19
+ // phpcs:disable
20
+ $is_plugin_page =
21
+ isset( $_GET['page'] ) &&
22
+ in_array(
23
+ $_GET['page'],
24
+ array( 'shortcodes-ultimate', 'shortcodes-ultimate-settings' ),
25
+ true
26
+ );
27
+ // phpcs:enable
28
+
29
+ if ( 'dashboard' !== $this->get_current_screen_id() && ! $is_plugin_page ) {
30
+ return;
31
+ }
32
+
33
+ $this->include_template();
34
+
35
+ }
36
+
37
+ }
admin/class-shortcodes-ultimate-notice.php CHANGED
@@ -72,12 +72,12 @@ abstract class Shortcodes_Ultimate_Notice {
72
  * @param string $notice_id The ID of the notice.
73
  * @param string $template_file The full path to the notice template file.
74
  */
75
- protected function __construct( $notice_id, $template_file ) {
76
 
77
  $this->notice_id = $notice_id;
78
  $this->template_file = $template_file;
79
  $this->first_time_delay = 0;
80
- $this->defer_delay = 1 * DAY_IN_SECONDS;
81
  $this->capability = 'manage_options';
82
  $this->option_name = 'su_option_dismissed_notices';
83
 
@@ -118,15 +118,11 @@ abstract class Shortcodes_Ultimate_Notice {
118
  $id = $this->notice_id;
119
 
120
  if ( $status === 'dismissed' ) {
121
- $dismissed[$id] = true;
122
- }
123
-
124
- elseif ( $status === 'deferred' ) {
125
- $dismissed[$id] = time() + (int) $this->defer_delay;
126
- }
127
-
128
- elseif ( is_numeric( $status ) ) {
129
- $dismissed[$id] = time() + (int) $status;
130
  }
131
 
132
  update_option( $this->option_name, $dismissed );
@@ -185,12 +181,14 @@ abstract class Shortcodes_Ultimate_Notice {
185
  */
186
  public function get_dismiss_link( $defer = false, $redirect = '' ) {
187
 
188
- $link = admin_url( sprintf(
 
189
  'admin-post.php?action=%s&nonce=%s&id=%s',
190
  'su_dismiss_notice',
191
  wp_create_nonce( 'su_dismiss_notice' ),
192
  $this->notice_id
193
- ) );
 
194
 
195
  if ( $defer ) {
196
  $link = add_query_arg( 'defer', 1, $link );
@@ -217,17 +215,17 @@ abstract class Shortcodes_Ultimate_Notice {
217
  $id = $this->notice_id;
218
 
219
  // No data about the notice (not dismissed/deferred)
220
- if ( ! isset( $dismissed[$id] ) ) {
221
  return false;
222
  }
223
 
224
  // Notice deferred
225
- if ( is_numeric( $dismissed[$id] ) && time() < $dismissed[$id] ) {
226
  return true;
227
  }
228
 
229
  // Notice dismissed
230
- if ( $dismissed[$id] === true ) {
231
  return true;
232
  }
233
 
@@ -246,7 +244,7 @@ abstract class Shortcodes_Ultimate_Notice {
246
  $dismissed = $this->get_dismissed_notices();
247
  $id = $this->notice_id;
248
 
249
- if ( ! isset( $dismissed[$id] ) ) {
250
  $this->update_notice_status( $this->first_time_delay );
251
  }
252
 
72
  * @param string $notice_id The ID of the notice.
73
  * @param string $template_file The full path to the notice template file.
74
  */
75
+ public function __construct( $notice_id, $template_file ) {
76
 
77
  $this->notice_id = $notice_id;
78
  $this->template_file = $template_file;
79
  $this->first_time_delay = 0;
80
+ $this->defer_delay = 3 * DAY_IN_SECONDS;
81
  $this->capability = 'manage_options';
82
  $this->option_name = 'su_option_dismissed_notices';
83
 
118
  $id = $this->notice_id;
119
 
120
  if ( $status === 'dismissed' ) {
121
+ $dismissed[ $id ] = true;
122
+ } elseif ( $status === 'deferred' ) {
123
+ $dismissed[ $id ] = time() + (int) $this->defer_delay;
124
+ } elseif ( is_numeric( $status ) ) {
125
+ $dismissed[ $id ] = time() + (int) $status;
 
 
 
 
126
  }
127
 
128
  update_option( $this->option_name, $dismissed );
181
  */
182
  public function get_dismiss_link( $defer = false, $redirect = '' ) {
183
 
184
+ $link = admin_url(
185
+ sprintf(
186
  'admin-post.php?action=%s&nonce=%s&id=%s',
187
  'su_dismiss_notice',
188
  wp_create_nonce( 'su_dismiss_notice' ),
189
  $this->notice_id
190
+ )
191
+ );
192
 
193
  if ( $defer ) {
194
  $link = add_query_arg( 'defer', 1, $link );
215
  $id = $this->notice_id;
216
 
217
  // No data about the notice (not dismissed/deferred)
218
+ if ( ! isset( $dismissed[ $id ] ) ) {
219
  return false;
220
  }
221
 
222
  // Notice deferred
223
+ if ( is_numeric( $dismissed[ $id ] ) && time() < $dismissed[ $id ] ) {
224
  return true;
225
  }
226
 
227
  // Notice dismissed
228
+ if ( $dismissed[ $id ] === true ) {
229
  return true;
230
  }
231
 
244
  $dismissed = $this->get_dismissed_notices();
245
  $id = $this->notice_id;
246
 
247
+ if ( ! isset( $dismissed[ $id ] ) ) {
248
  $this->update_notice_status( $this->first_time_delay );
249
  }
250
 
admin/class-shortcodes-ultimate-widget.php CHANGED
@@ -31,7 +31,7 @@ class Shortcodes_Ultimate_Widget extends WP_Widget {
31
  }
32
 
33
  public function register() {
34
- register_widget( get_class() );
35
  }
36
 
37
  public function widget( $args, $instance ) {
31
  }
32
 
33
  public function register() {
34
+ register_widget( 'Shortcodes_Ultimate_Widget' );
35
  }
36
 
37
  public function widget( $args, $instance ) {
admin/partials/notices/unsafe-features.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php defined( 'ABSPATH' ) || exit; ?>
2
+
3
+ <?php
4
+ $advanced_settings_url = add_query_arg(
5
+ array(
6
+ 'page' => 'shortcodes-ultimate-settings',
7
+ 'advanced' => 1,
8
+ ),
9
+ admin_url( 'admin.php' )
10
+ );
11
+ ?>
12
+
13
+ <div class="notice notice-info shortcodes-ultimate-notice-unsafe-features">
14
+
15
+ <p><strong>Shortcodes Ultimate</strong></p>
16
+ <p><?php esc_html_e( 'Some minor features of the plugin have been automatically disabled to improve the security.', 'shortcodes-ultimate' ); ?></p>
17
+ <p>
18
+ <a href="https://getshortcodes.com/docs/unsafe-features/" target="blank"><?php esc_html_e( 'Learn more', 'shortcodes-ultimate' ); ?><span style="text-decoration:none;display:inline-block;vertical-align:middle;margin-left:4px"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="14" height="14" fill="none" stroke="currentcolor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5"><path d="M14 9 L3 9 3 29 23 29 23 18 M18 4 L28 4 28 14 M28 4 L14 18" /></svg></span></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
19
+ <a href="<?php echo esc_attr( $advanced_settings_url ); ?>#su_option_unsafe_features"><?php esc_html_e( 'Settings', 'shortcodes-ultimate' ); ?></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
20
+ <a href="<?php echo esc_attr( $this->get_dismiss_link() ); ?>"><?php esc_html_e( 'Dismiss', 'shortcodes-ultimate' ); ?></a>
21
+ </p>
22
+
23
+ </div>
changelog.txt CHANGED
@@ -1,3 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ### 5.10.0
2
 
3
  **What's new**
1
+ ### 5.10.1
2
+
3
+ **What's new**
4
+
5
+ - `su_qrcode`'s data attribute now understands the following variables: `%CURRENT_URL%` for the current page URL, and `%PERMALINK%` for post permalink
6
+
7
+ **Fixed**
8
+
9
+ - Fixed `tax_relation` attribute of the `su_posts` shortcode. Thanks to [janeri2021](https://wordpress.org/support/topic/error-in-shortcode-posts/)
10
+ - Fixed compatibility with Page Builder by SiteOrigin. [Details](https://github.com/siteorigin/so-widgets-bundle/issues/1247)
11
+ - Fixed `BlockControls` console warning in the Block Editor
12
+ - Added missing file `popper.min.js.map`
13
+ - Fixed issue with invalid z-index value in the Tooltip shortcode
14
+ - Fixed issue with the shortcode generator presets for the Tooltip shortcode
15
+
16
+
17
  ### 5.10.0
18
 
19
  **What's new**
inc/core/generator.php CHANGED
@@ -141,7 +141,7 @@ class Su_Generator {
141
  wp_enqueue_script(
142
  'shortcodes-ultimate-block-editor',
143
  plugins_url( 'includes/js/block-editor/index.js', SU_PLUGIN_FILE ),
144
- array( 'wp-element', 'wp-editor', 'wp-components', 'su-generator' ),
145
  SU_PLUGIN_VERSION,
146
  true
147
  );
141
  wp_enqueue_script(
142
  'shortcodes-ultimate-block-editor',
143
  plugins_url( 'includes/js/block-editor/index.js', SU_PLUGIN_FILE ),
144
+ array( 'wp-element', 'wp-components', 'su-generator' ),
145
  SU_PLUGIN_VERSION,
146
  true
147
  );
includes/class-shortcodes-ultimate-activator.php CHANGED
@@ -92,12 +92,10 @@ class Shortcodes_Ultimate_Activator {
92
 
93
  foreach ( $defaults as $option => $value ) {
94
 
95
- if ( get_option( $option, 0 ) !== 0 ) {
96
- continue;
97
  }
98
 
99
- add_option( $option, $value );
100
-
101
  }
102
 
103
  }
92
 
93
  foreach ( $defaults as $option => $value ) {
94
 
95
+ if ( get_option( $option, 0 ) === 0 ) {
96
+ add_option( $option, $value );
97
  }
98
 
 
 
99
  }
100
 
101
  }
includes/class-shortcodes-ultimate-upgrade.php CHANGED
@@ -61,11 +61,10 @@ final class Shortcodes_Ultimate_Upgrade {
61
  return;
62
  }
63
 
 
 
64
  $this->maybe_upgrade_to( '5.0.0' );
65
  $this->maybe_upgrade_to( '5.0.7' );
66
- $this->maybe_upgrade_to( '5.1.1' );
67
- $this->maybe_upgrade_to( '5.2.0' );
68
- $this->maybe_upgrade_to( '5.4.0' );
69
  $this->maybe_upgrade_to( '5.6.0' );
70
  $this->maybe_upgrade_to( '5.9.1' );
71
 
@@ -145,4 +144,21 @@ final class Shortcodes_Ultimate_Upgrade {
145
  update_option( $this->saved_version_option, $this->current_version, false );
146
  }
147
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
148
  }
61
  return;
62
  }
63
 
64
+ $this->setup_defaults();
65
+
66
  $this->maybe_upgrade_to( '5.0.0' );
67
  $this->maybe_upgrade_to( '5.0.7' );
 
 
 
68
  $this->maybe_upgrade_to( '5.6.0' );
69
  $this->maybe_upgrade_to( '5.9.1' );
70
 
144
  update_option( $this->saved_version_option, $this->current_version, false );
145
  }
146
 
147
+ /**
148
+ * Setup missing default settings
149
+ */
150
+ private function setup_defaults() {
151
+
152
+ $defaults = su_get_config( 'default-settings' );
153
+
154
+ foreach ( $defaults as $option => $value ) {
155
+
156
+ if ( get_option( $option, 0 ) === 0 ) {
157
+ add_option( $option, $value );
158
+ }
159
+
160
+ }
161
+
162
+ }
163
+
164
  }
includes/class-shortcodes-ultimate.php CHANGED
@@ -153,6 +153,7 @@ class Shortcodes_Ultimate {
153
  */
154
  require_once $this->plugin_path . 'admin/class-shortcodes-ultimate-notice.php';
155
  require_once $this->plugin_path . 'admin/class-shortcodes-ultimate-notice-rate.php';
 
156
 
157
  /**
158
  * Register custom widget
@@ -183,6 +184,7 @@ class Shortcodes_Ultimate {
183
  */
184
  require_once $this->plugin_path . 'includes/deprecated/class-su-data.php';
185
  require_once $this->plugin_path . 'includes/deprecated/class-su-tools.php';
 
186
  require_once $this->plugin_path . 'includes/deprecated/functions.php';
187
 
188
  /**
@@ -266,6 +268,7 @@ class Shortcodes_Ultimate {
266
  10,
267
  1
268
  );
 
269
 
270
  /**
271
  * Submenu: Add-ons
@@ -293,6 +296,17 @@ class Shortcodes_Ultimate {
293
  add_action( 'admin_notices', array( $this->rate_notice, 'display_notice' ) );
294
  add_action( 'admin_post_su_dismiss_notice', array( $this->rate_notice, 'dismiss_notice' ) );
295
 
 
 
 
 
 
 
 
 
 
 
 
296
  /**
297
  * Add/Save 'Slide link' field on attachment page.
298
  */
153
  */
154
  require_once $this->plugin_path . 'admin/class-shortcodes-ultimate-notice.php';
155
  require_once $this->plugin_path . 'admin/class-shortcodes-ultimate-notice-rate.php';
156
+ require_once $this->plugin_path . 'admin/class-shortcodes-ultimate-notice-unsafe-features.php';
157
 
158
  /**
159
  * Register custom widget
184
  */
185
  require_once $this->plugin_path . 'includes/deprecated/class-su-data.php';
186
  require_once $this->plugin_path . 'includes/deprecated/class-su-tools.php';
187
+ require_once $this->plugin_path . 'includes/deprecated/class-su-widget.php';
188
  require_once $this->plugin_path . 'includes/deprecated/functions.php';
189
 
190
  /**
268
  10,
269
  1
270
  );
271
+ add_action( 'admin_init', array( $this->settings_menu, 'maybe_disable_unsafe_features' ) );
272
 
273
  /**
274
  * Submenu: Add-ons
296
  add_action( 'admin_notices', array( $this->rate_notice, 'display_notice' ) );
297
  add_action( 'admin_post_su_dismiss_notice', array( $this->rate_notice, 'dismiss_notice' ) );
298
 
299
+ /**
300
+ * Notice: Unsafe features
301
+ */
302
+ $this->unsafe_features_notice = new Shortcodes_Ultimate_Notice_Unsafe_Features(
303
+ 'unsafe-features',
304
+ $this->plugin_path . 'admin/partials/notices/unsafe-features.php'
305
+ );
306
+
307
+ add_action( 'admin_notices', array( $this->unsafe_features_notice, 'display_notice' ) );
308
+ add_action( 'admin_post_su_dismiss_notice', array( $this->unsafe_features_notice, 'dismiss_notice' ) );
309
+
310
  /**
311
  * Add/Save 'Slide link' field on attachment page.
312
  */
includes/config/default-settings.php CHANGED
@@ -15,5 +15,6 @@ return apply_filters(
15
  'su_option_generator_access' => 'manage_options',
16
  'su_option_enable_shortcodes_in' => array( 'term_description' ),
17
  'su_option_hide_deprecated' => 'on',
 
18
  )
19
  );
15
  'su_option_generator_access' => 'manage_options',
16
  'su_option_enable_shortcodes_in' => array( 'term_description' ),
17
  'su_option_hide_deprecated' => 'on',
18
+ 'su_option_unsafe_features' => 'on',
19
  )
20
  );
includes/deprecated/class-su-widget.php ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Su_Widget extends WP_Widget {
4
+
5
+ function __construct() {
6
+ $widget_ops = array(
7
+ 'classname' => 'shortcodes-ultimate',
8
+ 'description' => __( 'Shortcodes Ultimate widget', 'shortcodes-ultimate' )
9
+ );
10
+ $control_ops = array(
11
+ 'width' => 300,
12
+ 'height' => 350,
13
+ 'id_base' => 'shortcodes-ultimate'
14
+ );
15
+ parent::__construct( 'shortcodes-ultimate', __( 'Shortcodes Ultimate', 'shortcodes-ultimate' ), $widget_ops, $control_ops );
16
+ }
17
+
18
+ public static function register() {
19
+ if ( defined( 'SITEORIGIN_PANELS_VERSION' ) ) {
20
+ register_widget( 'Su_Widget' );
21
+ }
22
+ }
23
+
24
+ function widget( $args, $instance ) {
25
+ extract( $args );
26
+ $title = apply_filters( 'widget_title', $instance['title'] );
27
+ $content = $instance['content'];
28
+ echo $before_widget;
29
+ if ( $title ) echo $before_title . $title . $after_title;
30
+ echo '<div class="textwidget">' . do_shortcode( $content ) . '</div>';
31
+ echo $after_widget;
32
+ }
33
+
34
+ function update( $new_instance, $old_instance ) {
35
+ $instance = $old_instance;
36
+ $instance['title'] = strip_tags( $new_instance['title'] );
37
+ $instance['content'] = $new_instance['content'];
38
+ return $instance;
39
+ }
40
+
41
+ function form( $instance ) {
42
+ $defaults = array(
43
+ 'title' => __( 'Shortcodes Ultimate', 'shortcodes-ultimate' ),
44
+ 'content' => ''
45
+ );
46
+ $instance = wp_parse_args( ( array ) $instance, $defaults );
47
+ ?>
48
+ <p>
49
+ <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', 'shortcodes-ultimate' ); ?></label>
50
+ <input type="text" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" class="widefat" />
51
+ </p>
52
+ <p>
53
+ <?php Su_Generator::button( array( 'target' => $this->get_field_id( 'content' ) ) ); ?><br/>
54
+ <textarea name="<?php echo $this->get_field_name( 'content' ); ?>" id="<?php echo $this->get_field_id( 'content' ); ?>" rows="7" class="widefat" style="margin-top:10px"><?php echo $instance['content']; ?></textarea>
55
+ </p>
56
+ <?php
57
+ }
58
+
59
+ }
60
+
61
+ add_action( 'widgets_init', array( 'Su_Widget', 'register' ) );
includes/functions-helpers.php CHANGED
@@ -91,7 +91,7 @@ function su_error_message( $title = '', $message = '' ) {
91
  }
92
 
93
  return sprintf(
94
- '<p class="su-error" style="padding:5px 10px;color:#ff685e;border-left:3px solid #ff685e;background:#fff">%1$s%2$s</p>',
95
  $title,
96
  $message
97
  );
@@ -126,6 +126,27 @@ function su_is_filter_safe( $filter ) {
126
  return is_string( $filter ) && false !== strpos( $filter, 'filter' );
127
  }
128
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129
  /**
130
  * Range converter.
131
  *
@@ -179,7 +200,7 @@ function su_parse_range( $string = '' ) {
179
  if ( ! function_exists( 'su_get_css_class' ) ) {
180
 
181
  function su_get_css_class( $atts ) {
182
- return $atts['class'] ? ' ' . trim( $atts['class'] ) : '';
183
  }
184
 
185
  }
@@ -353,3 +374,7 @@ function su_get_current_url() {
353
  return esc_url( "{$protocol}://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}" );
354
 
355
  }
 
 
 
 
91
  }
92
 
93
  return sprintf(
94
+ '<p class="su-error" style="padding:5px 10px;color:#8f3a35;border-left:3px solid #8f3a35;background:#fff7f6;line-height:1.35">%1$s%2$s</p>',
95
  $title,
96
  $message
97
  );
126
  return is_string( $filter ) && false !== strpos( $filter, 'filter' );
127
  }
128
 
129
+ /**
130
+ * Helper function to safely apply user defined filter to a given value
131
+ * @param string $filter Filter function name
132
+ * @param string $value Filterable value
133
+ * @return string A filtered value if the given filter is safe
134
+ */
135
+ function su_safely_apply_user_filter( $filter = null, $value = null ) {
136
+
137
+ if (
138
+ is_string( $filter ) &&
139
+ is_string( $value ) &&
140
+ su_is_filter_safe( $filter ) &&
141
+ function_exists( $filter )
142
+ ) {
143
+ $value = call_user_func( $filter, $value );
144
+ }
145
+
146
+ return $value;
147
+
148
+ }
149
+
150
  /**
151
  * Range converter.
152
  *
200
  if ( ! function_exists( 'su_get_css_class' ) ) {
201
 
202
  function su_get_css_class( $atts ) {
203
+ return $atts['class'] ? ' ' . esc_attr( trim( $atts['class'] ) ) : '';
204
  }
205
 
206
  }
374
  return esc_url( "{$protocol}://{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}" );
375
 
376
  }
377
+
378
+ function su_is_unsafe_features_enabled() {
379
+ return 'on' === get_option( 'su_option_unsafe_features' );
380
+ }
includes/shortcodes/accordion.php CHANGED
@@ -1,30 +1,32 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
4
- 'id' => 'accordion',
5
- 'callback' => 'su_shortcode_accordion',
6
- 'image' => su_get_plugin_url() . 'admin/images/shortcodes/accordion.svg',
7
- 'name' => __( 'Accordion', 'shortcodes-ultimate' ),
8
- 'type' => 'wrap',
9
- 'group' => 'box',
 
10
  'required_child' => 'spoiler',
11
- 'atts' => array(
12
  'class' => array(
13
- 'type' => 'extra_css_class',
14
- 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
15
- 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
16
  'default' => '',
17
  ),
18
  ),
19
- 'content' => array(
20
  'id' => 'spoiler',
21
  'number' => 3,
22
  ),
23
- 'desc' => __( 'Accordion with spoilers', 'shortcodes-ultimate' ),
24
- 'note' => __( 'Did you know that you can wrap multiple spoilers with [accordion] shortcode to create accordion effect?', 'shortcodes-ultimate' ),
25
- 'example' => 'spoilers',
26
- 'icon' => 'list',
27
- ) );
 
28
 
29
  function su_shortcode_accordion( $atts = null, $content = null ) {
30
 
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
+ 'id' => 'accordion',
6
+ 'callback' => 'su_shortcode_accordion',
7
+ 'image' => su_get_plugin_url() . 'admin/images/shortcodes/accordion.svg',
8
+ 'name' => __( 'Accordion', 'shortcodes-ultimate' ),
9
+ 'type' => 'wrap',
10
+ 'group' => 'box',
11
  'required_child' => 'spoiler',
12
+ 'atts' => array(
13
  'class' => array(
14
+ 'type' => 'extra_css_class',
15
+ 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
16
+ 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
17
  'default' => '',
18
  ),
19
  ),
20
+ 'content' => array(
21
  'id' => 'spoiler',
22
  'number' => 3,
23
  ),
24
+ 'desc' => __( 'Accordion with spoilers', 'shortcodes-ultimate' ),
25
+ 'note' => __( 'Did you know that you can wrap multiple spoilers with [accordion] shortcode to create accordion effect?', 'shortcodes-ultimate' ),
26
+ 'example' => 'spoilers',
27
+ 'icon' => 'list',
28
+ )
29
+ );
30
 
31
  function su_shortcode_accordion( $atts = null, $content = null ) {
32
 
includes/shortcodes/animate.php CHANGED
@@ -1,68 +1,74 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
4
- 'id' => 'animate',
 
5
  'callback' => 'su_shortcode_animate',
6
- 'image' => su_get_plugin_url() . 'admin/images/shortcodes/animate.svg',
7
- 'name' => __( 'Animation', 'shortcodes-ultimate' ),
8
- 'type' => 'wrap',
9
- 'group' => 'other',
10
- 'atts' => array(
11
- 'type' => array(
12
- 'type' => 'select',
13
- 'values' => array_combine( su_get_config( 'animations' ), su_get_config( 'animations' ) ),
14
  'default' => 'bounceIn',
15
- 'name' => __( 'Animation', 'shortcodes-ultimate' ),
16
- 'desc' => __( 'Select animation type', 'shortcodes-ultimate' )
17
  ),
18
  'duration' => array(
19
- 'type' => 'slider',
20
- 'min' => 0,
21
- 'max' => 20,
22
- 'step' => 0.5,
23
  'default' => 1,
24
- 'name' => __( 'Duration', 'shortcodes-ultimate' ),
25
- 'desc' => __( 'Animation duration (seconds)', 'shortcodes-ultimate' )
26
  ),
27
- 'delay' => array(
28
- 'type' => 'slider',
29
- 'min' => 0,
30
- 'max' => 20,
31
- 'step' => 0.5,
32
  'default' => 0,
33
- 'name' => __( 'Delay', 'shortcodes-ultimate' ),
34
- 'desc' => __( 'Animation delay (seconds)', 'shortcodes-ultimate' )
35
  ),
36
- 'inline' => array(
37
- 'type' => 'bool',
38
  'default' => 'no',
39
- 'name' => __( 'Inline', 'shortcodes-ultimate' ),
40
- 'desc' => __( 'This parameter determines what HTML tag will be used for animation wrapper. Turn this option to YES and animated element will be wrapped in SPAN instead of DIV. Useful for inline animations, like buttons', 'shortcodes-ultimate' )
41
  ),
42
- 'class' => array(
43
- 'type' => 'extra_css_class',
44
- 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
45
- 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
46
  'default' => '',
47
  ),
48
  ),
49
- 'content' => __( 'Animated content', 'shortcodes-ultimate' ),
50
- 'desc' => __( 'Wrapper for animation. Any nested element will be animated', 'shortcodes-ultimate' ),
51
- 'example' => 'animations',
52
- 'icon' => 'bolt',
53
- ) );
 
54
 
55
  function su_shortcode_animate( $atts = null, $content = null ) {
56
- $atts = shortcode_atts( array(
57
- 'type' => 'bounceIn',
58
- 'duration' => 1,
59
- 'delay' => 0,
60
- 'inline' => 'no',
61
- 'class' => ''
62
- ), $atts, 'animate' );
63
- $tag = ( $atts['inline'] === 'yes' ) ? 'span' : 'div';
64
- $time = '-webkit-animation-duration:' . $atts['duration'] . 's;-webkit-animation-delay:' . $atts['delay'] . 's;animation-duration:' . $atts['duration'] . 's;animation-delay:' . $atts['delay'] . 's;';
65
- $return = '<' . $tag . ' class="su-animate' . su_get_css_class( $atts ) . '" style="visibility:hidden;' . $time . '" data-animation="' . $atts['type'] . '" data-duration="' . $atts['duration'] . '" data-delay="' . $atts['delay'] . '">' . do_shortcode( $content ) . '</' . $tag . '>';
 
 
 
 
66
  su_query_asset( 'css', 'animate' );
67
  su_query_asset( 'js', 'jquery' );
68
  su_query_asset( 'js', 'jquery-inview' );
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
+ 'id' => 'animate',
6
  'callback' => 'su_shortcode_animate',
7
+ 'image' => su_get_plugin_url() . 'admin/images/shortcodes/animate.svg',
8
+ 'name' => __( 'Animation', 'shortcodes-ultimate' ),
9
+ 'type' => 'wrap',
10
+ 'group' => 'other',
11
+ 'atts' => array(
12
+ 'type' => array(
13
+ 'type' => 'select',
14
+ 'values' => array_combine( su_get_config( 'animations' ), su_get_config( 'animations' ) ),
15
  'default' => 'bounceIn',
16
+ 'name' => __( 'Animation', 'shortcodes-ultimate' ),
17
+ 'desc' => __( 'Select animation type', 'shortcodes-ultimate' ),
18
  ),
19
  'duration' => array(
20
+ 'type' => 'slider',
21
+ 'min' => 0,
22
+ 'max' => 20,
23
+ 'step' => 0.5,
24
  'default' => 1,
25
+ 'name' => __( 'Duration', 'shortcodes-ultimate' ),
26
+ 'desc' => __( 'Animation duration (seconds)', 'shortcodes-ultimate' ),
27
  ),
28
+ 'delay' => array(
29
+ 'type' => 'slider',
30
+ 'min' => 0,
31
+ 'max' => 20,
32
+ 'step' => 0.5,
33
  'default' => 0,
34
+ 'name' => __( 'Delay', 'shortcodes-ultimate' ),
35
+ 'desc' => __( 'Animation delay (seconds)', 'shortcodes-ultimate' ),
36
  ),
37
+ 'inline' => array(
38
+ 'type' => 'bool',
39
  'default' => 'no',
40
+ 'name' => __( 'Inline', 'shortcodes-ultimate' ),
41
+ 'desc' => __( 'This parameter determines what HTML tag will be used for animation wrapper. Turn this option to YES and animated element will be wrapped in SPAN instead of DIV. Useful for inline animations, like buttons', 'shortcodes-ultimate' ),
42
  ),
43
+ 'class' => array(
44
+ 'type' => 'extra_css_class',
45
+ 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
46
+ 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
47
  'default' => '',
48
  ),
49
  ),
50
+ 'content' => __( 'Animated content', 'shortcodes-ultimate' ),
51
+ 'desc' => __( 'Wrapper for animation. Any nested element will be animated', 'shortcodes-ultimate' ),
52
+ 'example' => 'animations',
53
+ 'icon' => 'bolt',
54
+ )
55
+ );
56
 
57
  function su_shortcode_animate( $atts = null, $content = null ) {
58
+ $atts = shortcode_atts(
59
+ array(
60
+ 'type' => 'bounceIn',
61
+ 'duration' => 1,
62
+ 'delay' => 0,
63
+ 'inline' => 'no',
64
+ 'class' => '',
65
+ ),
66
+ $atts,
67
+ 'animate'
68
+ );
69
+ $tag = ( $atts['inline'] === 'yes' ) ? 'span' : 'div';
70
+ $time = '-webkit-animation-duration:' . $atts['duration'] . 's;-webkit-animation-delay:' . $atts['delay'] . 's;animation-duration:' . $atts['duration'] . 's;animation-delay:' . $atts['delay'] . 's;';
71
+ $return = '<' . $tag . ' class="su-animate' . su_get_css_class( $atts ) . '" style="visibility:hidden;' . esc_attr( $time ) . '" data-animation="' . esc_attr( $atts['type'] ) . '" data-duration="' . esc_attr( $atts['duration'] ) . '" data-delay="' . esc_attr( $atts['delay'] ) . '">' . do_shortcode( $content ) . '</' . $tag . '>';
72
  su_query_asset( 'css', 'animate' );
73
  su_query_asset( 'js', 'jquery' );
74
  su_query_asset( 'js', 'jquery-inview' );
includes/shortcodes/audio.php CHANGED
@@ -1,59 +1,65 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
4
- 'id' => 'audio',
 
5
  'callback' => 'su_shortcode_audio',
6
- 'image' => su_get_plugin_url() . 'admin/images/shortcodes/audio.svg',
7
- 'name' => __( 'Audio', 'shortcodes-ultimate' ),
8
- 'type' => 'single',
9
- 'group' => 'media',
10
- 'atts' => array(
11
- 'url' => array(
12
- 'type' => 'upload',
13
  'default' => '',
14
- 'name' => __( 'File', 'shortcodes-ultimate' ),
15
- 'desc' => __( 'Audio file url. Supported formats: mp3, ogg', 'shortcodes-ultimate' )
16
  ),
17
- 'width' => array(
18
- 'values' => array(),
19
  'default' => '100%',
20
- 'name' => __( 'Width', 'shortcodes-ultimate' ),
21
- 'desc' => __( 'Player width. You can specify width in percents and player will be responsive. Example values: <b%value>200px</b>, <b%value>100&#37;</b>', 'shortcodes-ultimate' )
22
  ),
23
  'autoplay' => array(
24
- 'type' => 'bool',
25
  'default' => 'no',
26
- 'name' => __( 'Autoplay', 'shortcodes-ultimate' ),
27
- 'desc' => __( 'Play file automatically when page is loaded', 'shortcodes-ultimate' )
28
  ),
29
- 'loop' => array(
30
- 'type' => 'bool',
31
  'default' => 'no',
32
- 'name' => __( 'Loop', 'shortcodes-ultimate' ),
33
- 'desc' => __( 'Repeat when playback is ended', 'shortcodes-ultimate' )
34
  ),
35
- 'class' => array(
36
- 'type' => 'extra_css_class',
37
- 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
38
- 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
39
  'default' => '',
40
  ),
41
  ),
42
- 'desc' => __( 'Custom audio player', 'shortcodes-ultimate' ),
43
- 'example' => 'media',
44
- 'icon' => 'play-circle',
45
- ) );
 
46
 
47
  function su_shortcode_audio( $atts = null, $content = null ) {
48
 
49
- $atts = shortcode_atts( array(
 
50
  'url' => false,
51
  'width' => 'auto',
52
  'title' => '',
53
  'autoplay' => 'no',
54
  'loop' => 'no',
55
- 'class' => ''
56
- ), $atts, 'audio' );
 
 
 
57
 
58
  if ( ! $atts['url'] ) {
59
  return su_error_message( 'Audio', __( 'please specify correct url', 'shortcodes-ultimate' ) );
@@ -76,6 +82,6 @@ function su_shortcode_audio( $atts = null, $content = null ) {
76
  su_query_asset( 'js', 'jplayer' );
77
  su_query_asset( 'js', 'su-shortcodes' );
78
 
79
- return '<div class="su-audio' . su_get_css_class( $atts ) . '" data-id="' . $id . '" data-audio="' . $atts['url'] . '" data-swf="' . plugins_url( 'vendor/jplayer/jplayer.swf', SU_PLUGIN_FILE ) . '" data-autoplay="' . $atts['autoplay'] . '" data-loop="' . $atts['loop'] . '" style="' . $width . '"><div id="' . $id . '" class="jp-jplayer"></div><div id="' . $id . '_container" class="jp-audio"><div class="jp-type-single"><div class="jp-gui jp-interface"><div class="jp-controls"><span class="jp-play"></span><span class="jp-pause"></span><span class="jp-stop"></span><span class="jp-mute"></span><span class="jp-unmute"></span><span class="jp-volume-max"></span></div><div class="jp-progress"><div class="jp-seek-bar"><div class="jp-play-bar"></div></div></div><div class="jp-volume-bar"><div class="jp-volume-bar-value"></div></div><div class="jp-current-time"></div><div class="jp-duration"></div></div><div class="jp-title">' . $atts['title'] . '</div></div></div></div>';
80
 
81
  }
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
+ 'id' => 'audio',
6
  'callback' => 'su_shortcode_audio',
7
+ 'image' => su_get_plugin_url() . 'admin/images/shortcodes/audio.svg',
8
+ 'name' => __( 'Audio', 'shortcodes-ultimate' ),
9
+ 'type' => 'single',
10
+ 'group' => 'media',
11
+ 'atts' => array(
12
+ 'url' => array(
13
+ 'type' => 'upload',
14
  'default' => '',
15
+ 'name' => __( 'File', 'shortcodes-ultimate' ),
16
+ 'desc' => __( 'Audio file url. Supported formats: mp3, ogg', 'shortcodes-ultimate' ),
17
  ),
18
+ 'width' => array(
19
+ 'values' => array(),
20
  'default' => '100%',
21
+ 'name' => __( 'Width', 'shortcodes-ultimate' ),
22
+ 'desc' => __( 'Player width. You can specify width in percents and player will be responsive. Example values: <b%value>200px</b>, <b%value>100&#37;</b>', 'shortcodes-ultimate' ),
23
  ),
24
  'autoplay' => array(
25
+ 'type' => 'bool',
26
  'default' => 'no',
27
+ 'name' => __( 'Autoplay', 'shortcodes-ultimate' ),
28
+ 'desc' => __( 'Play file automatically when page is loaded', 'shortcodes-ultimate' ),
29
  ),
30
+ 'loop' => array(
31
+ 'type' => 'bool',
32
  'default' => 'no',
33
+ 'name' => __( 'Loop', 'shortcodes-ultimate' ),
34
+ 'desc' => __( 'Repeat when playback is ended', 'shortcodes-ultimate' ),
35
  ),
36
+ 'class' => array(
37
+ 'type' => 'extra_css_class',
38
+ 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
39
+ 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
40
  'default' => '',
41
  ),
42
  ),
43
+ 'desc' => __( 'Custom audio player', 'shortcodes-ultimate' ),
44
+ 'example' => 'media',
45
+ 'icon' => 'play-circle',
46
+ )
47
+ );
48
 
49
  function su_shortcode_audio( $atts = null, $content = null ) {
50
 
51
+ $atts = shortcode_atts(
52
+ array(
53
  'url' => false,
54
  'width' => 'auto',
55
  'title' => '',
56
  'autoplay' => 'no',
57
  'loop' => 'no',
58
+ 'class' => '',
59
+ ),
60
+ $atts,
61
+ 'audio'
62
+ );
63
 
64
  if ( ! $atts['url'] ) {
65
  return su_error_message( 'Audio', __( 'please specify correct url', 'shortcodes-ultimate' ) );
82
  su_query_asset( 'js', 'jplayer' );
83
  su_query_asset( 'js', 'su-shortcodes' );
84
 
85
+ return '<div class="su-audio' . su_get_css_class( $atts ) . '" data-id="' . $id . '" data-audio="' . esc_attr( $atts['url'] ) . '" data-swf="' . plugins_url( 'vendor/jplayer/jplayer.swf', SU_PLUGIN_FILE ) . '" data-autoplay="' . esc_attr( $atts['autoplay'] ) . '" data-loop="' . esc_attr( $atts['loop'] ) . '" style="' . esc_attr( $width ) . '"><div id="' . $id . '" class="jp-jplayer"></div><div id="' . $id . '_container" class="jp-audio"><div class="jp-type-single"><div class="jp-gui jp-interface"><div class="jp-controls"><span class="jp-play"></span><span class="jp-pause"></span><span class="jp-stop"></span><span class="jp-mute"></span><span class="jp-unmute"></span><span class="jp-volume-max"></span></div><div class="jp-progress"><div class="jp-seek-bar"><div class="jp-play-bar"></div></div></div><div class="jp-volume-bar"><div class="jp-volume-bar-value"></div></div><div class="jp-current-time"></div><div class="jp-duration"></div></div><div class="jp-title">' . esc_attr( $atts['title'] ) . '</div></div></div></div>';
86
 
87
  }
includes/shortcodes/box.php CHANGED
@@ -105,12 +105,12 @@ function su_shortcode_box( $atts = null, $content = null ) {
105
  '<div class="su-box su-box-style-%1$s%2$s" id="%10$s" style="border-color:%3$s;border-radius:%4$spx"><div class="su-box-title" style="background-color:%5$s;color:%6$s;border-top-left-radius:%7$spx;border-top-right-radius:%7$spx">%8$s</div><div class="su-box-content su-u-clearfix su-u-trim" style="border-bottom-left-radius:%7$spx;border-bottom-right-radius:%7$spx">%9$s</div></div>',
106
  esc_attr( $atts['style'] ),
107
  su_get_css_class( $atts ),
108
- su_adjust_brightness( $atts['box_color'], -20 ),
109
  $atts['radius'],
110
- $atts['box_color'],
111
- $atts['title_color'],
112
- $atts['inner_radius'],
113
- su_do_attribute( $atts['title'] ),
114
  su_do_nested_shortcodes( $content, 'box' ),
115
  sanitize_html_class( $atts['id'] )
116
  );
105
  '<div class="su-box su-box-style-%1$s%2$s" id="%10$s" style="border-color:%3$s;border-radius:%4$spx"><div class="su-box-title" style="background-color:%5$s;color:%6$s;border-top-left-radius:%7$spx;border-top-right-radius:%7$spx">%8$s</div><div class="su-box-content su-u-clearfix su-u-trim" style="border-bottom-left-radius:%7$spx;border-bottom-right-radius:%7$spx">%9$s</div></div>',
106
  esc_attr( $atts['style'] ),
107
  su_get_css_class( $atts ),
108
+ esc_attr( su_adjust_brightness( $atts['box_color'], -20 ) ),
109
  $atts['radius'],
110
+ esc_attr( $atts['box_color'] ),
111
+ esc_attr( $atts['title_color'] ),
112
+ esc_attr( $atts['inner_radius'] ),
113
+ esc_attr( su_do_attribute( $atts['title'] ) ),
114
  su_do_nested_shortcodes( $content, 'box' ),
115
  sanitize_html_class( $atts['id'] )
116
  );
includes/shortcodes/button.php CHANGED
@@ -335,7 +335,7 @@ function su_shortcode_button( $atts = null, $content = null ) {
335
 
336
  // Prepare <small> with description
337
  $desc = $atts['desc']
338
- ? '<small style="' . implode( ';', $small_css ) . '">' . su_do_attribute( $atts['desc'] ) . '</small>'
339
  : '';
340
 
341
  // Wrap with div if button centered
@@ -357,9 +357,23 @@ function su_shortcode_button( $atts = null, $content = null ) {
357
  }
358
 
359
  // Prepare onclick action
360
- $atts['onclick'] = $atts['onclick']
361
- ? ' onClick="' . $atts['onclick'] . '"'
362
- : '';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
363
 
364
  // Set rel attribute to `noopener noreferrer` if it's empty and target=blank
365
  if ( 'blank' === $atts['target'] && '' === $atts['rel'] ) {
@@ -388,6 +402,6 @@ function su_shortcode_button( $atts = null, $content = null ) {
388
 
389
  su_query_asset( 'css', 'su-shortcodes' );
390
 
391
- return $before . '<a href="' . su_do_attribute( $atts['url'] ) . '" class="' . implode( ' ', $classes ) . '" style="' . implode( ';', $a_css ) . '" target="_' . $atts['target'] . '"' . $atts['onclick'] . $atts['rel'] . $atts['title'] . $atts['id'] . $atts['download'] . '><span style="' . implode( ';', $span_css ) . '">' . do_shortcode( stripcslashes( $content ) ) . $desc . '</span></a>' . $after;
392
 
393
  }
335
 
336
  // Prepare <small> with description
337
  $desc = $atts['desc']
338
+ ? '<small style="' . esc_attr( implode( ';', $small_css ) ) . '">' . su_do_attribute( $atts['desc'] ) . '</small>'
339
  : '';
340
 
341
  // Wrap with div if button centered
357
  }
358
 
359
  // Prepare onclick action
360
+ if ( $atts['onclick'] && ! su_is_unsafe_features_enabled() ) {
361
+
362
+ return su_error_message(
363
+ 'Button',
364
+ sprintf(
365
+ '%s.<br><a href="https://getshortcodes.com/docs/unsafe-features/" target="_blank">%s</a>',
366
+ // translators: do not translate the <b>onclick</b> part, the <b>Unsafe features</b> must be translated
367
+ __( 'The <b>onclick</b> attribute cannot be used while <b>Unsafe features</b> option is turned off', 'shortcodes-ultimate' ),
368
+ __( 'Learn more', 'shortcodes-ultimate' )
369
+ )
370
+ );
371
+
372
+ }
373
+
374
+ if ( $atts['onclick'] ) {
375
+ $atts['onclick'] = ' onClick="' . $atts['onclick'] . '"';
376
+ }
377
 
378
  // Set rel attribute to `noopener noreferrer` if it's empty and target=blank
379
  if ( 'blank' === $atts['target'] && '' === $atts['rel'] ) {
402
 
403
  su_query_asset( 'css', 'su-shortcodes' );
404
 
405
+ return $before . '<a href="' . esc_attr( su_do_attribute( $atts['url'] ) ) . '" class="' . esc_attr( implode( ' ', $classes ) ) . '" style="' . esc_attr( implode( ';', $a_css ) ) . '" target="_' . esc_attr( $atts['target'] ) . '"' . $atts['onclick'] . $atts['rel'] . $atts['title'] . $atts['id'] . $atts['download'] . '><span style="' . esc_attr( implode( ';', $span_css ) ) . '">' . do_shortcode( stripcslashes( $content ) ) . $desc . '</span></a>' . $after;
406
 
407
  }
includes/shortcodes/carousel.php CHANGED
@@ -1,157 +1,166 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
 
4
  'deprecated' => true,
5
- 'id' => 'carousel',
6
- 'callback' => 'su_shortcode_carousel',
7
- 'image' => su_get_plugin_url() . 'admin/images/shortcodes/carousel.svg',
8
  // translators: Dep. – Deprecated
9
- 'name' => __( 'Carousel (Dep.)', 'shortcodes-ultimate' ),
10
- 'type' => 'single',
11
- 'group' => 'gallery',
12
- 'note' => sprintf(
13
  '<p>%s</p><p><button class="button button-primary" onclick="document.querySelector(\'[data-shortcode=image_carousel]\').click(); return false;">%s &rarr;</button></p>',
14
  __( 'There is a much better shortcode for your images. Have you already tried the Image Carousel? It can create both sliders and carousels.', 'shortcodes-ultimate' ),
15
  __( 'Switch to Image Carousel', 'shortcodes-ultimate' )
16
  ),
17
- 'atts' => array(
18
- 'source' => array(
19
  'type' => 'image_source',
20
  'default' => 'none',
21
  'name' => __( 'Source', 'shortcodes-ultimate' ),
22
- 'desc' => __( 'Choose images source. You can use images from Media library or retrieve it from posts (thumbnails) posted under specified blog category. You can also pick any custom taxonomy', 'shortcodes-ultimate' )
23
  ),
24
- 'limit' => array(
25
- 'type' => 'slider',
26
- 'min' => -1,
27
- 'max' => 100,
28
- 'step' => 1,
29
  'default' => 20,
30
- 'name' => __( 'Limit', 'shortcodes-ultimate' ),
31
- 'desc' => __( 'Maximum number of image source posts (for recent posts, category and custom taxonomy)', 'shortcodes-ultimate' )
32
  ),
33
- 'link' => array(
34
- 'type' => 'select',
35
- 'values' => array(
36
  'none' => __( 'None', 'shortcodes-ultimate' ),
37
  'image' => __( 'Full-size image', 'shortcodes-ultimate' ),
38
  'lightbox' => __( 'Lightbox', 'shortcodes-ultimate' ),
39
  'custom' => __( 'Slide link (added in media editor)', 'shortcodes-ultimate' ),
40
  'attachment' => __( 'Attachment page', 'shortcodes-ultimate' ),
41
- 'post' => __( 'Post permalink', 'shortcodes-ultimate' )
42
  ),
43
  'default' => 'none',
44
- 'name' => __( 'Links', 'shortcodes-ultimate' ),
45
- 'desc' => __( 'Select which links will be used for images in this gallery', 'shortcodes-ultimate' )
46
- ),
47
- 'target' => array(
48
- 'type' => 'select',
49
- 'values' => array(
50
- 'self' => __( 'Open in same tab', 'shortcodes-ultimate' ),
51
- 'blank' => __( 'Open in new tab', 'shortcodes-ultimate' )
52
  ),
53
  'default' => 'self',
54
- 'name' => __( 'Links target', 'shortcodes-ultimate' ),
55
- 'desc' => __( 'Open links in', 'shortcodes-ultimate' )
56
- ),
57
- 'width' => array(
58
- 'type' => 'slider',
59
- 'min' => 100,
60
- 'max' => 1600,
61
- 'step' => 20,
62
  'default' => 600,
63
- 'name' => __( 'Width', 'shortcodes-ultimate' ),
64
- 'desc' => __( 'Carousel width (in pixels)', 'shortcodes-ultimate' )
65
- ),
66
- 'height' => array(
67
- 'type' => 'slider',
68
- 'min' => 20,
69
- 'max' => 1600,
70
- 'step' => 20,
71
  'default' => 100,
72
- 'name' => __( 'Height', 'shortcodes-ultimate' ),
73
- 'desc' => __( 'Carousel height (in pixels)', 'shortcodes-ultimate' )
74
  ),
75
  'responsive' => array(
76
- 'type' => 'bool',
77
  'default' => 'yes',
78
- 'name' => __( 'Responsive', 'shortcodes-ultimate' ),
79
- 'desc' => __( 'Ignore width and height parameters and make carousel responsive', 'shortcodes-ultimate' )
80
- ),
81
- 'items' => array(
82
- 'type' => 'number',
83
- 'min' => 1,
84
- 'max' => 20,
85
- 'step' => 1,
86
  'default' => 3,
87
- 'name' => __( 'Items to show', 'shortcodes-ultimate' ),
88
- 'desc' => __( 'How much carousel items is visible', 'shortcodes-ultimate' )
89
- ),
90
- 'scroll' => array(
91
- 'type' => 'number',
92
- 'min' => 1,
93
- 'max' => 20,
94
- 'step' => 1, 'default' => 1,
95
- 'name' => __( 'Scroll number', 'shortcodes-ultimate' ),
96
- 'desc' => __( 'How much items are scrolled in one transition', 'shortcodes-ultimate' )
97
- ),
98
- 'title' => array(
99
- 'type' => 'bool',
 
100
  'default' => 'yes',
101
- 'name' => __( 'Show titles', 'shortcodes-ultimate' ), 'desc' => __( 'Display titles for each item', 'shortcodes-ultimate' )
 
102
  ),
103
- 'centered' => array(
104
- 'type' => 'bool',
105
  'default' => 'yes',
106
- 'name' => __( 'Center', 'shortcodes-ultimate' ), 'desc' => __( 'Is carousel centered on the page', 'shortcodes-ultimate' )
 
107
  ),
108
- 'arrows' => array(
109
- 'type' => 'bool',
110
  'default' => 'yes',
111
- 'name' => __( 'Arrows', 'shortcodes-ultimate' ), 'desc' => __( 'Show left and right arrows', 'shortcodes-ultimate' )
 
112
  ),
113
- 'pages' => array(
114
- 'type' => 'bool',
115
  'default' => 'no',
116
- 'name' => __( 'Pagination', 'shortcodes-ultimate' ),
117
- 'desc' => __( 'Show pagination', 'shortcodes-ultimate' )
118
  ),
119
  'mousewheel' => array(
120
- 'type' => 'bool',
121
- 'default' => 'yes', 'name' => __( 'Mouse wheel control', 'shortcodes-ultimate' ),
122
- 'desc' => __( 'Allow to rotate carousel with mouse wheel', 'shortcodes-ultimate' )
123
- ),
124
- 'autoplay' => array(
125
- 'type' => 'number',
126
- 'min' => 0,
127
- 'max' => 100000,
128
- 'step' => 100,
 
129
  'default' => 5000,
130
- 'name' => __( 'Autoplay', 'shortcodes-ultimate' ),
131
- 'desc' => __( 'Choose interval between auto animations. Set to 0 to disable autoplay', 'shortcodes-ultimate' )
132
- ),
133
- 'speed' => array(
134
- 'type' => 'number',
135
- 'min' => 0,
136
- 'max' => 20000,
137
- 'step' => 100,
138
  'default' => 600,
139
- 'name' => __( 'Speed', 'shortcodes-ultimate' ), 'desc' => __( 'Specify animation speed', 'shortcodes-ultimate' )
 
140
  ),
141
- 'class' => array(
142
- 'type' => 'extra_css_class',
143
- 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
144
- 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
145
  'default' => '',
146
  ),
147
  ),
148
- 'desc' => __( 'Customizable image carousel', 'shortcodes-ultimate' ),
149
- 'icon' => 'picture-o',
150
- ) );
 
151
 
152
  function su_shortcode_carousel( $atts = null, $content = null ) {
153
  $return = '';
154
- $atts = shortcode_atts( array(
 
155
  'source' => 'none',
156
  'limit' => 20,
157
  'gallery' => null, // Dep. 4.3.2
@@ -169,8 +178,11 @@ function su_shortcode_carousel( $atts = null, $content = null ) {
169
  'mousewheel' => 'yes',
170
  'autoplay' => 3000,
171
  'speed' => 600,
172
- 'class' => ''
173
- ), $atts, 'carousel' );
 
 
 
174
 
175
  $slides = su_get_slides( $atts );
176
  $slides = apply_filters( 'su/shortcode/carousel/slides', $slides, $atts );
@@ -188,9 +200,11 @@ function su_shortcode_carousel( $atts = null, $content = null ) {
188
  // Prepare width and height
189
  $size = ( $atts['responsive'] === 'yes' ) ? 'width:100%' : 'width:' . intval( $atts['width'] ) . 'px;height:' . intval( $atts['height'] ) . 'px';
190
  // Add lightbox class
191
- if ( $atts['link'] === 'lightbox' ) $atts['class'] .= ' su-lightbox-gallery';
 
 
192
  // Open slider
193
- $return .= '<div id="' . $id . '" class="su-carousel' . $centered . ' su-carousel-pages-' . $atts['pages'] . ' su-carousel-responsive-' . $atts['responsive'] . su_get_css_class( $atts ) . '" style="' . $size . '" data-autoplay="' . $atts['autoplay'] . '" data-speed="' . $atts['speed'] . '" data-mousewheel="' . $mousewheel . '" data-items="' . $atts['items'] . '" data-scroll="' . $atts['scroll'] . '"><div class="su-carousel-slides">';
194
  // Create slides
195
  foreach ( (array) $slides as $slide ) {
196
  // Crop the image
@@ -205,9 +219,13 @@ function su_shortcode_carousel( $atts = null, $content = null ) {
205
  // Open slide
206
  $return .= '<div class="su-carousel-slide">';
207
  // Slide content with link
208
- if ( $slide['link'] ) $return .= '<a href="' . $slide['link'] . '"' . $target . ' title="' . esc_attr( $slide['title'] ) . '"><img src="' . $image['url'] . '" alt="' . esc_attr( $slide['title'] ) . '" />' . $title . '</a>';
 
 
209
  // Slide content without link
210
- else $return .= '<a><img src="' . $image['url'] . '" alt="' . esc_attr( $slide['title'] ) . '" />' . $title . '</a>';
 
 
211
  // Close slide
212
  $return .= '</div>';
213
  }
@@ -217,7 +235,9 @@ function su_shortcode_carousel( $atts = null, $content = null ) {
217
  $return .= '<div class="su-carousel-nav">';
218
  // Append direction nav
219
  if ( $atts['arrows'] === 'yes'
220
- ) $return .= '<div class="su-carousel-direction"><span class="su-carousel-prev"></span><span class="su-carousel-next"></span></div>';
 
 
221
  // Append pagination nav
222
  $return .= '<div class="su-carousel-pagination"></div>';
223
  // Close nav section
@@ -235,6 +255,8 @@ function su_shortcode_carousel( $atts = null, $content = null ) {
235
  su_query_asset( 'js', 'su-shortcodes' );
236
  }
237
  // Slides not found
238
- else $return = su_error_message( 'Carousel', __( 'images not found', 'shortcodes-ultimate' ) );
 
 
239
  return $return;
240
  }
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
  'deprecated' => true,
6
+ 'id' => 'carousel',
7
+ 'callback' => 'su_shortcode_carousel',
8
+ 'image' => su_get_plugin_url() . 'admin/images/shortcodes/carousel.svg',
9
  // translators: Dep. – Deprecated
10
+ 'name' => __( 'Carousel (Dep.)', 'shortcodes-ultimate' ),
11
+ 'type' => 'single',
12
+ 'group' => 'gallery',
13
+ 'note' => sprintf(
14
  '<p>%s</p><p><button class="button button-primary" onclick="document.querySelector(\'[data-shortcode=image_carousel]\').click(); return false;">%s &rarr;</button></p>',
15
  __( 'There is a much better shortcode for your images. Have you already tried the Image Carousel? It can create both sliders and carousels.', 'shortcodes-ultimate' ),
16
  __( 'Switch to Image Carousel', 'shortcodes-ultimate' )
17
  ),
18
+ 'atts' => array(
19
+ 'source' => array(
20
  'type' => 'image_source',
21
  'default' => 'none',
22
  'name' => __( 'Source', 'shortcodes-ultimate' ),
23
+ 'desc' => __( 'Choose images source. You can use images from Media library or retrieve it from posts (thumbnails) posted under specified blog category. You can also pick any custom taxonomy', 'shortcodes-ultimate' ),
24
  ),
25
+ 'limit' => array(
26
+ 'type' => 'slider',
27
+ 'min' => -1,
28
+ 'max' => 100,
29
+ 'step' => 1,
30
  'default' => 20,
31
+ 'name' => __( 'Limit', 'shortcodes-ultimate' ),
32
+ 'desc' => __( 'Maximum number of image source posts (for recent posts, category and custom taxonomy)', 'shortcodes-ultimate' ),
33
  ),
34
+ 'link' => array(
35
+ 'type' => 'select',
36
+ 'values' => array(
37
  'none' => __( 'None', 'shortcodes-ultimate' ),
38
  'image' => __( 'Full-size image', 'shortcodes-ultimate' ),
39
  'lightbox' => __( 'Lightbox', 'shortcodes-ultimate' ),
40
  'custom' => __( 'Slide link (added in media editor)', 'shortcodes-ultimate' ),
41
  'attachment' => __( 'Attachment page', 'shortcodes-ultimate' ),
42
+ 'post' => __( 'Post permalink', 'shortcodes-ultimate' ),
43
  ),
44
  'default' => 'none',
45
+ 'name' => __( 'Links', 'shortcodes-ultimate' ),
46
+ 'desc' => __( 'Select which links will be used for images in this gallery', 'shortcodes-ultimate' ),
47
+ ),
48
+ 'target' => array(
49
+ 'type' => 'select',
50
+ 'values' => array(
51
+ 'self' => __( 'Open in same tab', 'shortcodes-ultimate' ),
52
+ 'blank' => __( 'Open in new tab', 'shortcodes-ultimate' ),
53
  ),
54
  'default' => 'self',
55
+ 'name' => __( 'Links target', 'shortcodes-ultimate' ),
56
+ 'desc' => __( 'Open links in', 'shortcodes-ultimate' ),
57
+ ),
58
+ 'width' => array(
59
+ 'type' => 'slider',
60
+ 'min' => 100,
61
+ 'max' => 1600,
62
+ 'step' => 20,
63
  'default' => 600,
64
+ 'name' => __( 'Width', 'shortcodes-ultimate' ),
65
+ 'desc' => __( 'Carousel width (in pixels)', 'shortcodes-ultimate' ),
66
+ ),
67
+ 'height' => array(
68
+ 'type' => 'slider',
69
+ 'min' => 20,
70
+ 'max' => 1600,
71
+ 'step' => 20,
72
  'default' => 100,
73
+ 'name' => __( 'Height', 'shortcodes-ultimate' ),
74
+ 'desc' => __( 'Carousel height (in pixels)', 'shortcodes-ultimate' ),
75
  ),
76
  'responsive' => array(
77
+ 'type' => 'bool',
78
  'default' => 'yes',
79
+ 'name' => __( 'Responsive', 'shortcodes-ultimate' ),
80
+ 'desc' => __( 'Ignore width and height parameters and make carousel responsive', 'shortcodes-ultimate' ),
81
+ ),
82
+ 'items' => array(
83
+ 'type' => 'number',
84
+ 'min' => 1,
85
+ 'max' => 20,
86
+ 'step' => 1,
87
  'default' => 3,
88
+ 'name' => __( 'Items to show', 'shortcodes-ultimate' ),
89
+ 'desc' => __( 'How much carousel items is visible', 'shortcodes-ultimate' ),
90
+ ),
91
+ 'scroll' => array(
92
+ 'type' => 'number',
93
+ 'min' => 1,
94
+ 'max' => 20,
95
+ 'step' => 1,
96
+ 'default' => 1,
97
+ 'name' => __( 'Scroll number', 'shortcodes-ultimate' ),
98
+ 'desc' => __( 'How much items are scrolled in one transition', 'shortcodes-ultimate' ),
99
+ ),
100
+ 'title' => array(
101
+ 'type' => 'bool',
102
  'default' => 'yes',
103
+ 'name' => __( 'Show titles', 'shortcodes-ultimate' ),
104
+ 'desc' => __( 'Display titles for each item', 'shortcodes-ultimate' ),
105
  ),
106
+ 'centered' => array(
107
+ 'type' => 'bool',
108
  'default' => 'yes',
109
+ 'name' => __( 'Center', 'shortcodes-ultimate' ),
110
+ 'desc' => __( 'Is carousel centered on the page', 'shortcodes-ultimate' ),
111
  ),
112
+ 'arrows' => array(
113
+ 'type' => 'bool',
114
  'default' => 'yes',
115
+ 'name' => __( 'Arrows', 'shortcodes-ultimate' ),
116
+ 'desc' => __( 'Show left and right arrows', 'shortcodes-ultimate' ),
117
  ),
118
+ 'pages' => array(
119
+ 'type' => 'bool',
120
  'default' => 'no',
121
+ 'name' => __( 'Pagination', 'shortcodes-ultimate' ),
122
+ 'desc' => __( 'Show pagination', 'shortcodes-ultimate' ),
123
  ),
124
  'mousewheel' => array(
125
+ 'type' => 'bool',
126
+ 'default' => 'yes',
127
+ 'name' => __( 'Mouse wheel control', 'shortcodes-ultimate' ),
128
+ 'desc' => __( 'Allow to rotate carousel with mouse wheel', 'shortcodes-ultimate' ),
129
+ ),
130
+ 'autoplay' => array(
131
+ 'type' => 'number',
132
+ 'min' => 0,
133
+ 'max' => 100000,
134
+ 'step' => 100,
135
  'default' => 5000,
136
+ 'name' => __( 'Autoplay', 'shortcodes-ultimate' ),
137
+ 'desc' => __( 'Choose interval between auto animations. Set to 0 to disable autoplay', 'shortcodes-ultimate' ),
138
+ ),
139
+ 'speed' => array(
140
+ 'type' => 'number',
141
+ 'min' => 0,
142
+ 'max' => 20000,
143
+ 'step' => 100,
144
  'default' => 600,
145
+ 'name' => __( 'Speed', 'shortcodes-ultimate' ),
146
+ 'desc' => __( 'Specify animation speed', 'shortcodes-ultimate' ),
147
  ),
148
+ 'class' => array(
149
+ 'type' => 'extra_css_class',
150
+ 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
151
+ 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
152
  'default' => '',
153
  ),
154
  ),
155
+ 'desc' => __( 'Customizable image carousel', 'shortcodes-ultimate' ),
156
+ 'icon' => 'picture-o',
157
+ )
158
+ );
159
 
160
  function su_shortcode_carousel( $atts = null, $content = null ) {
161
  $return = '';
162
+ $atts = shortcode_atts(
163
+ array(
164
  'source' => 'none',
165
  'limit' => 20,
166
  'gallery' => null, // Dep. 4.3.2
178
  'mousewheel' => 'yes',
179
  'autoplay' => 3000,
180
  'speed' => 600,
181
+ 'class' => '',
182
+ ),
183
+ $atts,
184
+ 'carousel'
185
+ );
186
 
187
  $slides = su_get_slides( $atts );
188
  $slides = apply_filters( 'su/shortcode/carousel/slides', $slides, $atts );
200
  // Prepare width and height
201
  $size = ( $atts['responsive'] === 'yes' ) ? 'width:100%' : 'width:' . intval( $atts['width'] ) . 'px;height:' . intval( $atts['height'] ) . 'px';
202
  // Add lightbox class
203
+ if ( $atts['link'] === 'lightbox' ) {
204
+ $atts['class'] .= ' su-lightbox-gallery';
205
+ }
206
  // Open slider
207
+ $return .= '<div id="' . $id . '" class="su-carousel' . $centered . ' su-carousel-pages-' . esc_attr( $atts['pages'] ) . ' su-carousel-responsive-' . esc_attr( $atts['responsive'] ) . su_get_css_class( $atts ) . '" style="' . $size . '" data-autoplay="' . esc_attr( $atts['autoplay'] ) . '" data-speed="' . esc_attr( $atts['speed'] ) . '" data-mousewheel="' . $mousewheel . '" data-items="' . esc_attr( $atts['items'] ) . '" data-scroll="' . esc_attr( $atts['scroll'] ) . '"><div class="su-carousel-slides">';
208
  // Create slides
209
  foreach ( (array) $slides as $slide ) {
210
  // Crop the image
219
  // Open slide
220
  $return .= '<div class="su-carousel-slide">';
221
  // Slide content with link
222
+ if ( $slide['link'] ) {
223
+ $return .= '<a href="' . $slide['link'] . '"' . $target . ' title="' . esc_attr( $slide['title'] ) . '"><img src="' . $image['url'] . '" alt="' . esc_attr( $slide['title'] ) . '" />' . $title . '</a>';
224
+ }
225
  // Slide content without link
226
+ else {
227
+ $return .= '<a><img src="' . $image['url'] . '" alt="' . esc_attr( $slide['title'] ) . '" />' . $title . '</a>';
228
+ }
229
  // Close slide
230
  $return .= '</div>';
231
  }
235
  $return .= '<div class="su-carousel-nav">';
236
  // Append direction nav
237
  if ( $atts['arrows'] === 'yes'
238
+ ) {
239
+ $return .= '<div class="su-carousel-direction"><span class="su-carousel-prev"></span><span class="su-carousel-next"></span></div>';
240
+ }
241
  // Append pagination nav
242
  $return .= '<div class="su-carousel-pagination"></div>';
243
  // Close nav section
255
  su_query_asset( 'js', 'su-shortcodes' );
256
  }
257
  // Slides not found
258
+ else {
259
+ $return = su_error_message( 'Carousel', __( 'images not found', 'shortcodes-ultimate' ) );
260
+ }
261
  return $return;
262
  }
includes/shortcodes/column.php CHANGED
@@ -1,17 +1,18 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
4
- 'id' => 'column',
5
- 'callback' => 'su_shortcode_column',
6
- 'image' => su_get_plugin_url() . 'admin/images/shortcodes/column.svg',
7
- 'name' => __( 'Column', 'shortcodes-ultimate' ),
8
- 'type' => 'wrap',
9
- 'group' => 'box',
 
10
  'required_parent' => 'row',
11
- 'atts' => array(
12
- 'size' => array(
13
- 'type' => 'select',
14
- 'values' => array(
15
  '1/1' => __( 'Full width', 'shortcodes-ultimate' ),
16
  '1/2' => __( 'One half', 'shortcodes-ultimate' ),
17
  '1/3' => __( 'One third', 'shortcodes-ultimate' ),
@@ -23,40 +24,45 @@ su_add_shortcode( array(
23
  '3/5' => __( 'Three fifth', 'shortcodes-ultimate' ),
24
  '4/5' => __( 'Four fifth', 'shortcodes-ultimate' ),
25
  '1/6' => __( 'One sixth', 'shortcodes-ultimate' ),
26
- '5/6' => __( 'Five sixth', 'shortcodes-ultimate' )
27
  ),
28
  'default' => '1/2',
29
- 'name' => __( 'Size', 'shortcodes-ultimate' ),
30
- 'desc' => __( 'Select column width. This width will be calculated depend page width', 'shortcodes-ultimate' )
31
  ),
32
  'center' => array(
33
- 'type' => 'bool',
34
  'default' => 'no',
35
- 'name' => __( 'Centered', 'shortcodes-ultimate' ),
36
- 'desc' => __( 'Is this column centered on the page', 'shortcodes-ultimate' )
37
  ),
38
- 'class' => array(
39
- 'type' => 'extra_css_class',
40
- 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
41
- 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
42
  'default' => '',
43
  ),
44
  ),
45
- 'content' => __( 'Column content', 'shortcodes-ultimate' ),
46
- 'desc' => __( 'Flexible and responsive columns', 'shortcodes-ultimate' ),
47
- 'note' => __( 'Did you know that you need to wrap columns with [row] shortcode?', 'shortcodes-ultimate' ),
48
- 'example' => 'columns',
49
- 'icon' => 'columns',
50
- ) );
 
51
 
52
  function su_shortcode_column( $atts = null, $content = null ) {
53
 
54
- $atts = shortcode_atts( array(
 
55
  'size' => '1/2',
56
  'center' => 'no',
57
  'last' => null,
58
- 'class' => ''
59
- ), $atts, 'column' );
 
 
 
60
 
61
  if ( $atts['last'] !== null && $atts['last'] == '1' ) {
62
  $atts['class'] .= ' su-column-last';
@@ -68,6 +74,6 @@ function su_shortcode_column( $atts = null, $content = null ) {
68
 
69
  su_query_asset( 'css', 'su-shortcodes' );
70
 
71
- return '<div class="su-column su-column-size-' . str_replace( '/', '-', $atts['size'] ) . su_get_css_class( $atts ) . '"><div class="su-column-inner su-u-clearfix su-u-trim">' . su_do_nested_shortcodes( $content, 'column' ) . '</div></div>';
72
 
73
  }
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
+ 'id' => 'column',
6
+ 'callback' => 'su_shortcode_column',
7
+ 'image' => su_get_plugin_url() . 'admin/images/shortcodes/column.svg',
8
+ 'name' => __( 'Column', 'shortcodes-ultimate' ),
9
+ 'type' => 'wrap',
10
+ 'group' => 'box',
11
  'required_parent' => 'row',
12
+ 'atts' => array(
13
+ 'size' => array(
14
+ 'type' => 'select',
15
+ 'values' => array(
16
  '1/1' => __( 'Full width', 'shortcodes-ultimate' ),
17
  '1/2' => __( 'One half', 'shortcodes-ultimate' ),
18
  '1/3' => __( 'One third', 'shortcodes-ultimate' ),
24
  '3/5' => __( 'Three fifth', 'shortcodes-ultimate' ),
25
  '4/5' => __( 'Four fifth', 'shortcodes-ultimate' ),
26
  '1/6' => __( 'One sixth', 'shortcodes-ultimate' ),
27
+ '5/6' => __( 'Five sixth', 'shortcodes-ultimate' ),
28
  ),
29
  'default' => '1/2',
30
+ 'name' => __( 'Size', 'shortcodes-ultimate' ),
31
+ 'desc' => __( 'Select column width. This width will be calculated depend page width', 'shortcodes-ultimate' ),
32
  ),
33
  'center' => array(
34
+ 'type' => 'bool',
35
  'default' => 'no',
36
+ 'name' => __( 'Centered', 'shortcodes-ultimate' ),
37
+ 'desc' => __( 'Is this column centered on the page', 'shortcodes-ultimate' ),
38
  ),
39
+ 'class' => array(
40
+ 'type' => 'extra_css_class',
41
+ 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
42
+ 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
43
  'default' => '',
44
  ),
45
  ),
46
+ 'content' => __( 'Column content', 'shortcodes-ultimate' ),
47
+ 'desc' => __( 'Flexible and responsive columns', 'shortcodes-ultimate' ),
48
+ 'note' => __( 'Did you know that you need to wrap columns with [row] shortcode?', 'shortcodes-ultimate' ),
49
+ 'example' => 'columns',
50
+ 'icon' => 'columns',
51
+ )
52
+ );
53
 
54
  function su_shortcode_column( $atts = null, $content = null ) {
55
 
56
+ $atts = shortcode_atts(
57
+ array(
58
  'size' => '1/2',
59
  'center' => 'no',
60
  'last' => null,
61
+ 'class' => '',
62
+ ),
63
+ $atts,
64
+ 'column'
65
+ );
66
 
67
  if ( $atts['last'] !== null && $atts['last'] == '1' ) {
68
  $atts['class'] .= ' su-column-last';
74
 
75
  su_query_asset( 'css', 'su-shortcodes' );
76
 
77
+ return '<div class="su-column su-column-size-' . esc_attr( str_replace( '/', '-', $atts['size'] ) ) . su_get_css_class( $atts ) . '"><div class="su-column-inner su-u-clearfix su-u-trim">' . su_do_nested_shortcodes( $content, 'column' ) . '</div></div>';
78
 
79
  }
includes/shortcodes/csv-table.php CHANGED
@@ -73,6 +73,19 @@ function su_shortcode_csv_table( $atts = null, $content = null ) {
73
  'table'
74
  );
75
 
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  if ( filter_var( $atts['url'], FILTER_VALIDATE_URL ) === false ) {
77
  return su_error_message( 'CSV Table', __( 'invalid URL', 'shortcodes-ultimate' ) );
78
  }
73
  'table'
74
  );
75
 
76
+ if ( ! su_is_unsafe_features_enabled() ) {
77
+
78
+ return su_error_message(
79
+ 'CSV Table',
80
+ sprintf(
81
+ '%s.<br><a href="https://getshortcodes.com/docs/unsafe-features/" target="_blank">%s</a>',
82
+ __( 'This shortcode cannot be used while <b>Unsafe features</b> option is turned off', 'shortcodes-ultimate' ),
83
+ __( 'Learn more', 'shortcodes-ultimate' )
84
+ )
85
+ );
86
+
87
+ }
88
+
89
  if ( filter_var( $atts['url'], FILTER_VALIDATE_URL ) === false ) {
90
  return su_error_message( 'CSV Table', __( 'invalid URL', 'shortcodes-ultimate' ) );
91
  }
includes/shortcodes/custom-gallery.php CHANGED
@@ -110,6 +110,9 @@ function su_shortcode_custom_gallery( $atts = null, $content = null ) {
110
  $slides = su_get_slides( $atts );
111
  $slides = apply_filters( 'su/shortcode/custom_gallery/slides', $slides, $atts );
112
 
 
 
 
113
  // Loop slides
114
  if ( count( $slides ) ) {
115
  // Prepare links target
@@ -135,7 +138,7 @@ function su_shortcode_custom_gallery( $atts = null, $content = null ) {
135
  $return .= '<div class="su-custom-gallery-slide">';
136
  // Slide content with link
137
  if ( $slide['link'] ) {
138
- $return .= '<a href="' . $slide['link'] . '"' . $atts['target'] . ' title="' . esc_attr( $slide['title'] ) . '"><img src="' . $image['url'] . '" alt="' . esc_attr( $slide['title'] ) . '" width="' . $atts['width'] . '" height="' . $atts['height'] . '" />' . $title . '</a>';
139
  }
140
  // Slide content without link
141
  else {
110
  $slides = su_get_slides( $atts );
111
  $slides = apply_filters( 'su/shortcode/custom_gallery/slides', $slides, $atts );
112
 
113
+ $atts['width'] = intval( $atts['width'] );
114
+ $atts['height'] = intval( $atts['height'] );
115
+
116
  // Loop slides
117
  if ( count( $slides ) ) {
118
  // Prepare links target
138
  $return .= '<div class="su-custom-gallery-slide">';
139
  // Slide content with link
140
  if ( $slide['link'] ) {
141
+ $return .= '<a href="' . esc_attr( $slide['link'] ) . '"' . $atts['target'] . ' title="' . esc_attr( $slide['title'] ) . '"><img src="' . $image['url'] . '" alt="' . esc_attr( $slide['title'] ) . '" width="' . $atts['width'] . '" height="' . $atts['height'] . '" />' . $title . '</a>';
142
  }
143
  // Slide content without link
144
  else {
includes/shortcodes/dailymotion.php CHANGED
@@ -157,6 +157,6 @@ function su_shortcode_dailymotion( $atts = null, $content = null ) {
157
 
158
  su_query_asset( 'css', 'su-shortcodes' );
159
 
160
- return '<div class="su-dailymotion su-u-responsive-media-' . $atts['responsive'] . su_get_css_class( $atts ) . '"><iframe width="' . $atts['width'] . '" height="' . $atts['height'] . '" src="//www.dailymotion.com/embed/video/' . $id . '?' . implode( '&', $params ) . '" frameborder="0" allowfullscreen="true" title="' . esc_attr( $atts['title'] ) . '"></iframe></div>';
161
 
162
  }
157
 
158
  su_query_asset( 'css', 'su-shortcodes' );
159
 
160
+ return '<div class="su-dailymotion su-u-responsive-media-' . esc_attr( $atts['responsive'] ) . su_get_css_class( $atts ) . '"><iframe width="' . esc_attr( $atts['width'] ) . '" height="' . esc_attr( $atts['height'] ) . '" src="//www.dailymotion.com/embed/video/' . $id . '?' . esc_attr( implode( '&', $params ) ) . '" frameborder="0" allowfullscreen="true" title="' . esc_attr( $atts['title'] ) . '"></iframe></div>';
161
 
162
  }
includes/shortcodes/divider.php CHANGED
@@ -103,7 +103,7 @@ function su_shortcode_divider( $atts = null, $content = null ) {
103
 
104
  $top_link = sprintf(
105
  '<a href="#%1$s"%2$s>%3$s</a>',
106
- $atts['anchor'],
107
  su_html_style( $a_style ),
108
  su_do_attribute( $atts['text'] )
109
  );
103
 
104
  $top_link = sprintf(
105
  '<a href="#%1$s"%2$s>%3$s</a>',
106
+ esc_attr( $atts['anchor'] ),
107
  su_html_style( $a_style ),
108
  su_do_attribute( $atts['text'] )
109
  );
includes/shortcodes/document.php CHANGED
@@ -78,5 +78,5 @@ function su_shortcode_document( $atts = null, $content = null ) {
78
 
79
  su_query_asset( 'css', 'su-shortcodes' );
80
 
81
- return '<div class="su-document su-u-responsive-media-' . $atts['responsive'] . '"><iframe src="//docs.google.com/viewer?embedded=true&url=' . $atts['url'] . '" width="' . $atts['width'] . '" height="' . $atts['height'] . '" class="su-document' . su_get_css_class( $atts ) . '" title="' . esc_attr( $atts['title'] ) . '"></iframe></div>';
82
  }
78
 
79
  su_query_asset( 'css', 'su-shortcodes' );
80
 
81
+ return '<div class="su-document su-u-responsive-media-' . esc_attr( $atts['responsive'] ) . '"><iframe src="//docs.google.com/viewer?embedded=true&url=' . esc_attr( $atts['url'] ) . '" width="' . esc_attr( $atts['width'] ) . '" height="' . esc_attr( $atts['height'] ) . '" class="su-document' . su_get_css_class( $atts ) . '" title="' . esc_attr( $atts['title'] ) . '"></iframe></div>';
82
  }
includes/shortcodes/dropcap.php CHANGED
@@ -1,52 +1,59 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
4
- 'id' => 'dropcap',
 
5
  'callback' => 'su_shortcode_dropcap',
6
- 'image' => su_get_plugin_url() . 'admin/images/shortcodes/dropcap.svg',
7
- 'name' => __( 'Dropcap', 'shortcodes-ultimate' ),
8
- 'type' => 'wrap',
9
- 'group' => 'content',
10
- 'atts' => array(
11
  'style' => array(
12
- 'type' => 'select',
13
- 'values' => array(
14
  'default' => __( 'Default', 'shortcodes-ultimate' ),
15
- 'flat' => __( 'Flat', 'shortcodes-ultimate' ),
16
- 'light' => __( 'Light', 'shortcodes-ultimate' ),
17
- 'simple' => __( 'Simple', 'shortcodes-ultimate' )
18
  ),
19
  'default' => 'default',
20
- 'name' => __( 'Style', 'shortcodes-ultimate' ), 'desc' => __( 'Dropcap style preset', 'shortcodes-ultimate' )
 
21
  ),
22
- 'size' => array(
23
- 'type' => 'slider',
24
- 'min' => 1,
25
- 'max' => 5,
26
- 'step' => 1,
27
  'default' => 3,
28
- 'name' => __( 'Size', 'shortcodes-ultimate' ),
29
- 'desc' => __( 'Choose dropcap size', 'shortcodes-ultimate' )
30
  ),
31
  'class' => array(
32
- 'type' => 'extra_css_class',
33
- 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
34
- 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
35
  'default' => '',
36
  ),
37
  ),
38
- 'content' => __( 'D', 'shortcodes-ultimate' ),
39
- 'desc' => __( 'Dropcap', 'shortcodes-ultimate' ),
40
- 'icon' => 'bold',
41
- ) );
 
42
 
43
  function su_shortcode_dropcap( $atts = null, $content = null ) {
44
 
45
- $atts = shortcode_atts( array(
 
46
  'style' => 'default',
47
  'size' => 3,
48
- 'class' => ''
49
- ), $atts, 'dropcap' );
 
 
 
50
 
51
  $atts['style'] = str_replace( array( '1', '2', '3' ), array( 'default', 'light', 'default' ), $atts['style'] ); // 3.x
52
 
@@ -54,6 +61,6 @@ function su_shortcode_dropcap( $atts = null, $content = null ) {
54
 
55
  su_query_asset( 'css', 'su-shortcodes' );
56
 
57
- return '<span class="su-dropcap su-dropcap-style-' . $atts['style'] . su_get_css_class( $atts ) . '" style="font-size:' . $em . '">' . do_shortcode( $content ) . '</span>';
58
 
59
  }
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
+ 'id' => 'dropcap',
6
  'callback' => 'su_shortcode_dropcap',
7
+ 'image' => su_get_plugin_url() . 'admin/images/shortcodes/dropcap.svg',
8
+ 'name' => __( 'Dropcap', 'shortcodes-ultimate' ),
9
+ 'type' => 'wrap',
10
+ 'group' => 'content',
11
+ 'atts' => array(
12
  'style' => array(
13
+ 'type' => 'select',
14
+ 'values' => array(
15
  'default' => __( 'Default', 'shortcodes-ultimate' ),
16
+ 'flat' => __( 'Flat', 'shortcodes-ultimate' ),
17
+ 'light' => __( 'Light', 'shortcodes-ultimate' ),
18
+ 'simple' => __( 'Simple', 'shortcodes-ultimate' ),
19
  ),
20
  'default' => 'default',
21
+ 'name' => __( 'Style', 'shortcodes-ultimate' ),
22
+ 'desc' => __( 'Dropcap style preset', 'shortcodes-ultimate' ),
23
  ),
24
+ 'size' => array(
25
+ 'type' => 'slider',
26
+ 'min' => 1,
27
+ 'max' => 5,
28
+ 'step' => 1,
29
  'default' => 3,
30
+ 'name' => __( 'Size', 'shortcodes-ultimate' ),
31
+ 'desc' => __( 'Choose dropcap size', 'shortcodes-ultimate' ),
32
  ),
33
  'class' => array(
34
+ 'type' => 'extra_css_class',
35
+ 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
36
+ 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
37
  'default' => '',
38
  ),
39
  ),
40
+ 'content' => __( 'D', 'shortcodes-ultimate' ),
41
+ 'desc' => __( 'Dropcap', 'shortcodes-ultimate' ),
42
+ 'icon' => 'bold',
43
+ )
44
+ );
45
 
46
  function su_shortcode_dropcap( $atts = null, $content = null ) {
47
 
48
+ $atts = shortcode_atts(
49
+ array(
50
  'style' => 'default',
51
  'size' => 3,
52
+ 'class' => '',
53
+ ),
54
+ $atts,
55
+ 'dropcap'
56
+ );
57
 
58
  $atts['style'] = str_replace( array( '1', '2', '3' ), array( 'default', 'light', 'default' ), $atts['style'] ); // 3.x
59
 
61
 
62
  su_query_asset( 'css', 'su-shortcodes' );
63
 
64
+ return '<span class="su-dropcap su-dropcap-style-' . esc_attr( $atts['style'] ) . su_get_css_class( $atts ) . '" style="font-size:' . $em . '">' . do_shortcode( $content ) . '</span>';
65
 
66
  }
includes/shortcodes/dummy-image.php CHANGED
@@ -1,34 +1,35 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
4
- 'id' => 'dummy_image',
 
5
  'callback' => 'su_shortcode_dummy_image',
6
- 'image' => su_get_plugin_url() . 'admin/images/shortcodes/dummy_image.svg',
7
- 'name' => __( 'Dummy image', 'shortcodes-ultimate' ),
8
- 'type' => 'single',
9
- 'group' => 'content',
10
- 'atts' => array(
11
- 'width' => array(
12
- 'type' => 'slider',
13
- 'min' => 10,
14
- 'max' => 1600,
15
- 'step' => 10,
16
  'default' => 500,
17
- 'name' => __( 'Width', 'shortcodes-ultimate' ),
18
- 'desc' => __( 'Image width', 'shortcodes-ultimate' )
19
  ),
20
  'height' => array(
21
- 'type' => 'slider',
22
- 'min' => 10,
23
- 'max' => 1600,
24
- 'step' => 10,
25
  'default' => 300,
26
- 'name' => __( 'Height', 'shortcodes-ultimate' ),
27
- 'desc' => __( 'Image height', 'shortcodes-ultimate' )
28
  ),
29
- 'theme' => array(
30
- 'type' => 'select',
31
- 'values' => array(
32
  'any' => __( 'Any', 'shortcodes-ultimate' ),
33
  'abstract' => __( 'Abstract', 'shortcodes-ultimate' ),
34
  'animals' => __( 'Animals', 'shortcodes-ultimate' ),
@@ -42,31 +43,38 @@ su_add_shortcode( array(
42
  'nature' => __( 'Nature', 'shortcodes-ultimate' ),
43
  'sports' => __( 'Sports', 'shortcodes-ultimate' ),
44
  'technics' => __( 'Technics', 'shortcodes-ultimate' ),
45
- 'transport' => __( 'Transport', 'shortcodes-ultimate' )
46
  ),
47
  'default' => 'any',
48
- 'name' => __( 'Theme', 'shortcodes-ultimate' ),
49
- 'desc' => __( 'Select the theme for this image', 'shortcodes-ultimate' )
50
  ),
51
- 'class' => array(
52
- 'type' => 'extra_css_class',
53
- 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
54
- 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
55
  'default' => '',
56
  ),
57
  ),
58
- 'desc' => __( 'Image placeholder with random image', 'shortcodes-ultimate' ),
59
- 'icon' => 'picture-o',
60
- ) );
 
61
 
62
  function su_shortcode_dummy_image( $atts = null, $content = null ) {
63
- $atts = shortcode_atts( array(
 
64
  'width' => 500,
65
  'height' => 300,
66
  'theme' => 'any',
67
- 'class' => ''
68
- ), $atts, 'dummy_image' );
69
- $url = 'http://lorempixel.com/' . $atts['width'] . '/' . $atts['height'] . '/';
70
- if ( $atts['theme'] !== 'any' ) $url .= $atts['theme'] . '/' . rand( 0, 10 ) . '/';
71
- return '<img src="' . $url . '" alt="' . __( 'Dummy image', 'shortcodes-ultimate' ) . '" width="' . $atts['width'] . '" height="' . $atts['height'] . '" class="su-dummy-image' . su_get_css_class( $atts ) . '" />';
 
 
 
 
 
72
  }
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
+ 'id' => 'dummy_image',
6
  'callback' => 'su_shortcode_dummy_image',
7
+ 'image' => su_get_plugin_url() . 'admin/images/shortcodes/dummy_image.svg',
8
+ 'name' => __( 'Dummy image', 'shortcodes-ultimate' ),
9
+ 'type' => 'single',
10
+ 'group' => 'content',
11
+ 'atts' => array(
12
+ 'width' => array(
13
+ 'type' => 'slider',
14
+ 'min' => 10,
15
+ 'max' => 1600,
16
+ 'step' => 10,
17
  'default' => 500,
18
+ 'name' => __( 'Width', 'shortcodes-ultimate' ),
19
+ 'desc' => __( 'Image width', 'shortcodes-ultimate' ),
20
  ),
21
  'height' => array(
22
+ 'type' => 'slider',
23
+ 'min' => 10,
24
+ 'max' => 1600,
25
+ 'step' => 10,
26
  'default' => 300,
27
+ 'name' => __( 'Height', 'shortcodes-ultimate' ),
28
+ 'desc' => __( 'Image height', 'shortcodes-ultimate' ),
29
  ),
30
+ 'theme' => array(
31
+ 'type' => 'select',
32
+ 'values' => array(
33
  'any' => __( 'Any', 'shortcodes-ultimate' ),
34
  'abstract' => __( 'Abstract', 'shortcodes-ultimate' ),
35
  'animals' => __( 'Animals', 'shortcodes-ultimate' ),
43
  'nature' => __( 'Nature', 'shortcodes-ultimate' ),
44
  'sports' => __( 'Sports', 'shortcodes-ultimate' ),
45
  'technics' => __( 'Technics', 'shortcodes-ultimate' ),
46
+ 'transport' => __( 'Transport', 'shortcodes-ultimate' ),
47
  ),
48
  'default' => 'any',
49
+ 'name' => __( 'Theme', 'shortcodes-ultimate' ),
50
+ 'desc' => __( 'Select the theme for this image', 'shortcodes-ultimate' ),
51
  ),
52
+ 'class' => array(
53
+ 'type' => 'extra_css_class',
54
+ 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
55
+ 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
56
  'default' => '',
57
  ),
58
  ),
59
+ 'desc' => __( 'Image placeholder with random image', 'shortcodes-ultimate' ),
60
+ 'icon' => 'picture-o',
61
+ )
62
+ );
63
 
64
  function su_shortcode_dummy_image( $atts = null, $content = null ) {
65
+ $atts = shortcode_atts(
66
+ array(
67
  'width' => 500,
68
  'height' => 300,
69
  'theme' => 'any',
70
+ 'class' => '',
71
+ ),
72
+ $atts,
73
+ 'dummy_image'
74
+ );
75
+ $url = 'http://lorempixel.com/' . $atts['width'] . '/' . $atts['height'] . '/';
76
+ if ( $atts['theme'] !== 'any' ) {
77
+ $url .= $atts['theme'] . '/' . rand( 0, 10 ) . '/';
78
+ }
79
+ return '<img src="' . esc_attr( $url ) . '" alt="' . __( 'Dummy image', 'shortcodes-ultimate' ) . '" width="' . esc_attr( $atts['width'] ) . '" height="' . esc_attr( $atts['height'] ) . '" class="su-dummy-image' . su_get_css_class( $atts ) . '" />';
80
  }
includes/shortcodes/expand.php CHANGED
@@ -1,55 +1,56 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
4
- 'id' => 'expand',
 
5
  'callback' => 'su_shortcode_expand',
6
- 'image' => su_get_plugin_url() . 'admin/images/shortcodes/expand.svg',
7
- 'name' => __( 'Expand', 'shortcodes-ultimate' ),
8
- 'type' => 'wrap',
9
- 'group' => 'box',
10
- 'atts' => array(
11
- 'more_text' => array(
12
  'default' => __( 'Show more', 'shortcodes-ultimate' ),
13
- 'name' => __( 'More text', 'shortcodes-ultimate' ),
14
- 'desc' => __( 'Enter the text for more link', 'shortcodes-ultimate' )
15
  ),
16
- 'less_text' => array(
17
  'default' => __( 'Show less', 'shortcodes-ultimate' ),
18
- 'name' => __( 'Less text', 'shortcodes-ultimate' ),
19
- 'desc' => __( 'Enter the text for less link', 'shortcodes-ultimate' )
20
  ),
21
- 'height' => array(
22
- 'type' => 'slider',
23
- 'min' => 0,
24
- 'max' => 1000,
25
- 'step' => 10,
26
  'default' => 100,
27
- 'name' => __( 'Height', 'shortcodes-ultimate' ),
28
- 'desc' => __( 'Height for collapsed state (in pixels)', 'shortcodes-ultimate' )
29
  ),
30
- 'hide_less' => array(
31
- 'type' => 'bool',
32
  'default' => 'no',
33
- 'name' => __( 'Hide less link', 'shortcodes-ultimate' ),
34
- 'desc' => __( 'This option allows you to hide less link, when the text block has been expanded', 'shortcodes-ultimate' )
35
  ),
36
  'text_color' => array(
37
- 'type' => 'color',
38
- 'values' => array( ),
39
  'default' => '#333333',
40
- 'name' => __( 'Text color', 'shortcodes-ultimate' ),
41
- 'desc' => __( 'Pick the text color', 'shortcodes-ultimate' )
42
  ),
43
  'link_color' => array(
44
- 'type' => 'color',
45
- 'values' => array( ),
46
  'default' => '#0088FF',
47
- 'name' => __( 'Link color', 'shortcodes-ultimate' ),
48
- 'desc' => __( 'Pick the link color', 'shortcodes-ultimate' )
49
  ),
50
  'link_style' => array(
51
- 'type' => 'select',
52
- 'values' => array(
53
  'default' => __( 'Default', 'shortcodes-ultimate' ),
54
  'underlined' => __( 'Underlined', 'shortcodes-ultimate' ),
55
  'dotted' => __( 'Dotted', 'shortcodes-ultimate' ),
@@ -57,47 +58,49 @@ su_add_shortcode( array(
57
  'button' => __( 'Button', 'shortcodes-ultimate' ),
58
  ),
59
  'default' => 'default',
60
- 'name' => __( 'Link style', 'shortcodes-ultimate' ),
61
- 'desc' => __( 'Select the style for more/less link', 'shortcodes-ultimate' )
62
  ),
63
  'link_align' => array(
64
- 'type' => 'select',
65
- 'values' => array(
66
- 'left' => __( 'Left', 'shortcodes-ultimate' ),
67
  'center' => __( 'Center', 'shortcodes-ultimate' ),
68
- 'right' => __( 'Right', 'shortcodes-ultimate' ),
69
  ),
70
  'default' => 'left',
71
- 'name' => __( 'Link align', 'shortcodes-ultimate' ),
72
- 'desc' => __( 'Select link alignment', 'shortcodes-ultimate' )
73
  ),
74
- 'more_icon' => array(
75
- 'type' => 'icon',
76
  'default' => '',
77
- 'name' => __( 'More icon', 'shortcodes-ultimate' ),
78
- 'desc' => __( 'Add an icon to the more link', 'shortcodes-ultimate' )
79
  ),
80
- 'less_icon' => array(
81
- 'type' => 'icon',
82
  'default' => '',
83
- 'name' => __( 'Less icon', 'shortcodes-ultimate' ),
84
- 'desc' => __( 'Add an icon to the less link', 'shortcodes-ultimate' )
85
  ),
86
- 'class' => array(
87
- 'type' => 'extra_css_class',
88
- 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
89
- 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
90
  'default' => '',
91
  ),
92
  ),
93
- 'content' => __( 'This text block can be expanded', 'shortcodes-ultimate' ),
94
- 'desc' => __( 'Expandable text block', 'shortcodes-ultimate' ),
95
- 'icon' => 'sort-amount-asc',
96
- ) );
 
97
 
98
  function su_shortcode_expand( $atts = null, $content = null ) {
99
 
100
- $atts = shortcode_atts( array(
 
101
  'more_text' => __( 'Show more', 'shortcodes-ultimate' ),
102
  'less_text' => __( 'Show less', 'shortcodes-ultimate' ),
103
  'height' => '100',
@@ -108,8 +111,11 @@ function su_shortcode_expand( $atts = null, $content = null ) {
108
  'link_align' => 'left',
109
  'more_icon' => '',
110
  'less_icon' => '',
111
- 'class' => ''
112
- ), $atts, 'expand' );
 
 
 
113
 
114
  // Prepare more icon
115
  $more_icon = ( $atts['more_icon'] ) ? su_html_icon( $atts['more_icon'] ) : '';
@@ -121,12 +127,12 @@ function su_shortcode_expand( $atts = null, $content = null ) {
121
 
122
  // Prepare less link
123
  $less = $atts['hide_less'] !== 'yes'
124
- ? '<div class="su-expand-link su-expand-link-less" style="text-align:' . $atts['link_align'] . '"><a href="javascript:;" style="color:' . $atts['link_color'] . ';border-color:' . $atts['link_color'] . '">' . $less_icon . '<span style="border-color:' . $atts['link_color'] . '">' . $atts['less_text'] . '</span></a></div>'
125
  : '';
126
 
127
  su_query_asset( 'css', 'su-shortcodes' );
128
  su_query_asset( 'js', 'su-shortcodes' );
129
 
130
- return '<div class="su-expand su-expand-collapsed su-expand-link-style-' . $atts['link_style'] . su_get_css_class( $atts ) . '" data-height="' . $atts['height'] . '"><div class="su-expand-content su-u-trim" style="color:' . $atts['text_color'] . ';max-height:' . intval( $atts['height'] ) . 'px;overflow:hidden">' . do_shortcode( $content ) . '</div><div class="su-expand-link su-expand-link-more" style="text-align:' . $atts['link_align'] . '"><a href="javascript:;" style="color:' . $atts['link_color'] . ';border-color:' . $atts['link_color'] . '">' . $more_icon . '<span style="border-color:' . $atts['link_color'] . '">' . $atts['more_text'] . '</span></a></div>' . $less . '</div>';
131
 
132
  }
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
+ 'id' => 'expand',
6
  'callback' => 'su_shortcode_expand',
7
+ 'image' => su_get_plugin_url() . 'admin/images/shortcodes/expand.svg',
8
+ 'name' => __( 'Expand', 'shortcodes-ultimate' ),
9
+ 'type' => 'wrap',
10
+ 'group' => 'box',
11
+ 'atts' => array(
12
+ 'more_text' => array(
13
  'default' => __( 'Show more', 'shortcodes-ultimate' ),
14
+ 'name' => __( 'More text', 'shortcodes-ultimate' ),
15
+ 'desc' => __( 'Enter the text for more link', 'shortcodes-ultimate' ),
16
  ),
17
+ 'less_text' => array(
18
  'default' => __( 'Show less', 'shortcodes-ultimate' ),
19
+ 'name' => __( 'Less text', 'shortcodes-ultimate' ),
20
+ 'desc' => __( 'Enter the text for less link', 'shortcodes-ultimate' ),
21
  ),
22
+ 'height' => array(
23
+ 'type' => 'slider',
24
+ 'min' => 0,
25
+ 'max' => 1000,
26
+ 'step' => 10,
27
  'default' => 100,
28
+ 'name' => __( 'Height', 'shortcodes-ultimate' ),
29
+ 'desc' => __( 'Height for collapsed state (in pixels)', 'shortcodes-ultimate' ),
30
  ),
31
+ 'hide_less' => array(
32
+ 'type' => 'bool',
33
  'default' => 'no',
34
+ 'name' => __( 'Hide less link', 'shortcodes-ultimate' ),
35
+ 'desc' => __( 'This option allows you to hide less link, when the text block has been expanded', 'shortcodes-ultimate' ),
36
  ),
37
  'text_color' => array(
38
+ 'type' => 'color',
39
+ 'values' => array(),
40
  'default' => '#333333',
41
+ 'name' => __( 'Text color', 'shortcodes-ultimate' ),
42
+ 'desc' => __( 'Pick the text color', 'shortcodes-ultimate' ),
43
  ),
44
  'link_color' => array(
45
+ 'type' => 'color',
46
+ 'values' => array(),
47
  'default' => '#0088FF',
48
+ 'name' => __( 'Link color', 'shortcodes-ultimate' ),
49
+ 'desc' => __( 'Pick the link color', 'shortcodes-ultimate' ),
50
  ),
51
  'link_style' => array(
52
+ 'type' => 'select',
53
+ 'values' => array(
54
  'default' => __( 'Default', 'shortcodes-ultimate' ),
55
  'underlined' => __( 'Underlined', 'shortcodes-ultimate' ),
56
  'dotted' => __( 'Dotted', 'shortcodes-ultimate' ),
58
  'button' => __( 'Button', 'shortcodes-ultimate' ),
59
  ),
60
  'default' => 'default',
61
+ 'name' => __( 'Link style', 'shortcodes-ultimate' ),
62
+ 'desc' => __( 'Select the style for more/less link', 'shortcodes-ultimate' ),
63
  ),
64
  'link_align' => array(
65
+ 'type' => 'select',
66
+ 'values' => array(
67
+ 'left' => __( 'Left', 'shortcodes-ultimate' ),
68
  'center' => __( 'Center', 'shortcodes-ultimate' ),
69
+ 'right' => __( 'Right', 'shortcodes-ultimate' ),
70
  ),
71
  'default' => 'left',
72
+ 'name' => __( 'Link align', 'shortcodes-ultimate' ),
73
+ 'desc' => __( 'Select link alignment', 'shortcodes-ultimate' ),
74
  ),
75
+ 'more_icon' => array(
76
+ 'type' => 'icon',
77
  'default' => '',
78
+ 'name' => __( 'More icon', 'shortcodes-ultimate' ),
79
+ 'desc' => __( 'Add an icon to the more link', 'shortcodes-ultimate' ),
80
  ),
81
+ 'less_icon' => array(
82
+ 'type' => 'icon',
83
  'default' => '',
84
+ 'name' => __( 'Less icon', 'shortcodes-ultimate' ),
85
+ 'desc' => __( 'Add an icon to the less link', 'shortcodes-ultimate' ),
86
  ),
87
+ 'class' => array(
88
+ 'type' => 'extra_css_class',
89
+ 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
90
+ 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
91
  'default' => '',
92
  ),
93
  ),
94
+ 'content' => __( 'This text block can be expanded', 'shortcodes-ultimate' ),
95
+ 'desc' => __( 'Expandable text block', 'shortcodes-ultimate' ),
96
+ 'icon' => 'sort-amount-asc',
97
+ )
98
+ );
99
 
100
  function su_shortcode_expand( $atts = null, $content = null ) {
101
 
102
+ $atts = shortcode_atts(
103
+ array(
104
  'more_text' => __( 'Show more', 'shortcodes-ultimate' ),
105
  'less_text' => __( 'Show less', 'shortcodes-ultimate' ),
106
  'height' => '100',
111
  'link_align' => 'left',
112
  'more_icon' => '',
113
  'less_icon' => '',
114
+ 'class' => '',
115
+ ),
116
+ $atts,
117
+ 'expand'
118
+ );
119
 
120
  // Prepare more icon
121
  $more_icon = ( $atts['more_icon'] ) ? su_html_icon( $atts['more_icon'] ) : '';
127
 
128
  // Prepare less link
129
  $less = $atts['hide_less'] !== 'yes'
130
+ ? '<div class="su-expand-link su-expand-link-less" style="text-align:' . esc_attr( $atts['link_align'] ) . '"><a href="javascript:;" style="color:' . esc_attr( $atts['link_color'] ) . ';border-color:' . esc_attr( $atts['link_color'] ) . '">' . $less_icon . '<span style="border-color:' . esc_attr( $atts['link_color'] ) . '">' . $atts['less_text'] . '</span></a></div>'
131
  : '';
132
 
133
  su_query_asset( 'css', 'su-shortcodes' );
134
  su_query_asset( 'js', 'su-shortcodes' );
135
 
136
+ return '<div class="su-expand su-expand-collapsed su-expand-link-style-' . esc_attr( $atts['link_style'] ) . su_get_css_class( $atts ) . '" data-height="' . esc_attr( $atts['height'] ) . '"><div class="su-expand-content su-u-trim" style="color:' . esc_attr( $atts['text_color'] ) . ';max-height:' . intval( $atts['height'] ) . 'px;overflow:hidden">' . do_shortcode( $content ) . '</div><div class="su-expand-link su-expand-link-more" style="text-align:' . esc_attr( $atts['link_align'] ) . '"><a href="javascript:;" style="color:' . esc_attr( $atts['link_color'] ) . ';border-color:' . esc_attr( $atts['link_color'] ) . '">' . $more_icon . '<span style="border-color:' . esc_attr( $atts['link_color'] ) . '">' . $atts['more_text'] . '</span></a></div>' . $less . '</div>';
137
 
138
  }
includes/shortcodes/frame.php CHANGED
@@ -1,46 +1,52 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
 
4
  'deprecated' => true,
5
- 'id' => 'frame',
6
- 'callback' => 'su_shortcode_frame',
7
- 'name' => __( 'Frame', 'shortcodes-ultimate' ),
8
- 'type' => 'wrap',
9
- 'group' => 'content',
10
- 'atts' => array(
11
  'align' => array(
12
- 'type' => 'select',
13
- 'values' => array(
14
- 'left' => __( 'Left', 'shortcodes-ultimate' ),
15
  'center' => __( 'Center', 'shortcodes-ultimate' ),
16
- 'right' => __( 'Right', 'shortcodes-ultimate' )
17
  ),
18
  'default' => 'left',
19
- 'name' => __( 'Align', 'shortcodes-ultimate' ),
20
- 'desc' => __( 'Frame alignment', 'shortcodes-ultimate' )
21
  ),
22
  'class' => array(
23
  'default' => '',
24
- 'name' => __( 'Class', 'shortcodes-ultimate' ),
25
- 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
26
- )
27
  ),
28
- 'content' => '<img src="http://lorempixel.com/g/400/200/" />',
29
- 'desc' => __( 'Styled image frame', 'shortcodes-ultimate' ),
30
- 'icon' => 'picture-o',
31
- ) );
 
32
 
33
  function su_shortcode_frame( $atts = null, $content = null ) {
34
 
35
- $atts = shortcode_atts( array(
 
36
  'style' => 'default',
37
  'align' => 'left',
38
- 'class' => ''
39
- ), $atts, 'frame' );
 
 
 
40
 
41
  su_query_asset( 'css', 'su-shortcodes' );
42
  su_query_asset( 'js', 'su-shortcodes' );
43
 
44
- return '<span class="su-frame su-frame-align-' . $atts['align'] . ' su-frame-style-' . $atts['style'] . su_get_css_class( $atts ) . '"><span class="su-frame-inner">' . do_shortcode( $content ) . '</span></span>';
45
 
46
  }
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
  'deprecated' => true,
6
+ 'id' => 'frame',
7
+ 'callback' => 'su_shortcode_frame',
8
+ 'name' => __( 'Frame', 'shortcodes-ultimate' ),
9
+ 'type' => 'wrap',
10
+ 'group' => 'content',
11
+ 'atts' => array(
12
  'align' => array(
13
+ 'type' => 'select',
14
+ 'values' => array(
15
+ 'left' => __( 'Left', 'shortcodes-ultimate' ),
16
  'center' => __( 'Center', 'shortcodes-ultimate' ),
17
+ 'right' => __( 'Right', 'shortcodes-ultimate' ),
18
  ),
19
  'default' => 'left',
20
+ 'name' => __( 'Align', 'shortcodes-ultimate' ),
21
+ 'desc' => __( 'Frame alignment', 'shortcodes-ultimate' ),
22
  ),
23
  'class' => array(
24
  'default' => '',
25
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
26
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
27
+ ),
28
  ),
29
+ 'content' => '<img src="http://lorempixel.com/g/400/200/" />',
30
+ 'desc' => __( 'Styled image frame', 'shortcodes-ultimate' ),
31
+ 'icon' => 'picture-o',
32
+ )
33
+ );
34
 
35
  function su_shortcode_frame( $atts = null, $content = null ) {
36
 
37
+ $atts = shortcode_atts(
38
+ array(
39
  'style' => 'default',
40
  'align' => 'left',
41
+ 'class' => '',
42
+ ),
43
+ $atts,
44
+ 'frame'
45
+ );
46
 
47
  su_query_asset( 'css', 'su-shortcodes' );
48
  su_query_asset( 'js', 'su-shortcodes' );
49
 
50
+ return '<span class="su-frame su-frame-align-' . esc_attr( $atts['align'] ) . ' su-frame-style-' . esc_attr( $atts['style'] ) . su_get_css_class( $atts ) . '"><span class="su-frame-inner">' . do_shortcode( $content ) . '</span></span>';
51
 
52
  }
includes/shortcodes/guests.php CHANGED
@@ -1,29 +1,31 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
4
- 'id' => 'guests',
 
5
  'callback' => 'su_shortcode_guests',
6
- 'image' => su_get_plugin_url() . 'admin/images/shortcodes/guests.svg',
7
- 'name' => __( 'Guests', 'shortcodes-ultimate' ),
8
- 'type' => 'wrap',
9
- 'group' => 'other',
10
- 'atts' => array(
11
  'class' => array(
12
- 'type' => 'extra_css_class',
13
- 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
14
- 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
15
  'default' => '',
16
  ),
17
  ),
18
- 'content' => __( 'This content will be available only for non-logged visitors', 'shortcodes-ultimate' ),
19
- 'desc' => __( 'Content for guests only', 'shortcodes-ultimate' ),
20
- 'icon' => 'user',
21
- ) );
 
22
 
23
  function su_shortcode_guests( $atts = null, $content = null ) {
24
- $atts = shortcode_atts( array( 'class' => '' ), $atts, 'guests' );
25
  $return = '';
26
- if ( !is_user_logged_in() && !is_null( $content ) ) {
27
  su_query_asset( 'css', 'su-shortcodes' );
28
  $return = '<div class="su-guests' . su_get_css_class( $atts ) . '">' . do_shortcode( $content ) . '</div>';
29
  }
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
+ 'id' => 'guests',
6
  'callback' => 'su_shortcode_guests',
7
+ 'image' => su_get_plugin_url() . 'admin/images/shortcodes/guests.svg',
8
+ 'name' => __( 'Guests', 'shortcodes-ultimate' ),
9
+ 'type' => 'wrap',
10
+ 'group' => 'other',
11
+ 'atts' => array(
12
  'class' => array(
13
+ 'type' => 'extra_css_class',
14
+ 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
15
+ 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
16
  'default' => '',
17
  ),
18
  ),
19
+ 'content' => __( 'This content will be available only for non-logged visitors', 'shortcodes-ultimate' ),
20
+ 'desc' => __( 'Content for guests only', 'shortcodes-ultimate' ),
21
+ 'icon' => 'user',
22
+ )
23
+ );
24
 
25
  function su_shortcode_guests( $atts = null, $content = null ) {
26
+ $atts = shortcode_atts( array( 'class' => '' ), $atts, 'guests' );
27
  $return = '';
28
+ if ( ! is_user_logged_in() && ! is_null( $content ) ) {
29
  su_query_asset( 'css', 'su-shortcodes' );
30
  $return = '<div class="su-guests' . su_get_css_class( $atts ) . '">' . do_shortcode( $content ) . '</div>';
31
  }
includes/shortcodes/heading.php CHANGED
@@ -82,6 +82,6 @@ function su_shortcode_heading( $atts = null, $content = null ) {
82
 
83
  su_query_asset( 'css', 'su-shortcodes' );
84
 
85
- return '<div class="su-heading su-heading-style-' . $atts['style'] . ' su-heading-align-' . $atts['align'] . su_get_css_class( $atts ) . '" id="' . esc_attr( $atts['id'] ) . '" style="font-size:' . intval( $atts['size'] ) . 'px;margin-bottom:' . $atts['margin'] . 'px"><div class="su-heading-inner">' . do_shortcode( $content ) . '</div></div>';
86
 
87
  }
82
 
83
  su_query_asset( 'css', 'su-shortcodes' );
84
 
85
+ return '<div class="su-heading su-heading-style-' . esc_attr( $atts['style'] ) . ' su-heading-align-' . esc_attr( $atts['align'] ) . su_get_css_class( $atts ) . '" id="' . esc_attr( $atts['id'] ) . '" style="font-size:' . intval( $atts['size'] ) . 'px;margin-bottom:' . esc_attr( $atts['margin'] ) . 'px"><div class="su-heading-inner">' . do_shortcode( $content ) . '</div></div>';
86
 
87
  }
includes/shortcodes/highlight.php CHANGED
@@ -1,46 +1,53 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
4
- 'id' => 'highlight',
 
5
  'callback' => 'su_shortcode_highlight',
6
- 'image' => su_get_plugin_url() . 'admin/images/shortcodes/highlight.svg',
7
- 'name' => __( 'Highlight', 'shortcodes-ultimate' ),
8
- 'type' => 'wrap',
9
- 'group' => 'content',
10
- 'atts' => array(
11
  'background' => array(
12
- 'type' => 'color',
13
- 'values' => array( ),
14
  'default' => '#DDFF99',
15
- 'name' => __( 'Background', 'shortcodes-ultimate' ),
16
- 'desc' => __( 'Highlighted text background color', 'shortcodes-ultimate' )
17
  ),
18
- 'color' => array(
19
- 'type' => 'color',
20
- 'values' => array( ),
21
  'default' => '#000000',
22
- 'name' => __( 'Text color', 'shortcodes-ultimate' ), 'desc' => __( 'Highlighted text color', 'shortcodes-ultimate' )
 
23
  ),
24
- 'class' => array(
25
- 'type' => 'extra_css_class',
26
- 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
27
- 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
28
  'default' => '',
29
  ),
30
  ),
31
- 'content' => __( 'Highlighted text', 'shortcodes-ultimate' ),
32
- 'desc' => __( 'Highlighted text', 'shortcodes-ultimate' ),
33
- 'icon' => 'pencil',
34
- ) );
 
35
 
36
  function su_shortcode_highlight( $atts = null, $content = null ) {
37
 
38
- $atts = shortcode_atts( array(
 
39
  'background' => '#ddff99',
40
  'bg' => null, // 3.x
41
  'color' => '#000000',
42
- 'class' => ''
43
- ), $atts, 'highlight' );
 
 
 
44
 
45
  if ( $atts['bg'] !== null ) {
46
  $atts['background'] = $atts['bg'];
@@ -48,6 +55,6 @@ function su_shortcode_highlight( $atts = null, $content = null ) {
48
 
49
  su_query_asset( 'css', 'su-shortcodes' );
50
 
51
- return '<span class="su-highlight' . su_get_css_class( $atts ) . '" style="background:' . $atts['background'] . ';color:' . $atts['color'] . '">&nbsp;' . do_shortcode( $content ) . '&nbsp;</span>';
52
 
53
  }
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
+ 'id' => 'highlight',
6
  'callback' => 'su_shortcode_highlight',
7
+ 'image' => su_get_plugin_url() . 'admin/images/shortcodes/highlight.svg',
8
+ 'name' => __( 'Highlight', 'shortcodes-ultimate' ),
9
+ 'type' => 'wrap',
10
+ 'group' => 'content',
11
+ 'atts' => array(
12
  'background' => array(
13
+ 'type' => 'color',
14
+ 'values' => array(),
15
  'default' => '#DDFF99',
16
+ 'name' => __( 'Background', 'shortcodes-ultimate' ),
17
+ 'desc' => __( 'Highlighted text background color', 'shortcodes-ultimate' ),
18
  ),
19
+ 'color' => array(
20
+ 'type' => 'color',
21
+ 'values' => array(),
22
  'default' => '#000000',
23
+ 'name' => __( 'Text color', 'shortcodes-ultimate' ),
24
+ 'desc' => __( 'Highlighted text color', 'shortcodes-ultimate' ),
25
  ),
26
+ 'class' => array(
27
+ 'type' => 'extra_css_class',
28
+ 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
29
+ 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
30
  'default' => '',
31
  ),
32
  ),
33
+ 'content' => __( 'Highlighted text', 'shortcodes-ultimate' ),
34
+ 'desc' => __( 'Highlighted text', 'shortcodes-ultimate' ),
35
+ 'icon' => 'pencil',
36
+ )
37
+ );
38
 
39
  function su_shortcode_highlight( $atts = null, $content = null ) {
40
 
41
+ $atts = shortcode_atts(
42
+ array(
43
  'background' => '#ddff99',
44
  'bg' => null, // 3.x
45
  'color' => '#000000',
46
+ 'class' => '',
47
+ ),
48
+ $atts,
49
+ 'highlight'
50
+ );
51
 
52
  if ( $atts['bg'] !== null ) {
53
  $atts['background'] = $atts['bg'];
55
 
56
  su_query_asset( 'css', 'su-shortcodes' );
57
 
58
+ return '<span class="su-highlight' . su_get_css_class( $atts ) . '" style="background:' . esc_attr( $atts['background'] ) . ';color:' . esc_attr( $atts['color'] ) . '">&nbsp;' . do_shortcode( $content ) . '&nbsp;</span>';
59
 
60
  }
includes/shortcodes/label.php CHANGED
@@ -1,51 +1,59 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
4
- 'id' => 'label',
 
5
  'callback' => 'su_shortcode_label',
6
- 'image' => su_get_plugin_url() . 'admin/images/shortcodes/label.svg',
7
- 'name' => __( 'Label', 'shortcodes-ultimate' ),
8
- 'type' => 'wrap',
9
- 'group' => 'content',
10
- 'atts' => array(
11
- 'type' => array(
12
- 'type' => 'select',
13
- 'values' => array(
14
- 'default' => __( 'Default', 'shortcodes-ultimate' ),
15
- 'success' => __( 'Success', 'shortcodes-ultimate' ),
16
- 'warning' => __( 'Warning', 'shortcodes-ultimate' ),
17
  'important' => __( 'Important', 'shortcodes-ultimate' ),
18
- 'black' => __( 'Black', 'shortcodes-ultimate' ),
19
- 'info' => __( 'Info', 'shortcodes-ultimate' )
20
  ),
21
  'default' => 'default',
22
- 'name' => __( 'Type', 'shortcodes-ultimate' ),
23
- 'desc' => __( 'Style of the label', 'shortcodes-ultimate' )
24
  ),
25
  'class' => array(
26
- 'type' => 'extra_css_class',
27
- 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
28
- 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
29
  'default' => '',
30
  ),
31
  ),
32
- 'content' => __( 'Label', 'shortcodes-ultimate' ),
33
- 'desc' => __( 'Styled label', 'shortcodes-ultimate' ),
34
- 'icon' => 'tag',
35
- ) );
 
36
 
37
  function su_shortcode_label( $atts = null, $content = null ) {
38
 
39
- $atts = shortcode_atts( array(
 
40
  'type' => 'default',
41
  'style' => null, // 3.x
42
- 'class' => ''
43
- ), $atts, 'label' );
 
 
 
44
 
45
- if ( $atts['style'] !== null ) $atts['type'] = $atts['style'];
 
 
46
 
47
  su_query_asset( 'css', 'su-shortcodes' );
48
 
49
- return '<span class="su-label su-label-type-' . $atts['type'] . su_get_css_class( $atts ) . '">' . do_shortcode( $content ) . '</span>';
50
 
51
  }
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
+ 'id' => 'label',
6
  'callback' => 'su_shortcode_label',
7
+ 'image' => su_get_plugin_url() . 'admin/images/shortcodes/label.svg',
8
+ 'name' => __( 'Label', 'shortcodes-ultimate' ),
9
+ 'type' => 'wrap',
10
+ 'group' => 'content',
11
+ 'atts' => array(
12
+ 'type' => array(
13
+ 'type' => 'select',
14
+ 'values' => array(
15
+ 'default' => __( 'Default', 'shortcodes-ultimate' ),
16
+ 'success' => __( 'Success', 'shortcodes-ultimate' ),
17
+ 'warning' => __( 'Warning', 'shortcodes-ultimate' ),
18
  'important' => __( 'Important', 'shortcodes-ultimate' ),
19
+ 'black' => __( 'Black', 'shortcodes-ultimate' ),
20
+ 'info' => __( 'Info', 'shortcodes-ultimate' ),
21
  ),
22
  'default' => 'default',
23
+ 'name' => __( 'Type', 'shortcodes-ultimate' ),
24
+ 'desc' => __( 'Style of the label', 'shortcodes-ultimate' ),
25
  ),
26
  'class' => array(
27
+ 'type' => 'extra_css_class',
28
+ 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
29
+ 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
30
  'default' => '',
31
  ),
32
  ),
33
+ 'content' => __( 'Label', 'shortcodes-ultimate' ),
34
+ 'desc' => __( 'Styled label', 'shortcodes-ultimate' ),
35
+ 'icon' => 'tag',
36
+ )
37
+ );
38
 
39
  function su_shortcode_label( $atts = null, $content = null ) {
40
 
41
+ $atts = shortcode_atts(
42
+ array(
43
  'type' => 'default',
44
  'style' => null, // 3.x
45
+ 'class' => '',
46
+ ),
47
+ $atts,
48
+ 'label'
49
+ );
50
 
51
+ if ( $atts['style'] !== null ) {
52
+ $atts['type'] = $atts['style'];
53
+ }
54
 
55
  su_query_asset( 'css', 'su-shortcodes' );
56
 
57
+ return '<span class="su-label su-label-type-' . esc_attr( $atts['type'] ) . su_get_css_class( $atts ) . '">' . do_shortcode( $content ) . '</span>';
58
 
59
  }
includes/shortcodes/list.php CHANGED
@@ -124,10 +124,10 @@ function su_shortcode_list( $atts = null, $content = null ) {
124
  }
125
 
126
  if ( strpos( $atts['icon'], 'icon:' ) !== false ) {
127
- $atts['icon'] = '<i class="sui sui-' . trim( str_replace( 'icon:', '', $atts['icon'] ) ) . '" style="color:' . $atts['icon_color'] . '"></i>';
128
  su_query_asset( 'css', 'su-icons' );
129
  } else {
130
- $atts['icon'] = '<img src="' . $atts['icon'] . '" alt="" />';
131
  }
132
 
133
  su_query_asset( 'css', 'su-shortcodes' );
124
  }
125
 
126
  if ( strpos( $atts['icon'], 'icon:' ) !== false ) {
127
+ $atts['icon'] = '<i class="sui sui-' . trim( str_replace( 'icon:', '', $atts['icon'] ) ) . '" style="color:' . esc_attr( $atts['icon_color'] ) . '"></i>';
128
  su_query_asset( 'css', 'su-icons' );
129
  } else {
130
+ $atts['icon'] = '<img src="' . esc_attr( $atts['icon'] ) . '" alt="" />';
131
  }
132
 
133
  su_query_asset( 'css', 'su-shortcodes' );
includes/shortcodes/media.php CHANGED
@@ -1,29 +1,33 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
 
4
  'id' => 'media',
5
  'callback' => 'su_shortcode_media',
6
  'deprecated' => true,
7
  'hidden' => true,
8
- ) );
 
9
 
10
  function su_shortcode_media( $atts = null, $content = null ) {
11
 
12
- $atts = shortcode_atts( array(
13
- 'url' => '',
14
- 'width' => 600,
15
- 'height' => 400,
16
- 'class' => ''
17
- ), $atts, 'media' );
 
 
 
 
18
 
19
  if ( strpos( $atts['url'], 'youtu' ) !== false ) {
20
  return su_shortcode_youtube( $atts, $content );
21
- }
22
- elseif ( strpos( $atts['url'], 'vimeo' ) !== false ) {
23
  return su_shortcode_vimeo( $atts, $content );
24
- }
25
- else {
26
- return '<img src="' . $atts['url'] . '" width="' . $atts['width'] . '" height="' . $atts['height'] . '" style="max-width:100%" />';
27
  }
28
 
29
  }
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
  'id' => 'media',
6
  'callback' => 'su_shortcode_media',
7
  'deprecated' => true,
8
  'hidden' => true,
9
+ )
10
+ );
11
 
12
  function su_shortcode_media( $atts = null, $content = null ) {
13
 
14
+ $atts = shortcode_atts(
15
+ array(
16
+ 'url' => '',
17
+ 'width' => 600,
18
+ 'height' => 400,
19
+ 'class' => '',
20
+ ),
21
+ $atts,
22
+ 'media'
23
+ );
24
 
25
  if ( strpos( $atts['url'], 'youtu' ) !== false ) {
26
  return su_shortcode_youtube( $atts, $content );
27
+ } elseif ( strpos( $atts['url'], 'vimeo' ) !== false ) {
 
28
  return su_shortcode_vimeo( $atts, $content );
29
+ } else {
30
+ return '<img src="' . esc_attr( $atts['url'] ) . '" width="' . esc_attr( $atts['width'] ) . '" height="' . esc_attr( $atts['height'] ) . '" style="max-width:100%" />';
 
31
  }
32
 
33
  }
includes/shortcodes/menu.php CHANGED
@@ -1,41 +1,50 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
4
- 'id' => 'menu',
 
5
  'callback' => 'su_shortcode_menu',
6
- 'image' => su_get_plugin_url() . 'admin/images/shortcodes/menu.svg',
7
- 'name' => __( 'Menu', 'shortcodes-ultimate' ),
8
- 'type' => 'single',
9
- 'group' => 'other',
10
- 'atts' => array(
11
- 'name' => array(
12
- 'values' => array( ),
13
  'default' => '',
14
- 'name' => __( 'Menu name', 'shortcodes-ultimate' ), 'desc' => __( 'Custom menu name. Ex: Main menu', 'shortcodes-ultimate' )
 
15
  ),
16
  'class' => array(
17
- 'type' => 'extra_css_class',
18
- 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
19
- 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
20
  'default' => '',
21
  ),
22
  ),
23
- 'desc' => __( 'Custom menu by name', 'shortcodes-ultimate' ),
24
- 'icon' => 'bars',
25
- ) );
 
26
 
27
  function su_shortcode_menu( $atts = null, $content = null ) {
28
- $atts = shortcode_atts( array(
29
- 'name' => false,
30
- 'class' => ''
31
- ), $atts, 'menu' );
32
- $return = wp_nav_menu( array(
 
 
 
 
 
33
  'echo' => false,
34
  'menu' => $atts['name'],
35
  'container' => false,
36
  'fallback_cb' => 'su_shortcode_menu_fallback',
37
- 'items_wrap' => '<ul id="%1$s" class="%2$s' . su_get_css_class( $atts ) . '">%3$s</ul>'
38
- ) );
 
39
  return ( $atts['name'] ) ? $return : false;
40
  }
41
 
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
+ 'id' => 'menu',
6
  'callback' => 'su_shortcode_menu',
7
+ 'image' => su_get_plugin_url() . 'admin/images/shortcodes/menu.svg',
8
+ 'name' => __( 'Menu', 'shortcodes-ultimate' ),
9
+ 'type' => 'single',
10
+ 'group' => 'other',
11
+ 'atts' => array(
12
+ 'name' => array(
13
+ 'values' => array(),
14
  'default' => '',
15
+ 'name' => __( 'Menu name', 'shortcodes-ultimate' ),
16
+ 'desc' => __( 'Custom menu name. Ex: Main menu', 'shortcodes-ultimate' ),
17
  ),
18
  'class' => array(
19
+ 'type' => 'extra_css_class',
20
+ 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
21
+ 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
22
  'default' => '',
23
  ),
24
  ),
25
+ 'desc' => __( 'Custom menu by name', 'shortcodes-ultimate' ),
26
+ 'icon' => 'bars',
27
+ )
28
+ );
29
 
30
  function su_shortcode_menu( $atts = null, $content = null ) {
31
+ $atts = shortcode_atts(
32
+ array(
33
+ 'name' => false,
34
+ 'class' => '',
35
+ ),
36
+ $atts,
37
+ 'menu'
38
+ );
39
+ $return = wp_nav_menu(
40
+ array(
41
  'echo' => false,
42
  'menu' => $atts['name'],
43
  'container' => false,
44
  'fallback_cb' => 'su_shortcode_menu_fallback',
45
+ 'items_wrap' => '<ul id="%1$s" class="%2$s' . su_get_css_class( $atts ) . '">%3$s</ul>',
46
+ )
47
+ );
48
  return ( $atts['name'] ) ? $return : false;
49
  }
50
 
includes/shortcodes/meta.php CHANGED
@@ -1,75 +1,83 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
4
- 'id' => 'meta',
 
5
  'callback' => 'su_shortcode_meta',
6
- 'image' => su_get_plugin_url() . 'admin/images/shortcodes/meta.svg',
7
- 'name' => __( 'Meta data', 'shortcodes-ultimate' ),
8
- 'type' => 'single',
9
- 'group' => 'data',
10
- 'atts' => array(
11
- 'key' => array(
12
  'default' => '',
13
- 'name' => __( 'Key', 'shortcodes-ultimate' ),
14
- 'desc' => __( 'Meta key name', 'shortcodes-ultimate' )
15
  ),
16
  'default' => array(
17
  'default' => '',
18
- 'name' => __( 'Default', 'shortcodes-ultimate' ),
19
- 'desc' => __( 'This text will be shown if data is not found', 'shortcodes-ultimate' )
20
  ),
21
- 'before' => array(
22
  'default' => '',
23
- 'name' => __( 'Before', 'shortcodes-ultimate' ),
24
- 'desc' => __( 'This content will be shown before the value', 'shortcodes-ultimate' )
25
  ),
26
- 'after' => array(
27
  'default' => '',
28
- 'name' => __( 'After', 'shortcodes-ultimate' ),
29
- 'desc' => __( 'This content will be shown after the value', 'shortcodes-ultimate' )
30
  ),
31
  'post_id' => array(
32
  'default' => '',
33
- 'name' => __( 'Post ID', 'shortcodes-ultimate' ),
34
- 'desc' => __( 'You can specify custom post ID. Leave this field empty to use an ID of the current post. Current post ID may not work in Live Preview mode', 'shortcodes-ultimate' )
35
  ),
36
- 'filter' => array(
37
  'default' => '',
38
- 'name' => __( 'Filter', 'shortcodes-ultimate' ),
39
- 'desc' => __( 'You can apply custom filter to the retrieved value. Enter here function name. Your function must accept one argument and return modified value. Name of your function must include word <b>filter</b>. Example function: ', 'shortcodes-ultimate' ) . "<br /><pre><code style='display:block;padding:5px'>function my_custom_filter( \$value ) {\n\treturn 'Value is: ' . \$value;\n}</code></pre>"
40
- )
41
  ),
42
- 'desc' => __( 'Post meta', 'shortcodes-ultimate' ),
43
- 'icon' => 'info-circle',
44
- ) );
 
45
 
46
  function su_shortcode_meta( $atts = null, $content = null ) {
47
- $atts = shortcode_atts( array(
 
48
  'key' => '',
49
  'default' => '',
50
  'before' => '',
51
  'after' => '',
52
  'post_id' => '',
53
- 'filter' => ''
54
- ), $atts, 'meta' );
 
 
 
55
  // Define current post ID
56
- if ( !$atts['post_id'] ) $atts['post_id'] = get_the_ID();
 
 
57
  // Check post ID
58
- if ( !is_numeric( $atts['post_id'] ) || $atts['post_id'] < 1 ) return sprintf( '<p class="su-error">Meta: %s</p>', __( 'post ID is incorrect', 'shortcodes-ultimate' ) );
 
 
59
  // Check key name
60
- if ( !$atts['key'] ) return sprintf( '<p class="su-error">Meta: %s</p>', __( 'please specify meta key name', 'shortcodes-ultimate' ) );
 
 
61
  // Get the meta
62
  $meta = get_post_meta( $atts['post_id'], $atts['key'], true );
63
  // Set default value if meta is empty
64
- if ( !$meta ) $meta = $atts['default'];
65
- // Apply cutom filter
66
- if (
67
- $atts['filter'] &&
68
- su_is_filter_safe( $atts['filter'] ) &&
69
- function_exists( $atts['filter'] )
70
- ) {
71
- $meta = call_user_func( $atts['filter'], $meta );
72
  }
 
 
73
  // Return result
74
  return ( $meta ) ? $atts['before'] . $meta . $atts['after'] : '';
75
  }
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
+ 'id' => 'meta',
6
  'callback' => 'su_shortcode_meta',
7
+ 'image' => su_get_plugin_url() . 'admin/images/shortcodes/meta.svg',
8
+ 'name' => __( 'Meta data', 'shortcodes-ultimate' ),
9
+ 'type' => 'single',
10
+ 'group' => 'data',
11
+ 'atts' => array(
12
+ 'key' => array(
13
  'default' => '',
14
+ 'name' => __( 'Key', 'shortcodes-ultimate' ),
15
+ 'desc' => __( 'Meta key name', 'shortcodes-ultimate' ),
16
  ),
17
  'default' => array(
18
  'default' => '',
19
+ 'name' => __( 'Default', 'shortcodes-ultimate' ),
20
+ 'desc' => __( 'This text will be shown if data is not found', 'shortcodes-ultimate' ),
21
  ),
22
+ 'before' => array(
23
  'default' => '',
24
+ 'name' => __( 'Before', 'shortcodes-ultimate' ),
25
+ 'desc' => __( 'This content will be shown before the value', 'shortcodes-ultimate' ),
26
  ),
27
+ 'after' => array(
28
  'default' => '',
29
+ 'name' => __( 'After', 'shortcodes-ultimate' ),
30
+ 'desc' => __( 'This content will be shown after the value', 'shortcodes-ultimate' ),
31
  ),
32
  'post_id' => array(
33
  'default' => '',
34
+ 'name' => __( 'Post ID', 'shortcodes-ultimate' ),
35
+ 'desc' => __( 'You can specify custom post ID. Leave this field empty to use an ID of the current post. Current post ID may not work in Live Preview mode', 'shortcodes-ultimate' ),
36
  ),
37
+ 'filter' => array(
38
  'default' => '',
39
+ 'name' => __( 'Filter', 'shortcodes-ultimate' ),
40
+ 'desc' => __( 'You can apply custom filter to the retrieved value. Enter here function name. Your function must accept one argument and return modified value. Name of your function must include word <b>filter</b>. Example function: ', 'shortcodes-ultimate' ) . "<br /><pre><code style='display:block;padding:5px'>function my_custom_filter( \$value ) {\n\treturn 'Value is: ' . \$value;\n}</code></pre>",
41
+ ),
42
  ),
43
+ 'desc' => __( 'Post meta', 'shortcodes-ultimate' ),
44
+ 'icon' => 'info-circle',
45
+ )
46
+ );
47
 
48
  function su_shortcode_meta( $atts = null, $content = null ) {
49
+ $atts = shortcode_atts(
50
+ array(
51
  'key' => '',
52
  'default' => '',
53
  'before' => '',
54
  'after' => '',
55
  'post_id' => '',
56
+ 'filter' => '',
57
+ ),
58
+ $atts,
59
+ 'meta'
60
+ );
61
  // Define current post ID
62
+ if ( ! $atts['post_id'] ) {
63
+ $atts['post_id'] = get_the_ID();
64
+ }
65
  // Check post ID
66
+ if ( ! is_numeric( $atts['post_id'] ) || $atts['post_id'] < 1 ) {
67
+ return sprintf( '<p class="su-error">Meta: %s</p>', __( 'post ID is incorrect', 'shortcodes-ultimate' ) );
68
+ }
69
  // Check key name
70
+ if ( ! $atts['key'] ) {
71
+ return sprintf( '<p class="su-error">Meta: %s</p>', __( 'please specify meta key name', 'shortcodes-ultimate' ) );
72
+ }
73
  // Get the meta
74
  $meta = get_post_meta( $atts['post_id'], $atts['key'], true );
75
  // Set default value if meta is empty
76
+ if ( ! $meta ) {
77
+ $meta = $atts['default'];
 
 
 
 
 
 
78
  }
79
+ // Apply cutom filter
80
+ $meta = su_safely_apply_user_filter( $atts['filter'], $meta );
81
  // Return result
82
  return ( $meta ) ? $atts['before'] . $meta . $atts['after'] : '';
83
  }
includes/shortcodes/note.php CHANGED
@@ -79,8 +79,12 @@ function su_shortcode_note( $atts = null, $content = null ) {
79
  ? 'border-radius:' . $atts['radius'] . 'px;-moz-border-radius:' . $atts['radius'] . 'px;-webkit-border-radius:' . $atts['radius'] . 'px;'
80
  : '';
81
 
 
 
 
 
82
  su_query_asset( 'css', 'su-shortcodes' );
83
 
84
- return '<div class="su-note' . su_get_css_class( $atts ) . '" id="' . sanitize_html_class( $atts['id'] ) . '" style="border-color:' . su_adjust_brightness( $atts['note_color'], -10 ) . ';' . $radius . '"><div class="su-note-inner su-u-clearfix su-u-trim" style="background-color:' . $atts['note_color'] . ';border-color:' . su_adjust_brightness( $atts['note_color'], 80 ) . ';color:' . $atts['text_color'] . ';' . $radius . '">' . su_do_nested_shortcodes( $content, 'note' ) . '</div></div>';
85
 
86
  }
79
  ? 'border-radius:' . $atts['radius'] . 'px;-moz-border-radius:' . $atts['radius'] . 'px;-webkit-border-radius:' . $atts['radius'] . 'px;'
80
  : '';
81
 
82
+ if ( $atts['id'] ) {
83
+ $atts['id'] = sprintf( 'id="%s"', sanitize_html_class( $atts['id'] ) );
84
+ }
85
+
86
  su_query_asset( 'css', 'su-shortcodes' );
87
 
88
+ return '<div class="su-note' . su_get_css_class( $atts ) . '" ' . $atts['id'] . ' style="border-color:' . su_adjust_brightness( $atts['note_color'], -10 ) . ';' . esc_attr( $radius ) . '"><div class="su-note-inner su-u-clearfix su-u-trim" style="background-color:' . esc_attr( $atts['note_color'] ) . ';border-color:' . su_adjust_brightness( $atts['note_color'], 80 ) . ';color:' . esc_attr( $atts['text_color'] ) . ';' . esc_attr( $radius ) . '">' . su_do_nested_shortcodes( $content, 'note' ) . '</div></div>';
89
 
90
  }
includes/shortcodes/permalink.php CHANGED
@@ -1,60 +1,66 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
4
- 'id' => 'permalink',
 
5
  'callback' => 'su_shortcode_permalink',
6
- 'image' => su_get_plugin_url() . 'admin/images/shortcodes/permalink.svg',
7
- 'name' => __( 'Permalink', 'shortcodes-ultimate' ),
8
- 'type' => 'mixed',
9
- 'group' => 'content other',
10
- 'atts' => array(
11
- 'id' => array(
12
  'default' => 1,
13
- 'name' => __( 'ID', 'shortcodes-ultimate' ),
14
- 'desc' => __( 'Post or page ID', 'shortcodes-ultimate' )
15
  ),
16
  'target' => array(
17
- 'type' => 'select',
18
- 'values' => array(
19
- 'self' => __( 'Open in same tab', 'shortcodes-ultimate' ),
20
- 'blank' => __( 'Open in new tab', 'shortcodes-ultimate' )
21
  ),
22
  'default' => 'self',
23
- 'name' => __( 'Target', 'shortcodes-ultimate' ),
24
- 'desc' => __( 'Link target', 'shortcodes-ultimate' )
25
  ),
26
- 'title' => array(
27
  'default' => '',
28
- 'name' => __( 'Title', 'shortcodes-ultimate' ),
29
- 'desc' => __( 'A value for the title attribute of the link', 'shortcodes-ultimate' )
30
  ),
31
- 'rel' => array(
32
  'default' => '',
33
- 'name' => __( 'Rel', 'shortcodes-ultimate' ),
34
- 'desc' => __( 'A value for the rel attribute of the link', 'shortcodes-ultimate' )
35
  ),
36
- 'class' => array(
37
- 'type' => 'extra_css_class',
38
- 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
39
- 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
40
  'default' => '',
41
  ),
42
  ),
43
- 'content' => '',
44
- 'desc' => __( 'Permalink to specified post/page', 'shortcodes-ultimate' ),
45
- 'icon' => 'link',
46
- ) );
 
47
 
48
  function su_shortcode_permalink( $atts = null, $content = null ) {
49
 
50
- $atts = shortcode_atts( array(
 
51
  'id' => 1,
52
  'p' => null, // 3.x
53
  'target' => 'self',
54
  'title' => '',
55
  'rel' => '',
56
  'class' => '',
57
- ), $atts, 'permalink' );
 
 
 
58
 
59
  if ( $atts['p'] !== null ) {
60
  $atts['id'] = $atts['p'];
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
+ 'id' => 'permalink',
6
  'callback' => 'su_shortcode_permalink',
7
+ 'image' => su_get_plugin_url() . 'admin/images/shortcodes/permalink.svg',
8
+ 'name' => __( 'Permalink', 'shortcodes-ultimate' ),
9
+ 'type' => 'mixed',
10
+ 'group' => 'content other',
11
+ 'atts' => array(
12
+ 'id' => array(
13
  'default' => 1,
14
+ 'name' => __( 'ID', 'shortcodes-ultimate' ),
15
+ 'desc' => __( 'Post or page ID', 'shortcodes-ultimate' ),
16
  ),
17
  'target' => array(
18
+ 'type' => 'select',
19
+ 'values' => array(
20
+ 'self' => __( 'Open in same tab', 'shortcodes-ultimate' ),
21
+ 'blank' => __( 'Open in new tab', 'shortcodes-ultimate' ),
22
  ),
23
  'default' => 'self',
24
+ 'name' => __( 'Target', 'shortcodes-ultimate' ),
25
+ 'desc' => __( 'Link target', 'shortcodes-ultimate' ),
26
  ),
27
+ 'title' => array(
28
  'default' => '',
29
+ 'name' => __( 'Title', 'shortcodes-ultimate' ),
30
+ 'desc' => __( 'A value for the title attribute of the link', 'shortcodes-ultimate' ),
31
  ),
32
+ 'rel' => array(
33
  'default' => '',
34
+ 'name' => __( 'Rel', 'shortcodes-ultimate' ),
35
+ 'desc' => __( 'A value for the rel attribute of the link', 'shortcodes-ultimate' ),
36
  ),
37
+ 'class' => array(
38
+ 'type' => 'extra_css_class',
39
+ 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
40
+ 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
41
  'default' => '',
42
  ),
43
  ),
44
+ 'content' => '',
45
+ 'desc' => __( 'Permalink to specified post/page', 'shortcodes-ultimate' ),
46
+ 'icon' => 'link',
47
+ )
48
+ );
49
 
50
  function su_shortcode_permalink( $atts = null, $content = null ) {
51
 
52
+ $atts = shortcode_atts(
53
+ array(
54
  'id' => 1,
55
  'p' => null, // 3.x
56
  'target' => 'self',
57
  'title' => '',
58
  'rel' => '',
59
  'class' => '',
60
+ ),
61
+ $atts,
62
+ 'permalink'
63
+ );
64
 
65
  if ( $atts['p'] !== null ) {
66
  $atts['id'] = $atts['p'];
includes/shortcodes/post.php CHANGED
@@ -115,13 +115,7 @@ function su_shortcode_post( $atts = null, $content = null ) {
115
  $data = su_filter_the_content( $data );
116
  }
117
 
118
- if (
119
- $atts['filter'] &&
120
- su_is_filter_safe( $atts['filter'] ) &&
121
- function_exists( $atts['filter'] )
122
- ) {
123
- $data = call_user_func( $atts['filter'], $data );
124
- }
125
 
126
  if ( empty( $data ) ) {
127
  $data = $atts['default'];
115
  $data = su_filter_the_content( $data );
116
  }
117
 
118
+ $data = su_safely_apply_user_filter( $atts['filter'], $data );
 
 
 
 
 
 
119
 
120
  if ( empty( $data ) ) {
121
  $data = $atts['default'];
includes/shortcodes/private.php CHANGED
@@ -1,24 +1,26 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
4
- 'id' => 'private',
 
5
  'callback' => 'su_shortcode_private',
6
- 'image' => su_get_plugin_url() . 'admin/images/shortcodes/private.svg',
7
- 'name' => __( 'Private', 'shortcodes-ultimate' ),
8
- 'type' => 'wrap',
9
- 'group' => 'other',
10
- 'atts' => array(
11
  'class' => array(
12
- 'type' => 'extra_css_class',
13
- 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
14
- 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
15
  'default' => '',
16
  ),
17
  ),
18
- 'content' => __( 'Private note text', 'shortcodes-ultimate' ),
19
- 'desc' => __( 'Private note for post authors. Any content wrapped with this shortcode will only be visible to post authors (users with publish_posts capability).', 'shortcodes-ultimate' ),
20
- 'icon' => 'lock',
21
- ) );
 
22
 
23
  function su_shortcode_private( $atts = null, $content = null ) {
24
 
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
+ 'id' => 'private',
6
  'callback' => 'su_shortcode_private',
7
+ 'image' => su_get_plugin_url() . 'admin/images/shortcodes/private.svg',
8
+ 'name' => __( 'Private', 'shortcodes-ultimate' ),
9
+ 'type' => 'wrap',
10
+ 'group' => 'other',
11
+ 'atts' => array(
12
  'class' => array(
13
+ 'type' => 'extra_css_class',
14
+ 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
15
+ 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
16
  'default' => '',
17
  ),
18
  ),
19
+ 'content' => __( 'Private note text', 'shortcodes-ultimate' ),
20
+ 'desc' => __( 'Private note for post authors. Any content wrapped with this shortcode will only be visible to post authors (users with publish_posts capability).', 'shortcodes-ultimate' ),
21
+ 'icon' => 'lock',
22
+ )
23
+ );
24
 
25
  function su_shortcode_private( $atts = null, $content = null ) {
26
 
includes/shortcodes/pullquote.php CHANGED
@@ -1,43 +1,50 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
4
- 'id' => 'pullquote',
 
5
  'callback' => 'su_shortcode_pullquote',
6
- 'image' => su_get_plugin_url() . 'admin/images/shortcodes/pullquote.svg',
7
- 'name' => __( 'Pullquote', 'shortcodes-ultimate' ),
8
- 'type' => 'wrap',
9
- 'group' => 'box',
10
- 'atts' => array(
11
  'align' => array(
12
- 'type' => 'select',
13
- 'values' => array(
14
- 'left' => __( 'Left', 'shortcodes-ultimate' ),
15
- 'right' => __( 'Right', 'shortcodes-ultimate' )
16
  ),
17
  'default' => 'left',
18
- 'name' => __( 'Align', 'shortcodes-ultimate' ), 'desc' => __( 'Pullquote alignment (float)', 'shortcodes-ultimate' )
 
19
  ),
20
  'class' => array(
21
- 'type' => 'extra_css_class',
22
- 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
23
- 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
24
  'default' => '',
25
  ),
26
  ),
27
- 'content' => __( 'Pullquote', 'shortcodes-ultimate' ),
28
- 'desc' => __( 'Pullquote', 'shortcodes-ultimate' ),
29
- 'icon' => 'quote-left',
30
- ) );
 
31
 
32
  function su_shortcode_pullquote( $atts = null, $content = null ) {
33
 
34
- $atts = shortcode_atts( array(
 
35
  'align' => 'left',
36
- 'class' => ''
37
- ), $atts, 'pullquote' );
 
 
 
38
 
39
  su_query_asset( 'css', 'su-shortcodes' );
40
 
41
- return '<div class="su-pullquote su-pullquote-align-' . $atts['align'] . su_get_css_class( $atts ) . '">' . do_shortcode( $content ) . '</div>';
42
 
43
  }
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
+ 'id' => 'pullquote',
6
  'callback' => 'su_shortcode_pullquote',
7
+ 'image' => su_get_plugin_url() . 'admin/images/shortcodes/pullquote.svg',
8
+ 'name' => __( 'Pullquote', 'shortcodes-ultimate' ),
9
+ 'type' => 'wrap',
10
+ 'group' => 'box',
11
+ 'atts' => array(
12
  'align' => array(
13
+ 'type' => 'select',
14
+ 'values' => array(
15
+ 'left' => __( 'Left', 'shortcodes-ultimate' ),
16
+ 'right' => __( 'Right', 'shortcodes-ultimate' ),
17
  ),
18
  'default' => 'left',
19
+ 'name' => __( 'Align', 'shortcodes-ultimate' ),
20
+ 'desc' => __( 'Pullquote alignment (float)', 'shortcodes-ultimate' ),
21
  ),
22
  'class' => array(
23
+ 'type' => 'extra_css_class',
24
+ 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
25
+ 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
26
  'default' => '',
27
  ),
28
  ),
29
+ 'content' => __( 'Pullquote', 'shortcodes-ultimate' ),
30
+ 'desc' => __( 'Pullquote', 'shortcodes-ultimate' ),
31
+ 'icon' => 'quote-left',
32
+ )
33
+ );
34
 
35
  function su_shortcode_pullquote( $atts = null, $content = null ) {
36
 
37
+ $atts = shortcode_atts(
38
+ array(
39
  'align' => 'left',
40
+ 'class' => '',
41
+ ),
42
+ $atts,
43
+ 'pullquote'
44
+ );
45
 
46
  su_query_asset( 'css', 'su-shortcodes' );
47
 
48
+ return '<div class="su-pullquote su-pullquote-align-' . esc_attr( $atts['align'] ) . su_get_css_class( $atts ) . '">' . do_shortcode( $content ) . '</div>';
49
 
50
  }
includes/shortcodes/qrcode.php CHANGED
@@ -129,7 +129,7 @@ function su_shortcode_qrcode( $atts = null, $content = null ) {
129
 
130
  $atts['link'] = sprintf(
131
  ' href="%s"',
132
- esc_url( su_do_attribute( $atts['link'] ) )
133
  );
134
 
135
  $atts['class'] .= ' su-qrcode-clickable';
@@ -154,11 +154,11 @@ function su_shortcode_qrcode( $atts = null, $content = null ) {
154
 
155
  return sprintf(
156
  '<span class="su-qrcode su-qrcode-align-%1$s%2$s"><a%3$s target="_%4$s" title="%5$s"><img src="%6$s" alt="%5$s" /></a></span>',
157
- /* %1$s */ $atts['align'],
158
  /* %2$s */ su_get_css_class( $atts ),
159
  /* %3$s */ $atts['link'],
160
- /* %4$s */ $atts['target'],
161
- /* %5$s */ $atts['title'],
162
  /* %6$s */ esc_url( $url )
163
  );
164
 
129
 
130
  $atts['link'] = sprintf(
131
  ' href="%s"',
132
+ esc_attr( su_do_attribute( $atts['link'] ) )
133
  );
134
 
135
  $atts['class'] .= ' su-qrcode-clickable';
154
 
155
  return sprintf(
156
  '<span class="su-qrcode su-qrcode-align-%1$s%2$s"><a%3$s target="_%4$s" title="%5$s"><img src="%6$s" alt="%5$s" /></a></span>',
157
+ /* %1$s */ esc_attr( $atts['align'] ),
158
  /* %2$s */ su_get_css_class( $atts ),
159
  /* %3$s */ $atts['link'],
160
+ /* %4$s */ esc_attr( $atts['target'] ),
161
+ /* %5$s */ esc_attr( $atts['title'] ),
162
  /* %6$s */ esc_url( $url )
163
  );
164
 
includes/shortcodes/quote.php CHANGED
@@ -56,7 +56,7 @@ function su_shortcode_quote( $atts = null, $content = null ) {
56
  );
57
 
58
  $cite_link = $atts['url'] && $atts['cite']
59
- ? '<a href="' . $atts['url'] . '" target="_blank">' . $atts['cite'] . '</a>'
60
  : $atts['cite'];
61
 
62
  $cite = $atts['cite']
@@ -69,6 +69,6 @@ function su_shortcode_quote( $atts = null, $content = null ) {
69
 
70
  su_query_asset( 'css', 'su-shortcodes' );
71
 
72
- return '<div class="su-quote su-quote-style-' . $atts['style'] . $cite_class . su_get_css_class( $atts ) . '"><div class="su-quote-inner su-u-clearfix su-u-trim">' . su_do_nested_shortcodes( $content, 'quote' ) . su_do_attribute( $cite ) . '</div></div>';
73
 
74
  }
56
  );
57
 
58
  $cite_link = $atts['url'] && $atts['cite']
59
+ ? '<a href="' . esc_attr( $atts['url'] ) . '" target="_blank">' . $atts['cite'] . '</a>'
60
  : $atts['cite'];
61
 
62
  $cite = $atts['cite']
69
 
70
  su_query_asset( 'css', 'su-shortcodes' );
71
 
72
+ return '<div class="su-quote su-quote-style-' . esc_attr( $atts['style'] ) . $cite_class . su_get_css_class( $atts ) . '"><div class="su-quote-inner su-u-clearfix su-u-trim">' . su_do_nested_shortcodes( $content, 'quote' ) . su_do_attribute( $cite ) . '</div></div>';
73
 
74
  }
includes/shortcodes/row.php CHANGED
@@ -1,29 +1,31 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
4
- 'id' => 'row',
5
- 'callback' => 'su_shortcode_row',
6
- 'image' => su_get_plugin_url() . 'admin/images/shortcodes/row.svg',
7
- 'name' => __( 'Columns', 'shortcodes-ultimate' ),
8
- 'type' => 'wrap',
9
- 'group' => 'box',
 
10
  'required_child' => 'column',
11
- 'article' => 'https://getshortcodes.com/docs/columns/',
12
- 'atts' => array(
13
  'class' => array(
14
- 'type' => 'extra_css_class',
15
- 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
16
- 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
17
  'default' => '',
18
  ),
19
  ),
20
- 'content' => array(
21
  'id' => 'column',
22
  'number' => 2,
23
  ),
24
- 'desc' => __( 'Row for flexible columns', 'shortcodes-ultimate' ),
25
- 'icon' => 'columns',
26
- ) );
 
27
 
28
  function su_shortcode_row( $atts = null, $content = null ) {
29
 
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
+ 'id' => 'row',
6
+ 'callback' => 'su_shortcode_row',
7
+ 'image' => su_get_plugin_url() . 'admin/images/shortcodes/row.svg',
8
+ 'name' => __( 'Columns', 'shortcodes-ultimate' ),
9
+ 'type' => 'wrap',
10
+ 'group' => 'box',
11
  'required_child' => 'column',
12
+ 'article' => 'https://getshortcodes.com/docs/columns/',
13
+ 'atts' => array(
14
  'class' => array(
15
+ 'type' => 'extra_css_class',
16
+ 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
17
+ 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
18
  'default' => '',
19
  ),
20
  ),
21
+ 'content' => array(
22
  'id' => 'column',
23
  'number' => 2,
24
  ),
25
+ 'desc' => __( 'Row for flexible columns', 'shortcodes-ultimate' ),
26
+ 'icon' => 'columns',
27
+ )
28
+ );
29
 
30
  function su_shortcode_row( $atts = null, $content = null ) {
31
 
includes/shortcodes/screenr.php CHANGED
@@ -1,31 +1,37 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
 
4
  'deprecated' => true,
5
- 'id' => 'screenr',
6
- 'callback' => 'su_shortcode_screenr',
7
- 'group' => 'media',
8
- 'atts' => array(),
9
- 'name' => __( 'Screenr', 'shortcodes-ultimate' ),
10
- 'type' => 'single',
11
- ) );
 
12
 
13
  function su_shortcode_screenr( $atts = null, $content = null ) {
14
 
15
- $atts = shortcode_atts( array(
 
16
  'url' => false,
17
  'width' => 600,
18
  'height' => 400,
19
  'responsive' => 'yes',
20
- 'class' => ''
21
- ), $atts, 'screenr' );
 
 
 
22
 
23
  if ( ! $atts['url'] ) {
24
  return su_error_message( 'Screenr', __( 'please specify correct url', 'shortcodes-ultimate' ) );
25
  }
26
 
27
  $atts['url'] = su_do_attribute( $atts['url'] );
28
- $id = ( preg_match( '~(?:<iframe [^>]*src=")?(?:https?:\/\/(?:[\w]+\.)*screenr\.com(?:[\/\w]*\/videos?)?\/([a-zA-Z0-9]+)[^\s]*)"?(?:[^>]*></iframe>)?(?:<p>.*</p>)?~ix', $atts['url'], $match ) ) ? $match[1] : false;
29
 
30
  if ( ! $id ) {
31
  return su_error_message( 'Screenr', __( 'please specify correct url', 'shortcodes-ultimate' ) );
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
  'deprecated' => true,
6
+ 'id' => 'screenr',
7
+ 'callback' => 'su_shortcode_screenr',
8
+ 'group' => 'media',
9
+ 'atts' => array(),
10
+ 'name' => __( 'Screenr', 'shortcodes-ultimate' ),
11
+ 'type' => 'single',
12
+ )
13
+ );
14
 
15
  function su_shortcode_screenr( $atts = null, $content = null ) {
16
 
17
+ $atts = shortcode_atts(
18
+ array(
19
  'url' => false,
20
  'width' => 600,
21
  'height' => 400,
22
  'responsive' => 'yes',
23
+ 'class' => '',
24
+ ),
25
+ $atts,
26
+ 'screenr'
27
+ );
28
 
29
  if ( ! $atts['url'] ) {
30
  return su_error_message( 'Screenr', __( 'please specify correct url', 'shortcodes-ultimate' ) );
31
  }
32
 
33
  $atts['url'] = su_do_attribute( $atts['url'] );
34
+ $id = ( preg_match( '~(?:<iframe [^>]*src=")?(?:https?:\/\/(?:[\w]+\.)*screenr\.com(?:[\/\w]*\/videos?)?\/([a-zA-Z0-9]+)[^\s]*)"?(?:[^>]*></iframe>)?(?:<p>.*</p>)?~ix', $atts['url'], $match ) ) ? $match[1] : false;
35
 
36
  if ( ! $id ) {
37
  return su_error_message( 'Screenr', __( 'please specify correct url', 'shortcodes-ultimate' ) );
includes/shortcodes/service.php CHANGED
@@ -90,6 +90,6 @@ function su_shortcode_service( $atts = null, $content = null ) {
90
 
91
  su_query_asset( 'css', 'su-shortcodes' );
92
 
93
- return '<div class="su-service' . su_get_css_class( $atts ) . '"><div class="su-service-title" style="padding-' . $rtl . ':' . round( intval( $atts['size'] ) + 14 ) . 'px;min-height:' . $atts['size'] . 'px;line-height:' . $atts['size'] . 'px">' . $atts['icon'] . ' ' . su_do_attribute( $atts['title'] ) . '</div><div class="su-service-content su-u-clearfix su-u-trim" style="padding-' . $rtl . ':' . round( intval( $atts['size'] ) + 14 ) . 'px">' . do_shortcode( $content ) . '</div></div>';
94
 
95
  }
90
 
91
  su_query_asset( 'css', 'su-shortcodes' );
92
 
93
+ return '<div class="su-service' . su_get_css_class( $atts ) . '"><div class="su-service-title" style="padding-' . $rtl . ':' . round( intval( $atts['size'] ) + 14 ) . 'px;min-height:' . esc_attr( $atts['size'] ) . 'px;line-height:' . esc_attr( $atts['size'] ) . 'px">' . $atts['icon'] . ' ' . su_do_attribute( $atts['title'] ) . '</div><div class="su-service-content su-u-clearfix su-u-trim" style="padding-' . $rtl . ':' . round( intval( $atts['size'] ) + 14 ) . 'px">' . do_shortcode( $content ) . '</div></div>';
94
 
95
  }
includes/shortcodes/siblings.php CHANGED
@@ -1,36 +1,43 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
4
- 'id' => 'siblings',
 
5
  'callback' => 'su_shortcode_siblings',
6
- 'image' => su_get_plugin_url() . 'admin/images/shortcodes/siblings.svg',
7
- 'name' => __( 'Siblings', 'shortcodes-ultimate' ),
8
- 'type' => 'single',
9
- 'group' => 'other',
10
- 'atts' => array(
11
  'depth' => array(
12
- 'type' => 'select',
13
- 'values' => array( 1, 2, 3 ), 'default' => 1,
14
- 'name' => __( 'Depth', 'shortcodes-ultimate' ),
15
- 'desc' => __( 'Max depth level', 'shortcodes-ultimate' )
 
16
  ),
17
  'class' => array(
18
- 'type' => 'extra_css_class',
19
- 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
20
- 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
21
  'default' => '',
22
  ),
23
  ),
24
- 'desc' => __( 'List of cureent page siblings', 'shortcodes-ultimate' ),
25
- 'icon' => 'bars',
26
- ) );
 
27
 
28
  function su_shortcode_siblings( $atts = null, $content = null ) {
29
 
30
- $atts = shortcode_atts( array(
 
31
  'depth' => 1,
32
- 'class' => ''
33
- ), $atts, 'siblings' );
 
 
 
34
 
35
  global $post;
36
 
@@ -38,13 +45,15 @@ function su_shortcode_siblings( $atts = null, $content = null ) {
38
  return;
39
  }
40
 
41
- $return = wp_list_pages( array(
 
42
  'title_li' => '',
43
  'echo' => 0,
44
  'child_of' => $post->post_parent,
45
- 'depth' => $atts['depth'],
46
- 'exclude' => $post->ID
47
- ) );
 
48
 
49
  return $return
50
  ? '<ul class="su-siblings' . su_get_css_class( $atts ) . '">' . $return . '</ul>'
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
+ 'id' => 'siblings',
6
  'callback' => 'su_shortcode_siblings',
7
+ 'image' => su_get_plugin_url() . 'admin/images/shortcodes/siblings.svg',
8
+ 'name' => __( 'Siblings', 'shortcodes-ultimate' ),
9
+ 'type' => 'single',
10
+ 'group' => 'other',
11
+ 'atts' => array(
12
  'depth' => array(
13
+ 'type' => 'select',
14
+ 'values' => array( 1, 2, 3 ),
15
+ 'default' => 1,
16
+ 'name' => __( 'Depth', 'shortcodes-ultimate' ),
17
+ 'desc' => __( 'Max depth level', 'shortcodes-ultimate' ),
18
  ),
19
  'class' => array(
20
+ 'type' => 'extra_css_class',
21
+ 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
22
+ 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
23
  'default' => '',
24
  ),
25
  ),
26
+ 'desc' => __( 'List of cureent page siblings', 'shortcodes-ultimate' ),
27
+ 'icon' => 'bars',
28
+ )
29
+ );
30
 
31
  function su_shortcode_siblings( $atts = null, $content = null ) {
32
 
33
+ $atts = shortcode_atts(
34
+ array(
35
  'depth' => 1,
36
+ 'class' => '',
37
+ ),
38
+ $atts,
39
+ 'siblings'
40
+ );
41
 
42
  global $post;
43
 
45
  return;
46
  }
47
 
48
+ $return = wp_list_pages(
49
+ array(
50
  'title_li' => '',
51
  'echo' => 0,
52
  'child_of' => $post->post_parent,
53
+ 'depth' => intval( $atts['depth'] ),
54
+ 'exclude' => $post->ID,
55
+ )
56
+ );
57
 
58
  return $return
59
  ? '<ul class="su-siblings' . su_get_css_class( $atts ) . '">' . $return . '</ul>'
includes/shortcodes/slider.php CHANGED
@@ -1,138 +1,148 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
 
4
  'deprecated' => true,
5
- 'id' => 'slider',
6
- 'callback' => 'su_shortcode_slider',
7
- 'image' => su_get_plugin_url() . 'admin/images/shortcodes/slider.svg',
8
  // translators: Dep. – Deprecated
9
- 'name' => __( 'Slider (Dep.)', 'shortcodes-ultimate' ),
10
- 'type' => 'single',
11
- 'group' => 'gallery',
12
- 'note' => sprintf(
13
  '<p>%s</p><p><button class="button button-primary" onclick="document.querySelector(\'[data-shortcode=image_carousel]\').click(); return false;">%s &rarr;</button></p>',
14
  __( 'There is a much better shortcode for your images. Have you already tried the Image Carousel? It can create both sliders and carousels.', 'shortcodes-ultimate' ),
15
  __( 'Switch to Image Carousel', 'shortcodes-ultimate' )
16
  ),
17
- 'atts' => array(
18
- 'source' => array(
19
  'type' => 'image_source',
20
  'default' => 'none',
21
  'name' => __( 'Source', 'shortcodes-ultimate' ),
22
- 'desc' => __( 'Choose images source. You can use images from Media library or retrieve it from posts (thumbnails) posted under specified blog category. You can also pick any custom taxonomy', 'shortcodes-ultimate' )
23
  ),
24
- 'limit' => array(
25
- 'type' => 'slider',
26
- 'min' => -1,
27
- 'max' => 100,
28
- 'step' => 1,
29
  'default' => 20,
30
- 'name' => __( 'Limit', 'shortcodes-ultimate' ),
31
- 'desc' => __( 'Maximum number of image source posts (for recent posts, category and custom taxonomy)', 'shortcodes-ultimate' )
32
  ),
33
- 'link' => array(
34
- 'type' => 'select',
35
- 'values' => array(
36
  'none' => __( 'None', 'shortcodes-ultimate' ),
37
  'image' => __( 'Full-size image', 'shortcodes-ultimate' ),
38
  'lightbox' => __( 'Lightbox', 'shortcodes-ultimate' ),
39
  'custom' => __( 'Slide link (added in media editor)', 'shortcodes-ultimate' ),
40
  'attachment' => __( 'Attachment page', 'shortcodes-ultimate' ),
41
- 'post' => __( 'Post permalink', 'shortcodes-ultimate' )
42
  ),
43
  'default' => 'none',
44
- 'name' => __( 'Links', 'shortcodes-ultimate' ),
45
- 'desc' => __( 'Select which links will be used for images in this gallery', 'shortcodes-ultimate' )
46
  ),
47
- 'target' => array(
48
- 'type' => 'select',
49
- 'values' => array(
50
- 'self' => __( 'Open in same tab', 'shortcodes-ultimate' ),
51
- 'blank' => __( 'Open in new tab', 'shortcodes-ultimate' )
52
  ),
53
  'default' => 'self',
54
- 'name' => __( 'Links target', 'shortcodes-ultimate' ),
55
- 'desc' => __( 'Open links in', 'shortcodes-ultimate' )
56
  ),
57
- 'width' => array(
58
- 'type' => 'slider',
59
- 'min' => 200,
60
- 'max' => 1600,
61
- 'step' => 20,
62
  'default' => 600,
63
- 'name' => __( 'Width', 'shortcodes-ultimate' ), 'desc' => __( 'Slider width (in pixels)', 'shortcodes-ultimate' )
 
64
  ),
65
- 'height' => array(
66
- 'type' => 'slider',
67
- 'min' => 200,
68
- 'max' => 1600,
69
- 'step' => 20,
70
  'default' => 300,
71
- 'name' => __( 'Height', 'shortcodes-ultimate' ), 'desc' => __( 'Slider height (in pixels)', 'shortcodes-ultimate' )
 
72
  ),
73
  'responsive' => array(
74
- 'type' => 'bool',
75
  'default' => 'yes',
76
- 'name' => __( 'Responsive', 'shortcodes-ultimate' ),
77
- 'desc' => __( 'Ignore width and height parameters and make slider responsive', 'shortcodes-ultimate' )
78
  ),
79
- 'title' => array(
80
- 'type' => 'bool',
81
  'default' => 'yes',
82
- 'name' => __( 'Show titles', 'shortcodes-ultimate' ), 'desc' => __( 'Display slide titles', 'shortcodes-ultimate' )
 
83
  ),
84
- 'centered' => array(
85
- 'type' => 'bool',
86
  'default' => 'yes',
87
- 'name' => __( 'Center', 'shortcodes-ultimate' ), 'desc' => __( 'Is slider centered on the page', 'shortcodes-ultimate' )
 
88
  ),
89
- 'arrows' => array(
90
- 'type' => 'bool',
91
  'default' => 'yes',
92
- 'name' => __( 'Arrows', 'shortcodes-ultimate' ), 'desc' => __( 'Show left and right arrows', 'shortcodes-ultimate' )
 
93
  ),
94
- 'pages' => array(
95
- 'type' => 'bool',
96
  'default' => 'yes',
97
- 'name' => __( 'Pagination', 'shortcodes-ultimate' ),
98
- 'desc' => __( 'Show pagination', 'shortcodes-ultimate' )
99
  ),
100
  'mousewheel' => array(
101
- 'type' => 'bool',
102
- 'default' => 'yes', 'name' => __( 'Mouse wheel control', 'shortcodes-ultimate' ),
103
- 'desc' => __( 'Allow to change slides with mouse wheel', 'shortcodes-ultimate' )
 
104
  ),
105
- 'autoplay' => array(
106
- 'type' => 'number',
107
- 'min' => 0,
108
- 'max' => 100000,
109
- 'step' => 100,
110
  'default' => 5000,
111
- 'name' => __( 'Autoplay', 'shortcodes-ultimate' ),
112
- 'desc' => __( 'Choose interval between slide animations. Set to 0 to disable autoplay', 'shortcodes-ultimate' )
113
  ),
114
- 'speed' => array(
115
- 'type' => 'number',
116
- 'min' => 0,
117
- 'max' => 20000,
118
- 'step' => 100,
119
  'default' => 600,
120
- 'name' => __( 'Speed', 'shortcodes-ultimate' ), 'desc' => __( 'Specify animation speed', 'shortcodes-ultimate' )
 
121
  ),
122
- 'class' => array(
123
- 'type' => 'extra_css_class',
124
- 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
125
- 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
126
  'default' => '',
127
  ),
128
  ),
129
- 'desc' => __( 'Customizable image slider', 'shortcodes-ultimate' ),
130
- 'icon' => 'picture-o',
131
- ) );
 
132
 
133
  function su_shortcode_slider( $atts = null, $content = null ) {
134
  $return = '';
135
- $atts = shortcode_atts( array(
 
136
  'source' => 'none',
137
  'limit' => 20,
138
  'gallery' => null, // Dep. 4.3.2
@@ -148,12 +158,18 @@ function su_shortcode_slider( $atts = null, $content = null ) {
148
  'mousewheel' => 'yes',
149
  'autoplay' => 3000,
150
  'speed' => 600,
151
- 'class' => ''
152
- ), $atts, 'slider' );
 
 
 
153
 
154
  $slides = su_get_slides( $atts );
155
  $slides = apply_filters( 'su/shortcode/slider/slides', $slides, $atts );
156
 
 
 
 
157
  // Loop slides
158
  if ( count( $slides ) ) {
159
  // Prepare unique ID
@@ -165,11 +181,13 @@ function su_shortcode_slider( $atts = null, $content = null ) {
165
  // Wheel control
166
  $mousewheel = ( $atts['mousewheel'] === 'yes' ) ? 'true' : 'false';
167
  // Prepare width and height
168
- $size = ( $atts['responsive'] === 'yes' ) ? 'width:100%' : 'width:' . intval( $atts['width'] ) . 'px;height:' . intval( $atts['height'] ) . 'px';
169
  // Add lightbox class
170
- if ( $atts['link'] === 'lightbox' ) $atts['class'] .= ' su-lightbox-gallery';
 
 
171
  // Open slider
172
- $return .= '<div id="' . $id . '" class="su-slider' . $centered . ' su-slider-pages-' . $atts['pages'] . ' su-slider-responsive-' . $atts['responsive'] . su_get_css_class( $atts ) . '" style="' . $size . '" data-autoplay="' . $atts['autoplay'] . '" data-speed="' . $atts['speed'] . '" data-mousewheel="' . $mousewheel . '"><div class="su-slider-slides">';
173
  // Create slides
174
  foreach ( $slides as $slide ) {
175
  // Crop the image
@@ -184,9 +202,13 @@ function su_shortcode_slider( $atts = null, $content = null ) {
184
  // Open slide
185
  $return .= '<div class="su-slider-slide">';
186
  // Slide content with link
187
- if ( $slide['link'] ) $return .= '<a href="' . $slide['link'] . '" ' . $target . ' title="' . esc_attr( $slide['title'] ) . '"><img src="' . $image['url'] . '" alt="' . esc_attr( $slide['title'] ) . '" />' . $title . '</a>';
 
 
188
  // Slide content without link
189
- else $return .= '<a><img src="' . $image['url'] . '" alt="' . esc_attr( $slide['title'] ) . '" />' . $title . '</a>';
 
 
190
  // Close slide
191
  $return .= '</div>';
192
  }
@@ -195,7 +217,9 @@ function su_shortcode_slider( $atts = null, $content = null ) {
195
  // Open nav section
196
  $return .= '<div class="su-slider-nav">';
197
  // Append direction nav
198
- if ( $atts['arrows'] === 'yes' ) $return .= '<div class="su-slider-direction"><span class="su-slider-prev"></span><span class="su-slider-next"></span></div>';
 
 
199
  // Append pagination nav
200
  $return .= '<div class="su-slider-pagination"></div>';
201
  // Close nav section
@@ -213,6 +237,8 @@ function su_shortcode_slider( $atts = null, $content = null ) {
213
  su_query_asset( 'js', 'su-shortcodes' );
214
  }
215
  // Slides not found
216
- else $return = su_error_message( 'Slider', __( 'images not found', 'shortcodes-ultimate' ) );
 
 
217
  return $return;
218
  }
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
  'deprecated' => true,
6
+ 'id' => 'slider',
7
+ 'callback' => 'su_shortcode_slider',
8
+ 'image' => su_get_plugin_url() . 'admin/images/shortcodes/slider.svg',
9
  // translators: Dep. – Deprecated
10
+ 'name' => __( 'Slider (Dep.)', 'shortcodes-ultimate' ),
11
+ 'type' => 'single',
12
+ 'group' => 'gallery',
13
+ 'note' => sprintf(
14
  '<p>%s</p><p><button class="button button-primary" onclick="document.querySelector(\'[data-shortcode=image_carousel]\').click(); return false;">%s &rarr;</button></p>',
15
  __( 'There is a much better shortcode for your images. Have you already tried the Image Carousel? It can create both sliders and carousels.', 'shortcodes-ultimate' ),
16
  __( 'Switch to Image Carousel', 'shortcodes-ultimate' )
17
  ),
18
+ 'atts' => array(
19
+ 'source' => array(
20
  'type' => 'image_source',
21
  'default' => 'none',
22
  'name' => __( 'Source', 'shortcodes-ultimate' ),
23
+ 'desc' => __( 'Choose images source. You can use images from Media library or retrieve it from posts (thumbnails) posted under specified blog category. You can also pick any custom taxonomy', 'shortcodes-ultimate' ),
24
  ),
25
+ 'limit' => array(
26
+ 'type' => 'slider',
27
+ 'min' => -1,
28
+ 'max' => 100,
29
+ 'step' => 1,
30
  'default' => 20,
31
+ 'name' => __( 'Limit', 'shortcodes-ultimate' ),
32
+ 'desc' => __( 'Maximum number of image source posts (for recent posts, category and custom taxonomy)', 'shortcodes-ultimate' ),
33
  ),
34
+ 'link' => array(
35
+ 'type' => 'select',
36
+ 'values' => array(
37
  'none' => __( 'None', 'shortcodes-ultimate' ),
38
  'image' => __( 'Full-size image', 'shortcodes-ultimate' ),
39
  'lightbox' => __( 'Lightbox', 'shortcodes-ultimate' ),
40
  'custom' => __( 'Slide link (added in media editor)', 'shortcodes-ultimate' ),
41
  'attachment' => __( 'Attachment page', 'shortcodes-ultimate' ),
42
+ 'post' => __( 'Post permalink', 'shortcodes-ultimate' ),
43
  ),
44
  'default' => 'none',
45
+ 'name' => __( 'Links', 'shortcodes-ultimate' ),
46
+ 'desc' => __( 'Select which links will be used for images in this gallery', 'shortcodes-ultimate' ),
47
  ),
48
+ 'target' => array(
49
+ 'type' => 'select',
50
+ 'values' => array(
51
+ 'self' => __( 'Open in same tab', 'shortcodes-ultimate' ),
52
+ 'blank' => __( 'Open in new tab', 'shortcodes-ultimate' ),
53
  ),
54
  'default' => 'self',
55
+ 'name' => __( 'Links target', 'shortcodes-ultimate' ),
56
+ 'desc' => __( 'Open links in', 'shortcodes-ultimate' ),
57
  ),
58
+ 'width' => array(
59
+ 'type' => 'slider',
60
+ 'min' => 200,
61
+ 'max' => 1600,
62
+ 'step' => 20,
63
  'default' => 600,
64
+ 'name' => __( 'Width', 'shortcodes-ultimate' ),
65
+ 'desc' => __( 'Slider width (in pixels)', 'shortcodes-ultimate' ),
66
  ),
67
+ 'height' => array(
68
+ 'type' => 'slider',
69
+ 'min' => 200,
70
+ 'max' => 1600,
71
+ 'step' => 20,
72
  'default' => 300,
73
+ 'name' => __( 'Height', 'shortcodes-ultimate' ),
74
+ 'desc' => __( 'Slider height (in pixels)', 'shortcodes-ultimate' ),
75
  ),
76
  'responsive' => array(
77
+ 'type' => 'bool',
78
  'default' => 'yes',
79
+ 'name' => __( 'Responsive', 'shortcodes-ultimate' ),
80
+ 'desc' => __( 'Ignore width and height parameters and make slider responsive', 'shortcodes-ultimate' ),
81
  ),
82
+ 'title' => array(
83
+ 'type' => 'bool',
84
  'default' => 'yes',
85
+ 'name' => __( 'Show titles', 'shortcodes-ultimate' ),
86
+ 'desc' => __( 'Display slide titles', 'shortcodes-ultimate' ),
87
  ),
88
+ 'centered' => array(
89
+ 'type' => 'bool',
90
  'default' => 'yes',
91
+ 'name' => __( 'Center', 'shortcodes-ultimate' ),
92
+ 'desc' => __( 'Is slider centered on the page', 'shortcodes-ultimate' ),
93
  ),
94
+ 'arrows' => array(
95
+ 'type' => 'bool',
96
  'default' => 'yes',
97
+ 'name' => __( 'Arrows', 'shortcodes-ultimate' ),
98
+ 'desc' => __( 'Show left and right arrows', 'shortcodes-ultimate' ),
99
  ),
100
+ 'pages' => array(
101
+ 'type' => 'bool',
102
  'default' => 'yes',
103
+ 'name' => __( 'Pagination', 'shortcodes-ultimate' ),
104
+ 'desc' => __( 'Show pagination', 'shortcodes-ultimate' ),
105
  ),
106
  'mousewheel' => array(
107
+ 'type' => 'bool',
108
+ 'default' => 'yes',
109
+ 'name' => __( 'Mouse wheel control', 'shortcodes-ultimate' ),
110
+ 'desc' => __( 'Allow to change slides with mouse wheel', 'shortcodes-ultimate' ),
111
  ),
112
+ 'autoplay' => array(
113
+ 'type' => 'number',
114
+ 'min' => 0,
115
+ 'max' => 100000,
116
+ 'step' => 100,
117
  'default' => 5000,
118
+ 'name' => __( 'Autoplay', 'shortcodes-ultimate' ),
119
+ 'desc' => __( 'Choose interval between slide animations. Set to 0 to disable autoplay', 'shortcodes-ultimate' ),
120
  ),
121
+ 'speed' => array(
122
+ 'type' => 'number',
123
+ 'min' => 0,
124
+ 'max' => 20000,
125
+ 'step' => 100,
126
  'default' => 600,
127
+ 'name' => __( 'Speed', 'shortcodes-ultimate' ),
128
+ 'desc' => __( 'Specify animation speed', 'shortcodes-ultimate' ),
129
  ),
130
+ 'class' => array(
131
+ 'type' => 'extra_css_class',
132
+ 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
133
+ 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
134
  'default' => '',
135
  ),
136
  ),
137
+ 'desc' => __( 'Customizable image slider', 'shortcodes-ultimate' ),
138
+ 'icon' => 'picture-o',
139
+ )
140
+ );
141
 
142
  function su_shortcode_slider( $atts = null, $content = null ) {
143
  $return = '';
144
+ $atts = shortcode_atts(
145
+ array(
146
  'source' => 'none',
147
  'limit' => 20,
148
  'gallery' => null, // Dep. 4.3.2
158
  'mousewheel' => 'yes',
159
  'autoplay' => 3000,
160
  'speed' => 600,
161
+ 'class' => '',
162
+ ),
163
+ $atts,
164
+ 'slider'
165
+ );
166
 
167
  $slides = su_get_slides( $atts );
168
  $slides = apply_filters( 'su/shortcode/slider/slides', $slides, $atts );
169
 
170
+ $atts['width'] = intval( $atts['width'] );
171
+ $atts['height'] = intval( $atts['height'] );
172
+
173
  // Loop slides
174
  if ( count( $slides ) ) {
175
  // Prepare unique ID
181
  // Wheel control
182
  $mousewheel = ( $atts['mousewheel'] === 'yes' ) ? 'true' : 'false';
183
  // Prepare width and height
184
+ $size = ( $atts['responsive'] === 'yes' ) ? 'width:100%' : 'width:' . $atts['width'] . 'px;height:' . $atts['height'] . 'px';
185
  // Add lightbox class
186
+ if ( $atts['link'] === 'lightbox' ) {
187
+ $atts['class'] .= ' su-lightbox-gallery';
188
+ }
189
  // Open slider
190
+ $return .= '<div id="' . $id . '" class="su-slider' . $centered . ' su-slider-pages-' . esc_attr( $atts['pages'] ) . ' su-slider-responsive-' . esc_attr( $atts['responsive'] ) . su_get_css_class( $atts ) . '" style="' . $size . '" data-autoplay="' . esc_attr( $atts['autoplay'] ) . '" data-speed="' . esc_attr( $atts['speed'] ) . '" data-mousewheel="' . $mousewheel . '"><div class="su-slider-slides">';
191
  // Create slides
192
  foreach ( $slides as $slide ) {
193
  // Crop the image
202
  // Open slide
203
  $return .= '<div class="su-slider-slide">';
204
  // Slide content with link
205
+ if ( $slide['link'] ) {
206
+ $return .= '<a href="' . esc_attr( $slide['link'] ) . '" ' . $target . ' title="' . esc_attr( $slide['title'] ) . '"><img src="' . $image['url'] . '" alt="' . esc_attr( $slide['title'] ) . '" />' . $title . '</a>';
207
+ }
208
  // Slide content without link
209
+ else {
210
+ $return .= '<a><img src="' . $image['url'] . '" alt="' . esc_attr( $slide['title'] ) . '" />' . $title . '</a>';
211
+ }
212
  // Close slide
213
  $return .= '</div>';
214
  }
217
  // Open nav section
218
  $return .= '<div class="su-slider-nav">';
219
  // Append direction nav
220
+ if ( $atts['arrows'] === 'yes' ) {
221
+ $return .= '<div class="su-slider-direction"><span class="su-slider-prev"></span><span class="su-slider-next"></span></div>';
222
+ }
223
  // Append pagination nav
224
  $return .= '<div class="su-slider-pagination"></div>';
225
  // Close nav section
237
  su_query_asset( 'js', 'su-shortcodes' );
238
  }
239
  // Slides not found
240
+ else {
241
+ $return = su_error_message( 'Slider', __( 'images not found', 'shortcodes-ultimate' ) );
242
+ }
243
  return $return;
244
  }
includes/shortcodes/spacer.php CHANGED
@@ -1,42 +1,48 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
4
- 'id' => 'spacer',
 
5
  'callback' => 'su_shortcode_spacer',
6
- 'image' => su_get_plugin_url() . 'admin/images/shortcodes/spacer.svg',
7
- 'name' => __( 'Spacer', 'shortcodes-ultimate' ),
8
- 'type' => 'single',
9
- 'group' => 'content other',
10
- 'atts' => array(
11
- 'size' => array(
12
- 'type' => 'slider',
13
- 'min' => 0,
14
- 'max' => 800,
15
- 'step' => 10,
16
  'default' => 20,
17
- 'name' => __( 'Height', 'shortcodes-ultimate' ),
18
- 'desc' => __( 'Height of the spacer in pixels', 'shortcodes-ultimate' )
19
  ),
20
  'class' => array(
21
- 'type' => 'extra_css_class',
22
- 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
23
- 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
24
  'default' => '',
25
  ),
26
  ),
27
- 'desc' => __( 'Empty space with adjustable height', 'shortcodes-ultimate' ),
28
- 'icon' => 'arrows-v',
29
- ) );
 
30
 
31
  function su_shortcode_spacer( $atts = null, $content = null ) {
32
 
33
- $atts = shortcode_atts( array(
 
34
  'size' => '20',
35
- 'class' => ''
36
- ), $atts, 'spacer' );
 
 
 
37
 
38
  su_query_asset( 'css', 'su-shortcodes' );
39
 
40
- return '<div class="su-spacer' . su_get_css_class( $atts ) . '" style="height:' . (string) $atts['size'] . 'px"></div>';
41
 
42
  }
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
+ 'id' => 'spacer',
6
  'callback' => 'su_shortcode_spacer',
7
+ 'image' => su_get_plugin_url() . 'admin/images/shortcodes/spacer.svg',
8
+ 'name' => __( 'Spacer', 'shortcodes-ultimate' ),
9
+ 'type' => 'single',
10
+ 'group' => 'content other',
11
+ 'atts' => array(
12
+ 'size' => array(
13
+ 'type' => 'slider',
14
+ 'min' => 0,
15
+ 'max' => 800,
16
+ 'step' => 10,
17
  'default' => 20,
18
+ 'name' => __( 'Height', 'shortcodes-ultimate' ),
19
+ 'desc' => __( 'Height of the spacer in pixels', 'shortcodes-ultimate' ),
20
  ),
21
  'class' => array(
22
+ 'type' => 'extra_css_class',
23
+ 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
24
+ 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
25
  'default' => '',
26
  ),
27
  ),
28
+ 'desc' => __( 'Empty space with adjustable height', 'shortcodes-ultimate' ),
29
+ 'icon' => 'arrows-v',
30
+ )
31
+ );
32
 
33
  function su_shortcode_spacer( $atts = null, $content = null ) {
34
 
35
+ $atts = shortcode_atts(
36
+ array(
37
  'size' => '20',
38
+ 'class' => '',
39
+ ),
40
+ $atts,
41
+ 'spacer'
42
+ );
43
 
44
  su_query_asset( 'css', 'su-shortcodes' );
45
 
46
+ return '<div class="su-spacer' . su_get_css_class( $atts ) . '" style="height:' . esc_attr( $atts['size'] ) . 'px"></div>';
47
 
48
  }
includes/shortcodes/spoiler.php CHANGED
@@ -94,7 +94,7 @@ function su_shortcode_spoiler( $atts = null, $content = null ) {
94
  'spoiler'
95
  );
96
  $atts['style'] = str_replace( array( '1', '2' ), array( 'default', 'fancy' ), $atts['style'] );
97
- $atts['anchor'] = ( $atts['anchor'] ) ? ' data-anchor="' . str_replace( array( ' ', '#' ), '', sanitize_text_field( $atts['anchor'] ) ) . '"' : '';
98
  if ( 'yes' !== $atts['open'] ) {
99
  $atts['class'] .= ' su-spoiler-closed';
100
  }
@@ -103,5 +103,5 @@ function su_shortcode_spoiler( $atts = null, $content = null ) {
103
  su_query_asset( 'js', 'jquery' );
104
  su_query_asset( 'js', 'su-shortcodes' );
105
  do_action( 'su/shortcode/spoiler', $atts );
106
- return '<div class="su-spoiler su-spoiler-style-' . $atts['style'] . ' su-spoiler-icon-' . $atts['icon'] . su_get_css_class( $atts ) . '"' . $atts['anchor'] . ' data-scroll-offset="' . intval( $atts['scroll_offset'] ) . '" data-anchor-in-url="' . sanitize_key( $atts['anchor_in_url'] ) . '"><div class="su-spoiler-title" tabindex="0" role="button"><span class="su-spoiler-icon"></span>' . su_do_attribute( $atts['title'] ) . '</div><div class="su-spoiler-content su-u-clearfix su-u-trim">' . su_do_nested_shortcodes( $content, 'spoiler' ) . '</div></div>';
107
  }
94
  'spoiler'
95
  );
96
  $atts['style'] = str_replace( array( '1', '2' ), array( 'default', 'fancy' ), $atts['style'] );
97
+ $atts['anchor'] = ( $atts['anchor'] ) ? ' data-anchor="' . str_replace( array( ' ', '#' ), '', esc_attr( $atts['anchor'] ) ) . '"' : '';
98
  if ( 'yes' !== $atts['open'] ) {
99
  $atts['class'] .= ' su-spoiler-closed';
100
  }
103
  su_query_asset( 'js', 'jquery' );
104
  su_query_asset( 'js', 'su-shortcodes' );
105
  do_action( 'su/shortcode/spoiler', $atts );
106
+ return '<div class="su-spoiler su-spoiler-style-' . esc_attr( $atts['style'] ) . ' su-spoiler-icon-' . esc_attr( $atts['icon'] ) . su_get_css_class( $atts ) . '"' . $atts['anchor'] . ' data-scroll-offset="' . intval( $atts['scroll_offset'] ) . '" data-anchor-in-url="' . sanitize_key( $atts['anchor_in_url'] ) . '"><div class="su-spoiler-title" tabindex="0" role="button"><span class="su-spoiler-icon"></span>' . su_do_attribute( $atts['title'] ) . '</div><div class="su-spoiler-content su-u-clearfix su-u-trim">' . su_do_nested_shortcodes( $content, 'spoiler' ) . '</div></div>';
107
  }
includes/shortcodes/subpages.php CHANGED
@@ -1,49 +1,58 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
4
- 'id' => 'subpages',
 
5
  'callback' => 'su_shortcode_subpages',
6
- 'image' => su_get_plugin_url() . 'admin/images/shortcodes/subpages.svg',
7
- 'name' => __( 'Sub pages', 'shortcodes-ultimate' ),
8
- 'type' => 'single',
9
- 'group' => 'other',
10
- 'atts' => array(
11
  'depth' => array(
12
- 'type' => 'select',
13
- 'values' => array( 1, 2, 3, 4, 5 ), 'default' => 1,
14
- 'name' => __( 'Depth', 'shortcodes-ultimate' ),
15
- 'desc' => __( 'Max depth level of children pages', 'shortcodes-ultimate' )
 
16
  ),
17
- 'p' => array(
18
- 'values' => array( ),
19
  'default' => '',
20
- 'name' => __( 'Parent ID', 'shortcodes-ultimate' ),
21
- 'desc' => __( 'ID of the parent page. Leave blank to use current page', 'shortcodes-ultimate' )
22
  ),
23
  'class' => array(
24
- 'type' => 'extra_css_class',
25
- 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
26
- 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
27
  'default' => '',
28
  ),
29
  ),
30
- 'desc' => __( 'List of sub pages', 'shortcodes-ultimate' ),
31
- 'icon' => 'bars',
32
- ) );
 
33
 
34
  function su_shortcode_subpages( $atts = null, $content = null ) {
35
- $atts = shortcode_atts( array(
 
36
  'depth' => 1,
37
  'p' => false,
38
- 'class' => ''
39
- ), $atts, 'subpages' );
 
 
 
40
  global $post;
41
- $child_of = ( $atts['p'] ) ? $atts['p'] : get_the_ID();
42
- $return = wp_list_pages( array(
 
43
  'title_li' => '',
44
- 'echo' => 0,
45
  'child_of' => $child_of,
46
- 'depth' => $atts['depth']
47
- ) );
 
48
  return ( $return ) ? '<ul class="su-subpages' . su_get_css_class( $atts ) . '">' . $return . '</ul>' : false;
49
  }
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
+ 'id' => 'subpages',
6
  'callback' => 'su_shortcode_subpages',
7
+ 'image' => su_get_plugin_url() . 'admin/images/shortcodes/subpages.svg',
8
+ 'name' => __( 'Sub pages', 'shortcodes-ultimate' ),
9
+ 'type' => 'single',
10
+ 'group' => 'other',
11
+ 'atts' => array(
12
  'depth' => array(
13
+ 'type' => 'select',
14
+ 'values' => array( 1, 2, 3, 4, 5 ),
15
+ 'default' => 1,
16
+ 'name' => __( 'Depth', 'shortcodes-ultimate' ),
17
+ 'desc' => __( 'Max depth level of children pages', 'shortcodes-ultimate' ),
18
  ),
19
+ 'p' => array(
20
+ 'values' => array(),
21
  'default' => '',
22
+ 'name' => __( 'Parent ID', 'shortcodes-ultimate' ),
23
+ 'desc' => __( 'ID of the parent page. Leave blank to use current page', 'shortcodes-ultimate' ),
24
  ),
25
  'class' => array(
26
+ 'type' => 'extra_css_class',
27
+ 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
28
+ 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
29
  'default' => '',
30
  ),
31
  ),
32
+ 'desc' => __( 'List of sub pages', 'shortcodes-ultimate' ),
33
+ 'icon' => 'bars',
34
+ )
35
+ );
36
 
37
  function su_shortcode_subpages( $atts = null, $content = null ) {
38
+ $atts = shortcode_atts(
39
+ array(
40
  'depth' => 1,
41
  'p' => false,
42
+ 'class' => '',
43
+ ),
44
+ $atts,
45
+ 'subpages'
46
+ );
47
  global $post;
48
+ $child_of = ( $atts['p'] ) ? intval( $atts['p'] ) : get_the_ID();
49
+ $return = wp_list_pages(
50
+ array(
51
  'title_li' => '',
52
+ 'echo' => 0,
53
  'child_of' => $child_of,
54
+ 'depth' => intval( $atts['depth'] ),
55
+ )
56
+ );
57
  return ( $return ) ? '<ul class="su-subpages' . su_get_css_class( $atts ) . '">' . $return . '</ul>' : false;
58
  }
includes/shortcodes/table.php CHANGED
@@ -54,6 +54,20 @@ function su_shortcode_table( $atts = null, $content = null ) {
54
  'table'
55
  );
56
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
  foreach ( array( 'responsive', 'alternate', 'fixed' ) as $feature ) {
58
 
59
  if ( 'yes' === $atts[ $feature ] ) {
54
  'table'
55
  );
56
 
57
+ if ( $atts['url'] && ! su_is_unsafe_features_enabled() ) {
58
+
59
+ return su_error_message(
60
+ 'Table',
61
+ sprintf(
62
+ '%s.<br><a href="https://getshortcodes.com/docs/unsafe-features/" target="_blank">%s</a>',
63
+ // translators: do not translate the <b>url</b> part, the <b>Unsafe features</b> must be translated
64
+ __( 'The <b>url</b> attribute cannot be used while <b>Unsafe features</b> option is turned off', 'shortcodes-ultimate' ),
65
+ __( 'Learn more', 'shortcodes-ultimate' )
66
+ )
67
+ );
68
+
69
+ }
70
+
71
  foreach ( array( 'responsive', 'alternate', 'fixed' ) as $feature ) {
72
 
73
  if ( 'yes' === $atts[ $feature ] ) {
includes/shortcodes/tabs.php CHANGED
@@ -174,7 +174,7 @@ function su_shortcode_tabs( $atts = null, $content = null ) {
174
 
175
  $atts['mobile'] = sanitize_key( $atts['mobile'] );
176
 
177
- $output = '<div class="su-tabs su-tabs-style-' . $atts['style'] . ' su-tabs-mobile-' . $atts['mobile'] . su_get_css_class( $atts ) . '" data-active="' . (string) $atts['active'] . '" data-scroll-offset="' . intval( $atts['scroll_offset'] ) . '" data-anchor-in-url="' . sanitize_key( $atts['anchor_in_url'] ) . '"><div class="su-tabs-nav">' . implode( '', $tabs ) . '</div><div class="su-tabs-panes">' . implode( "\n", $panes ) . '</div></div>';
178
 
179
  // Reset tabs
180
  $shortcodes_ultimate_global_tabs = array();
@@ -211,9 +211,9 @@ function su_shortcode_tab( $atts = null, $content = null ) {
211
  'title' => $atts['title'],
212
  'content' => do_shortcode( $content ),
213
  'disabled' => 'yes' === $atts['disabled'] ? ' su-tabs-disabled' : '',
214
- 'anchor' => $atts['anchor'] ? ' data-anchor="' . str_replace( array( ' ', '#' ), '', sanitize_text_field( $atts['anchor'] ) ) . '"' : '',
215
- 'url' => ' data-url="' . $atts['url'] . '"',
216
- 'target' => ' data-target="' . $atts['target'] . '"',
217
  'class' => $atts['class'],
218
  );
219
 
174
 
175
  $atts['mobile'] = sanitize_key( $atts['mobile'] );
176
 
177
+ $output = '<div class="su-tabs su-tabs-style-' . esc_attr( $atts['style'] ) . ' su-tabs-mobile-' . esc_attr( $atts['mobile'] ) . su_get_css_class( $atts ) . '" data-active="' . esc_attr( $atts['active'] ) . '" data-scroll-offset="' . intval( $atts['scroll_offset'] ) . '" data-anchor-in-url="' . sanitize_key( $atts['anchor_in_url'] ) . '"><div class="su-tabs-nav">' . implode( '', $tabs ) . '</div><div class="su-tabs-panes">' . implode( "\n", $panes ) . '</div></div>';
178
 
179
  // Reset tabs
180
  $shortcodes_ultimate_global_tabs = array();
211
  'title' => $atts['title'],
212
  'content' => do_shortcode( $content ),
213
  'disabled' => 'yes' === $atts['disabled'] ? ' su-tabs-disabled' : '',
214
+ 'anchor' => $atts['anchor'] ? ' data-anchor="' . str_replace( array( ' ', '#' ), '', esc_attr( $atts['anchor'] ) ) . '"' : '',
215
+ 'url' => ' data-url="' . esc_attr( $atts['url'] ) . '"',
216
+ 'target' => ' data-target="' . esc_attr( $atts['target'] ) . '"',
217
  'class' => $atts['class'],
218
  );
219
 
includes/shortcodes/tooltip.php CHANGED
@@ -211,16 +211,16 @@ function su_shortcode_tooltip( $atts = null, $content = null ) {
211
  '{{TITLE}}' => su_do_attribute( $atts['title'] ),
212
  '{{TEXT}}' => su_do_attribute( $atts['text'] ),
213
  '{{SHADOW}}' => sanitize_key( $atts['shadow'] ),
214
- '{{RADIUS}}' => su_maybe_add_css_units( $atts['radius'], 'px' ),
215
- '{{BACKGROUND}}' => $atts['background'],
216
- '{{COLOR}}' => $atts['color'],
217
- '{{FONT_SIZE}}' => su_maybe_add_css_units( $atts['font_size'], 'px' ),
218
- '{{MAX_WIDTH}}' => su_maybe_add_css_units( $atts['max_width'], 'px' ),
219
  '{{ALIGN}}' => sanitize_key( $atts['text_align'] ),
220
  '{{OUTLINE}}' => sanitize_key( $atts['outline'] ),
221
  '{{REFERENCE_TAG}}' => sanitize_key( $atts['reference_tag'] ),
222
  '{{TABINDEX}}' => $atts['tabindex'],
223
- '{{LINE_HEIGHT}}' => $atts['line_height'],
224
  '{{Z_INDEX}}' => intval( $atts['z_index'] ),
225
  );
226
 
211
  '{{TITLE}}' => su_do_attribute( $atts['title'] ),
212
  '{{TEXT}}' => su_do_attribute( $atts['text'] ),
213
  '{{SHADOW}}' => sanitize_key( $atts['shadow'] ),
214
+ '{{RADIUS}}' => esc_attr( su_maybe_add_css_units( $atts['radius'], 'px' ) ),
215
+ '{{BACKGROUND}}' => esc_attr( $atts['background'] ),
216
+ '{{COLOR}}' => esc_attr( $atts['color'] ),
217
+ '{{FONT_SIZE}}' => esc_attr( su_maybe_add_css_units( $atts['font_size'], 'px' ) ),
218
+ '{{MAX_WIDTH}}' => esc_attr( su_maybe_add_css_units( $atts['max_width'], 'px' ) ),
219
  '{{ALIGN}}' => sanitize_key( $atts['text_align'] ),
220
  '{{OUTLINE}}' => sanitize_key( $atts['outline'] ),
221
  '{{REFERENCE_TAG}}' => sanitize_key( $atts['reference_tag'] ),
222
  '{{TABINDEX}}' => $atts['tabindex'],
223
+ '{{LINE_HEIGHT}}' => esc_attr( $atts['line_height'] ),
224
  '{{Z_INDEX}}' => intval( $atts['z_index'] ),
225
  );
226
 
includes/shortcodes/user.php CHANGED
@@ -103,13 +103,7 @@ function su_shortcode_user( $atts = null, $content = null ) {
103
  $data = su_do_attribute( $atts['default'] );
104
  }
105
 
106
- if (
107
- $atts['filter'] &&
108
- su_is_filter_safe( $atts['filter'] ) &&
109
- function_exists( $atts['filter'] )
110
- ) {
111
- $data = call_user_func( $atts['filter'], $data );
112
- }
113
 
114
  return $data ? $atts['before'] . $data . $atts['after'] : '';
115
 
103
  $data = su_do_attribute( $atts['default'] );
104
  }
105
 
106
+ $data = su_safely_apply_user_filter( $atts['filter'], $data );
 
 
 
 
 
 
107
 
108
  return $data ? $atts['before'] . $data . $atts['after'] : '';
109
 
includes/shortcodes/video.php CHANGED
@@ -1,82 +1,85 @@
1
  <?php
2
 
3
- su_add_shortcode( array(
4
- 'id' => 'video',
 
5
  'callback' => 'su_shortcode_video',
6
- 'image' => su_get_plugin_url() . 'admin/images/shortcodes/video.svg',
7
- 'name' => __( 'Video', 'shortcodes-ultimate' ),
8
- 'type' => 'single',
9
- 'group' => 'media',
10
- 'atts' => array(
11
- 'url' => array(
12
- 'type' => 'upload',
13
  'default' => '',
14
- 'name' => __( 'File', 'shortcodes-ultimate' ),
15
- 'desc' => __( 'Url to mp4/flv video-file', 'shortcodes-ultimate' )
16
  ),
17
- 'poster' => array(
18
- 'type' => 'upload',
19
  'default' => '',
20
- 'name' => __( 'Poster', 'shortcodes-ultimate' ),
21
- 'desc' => __( 'Url to poster image, that will be shown before playback', 'shortcodes-ultimate' )
22
  ),
23
- 'title' => array(
24
- 'values' => array( ),
25
  'default' => '',
26
- 'name' => __( 'Title', 'shortcodes-ultimate' ),
27
- 'desc' => __( 'Player title', 'shortcodes-ultimate' )
28
  ),
29
- 'width' => array(
30
- 'type' => 'slider',
31
- 'min' => 200,
32
- 'max' => 1600,
33
- 'step' => 20,
34
  'default' => 600,
35
- 'name' => __( 'Width', 'shortcodes-ultimate' ),
36
- 'desc' => __( 'Player width', 'shortcodes-ultimate' )
37
  ),
38
- 'height' => array(
39
- 'type' => 'slider',
40
- 'min' => 200,
41
- 'max' => 1600,
42
- 'step' => 20,
43
  'default' => 300,
44
- 'name' => __( 'Height', 'shortcodes-ultimate' ),
45
- 'desc' => __( 'Player height', 'shortcodes-ultimate' )
46
  ),
47
  'controls' => array(
48
- 'type' => 'bool',
49
  'default' => 'yes',
50
- 'name' => __( 'Controls', 'shortcodes-ultimate' ),
51
- 'desc' => __( 'Show player controls (play/pause etc.) or not', 'shortcodes-ultimate' )
52
  ),
53
  'autoplay' => array(
54
- 'type' => 'bool',
55
  'default' => 'no',
56
- 'name' => __( 'Autoplay', 'shortcodes-ultimate' ),
57
- 'desc' => __( 'Play file automatically when page is loaded', 'shortcodes-ultimate' )
58
  ),
59
- 'loop' => array(
60
- 'type' => 'bool',
61
  'default' => 'no',
62
- 'name' => __( 'Loop', 'shortcodes-ultimate' ),
63
- 'desc' => __( 'Repeat when playback is ended', 'shortcodes-ultimate' )
64
  ),
65
- 'class' => array(
66
- 'type' => 'extra_css_class',
67
- 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
68
- 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
69
  'default' => '',
70
  ),
71
  ),
72
- 'desc' => __( 'Custom video player', 'shortcodes-ultimate' ),
73
- 'example' => 'media',
74
- 'icon' => 'play-circle',
75
- ) );
 
76
 
77
  function su_shortcode_video( $atts = null, $content = null ) {
78
 
79
- $atts = shortcode_atts( array(
 
80
  'url' => false,
81
  'poster' => false,
82
  'title' => '',
@@ -85,8 +88,11 @@ function su_shortcode_video( $atts = null, $content = null ) {
85
  'controls' => 'yes',
86
  'autoplay' => 'no',
87
  'loop' => 'no',
88
- 'class' => ''
89
- ), $atts, 'video' );
 
 
 
90
 
91
  if ( ! $atts['url'] ) {
92
  return su_error_message( 'Video', __( 'please specify correct url', 'shortcodes-ultimate' ) );
@@ -109,6 +115,6 @@ function su_shortcode_video( $atts = null, $content = null ) {
109
  su_query_asset( 'js', 'jplayer' );
110
  su_query_asset( 'js', 'su-shortcodes' );
111
 
112
- return '<div style="width:' . $atts['width'] . 'px"><div id="' . $id . '" class="su-video jp-video su-video-controls-' . $atts['controls'] . su_get_css_class( $atts ) . '" data-id="' . $id . '" data-video="' . $atts['url'] . '" data-swf="' . plugins_url( 'vendor/jplayer/jplayer.swf', SU_PLUGIN_FILE ) . '" data-autoplay="' . $atts['autoplay'] . '" data-loop="' . $atts['loop'] . '" data-poster="' . $atts['poster'] . '"><div id="' . $id . '_player" class="jp-jplayer" style="width:' . $atts['width'] . 'px;height:' . $atts['height'] . 'px"></div>' . $title . '<div class="jp-start jp-play"></div><div class="jp-gui"><div class="jp-interface"><div class="jp-progress"><div class="jp-seek-bar"><div class="jp-play-bar"></div></div></div><div class="jp-current-time"></div><div class="jp-duration"></div><div class="jp-controls-holder"><span class="jp-play"></span><span class="jp-pause"></span><span class="jp-mute"></span><span class="jp-unmute"></span><span class="jp-full-screen"></span><span class="jp-restore-screen"></span><div class="jp-volume-bar"><div class="jp-volume-bar-value"></div></div></div></div></div></div></div>';
113
 
114
  }
1
  <?php
2
 
3
+ su_add_shortcode(
4
+ array(
5
+ 'id' => 'video',
6
  'callback' => 'su_shortcode_video',
7
+ 'image' => su_get_plugin_url() . 'admin/images/shortcodes/video.svg',
8
+ 'name' => __( 'Video', 'shortcodes-ultimate' ),
9
+ 'type' => 'single',
10
+ 'group' => 'media',
11
+ 'atts' => array(
12
+ 'url' => array(
13
+ 'type' => 'upload',
14
  'default' => '',
15
+ 'name' => __( 'File', 'shortcodes-ultimate' ),
16
+ 'desc' => __( 'Url to mp4/flv video-file', 'shortcodes-ultimate' ),
17
  ),
18
+ 'poster' => array(
19
+ 'type' => 'upload',
20
  'default' => '',
21
+ 'name' => __( 'Poster', 'shortcodes-ultimate' ),
22
+ 'desc' => __( 'Url to poster image, that will be shown before playback', 'shortcodes-ultimate' ),
23
  ),
24
+ 'title' => array(
25
+ 'values' => array(),
26
  'default' => '',
27
+ 'name' => __( 'Title', 'shortcodes-ultimate' ),
28
+ 'desc' => __( 'Player title', 'shortcodes-ultimate' ),
29
  ),
30
+ 'width' => array(
31
+ 'type' => 'slider',
32
+ 'min' => 200,
33
+ 'max' => 1600,
34
+ 'step' => 20,
35
  'default' => 600,
36
+ 'name' => __( 'Width', 'shortcodes-ultimate' ),
37
+ 'desc' => __( 'Player width', 'shortcodes-ultimate' ),
38
  ),
39
+ 'height' => array(
40
+ 'type' => 'slider',
41
+ 'min' => 200,
42
+ 'max' => 1600,
43
+ 'step' => 20,
44
  'default' => 300,
45
+ 'name' => __( 'Height', 'shortcodes-ultimate' ),
46
+ 'desc' => __( 'Player height', 'shortcodes-ultimate' ),
47
  ),
48
  'controls' => array(
49
+ 'type' => 'bool',
50
  'default' => 'yes',
51
+ 'name' => __( 'Controls', 'shortcodes-ultimate' ),
52
+ 'desc' => __( 'Show player controls (play/pause etc.) or not', 'shortcodes-ultimate' ),
53
  ),
54
  'autoplay' => array(
55
+ 'type' => 'bool',
56
  'default' => 'no',
57
+ 'name' => __( 'Autoplay', 'shortcodes-ultimate' ),
58
+ 'desc' => __( 'Play file automatically when page is loaded', 'shortcodes-ultimate' ),
59
  ),
60
+ 'loop' => array(
61
+ 'type' => 'bool',
62
  'default' => 'no',
63
+ 'name' => __( 'Loop', 'shortcodes-ultimate' ),
64
+ 'desc' => __( 'Repeat when playback is ended', 'shortcodes-ultimate' ),
65
  ),
66
+ 'class' => array(
67
+ 'type' => 'extra_css_class',
68
+ 'name' => __( 'Extra CSS class', 'shortcodes-ultimate' ),
69
+ 'desc' => __( 'Additional CSS class name(s) separated by space(s)', 'shortcodes-ultimate' ),
70
  'default' => '',
71
  ),
72
  ),
73
+ 'desc' => __( 'Custom video player', 'shortcodes-ultimate' ),
74
+ 'example' => 'media',
75
+ 'icon' => 'play-circle',
76
+ )
77
+ );
78
 
79
  function su_shortcode_video( $atts = null, $content = null ) {
80
 
81
+ $atts = shortcode_atts(
82
+ array(
83
  'url' => false,
84
  'poster' => false,
85
  'title' => '',
88
  'controls' => 'yes',
89
  'autoplay' => 'no',
90
  'loop' => 'no',
91
+ 'class' => '',
92
+ ),
93
+ $atts,
94
+ 'video'
95
+ );
96
 
97
  if ( ! $atts['url'] ) {
98
  return su_error_message( 'Video', __( 'please specify correct url', 'shortcodes-ultimate' ) );
115
  su_query_asset( 'js', 'jplayer' );
116
  su_query_asset( 'js', 'su-shortcodes' );
117
 
118
+ return '<div style="width:' . esc_attr( $atts['width'] ) . 'px"><div id="' . $id . '" class="su-video jp-video su-video-controls-' . esc_attr( $atts['controls'] ) . su_get_css_class( $atts ) . '" data-id="' . $id . '" data-video="' . esc_attr( $atts['url'] ) . '" data-swf="' . plugins_url( 'vendor/jplayer/jplayer.swf', SU_PLUGIN_FILE ) . '" data-autoplay="' . esc_attr( $atts['autoplay'] ) . '" data-loop="' . esc_attr( $atts['loop'] ) . '" data-poster="' . esc_attr( $atts['poster'] ) . '"><div id="' . $id . '_player" class="jp-jplayer" style="width:' . esc_attr( $atts['width'] ) . 'px;height:' . esc_attr( $atts['height'] ) . 'px"></div>' . $title . '<div class="jp-start jp-play"></div><div class="jp-gui"><div class="jp-interface"><div class="jp-progress"><div class="jp-seek-bar"><div class="jp-play-bar"></div></div></div><div class="jp-current-time"></div><div class="jp-duration"></div><div class="jp-controls-holder"><span class="jp-play"></span><span class="jp-pause"></span><span class="jp-mute"></span><span class="jp-unmute"></span><span class="jp-full-screen"></span><span class="jp-restore-screen"></span><div class="jp-volume-bar"><div class="jp-volume-bar-value"></div></div></div></div></div></div></div>';
119
 
120
  }
includes/shortcodes/vimeo.php CHANGED
@@ -120,11 +120,11 @@ function su_shortcode_vimeo( $atts = null, $content = null ) {
120
  'autoplay' => 'yes' === $atts['autoplay'] ? 1 : 0,
121
  'dnt' => 'yes' === $atts['dnt'] ? 1 : 0,
122
  'muted' => 'yes' === $atts['mute'] ? 1 : 0,
123
- 'texttrack' => $atts['texttrack'],
124
  );
125
 
126
  su_query_asset( 'css', 'su-shortcodes' );
127
 
128
- return '<div class="su-vimeo su-u-responsive-media-' . $atts['responsive'] . su_get_css_class( $atts ) . '"><iframe width="' . $atts['width'] . '" height="' . $atts['height'] . '" src="//player.vimeo.com/video/' . $video_id . '?' . esc_attr( http_build_query( $url_params ) ) . '" frameborder="0" allow="autoplay; fullscreen" allowfullscreen title="' . esc_attr( $atts['title'] ) . '"></iframe></div>';
129
 
130
  }
120
  'autoplay' => 'yes' === $atts['autoplay'] ? 1 : 0,
121
  'dnt' => 'yes' === $atts['dnt'] ? 1 : 0,
122
  'muted' => 'yes' === $atts['mute'] ? 1 : 0,
123
+ 'texttrack' => esc_attr( $atts['texttrack'] ),
124
  );
125
 
126
  su_query_asset( 'css', 'su-shortcodes' );
127
 
128
+ return '<div class="su-vimeo su-u-responsive-media-' . esc_attr( $atts['responsive'] ) . su_get_css_class( $atts ) . '"><iframe width="' . esc_attr( $atts['width'] ) . '" height="' . esc_attr( $atts['height'] ) . '" src="//player.vimeo.com/video/' . $video_id . '?' . esc_attr( http_build_query( $url_params ) ) . '" frameborder="0" allow="autoplay; fullscreen" allowfullscreen title="' . esc_attr( $atts['title'] ) . '"></iframe></div>';
129
 
130
  }
includes/shortcodes/youtube-advanced.php CHANGED
@@ -213,6 +213,10 @@ function su_shortcode_youtube_advanced( $atts = null, $content = null ) {
213
  $url_params['playlist'] = $video_id;
214
  }
215
 
 
 
 
 
216
  $url_params = http_build_query( $url_params );
217
 
218
  $domain = strpos( $atts['url'], 'youtube-nocookie.com' ) !== false
@@ -221,6 +225,6 @@ function su_shortcode_youtube_advanced( $atts = null, $content = null ) {
221
 
222
  su_query_asset( 'css', 'su-shortcodes' );
223
 
224
- return '<div class="su-youtube su-u-responsive-media-' . $atts['responsive'] . su_get_css_class( $atts ) . '"><iframe width="' . $atts['width'] . '" height="' . $atts['height'] . '" src="https://' . $domain . '/embed/' . $video_id . '?' . $url_params . '" frameborder="0" allowfullscreen allow="autoplay; encrypted-media; picture-in-picture" title="' . esc_attr( $atts['title'] ) . '"></iframe></div>';
225
 
226
  }
213
  $url_params['playlist'] = $video_id;
214
  }
215
 
216
+ if ( empty( $url_params['playlist'] ) ) {
217
+ unset( $url_params['playlist'] );
218
+ }
219
+
220
  $url_params = http_build_query( $url_params );
221
 
222
  $domain = strpos( $atts['url'], 'youtube-nocookie.com' ) !== false
225
 
226
  su_query_asset( 'css', 'su-shortcodes' );
227
 
228
+ return '<div class="su-youtube su-u-responsive-media-' . esc_attr( $atts['responsive'] ) . su_get_css_class( $atts ) . '"><iframe width="' . esc_attr( $atts['width'] ) . '" height="' . esc_attr( $atts['height'] ) . '" src="https://' . $domain . '/embed/' . $video_id . '?' . esc_attr( $url_params ) . '" frameborder="0" allowfullscreen allow="autoplay; encrypted-media; picture-in-picture" title="' . esc_attr( $atts['title'] ) . '"></iframe></div>';
229
 
230
  }
includes/shortcodes/youtube.php CHANGED
@@ -115,6 +115,6 @@ function su_shortcode_youtube( $atts = null, $content = null ) {
115
 
116
  su_query_asset( 'css', 'su-shortcodes' );
117
 
118
- return '<div class="su-youtube su-u-responsive-media-' . $atts['responsive'] . su_get_css_class( $atts ) . '"><iframe width="' . $atts['width'] . '" height="' . $atts['height'] . '" src="https://' . $domain . '/embed/' . $video_id . '?' . http_build_query( $url_params ) . '" frameborder="0" allowfullscreen allow="autoplay; encrypted-media; picture-in-picture" title="' . esc_attr( $atts['title'] ) . '"></iframe></div>';
119
 
120
  }
115
 
116
  su_query_asset( 'css', 'su-shortcodes' );
117
 
118
+ return '<div class="su-youtube su-u-responsive-media-' . esc_attr( $atts['responsive'] ) . su_get_css_class( $atts ) . '"><iframe width="' . esc_attr( $atts['width'] ) . '" height="' . esc_attr( $atts['height'] ) . '" src="https://' . $domain . '/embed/' . $video_id . '?' . esc_attr( http_build_query( $url_params ) ) . '" frameborder="0" allowfullscreen allow="autoplay; encrypted-media; picture-in-picture" title="' . esc_attr( $atts['title'] ) . '"></iframe></div>';
119
 
120
  }
includes/upgrade/5.1.1.php DELETED
@@ -1,13 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * 1. Add `su_option_supported_blocks` option.
5
- */
6
- if ( false === get_option( 'su_option_supported_blocks' ) ) {
7
-
8
- add_option(
9
- 'su_option_supported_blocks',
10
- array_keys( su_get_config( 'supported-blocks' ) )
11
- );
12
-
13
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/upgrade/5.2.0.php DELETED
@@ -1,20 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * 1. Add `su_option_generator_access` option.
5
- */
6
- if ( false === get_option( 'su_option_generator_access' ) ) {
7
- add_option( 'su_option_generator_access', 'manage_options' );
8
- }
9
-
10
- /**
11
- * 2. Add `su_option_enable_shortcodes_in` option.
12
- */
13
- if ( false === get_option( 'su_option_enable_shortcodes_in' ) ) {
14
-
15
- add_option(
16
- 'su_option_enable_shortcodes_in',
17
- array( 'term_description', 'widget_text' )
18
- );
19
-
20
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/upgrade/5.4.0.php DELETED
@@ -1,8 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * 1. Add `su_option_hide_deprecated` option.
5
- */
6
- if ( false === get_option( 'su_option_hide_deprecated' ) ) {
7
- add_option( 'su_option_hide_deprecated', 'on' );
8
- }
 
 
 
 
 
 
 
 
languages/shortcodes-ultimate.pot CHANGED
@@ -82,99 +82,111 @@ msgstr ""
82
  msgid "Shadow"
83
  msgstr ""
84
 
85
- #: admin/class-shortcodes-ultimate-admin-settings.php:70, admin/class-shortcodes-ultimate-admin-settings.php:71, admin/class-shortcodes-ultimate-admin-settings.php:186, inc/core/generator.php:209
86
- msgid "Settings"
87
- msgstr ""
88
-
89
- #: admin/class-shortcodes-ultimate-admin-settings.php:88, admin/class-shortcodes-ultimate-admin-settings.php:165
90
- msgid "General settings"
91
- msgstr ""
92
-
93
- #: admin/class-shortcodes-ultimate-admin-settings.php:213
94
  msgid "Custom CSS code"
95
  msgstr ""
96
 
97
- #: admin/class-shortcodes-ultimate-admin-settings.php:214
98
  msgid "In this field you can write your custom CSS code for shortcodes. These styles will have higher priority compared to original styles of shortcodes. You can use variables in your CSS code. These variables will be replaced by respective values."
99
  msgstr ""
100
 
101
- #: admin/class-shortcodes-ultimate-admin-settings.php:221
102
  msgid "Supported blocks"
103
  msgstr ""
104
 
105
- #: admin/class-shortcodes-ultimate-admin-settings.php:222
106
  msgid "Enable the \"Insert Shortcode\" button in selected blocks"
107
  msgstr ""
108
 
109
- #: admin/class-shortcodes-ultimate-admin-settings.php:230
110
  msgid "Enable shortcodes in"
111
  msgstr ""
112
 
113
- #: admin/class-shortcodes-ultimate-admin-settings.php:231
114
  msgid "This option allows you to enable shortcodes in places where they are disabled by default"
115
  msgstr ""
116
 
117
- #: admin/class-shortcodes-ultimate-admin-settings.php:233
118
  msgid "Term descriptions (Categories, Tags, Custom Taxonomies)"
119
  msgstr ""
120
 
121
- #: admin/class-shortcodes-ultimate-admin-settings.php:234
122
  msgid "Text widgets"
123
  msgstr ""
124
 
125
- #: admin/class-shortcodes-ultimate-admin-settings.php:248
126
  msgid "Shortcodes prefix"
127
  msgstr ""
128
 
129
- #: admin/class-shortcodes-ultimate-admin-settings.php:249
130
  msgid "This prefix will be used in shortcode names. For example: set <code>MY_</code> prefix and shortcodes will look like <code>[MY_button]</code>. Please note that this setting does not change shortcodes that have been inserted earlier. Change this setting very carefully."
131
  msgstr ""
132
 
133
- #: admin/class-shortcodes-ultimate-admin-settings.php:259
134
  msgid "Custom formatting"
135
  msgstr ""
136
 
137
- #: admin/class-shortcodes-ultimate-admin-settings.php:260
138
  msgid "Enable this option if you face any problems with formatting of nested shortcodes."
139
  msgstr ""
140
 
141
- #: admin/class-shortcodes-ultimate-admin-settings.php:270
142
  msgid "Skip default settings"
143
  msgstr ""
144
 
145
- #: admin/class-shortcodes-ultimate-admin-settings.php:271
146
  msgid "Enable this option if you don't want the inserted shortcode to contain any settings that were not changed by you. As a result, inserted shortcodes will be much shorter."
147
  msgstr ""
148
 
149
- #: admin/class-shortcodes-ultimate-admin-settings.php:279
150
  msgid "Required user capability"
151
  msgstr ""
152
 
153
- #: admin/class-shortcodes-ultimate-admin-settings.php:280
154
  msgid "A user must have this capability to be able to use the \"Insert Shortcode\" button. Do not change this value if you do not understand its meaning as this may lower the plugin security."
155
  msgstr ""
156
 
157
- #: admin/class-shortcodes-ultimate-admin-settings.php:290
 
 
 
 
 
 
 
 
 
 
 
 
158
  msgid "Hide deprecated shortcodes"
159
  msgstr ""
160
 
161
- #: admin/class-shortcodes-ultimate-admin-settings.php:291
162
  msgid "This option hides all deprecated shortcodes from the Insert Shortcode window and at the Available Shortcodes page. Hidden shortcodes will continue to work."
163
  msgstr ""
164
 
165
- #: admin/class-shortcodes-ultimate-admin-settings.php:301
166
  msgid "Nested shortcodes alternative mode"
167
  msgstr ""
168
 
169
- #: admin/class-shortcodes-ultimate-admin-settings.php:302
170
  msgid "This option enables alternative (deprecated) mode for nested shortcodes."
171
  msgstr ""
172
 
 
 
 
 
 
 
 
 
173
  #: admin/class-shortcodes-ultimate-admin-shortcodes.php:26, admin/class-shortcodes-ultimate-admin-shortcodes.php:27
174
  msgid "Available shortcodes"
175
  msgstr ""
176
 
177
- #: admin/class-shortcodes-ultimate-admin-shortcodes.php:88, admin/class-shortcodes-ultimate-admin-top-level.php:39, admin/class-shortcodes-ultimate-admin.php:267, admin/class-shortcodes-ultimate-widget.php:26, admin/class-shortcodes-ultimate-widget.php:77, includes/functions-galleries.php:297, admin/partials/help/sidebar.php:3
178
  msgid "Shortcodes Ultimate"
179
  msgstr ""
180
 
@@ -262,7 +274,7 @@ msgstr ""
262
  msgid "Shortcodes"
263
  msgstr ""
264
 
265
- #: admin/class-shortcodes-ultimate-widget.php:15
266
  msgid "Shortcodes Ultimate widget"
267
  msgstr ""
268
 
@@ -538,7 +550,7 @@ msgstr ""
538
  msgid "Add more style to your shortcodes"
539
  msgstr ""
540
 
541
- #: includes/config/borders.php:6, includes/shortcodes/carousel.php:36, includes/shortcodes/custom-gallery.php:30, includes/shortcodes/display-posts.php:114, includes/shortcodes/image-carousel.php:87, includes/shortcodes/image-carousel.php:130, includes/shortcodes/posts.php:139, includes/shortcodes/qrcode.php:48, includes/shortcodes/slider.php:36
542
  msgid "None"
543
  msgstr ""
544
 
@@ -546,11 +558,11 @@ msgstr ""
546
  msgid "Solid"
547
  msgstr ""
548
 
549
- #: includes/config/borders.php:8, includes/shortcodes/divider.php:32, includes/shortcodes/expand.php:55
550
  msgid "Dotted"
551
  msgstr ""
552
 
553
- #: includes/config/borders.php:9, includes/shortcodes/divider.php:33, includes/shortcodes/expand.php:56
554
  msgid "Dashed"
555
  msgstr ""
556
 
@@ -614,107 +626,111 @@ msgstr ""
614
  msgid "Classic"
615
  msgstr ""
616
 
617
- #: includes/shortcodes/accordion.php:7
 
 
 
 
618
  msgid "Accordion"
619
  msgstr ""
620
 
621
- #: includes/shortcodes/accordion.php:14, includes/shortcodes/animate.php:44, includes/shortcodes/audio.php:37, includes/shortcodes/box.php:56, includes/shortcodes/button.php:144, includes/shortcodes/carousel.php:143, includes/shortcodes/column.php:40, includes/shortcodes/csv-table.php:52, includes/shortcodes/custom-gallery.php:82, includes/shortcodes/dailymotion.php:103, includes/shortcodes/display-posts.php:223, includes/shortcodes/divider.php:74, includes/shortcodes/document.php:50, includes/shortcodes/dropcap.php:33, includes/shortcodes/dummy-image.php:53, includes/shortcodes/dummy-text.php:46, includes/shortcodes/expand.php:88, includes/shortcodes/feed.php:39, includes/shortcodes/frame.php:25, includes/shortcodes/gmap.php:58, includes/shortcodes/guests.php:13, includes/shortcodes/heading.php:56, includes/shortcodes/highlight.php:26, includes/shortcodes/image-carousel.php:193, includes/shortcodes/label.php:27, includes/shortcodes/lightbox-content.php:109, includes/shortcodes/lightbox.php:38, includes/shortcodes/list.php:35, includes/shortcodes/members.php:35, includes/shortcodes/menu.php:18, includes/shortcodes/note.php:37, includes/shortcodes/permalink.php:38, includes/shortcodes/private.php:13, includes/shortcodes/pullquote.php:22, includes/shortcodes/qrcode.php:86, includes/shortcodes/quote.php:34, includes/shortcodes/row.php:15, includes/shortcodes/service.php:41, includes/shortcodes/siblings.php:19, includes/shortcodes/slider.php:124, includes/shortcodes/spacer.php:22, includes/shortcodes/spoiler.php:67, includes/shortcodes/subpages.php:25, includes/shortcodes/table.php:34, includes/shortcodes/tabs.php:58, includes/shortcodes/tabs.php:117, includes/shortcodes/tooltip.php:103, includes/shortcodes/video.php:67, includes/shortcodes/vimeo.php:71, includes/shortcodes/youtube-advanced.php:134, includes/shortcodes/youtube.php:60
622
  msgid "Extra CSS class"
623
  msgstr ""
624
 
625
- #: includes/shortcodes/accordion.php:15, includes/shortcodes/animate.php:45, includes/shortcodes/audio.php:38, includes/shortcodes/box.php:57, includes/shortcodes/button.php:145, includes/shortcodes/carousel.php:144, includes/shortcodes/column.php:41, includes/shortcodes/csv-table.php:53, includes/shortcodes/custom-gallery.php:83, includes/shortcodes/dailymotion.php:104, includes/shortcodes/display-posts.php:224, includes/shortcodes/divider.php:75, includes/shortcodes/document.php:51, includes/shortcodes/dropcap.php:34, includes/shortcodes/dummy-image.php:54, includes/shortcodes/dummy-text.php:47, includes/shortcodes/expand.php:89, includes/shortcodes/feed.php:40, includes/shortcodes/gmap.php:59, includes/shortcodes/guests.php:14, includes/shortcodes/heading.php:57, includes/shortcodes/highlight.php:27, includes/shortcodes/image-carousel.php:194, includes/shortcodes/label.php:28, includes/shortcodes/lightbox-content.php:110, includes/shortcodes/lightbox.php:39, includes/shortcodes/list.php:36, includes/shortcodes/members.php:36, includes/shortcodes/menu.php:19, includes/shortcodes/note.php:38, includes/shortcodes/permalink.php:39, includes/shortcodes/private.php:14, includes/shortcodes/pullquote.php:23, includes/shortcodes/qrcode.php:87, includes/shortcodes/quote.php:35, includes/shortcodes/row.php:16, includes/shortcodes/service.php:42, includes/shortcodes/siblings.php:20, includes/shortcodes/slider.php:125, includes/shortcodes/spacer.php:23, includes/shortcodes/spoiler.php:68, includes/shortcodes/subpages.php:26, includes/shortcodes/table.php:35, includes/shortcodes/tabs.php:59, includes/shortcodes/tabs.php:118, includes/shortcodes/tooltip.php:104, includes/shortcodes/video.php:68, includes/shortcodes/vimeo.php:72, includes/shortcodes/youtube-advanced.php:135, includes/shortcodes/youtube.php:61
626
  msgid "Additional CSS class name(s) separated by space(s)"
627
  msgstr ""
628
 
629
- #: includes/shortcodes/accordion.php:23
630
  msgid "Accordion with spoilers"
631
  msgstr ""
632
 
633
- #: includes/shortcodes/accordion.php:24, includes/shortcodes/spoiler.php:74
634
  msgid "Did you know that you can wrap multiple spoilers with [accordion] shortcode to create accordion effect?"
635
  msgstr ""
636
 
637
- #: includes/shortcodes/animate.php:7, includes/shortcodes/animate.php:15
638
  msgid "Animation"
639
  msgstr ""
640
 
641
- #: includes/shortcodes/animate.php:16
642
  msgid "Select animation type"
643
  msgstr ""
644
 
645
- #: includes/shortcodes/animate.php:24
646
  msgid "Duration"
647
  msgstr ""
648
 
649
- #: includes/shortcodes/animate.php:25
650
  msgid "Animation duration (seconds)"
651
  msgstr ""
652
 
653
- #: includes/shortcodes/animate.php:33
654
  msgid "Delay"
655
  msgstr ""
656
 
657
- #: includes/shortcodes/animate.php:34
658
  msgid "Animation delay (seconds)"
659
  msgstr ""
660
 
661
- #: includes/shortcodes/animate.php:39
662
  msgid "Inline"
663
  msgstr ""
664
 
665
- #: includes/shortcodes/animate.php:40
666
  msgid "This parameter determines what HTML tag will be used for animation wrapper. Turn this option to YES and animated element will be wrapped in SPAN instead of DIV. Useful for inline animations, like buttons"
667
  msgstr ""
668
 
669
- #: includes/shortcodes/animate.php:49
670
  msgid "Animated content"
671
  msgstr ""
672
 
673
- #: includes/shortcodes/animate.php:50
674
  msgid "Wrapper for animation. Any nested element will be animated"
675
  msgstr ""
676
 
677
- #: includes/shortcodes/audio.php:7
678
  msgid "Audio"
679
  msgstr ""
680
 
681
- #: includes/shortcodes/audio.php:14, includes/shortcodes/video.php:14
682
  msgid "File"
683
  msgstr ""
684
 
685
- #: includes/shortcodes/audio.php:15
686
  msgid "Audio file url. Supported formats: mp3, ogg"
687
  msgstr ""
688
 
689
- #: includes/shortcodes/audio.php:20, includes/shortcodes/carousel.php:63, includes/shortcodes/custom-gallery.php:57, includes/shortcodes/dailymotion.php:23, includes/shortcodes/document.php:25, includes/shortcodes/dummy-image.php:17, includes/shortcodes/gmap.php:18, includes/shortcodes/lightbox-content.php:26, includes/shortcodes/slider.php:63, includes/shortcodes/video.php:35, includes/shortcodes/vimeo.php:23, includes/shortcodes/youtube-advanced.php:29, includes/shortcodes/youtube.php:23
690
  msgid "Width"
691
  msgstr ""
692
 
693
- #: includes/shortcodes/audio.php:21
694
  msgid "Player width. You can specify width in percents and player will be responsive. Example values: <b%value>200px</b>, <b%value>100&#37;</b>"
695
  msgstr ""
696
 
697
- #: includes/shortcodes/audio.php:26, includes/shortcodes/carousel.php:130, includes/shortcodes/dailymotion.php:44, includes/shortcodes/image-carousel.php:157, includes/shortcodes/slider.php:111, includes/shortcodes/video.php:56, includes/shortcodes/vimeo.php:44, includes/shortcodes/youtube-advanced.php:72, includes/shortcodes/youtube.php:44
698
  msgid "Autoplay"
699
  msgstr ""
700
 
701
- #: includes/shortcodes/audio.php:27, includes/shortcodes/video.php:57
702
  msgid "Play file automatically when page is loaded"
703
  msgstr ""
704
 
705
- #: includes/shortcodes/audio.php:32, includes/shortcodes/video.php:62, includes/shortcodes/youtube-advanced.php:84
706
  msgid "Loop"
707
  msgstr ""
708
 
709
- #: includes/shortcodes/audio.php:33, includes/shortcodes/video.php:63
710
  msgid "Repeat when playback is ended"
711
  msgstr ""
712
 
713
- #: includes/shortcodes/audio.php:42
714
  msgid "Custom audio player"
715
  msgstr ""
716
 
717
- #: includes/shortcodes/audio.php:59, includes/shortcodes/audio.php:71, includes/shortcodes/dailymotion.php:137, includes/shortcodes/dailymotion.php:144, includes/shortcodes/screenr.php:24, includes/shortcodes/screenr.php:31, includes/shortcodes/video.php:92, includes/shortcodes/video.php:100, includes/shortcodes/vimeo.php:102, includes/shortcodes/vimeo.php:112, includes/shortcodes/youtube-advanced.php:174, includes/shortcodes/youtube-advanced.php:184, includes/shortcodes/youtube.php:89, includes/shortcodes/youtube.php:99
718
  msgid "please specify correct url"
719
  msgstr ""
720
 
@@ -722,7 +738,7 @@ msgstr ""
722
  msgid "Box title"
723
  msgstr ""
724
 
725
- #: includes/shortcodes/box.php:15, includes/shortcodes/dailymotion.php:97, includes/shortcodes/document.php:44, includes/shortcodes/gmap.php:52, includes/shortcodes/permalink.php:28, includes/shortcodes/qrcode.php:24, includes/shortcodes/service.php:15, includes/shortcodes/spoiler.php:13, includes/shortcodes/tabs.php:86, includes/shortcodes/video.php:26, includes/shortcodes/vimeo.php:60, includes/shortcodes/youtube-advanced.php:128, includes/shortcodes/youtube.php:54
726
  msgid "Title"
727
  msgstr ""
728
 
@@ -730,7 +746,7 @@ msgstr ""
730
  msgid "Text for the box title"
731
  msgstr ""
732
 
733
- #: includes/shortcodes/box.php:21, includes/shortcodes/button.php:31, includes/shortcodes/divider.php:31, includes/shortcodes/dropcap.php:14, includes/shortcodes/expand.php:53, includes/shortcodes/heading.php:14, includes/shortcodes/image-carousel.php:38, includes/shortcodes/label.php:14, includes/shortcodes/meta.php:18, includes/shortcodes/post.php:44, includes/shortcodes/quote.php:15, includes/shortcodes/spoiler.php:25, includes/shortcodes/tabs.php:18, includes/shortcodes/user.php:36
734
  msgid "Default"
735
  msgstr ""
736
 
@@ -750,7 +766,7 @@ msgstr ""
750
  msgid "Noise"
751
  msgstr ""
752
 
753
- #: includes/shortcodes/box.php:28, includes/shortcodes/button.php:42, includes/shortcodes/divider.php:37, includes/shortcodes/dropcap.php:20, includes/shortcodes/heading.php:17, includes/shortcodes/quote.php:18, includes/shortcodes/spoiler.php:30, includes/shortcodes/tabs.php:21
754
  msgid "Style"
755
  msgstr ""
756
 
@@ -798,7 +814,7 @@ msgstr ""
798
  msgid "This is box title"
799
  msgstr ""
800
 
801
- #: includes/shortcodes/button.php:8, includes/shortcodes/expand.php:57
802
  msgid "Button"
803
  msgstr ""
804
 
@@ -810,15 +826,15 @@ msgstr ""
810
  msgid "Button link"
811
  msgstr ""
812
 
813
- #: includes/shortcodes/button.php:21, includes/shortcodes/carousel.php:50, includes/shortcodes/custom-gallery.php:44, includes/shortcodes/feed.php:30, includes/shortcodes/image-carousel.php:144, includes/shortcodes/permalink.php:19, includes/shortcodes/qrcode.php:65, includes/shortcodes/slider.php:50, includes/shortcodes/tabs.php:108
814
  msgid "Open in same tab"
815
  msgstr ""
816
 
817
- #: includes/shortcodes/button.php:22, includes/shortcodes/carousel.php:51, includes/shortcodes/custom-gallery.php:45, includes/shortcodes/feed.php:31, includes/shortcodes/image-carousel.php:145, includes/shortcodes/permalink.php:20, includes/shortcodes/qrcode.php:66, includes/shortcodes/slider.php:51, includes/shortcodes/tabs.php:109
818
  msgid "Open in new tab"
819
  msgstr ""
820
 
821
- #: includes/shortcodes/button.php:25, includes/shortcodes/permalink.php:23
822
  msgid "Target"
823
  msgstr ""
824
 
@@ -826,7 +842,7 @@ msgstr ""
826
  msgid "Button link target"
827
  msgstr ""
828
 
829
- #: includes/shortcodes/button.php:32, includes/shortcodes/dropcap.php:15
830
  msgid "Flat"
831
  msgstr ""
832
 
@@ -846,7 +862,7 @@ msgstr ""
846
  msgid "Button background style preset"
847
  msgstr ""
848
 
849
- #: includes/shortcodes/button.php:49, includes/shortcodes/highlight.php:15, includes/shortcodes/note.php:16
850
  msgid "Background"
851
  msgstr ""
852
 
@@ -854,7 +870,7 @@ msgstr ""
854
  msgid "Button background color"
855
  msgstr ""
856
 
857
- #: includes/shortcodes/button.php:56, includes/shortcodes/expand.php:40, includes/shortcodes/highlight.php:22, includes/shortcodes/lightbox-content.php:92, includes/shortcodes/lightbox-content.php:98, includes/shortcodes/note.php:23, includes/shortcodes/tooltip.php:43
858
  msgid "Text color"
859
  msgstr ""
860
 
@@ -862,7 +878,7 @@ msgstr ""
862
  msgid "Button text color"
863
  msgstr ""
864
 
865
- #: includes/shortcodes/button.php:65, includes/shortcodes/column.php:29, includes/shortcodes/divider.php:60, includes/shortcodes/dropcap.php:28, includes/shortcodes/heading.php:26, includes/shortcodes/qrcode.php:33
866
  msgid "Size"
867
  msgstr ""
868
 
@@ -878,7 +894,7 @@ msgstr ""
878
  msgid "Fluid buttons has 100% width"
879
  msgstr ""
880
 
881
- #: includes/shortcodes/button.php:77, includes/shortcodes/column.php:35
882
  msgid "Centered"
883
  msgstr ""
884
 
@@ -974,236 +990,241 @@ msgstr ""
974
  msgid "Styled button"
975
  msgstr ""
976
 
 
 
 
 
 
977
  #. translators: Dep. – Deprecated
978
- #: includes/shortcodes/carousel.php:9
979
  msgid "Carousel (Dep.)"
980
  msgstr ""
981
 
982
- #: includes/shortcodes/carousel.php:14, includes/shortcodes/slider.php:14
983
  msgid "There is a much better shortcode for your images. Have you already tried the Image Carousel? It can create both sliders and carousels."
984
  msgstr ""
985
 
986
- #: includes/shortcodes/carousel.php:15, includes/shortcodes/slider.php:15
987
  msgid "Switch to Image Carousel"
988
  msgstr ""
989
 
990
- #: includes/shortcodes/carousel.php:21, includes/shortcodes/custom-gallery.php:15, includes/shortcodes/slider.php:21
991
  msgid "Source"
992
  msgstr ""
993
 
994
- #: includes/shortcodes/carousel.php:22, includes/shortcodes/custom-gallery.php:16, includes/shortcodes/slider.php:22
995
  msgid "Choose images source. You can use images from Media library or retrieve it from posts (thumbnails) posted under specified blog category. You can also pick any custom taxonomy"
996
  msgstr ""
997
 
998
- #: includes/shortcodes/carousel.php:30, includes/shortcodes/custom-gallery.php:24, includes/shortcodes/feed.php:24, includes/shortcodes/image-carousel.php:32, includes/shortcodes/slider.php:30
999
  msgid "Limit"
1000
  msgstr ""
1001
 
1002
- #: includes/shortcodes/carousel.php:31, includes/shortcodes/custom-gallery.php:25, includes/shortcodes/slider.php:31
1003
  msgid "Maximum number of image source posts (for recent posts, category and custom taxonomy)"
1004
  msgstr ""
1005
 
1006
- #: includes/shortcodes/carousel.php:37, includes/shortcodes/custom-gallery.php:31, includes/shortcodes/image-carousel.php:131, includes/shortcodes/slider.php:37
1007
  msgid "Full-size image"
1008
  msgstr ""
1009
 
1010
- #: includes/shortcodes/carousel.php:38, includes/shortcodes/custom-gallery.php:32, includes/shortcodes/image-carousel.php:132, includes/shortcodes/lightbox.php:8, includes/shortcodes/slider.php:38
1011
  msgid "Lightbox"
1012
  msgstr ""
1013
 
1014
- #: includes/shortcodes/carousel.php:39, includes/shortcodes/custom-gallery.php:33, includes/shortcodes/slider.php:39
1015
  msgid "Slide link (added in media editor)"
1016
  msgstr ""
1017
 
1018
- #: includes/shortcodes/carousel.php:40, includes/shortcodes/custom-gallery.php:34, includes/shortcodes/image-carousel.php:134, includes/shortcodes/slider.php:40
1019
  msgid "Attachment page"
1020
  msgstr ""
1021
 
1022
- #: includes/shortcodes/carousel.php:41, includes/shortcodes/custom-gallery.php:35, includes/shortcodes/image-carousel.php:135, includes/shortcodes/slider.php:41
1023
  msgid "Post permalink"
1024
  msgstr ""
1025
 
1026
- #: includes/shortcodes/carousel.php:44, includes/shortcodes/custom-gallery.php:38, includes/shortcodes/slider.php:44
1027
  msgid "Links"
1028
  msgstr ""
1029
 
1030
- #: includes/shortcodes/carousel.php:45, includes/shortcodes/custom-gallery.php:39, includes/shortcodes/slider.php:45
1031
  msgid "Select which links will be used for images in this gallery"
1032
  msgstr ""
1033
 
1034
- #: includes/shortcodes/carousel.php:54, includes/shortcodes/custom-gallery.php:48, includes/shortcodes/feed.php:34, includes/shortcodes/image-carousel.php:148, includes/shortcodes/slider.php:54
1035
  msgid "Links target"
1036
  msgstr ""
1037
 
1038
- #: includes/shortcodes/carousel.php:55, includes/shortcodes/custom-gallery.php:49, includes/shortcodes/slider.php:55
1039
  msgid "Open links in"
1040
  msgstr ""
1041
 
1042
- #: includes/shortcodes/carousel.php:64
1043
  msgid "Carousel width (in pixels)"
1044
  msgstr ""
1045
 
1046
- #: includes/shortcodes/carousel.php:72, includes/shortcodes/custom-gallery.php:66, includes/shortcodes/dailymotion.php:32, includes/shortcodes/document.php:34, includes/shortcodes/dummy-image.php:26, includes/shortcodes/expand.php:27, includes/shortcodes/gmap.php:27, includes/shortcodes/slider.php:71, includes/shortcodes/spacer.php:17, includes/shortcodes/video.php:44, includes/shortcodes/vimeo.php:32, includes/shortcodes/youtube-advanced.php:38, includes/shortcodes/youtube.php:32
1047
  msgid "Height"
1048
  msgstr ""
1049
 
1050
- #: includes/shortcodes/carousel.php:73
1051
  msgid "Carousel height (in pixels)"
1052
  msgstr ""
1053
 
1054
- #: includes/shortcodes/carousel.php:78, includes/shortcodes/csv-table.php:35, includes/shortcodes/dailymotion.php:38, includes/shortcodes/document.php:40, includes/shortcodes/gmap.php:33, includes/shortcodes/slider.php:76, includes/shortcodes/table.php:17, includes/shortcodes/vimeo.php:38, includes/shortcodes/youtube-advanced.php:44, includes/shortcodes/youtube.php:38
1055
  msgid "Responsive"
1056
  msgstr ""
1057
 
1058
- #: includes/shortcodes/carousel.php:79
1059
  msgid "Ignore width and height parameters and make carousel responsive"
1060
  msgstr ""
1061
 
1062
- #: includes/shortcodes/carousel.php:87
1063
  msgid "Items to show"
1064
  msgstr ""
1065
 
1066
- #: includes/shortcodes/carousel.php:88
1067
  msgid "How much carousel items is visible"
1068
  msgstr ""
1069
 
1070
- #: includes/shortcodes/carousel.php:95
1071
  msgid "Scroll number"
1072
  msgstr ""
1073
 
1074
- #: includes/shortcodes/carousel.php:96
1075
  msgid "How much items are scrolled in one transition"
1076
  msgstr ""
1077
 
1078
- #: includes/shortcodes/carousel.php:101, includes/shortcodes/custom-gallery.php:77, includes/shortcodes/slider.php:82
1079
  msgid "Show titles"
1080
  msgstr ""
1081
 
1082
- #: includes/shortcodes/carousel.php:101
1083
  msgid "Display titles for each item"
1084
  msgstr ""
1085
 
1086
- #: includes/shortcodes/carousel.php:106, includes/shortcodes/expand.php:67, includes/shortcodes/frame.php:15, includes/shortcodes/heading.php:33, includes/shortcodes/image-carousel.php:90, includes/shortcodes/lightbox-content.php:76, includes/shortcodes/qrcode.php:50, includes/shortcodes/slider.php:87, includes/shortcodes/tooltip.php:59
1087
  msgid "Center"
1088
  msgstr ""
1089
 
1090
- #: includes/shortcodes/carousel.php:106
1091
  msgid "Is carousel centered on the page"
1092
  msgstr ""
1093
 
1094
- #: includes/shortcodes/carousel.php:111, includes/shortcodes/slider.php:92
1095
  msgid "Arrows"
1096
  msgstr ""
1097
 
1098
- #: includes/shortcodes/carousel.php:111, includes/shortcodes/slider.php:92
1099
  msgid "Show left and right arrows"
1100
  msgstr ""
1101
 
1102
- #: includes/shortcodes/carousel.php:116, includes/shortcodes/display-posts.php:197, includes/shortcodes/slider.php:97
1103
  msgid "Pagination"
1104
  msgstr ""
1105
 
1106
- #: includes/shortcodes/carousel.php:117, includes/shortcodes/slider.php:98
1107
  msgid "Show pagination"
1108
  msgstr ""
1109
 
1110
- #: includes/shortcodes/carousel.php:121, includes/shortcodes/slider.php:102
1111
  msgid "Mouse wheel control"
1112
  msgstr ""
1113
 
1114
- #: includes/shortcodes/carousel.php:122
1115
  msgid "Allow to rotate carousel with mouse wheel"
1116
  msgstr ""
1117
 
1118
- #: includes/shortcodes/carousel.php:131
1119
  msgid "Choose interval between auto animations. Set to 0 to disable autoplay"
1120
  msgstr ""
1121
 
1122
- #: includes/shortcodes/carousel.php:139, includes/shortcodes/slider.php:120
1123
  msgid "Speed"
1124
  msgstr ""
1125
 
1126
- #: includes/shortcodes/carousel.php:139, includes/shortcodes/slider.php:120
1127
  msgid "Specify animation speed"
1128
  msgstr ""
1129
 
1130
- #: includes/shortcodes/carousel.php:148
1131
  msgid "Customizable image carousel"
1132
  msgstr ""
1133
 
1134
- #: includes/shortcodes/carousel.php:238, includes/shortcodes/custom-gallery.php:162, includes/shortcodes/image-carousel.php:236, includes/shortcodes/slider.php:216
1135
  msgid "images not found"
1136
  msgstr ""
1137
 
1138
- #: includes/shortcodes/column.php:7
1139
  msgid "Column"
1140
  msgstr ""
1141
 
1142
- #: includes/shortcodes/column.php:15
1143
  msgid "Full width"
1144
  msgstr ""
1145
 
1146
- #: includes/shortcodes/column.php:16
1147
  msgid "One half"
1148
  msgstr ""
1149
 
1150
- #: includes/shortcodes/column.php:17
1151
  msgid "One third"
1152
  msgstr ""
1153
 
1154
- #: includes/shortcodes/column.php:18
1155
  msgid "Two third"
1156
  msgstr ""
1157
 
1158
- #: includes/shortcodes/column.php:19
1159
  msgid "One fourth"
1160
  msgstr ""
1161
 
1162
- #: includes/shortcodes/column.php:20
1163
  msgid "Three fourth"
1164
  msgstr ""
1165
 
1166
- #: includes/shortcodes/column.php:21
1167
  msgid "One fifth"
1168
  msgstr ""
1169
 
1170
- #: includes/shortcodes/column.php:22
1171
  msgid "Two fifth"
1172
  msgstr ""
1173
 
1174
- #: includes/shortcodes/column.php:23
1175
  msgid "Three fifth"
1176
  msgstr ""
1177
 
1178
- #: includes/shortcodes/column.php:24
1179
  msgid "Four fifth"
1180
  msgstr ""
1181
 
1182
- #: includes/shortcodes/column.php:25
1183
  msgid "One sixth"
1184
  msgstr ""
1185
 
1186
- #: includes/shortcodes/column.php:26
1187
  msgid "Five sixth"
1188
  msgstr ""
1189
 
1190
- #: includes/shortcodes/column.php:30
1191
  msgid "Select column width. This width will be calculated depend page width"
1192
  msgstr ""
1193
 
1194
- #: includes/shortcodes/column.php:36
1195
  msgid "Is this column centered on the page"
1196
  msgstr ""
1197
 
1198
- #: includes/shortcodes/column.php:45
1199
  msgid "Column content"
1200
  msgstr ""
1201
 
1202
- #: includes/shortcodes/column.php:46
1203
  msgid "Flexible and responsive columns"
1204
  msgstr ""
1205
 
1206
- #: includes/shortcodes/column.php:47
1207
  msgid "Did you know that you need to wrap columns with [row] shortcode?"
1208
  msgstr ""
1209
 
@@ -1259,11 +1280,15 @@ msgstr ""
1259
  msgid "Fixed width table cells"
1260
  msgstr ""
1261
 
1262
- #: includes/shortcodes/csv-table.php:77, includes/shortcodes/csv-table.php:83
 
 
 
 
1263
  msgid "invalid URL"
1264
  msgstr ""
1265
 
1266
- #: includes/shortcodes/csv-table.php:87
1267
  msgid "invalid delimiter"
1268
  msgstr ""
1269
 
@@ -1307,11 +1332,11 @@ msgstr ""
1307
  msgid "Url of Dailymotion page with video"
1308
  msgstr ""
1309
 
1310
- #: includes/shortcodes/dailymotion.php:24, includes/shortcodes/video.php:36, includes/shortcodes/vimeo.php:24, includes/shortcodes/youtube-advanced.php:30, includes/shortcodes/youtube.php:24
1311
  msgid "Player width"
1312
  msgstr ""
1313
 
1314
- #: includes/shortcodes/dailymotion.php:33, includes/shortcodes/video.php:45, includes/shortcodes/vimeo.php:33, includes/shortcodes/youtube-advanced.php:39, includes/shortcodes/youtube.php:33
1315
  msgid "Player height"
1316
  msgstr ""
1317
 
@@ -1503,7 +1528,7 @@ msgstr ""
1503
  msgid "Number of posts to displace or pass over. The offset parameter is ignored when posts_per_page=-1 (show all posts) is used."
1504
  msgstr ""
1505
 
1506
- #: includes/shortcodes/display-posts.php:115, includes/shortcodes/meta.php:33, includes/shortcodes/post.php:17, includes/shortcodes/post.php:59, includes/shortcodes/posts.php:140
1507
  msgid "Post ID"
1508
  msgstr ""
1509
 
@@ -1612,7 +1637,7 @@ msgstr ""
1612
  msgid "Trashed"
1613
  msgstr ""
1614
 
1615
- #: includes/shortcodes/display-posts.php:162, includes/shortcodes/dummy-image.php:32, includes/shortcodes/posts.php:176
1616
  msgid "Any"
1617
  msgstr ""
1618
 
@@ -1753,7 +1778,7 @@ msgstr ""
1753
  msgid "Pick the color for divider"
1754
  msgstr ""
1755
 
1756
- #: includes/shortcodes/divider.php:51, includes/shortcodes/expand.php:47
1757
  msgid "Link color"
1758
  msgstr ""
1759
 
@@ -1801,103 +1826,103 @@ msgstr ""
1801
  msgid "Document viewer by Google"
1802
  msgstr ""
1803
 
1804
- #: includes/shortcodes/dropcap.php:7, includes/shortcodes/dropcap.php:39
1805
  msgid "Dropcap"
1806
  msgstr ""
1807
 
1808
- #: includes/shortcodes/dropcap.php:16, includes/shortcodes/image-carousel.php:50
1809
  msgid "Light"
1810
  msgstr ""
1811
 
1812
- #: includes/shortcodes/dropcap.php:17, includes/shortcodes/spoiler.php:27
1813
  msgid "Simple"
1814
  msgstr ""
1815
 
1816
- #: includes/shortcodes/dropcap.php:20
1817
  msgid "Dropcap style preset"
1818
  msgstr ""
1819
 
1820
- #: includes/shortcodes/dropcap.php:29
1821
  msgid "Choose dropcap size"
1822
  msgstr ""
1823
 
1824
- #: includes/shortcodes/dropcap.php:38
1825
  msgid "D"
1826
  msgstr ""
1827
 
1828
- #: includes/shortcodes/dummy-image.php:7, includes/shortcodes/dummy-image.php:71
1829
  msgid "Dummy image"
1830
  msgstr ""
1831
 
1832
- #: includes/shortcodes/dummy-image.php:18
1833
  msgid "Image width"
1834
  msgstr ""
1835
 
1836
- #: includes/shortcodes/dummy-image.php:27
1837
  msgid "Image height"
1838
  msgstr ""
1839
 
1840
- #: includes/shortcodes/dummy-image.php:33
1841
  msgid "Abstract"
1842
  msgstr ""
1843
 
1844
- #: includes/shortcodes/dummy-image.php:34
1845
  msgid "Animals"
1846
  msgstr ""
1847
 
1848
- #: includes/shortcodes/dummy-image.php:35
1849
  msgid "Business"
1850
  msgstr ""
1851
 
1852
- #: includes/shortcodes/dummy-image.php:36
1853
  msgid "Cats"
1854
  msgstr ""
1855
 
1856
- #: includes/shortcodes/dummy-image.php:37
1857
  msgid "City"
1858
  msgstr ""
1859
 
1860
- #: includes/shortcodes/dummy-image.php:38
1861
  msgid "Food"
1862
  msgstr ""
1863
 
1864
- #: includes/shortcodes/dummy-image.php:39
1865
  msgid "Night life"
1866
  msgstr ""
1867
 
1868
- #: includes/shortcodes/dummy-image.php:40
1869
  msgid "Fashion"
1870
  msgstr ""
1871
 
1872
- #: includes/shortcodes/dummy-image.php:41
1873
  msgid "People"
1874
  msgstr ""
1875
 
1876
- #: includes/shortcodes/dummy-image.php:42
1877
  msgid "Nature"
1878
  msgstr ""
1879
 
1880
- #: includes/shortcodes/dummy-image.php:43
1881
  msgid "Sports"
1882
  msgstr ""
1883
 
1884
- #: includes/shortcodes/dummy-image.php:44
1885
  msgid "Technics"
1886
  msgstr ""
1887
 
1888
- #: includes/shortcodes/dummy-image.php:45
1889
  msgid "Transport"
1890
  msgstr ""
1891
 
1892
- #: includes/shortcodes/dummy-image.php:48, includes/shortcodes/youtube-advanced.php:112
1893
  msgid "Theme"
1894
  msgstr ""
1895
 
1896
- #: includes/shortcodes/dummy-image.php:49
1897
  msgid "Select the theme for this image"
1898
  msgstr ""
1899
 
1900
- #: includes/shortcodes/dummy-image.php:58
1901
  msgid "Image placeholder with random image"
1902
  msgstr ""
1903
 
@@ -1953,103 +1978,103 @@ msgstr ""
1953
  msgid "Text placeholder"
1954
  msgstr ""
1955
 
1956
- #: includes/shortcodes/expand.php:7
1957
  msgid "Expand"
1958
  msgstr ""
1959
 
1960
- #: includes/shortcodes/expand.php:12, includes/shortcodes/expand.php:101
1961
  msgid "Show more"
1962
  msgstr ""
1963
 
1964
- #: includes/shortcodes/expand.php:13
1965
  msgid "More text"
1966
  msgstr ""
1967
 
1968
- #: includes/shortcodes/expand.php:14
1969
  msgid "Enter the text for more link"
1970
  msgstr ""
1971
 
1972
- #: includes/shortcodes/expand.php:17, includes/shortcodes/expand.php:102
1973
  msgid "Show less"
1974
  msgstr ""
1975
 
1976
- #: includes/shortcodes/expand.php:18
1977
  msgid "Less text"
1978
  msgstr ""
1979
 
1980
- #: includes/shortcodes/expand.php:19
1981
  msgid "Enter the text for less link"
1982
  msgstr ""
1983
 
1984
- #: includes/shortcodes/expand.php:28
1985
  msgid "Height for collapsed state (in pixels)"
1986
  msgstr ""
1987
 
1988
- #: includes/shortcodes/expand.php:33
1989
  msgid "Hide less link"
1990
  msgstr ""
1991
 
1992
- #: includes/shortcodes/expand.php:34
1993
  msgid "This option allows you to hide less link, when the text block has been expanded"
1994
  msgstr ""
1995
 
1996
- #: includes/shortcodes/expand.php:41
1997
  msgid "Pick the text color"
1998
  msgstr ""
1999
 
2000
- #: includes/shortcodes/expand.php:48
2001
  msgid "Pick the link color"
2002
  msgstr ""
2003
 
2004
- #: includes/shortcodes/expand.php:54
2005
  msgid "Underlined"
2006
  msgstr ""
2007
 
2008
- #: includes/shortcodes/expand.php:60
2009
  msgid "Link style"
2010
  msgstr ""
2011
 
2012
- #: includes/shortcodes/expand.php:61
2013
  msgid "Select the style for more/less link"
2014
  msgstr ""
2015
 
2016
- #: includes/shortcodes/expand.php:66, includes/shortcodes/frame.php:14, includes/shortcodes/heading.php:32, includes/shortcodes/image-carousel.php:88, includes/shortcodes/lightbox-content.php:75, includes/shortcodes/pullquote.php:14, includes/shortcodes/qrcode.php:49, includes/shortcodes/tooltip.php:27, includes/shortcodes/tooltip.php:58
2017
  msgid "Left"
2018
  msgstr ""
2019
 
2020
- #: includes/shortcodes/expand.php:68, includes/shortcodes/frame.php:16, includes/shortcodes/heading.php:34, includes/shortcodes/image-carousel.php:89, includes/shortcodes/lightbox-content.php:77, includes/shortcodes/pullquote.php:15, includes/shortcodes/qrcode.php:51, includes/shortcodes/tooltip.php:28, includes/shortcodes/tooltip.php:60
2021
  msgid "Right"
2022
  msgstr ""
2023
 
2024
- #: includes/shortcodes/expand.php:71
2025
  msgid "Link align"
2026
  msgstr ""
2027
 
2028
- #: includes/shortcodes/expand.php:72
2029
  msgid "Select link alignment"
2030
  msgstr ""
2031
 
2032
- #: includes/shortcodes/expand.php:77
2033
  msgid "More icon"
2034
  msgstr ""
2035
 
2036
- #: includes/shortcodes/expand.php:78
2037
  msgid "Add an icon to the more link"
2038
  msgstr ""
2039
 
2040
- #: includes/shortcodes/expand.php:83
2041
  msgid "Less icon"
2042
  msgstr ""
2043
 
2044
- #: includes/shortcodes/expand.php:84
2045
  msgid "Add an icon to the less link"
2046
  msgstr ""
2047
 
2048
- #: includes/shortcodes/expand.php:93
2049
  msgid "This text block can be expanded"
2050
  msgstr ""
2051
 
2052
- #: includes/shortcodes/expand.php:94
2053
  msgid "Expandable text block"
2054
  msgstr ""
2055
 
@@ -2085,23 +2110,23 @@ msgstr ""
2085
  msgid "no items in the feed"
2086
  msgstr ""
2087
 
2088
- #: includes/shortcodes/frame.php:7
2089
  msgid "Frame"
2090
  msgstr ""
2091
 
2092
- #: includes/shortcodes/frame.php:19, includes/shortcodes/heading.php:37, includes/shortcodes/pullquote.php:18, includes/shortcodes/qrcode.php:54
2093
  msgid "Align"
2094
  msgstr ""
2095
 
2096
- #: includes/shortcodes/frame.php:20
2097
  msgid "Frame alignment"
2098
  msgstr ""
2099
 
2100
- #: includes/shortcodes/frame.php:24
2101
  msgid "Class"
2102
  msgstr ""
2103
 
2104
- #: includes/shortcodes/frame.php:29
2105
  msgid "Styled image frame"
2106
  msgstr ""
2107
 
@@ -2141,15 +2166,15 @@ msgstr ""
2141
  msgid "Maps by Google"
2142
  msgstr ""
2143
 
2144
- #: includes/shortcodes/guests.php:7
2145
  msgid "Guests"
2146
  msgstr ""
2147
 
2148
- #: includes/shortcodes/guests.php:18
2149
  msgid "This content will be available only for non-logged visitors"
2150
  msgstr ""
2151
 
2152
- #: includes/shortcodes/guests.php:19
2153
  msgid "Content for guests only"
2154
  msgstr ""
2155
 
@@ -2185,19 +2210,19 @@ msgstr ""
2185
  msgid "Styled heading"
2186
  msgstr ""
2187
 
2188
- #: includes/shortcodes/highlight.php:7
2189
  msgid "Highlight"
2190
  msgstr ""
2191
 
2192
- #: includes/shortcodes/highlight.php:16
2193
  msgid "Highlighted text background color"
2194
  msgstr ""
2195
 
2196
- #: includes/shortcodes/highlight.php:22
2197
  msgid "Highlighted text color"
2198
  msgstr ""
2199
 
2200
- #: includes/shortcodes/highlight.php:31, includes/shortcodes/highlight.php:32
2201
  msgid "Highlighted text"
2202
  msgstr ""
2203
 
@@ -2265,7 +2290,7 @@ msgstr ""
2265
  msgid "This option allows to enable/disable image cropping and crop aspect ratio."
2266
  msgstr ""
2267
 
2268
- #: includes/shortcodes/image-carousel.php:69, includes/shortcodes/row.php:7
2269
  msgid "Columns"
2270
  msgstr ""
2271
 
@@ -2409,39 +2434,39 @@ msgstr ""
2409
  msgid "This option enables random order for selected images"
2410
  msgstr ""
2411
 
2412
- #: includes/shortcodes/label.php:7, includes/shortcodes/label.php:32
2413
  msgid "Label"
2414
  msgstr ""
2415
 
2416
- #: includes/shortcodes/label.php:15
2417
  msgid "Success"
2418
  msgstr ""
2419
 
2420
- #: includes/shortcodes/label.php:16
2421
  msgid "Warning"
2422
  msgstr ""
2423
 
2424
- #: includes/shortcodes/label.php:17
2425
  msgid "Important"
2426
  msgstr ""
2427
 
2428
- #: includes/shortcodes/label.php:18
2429
  msgid "Black"
2430
  msgstr ""
2431
 
2432
- #: includes/shortcodes/label.php:19
2433
  msgid "Info"
2434
  msgstr ""
2435
 
2436
- #: includes/shortcodes/label.php:22
2437
  msgid "Type"
2438
  msgstr ""
2439
 
2440
- #: includes/shortcodes/label.php:23
2441
  msgid "Style of the label"
2442
  msgstr ""
2443
 
2444
- #: includes/shortcodes/label.php:33
2445
  msgid "Styled label"
2446
  msgstr ""
2447
 
@@ -2449,7 +2474,7 @@ msgstr ""
2449
  msgid "Lightbox content"
2450
  msgstr ""
2451
 
2452
- #: includes/shortcodes/lightbox-content.php:16, includes/shortcodes/permalink.php:13, includes/shortcodes/user.php:21
2453
  msgid "ID"
2454
  msgstr ""
2455
 
@@ -2650,79 +2675,79 @@ msgstr ""
2650
  msgid "Content for logged in members only"
2651
  msgstr ""
2652
 
2653
- #: includes/shortcodes/menu.php:7
2654
  msgid "Menu"
2655
  msgstr ""
2656
 
2657
- #: includes/shortcodes/menu.php:14
2658
  msgid "Menu name"
2659
  msgstr ""
2660
 
2661
- #: includes/shortcodes/menu.php:14
2662
  msgid "Custom menu name. Ex: Main menu"
2663
  msgstr ""
2664
 
2665
- #: includes/shortcodes/menu.php:23
2666
  msgid "Custom menu by name"
2667
  msgstr ""
2668
 
2669
- #: includes/shortcodes/menu.php:43
2670
  msgid "This menu doesn't exists, or has no elements"
2671
  msgstr ""
2672
 
2673
- #: includes/shortcodes/meta.php:7
2674
  msgid "Meta data"
2675
  msgstr ""
2676
 
2677
- #: includes/shortcodes/meta.php:13
2678
  msgid "Key"
2679
  msgstr ""
2680
 
2681
- #: includes/shortcodes/meta.php:14
2682
  msgid "Meta key name"
2683
  msgstr ""
2684
 
2685
- #: includes/shortcodes/meta.php:19, includes/shortcodes/post.php:45, includes/shortcodes/user.php:37
2686
  msgid "This text will be shown if data is not found"
2687
  msgstr ""
2688
 
2689
- #: includes/shortcodes/meta.php:23, includes/shortcodes/post.php:49, includes/shortcodes/user.php:41
2690
  msgid "Before"
2691
  msgstr ""
2692
 
2693
- #: includes/shortcodes/meta.php:24, includes/shortcodes/post.php:50, includes/shortcodes/user.php:42
2694
  msgid "This content will be shown before the value"
2695
  msgstr ""
2696
 
2697
- #: includes/shortcodes/meta.php:28, includes/shortcodes/post.php:54, includes/shortcodes/user.php:46
2698
  msgid "After"
2699
  msgstr ""
2700
 
2701
- #: includes/shortcodes/meta.php:29, includes/shortcodes/post.php:55, includes/shortcodes/user.php:47
2702
  msgid "This content will be shown after the value"
2703
  msgstr ""
2704
 
2705
- #: includes/shortcodes/meta.php:34
2706
  msgid "You can specify custom post ID. Leave this field empty to use an ID of the current post. Current post ID may not work in Live Preview mode"
2707
  msgstr ""
2708
 
2709
- #: includes/shortcodes/meta.php:38, includes/shortcodes/post.php:70, includes/shortcodes/user.php:56
2710
  msgid "Filter"
2711
  msgstr ""
2712
 
2713
- #: includes/shortcodes/meta.php:39, includes/shortcodes/post.php:71, includes/shortcodes/user.php:57
2714
  msgid "You can apply custom filter to the retrieved value. Enter here function name. Your function must accept one argument and return modified value. Name of your function must include word <b>filter</b>. Example function: "
2715
  msgstr ""
2716
 
2717
- #: includes/shortcodes/meta.php:42
2718
  msgid "Post meta"
2719
  msgstr ""
2720
 
2721
- #: includes/shortcodes/meta.php:58
2722
  msgid "post ID is incorrect"
2723
  msgstr ""
2724
 
2725
- #: includes/shortcodes/meta.php:60
2726
  msgid "please specify meta key name"
2727
  msgstr ""
2728
 
@@ -2750,31 +2775,31 @@ msgstr ""
2750
  msgid "Colored box"
2751
  msgstr ""
2752
 
2753
- #: includes/shortcodes/permalink.php:7
2754
  msgid "Permalink"
2755
  msgstr ""
2756
 
2757
- #: includes/shortcodes/permalink.php:14
2758
  msgid "Post or page ID"
2759
  msgstr ""
2760
 
2761
- #: includes/shortcodes/permalink.php:24, includes/shortcodes/qrcode.php:69, includes/shortcodes/tabs.php:112
2762
  msgid "Link target"
2763
  msgstr ""
2764
 
2765
- #: includes/shortcodes/permalink.php:29
2766
  msgid "A value for the title attribute of the link"
2767
  msgstr ""
2768
 
2769
- #: includes/shortcodes/permalink.php:33
2770
  msgid "Rel"
2771
  msgstr ""
2772
 
2773
- #: includes/shortcodes/permalink.php:34
2774
  msgid "A value for the rel attribute of the link"
2775
  msgstr ""
2776
 
2777
- #: includes/shortcodes/permalink.php:44
2778
  msgid "Permalink to specified post/page"
2779
  msgstr ""
2780
 
@@ -2930,23 +2955,23 @@ msgstr ""
2930
  msgid "Set to yes to prevent sticky posts from being moved to the start of the returned list of posts. They are still included, but appear in regular order."
2931
  msgstr ""
2932
 
2933
- #: includes/shortcodes/private.php:7
2934
  msgid "Private"
2935
  msgstr ""
2936
 
2937
- #: includes/shortcodes/private.php:18
2938
  msgid "Private note text"
2939
  msgstr ""
2940
 
2941
- #: includes/shortcodes/private.php:19
2942
  msgid "Private note for post authors. Any content wrapped with this shortcode will only be visible to post authors (users with publish_posts capability)."
2943
  msgstr ""
2944
 
2945
- #: includes/shortcodes/pullquote.php:7, includes/shortcodes/pullquote.php:27, includes/shortcodes/pullquote.php:28
2946
  msgid "Pullquote"
2947
  msgstr ""
2948
 
2949
- #: includes/shortcodes/pullquote.php:18
2950
  msgid "Pullquote alignment (float)"
2951
  msgstr ""
2952
 
@@ -3027,7 +3052,7 @@ msgstr ""
3027
  msgid "Blockquote alternative"
3028
  msgstr ""
3029
 
3030
- #: includes/shortcodes/row.php:24
3031
  msgid "Row for flexible columns"
3032
  msgstr ""
3033
 
@@ -3107,7 +3132,7 @@ msgstr ""
3107
  msgid "By default, the content of this shortcode will be visible all the time. By using fields below, you can add some limitations. For example, if you type 1-5 in the Days of the week field, content will be only shown from Monday to Friday. Using the same principles, you can limit content visibility from years to seconds."
3108
  msgstr ""
3109
 
3110
- #: includes/shortcodes/screenr.php:9
3111
  msgid "Screenr"
3112
  msgstr ""
3113
 
@@ -3143,68 +3168,68 @@ msgstr ""
3143
  msgid "Service box with title"
3144
  msgstr ""
3145
 
3146
- #: includes/shortcodes/siblings.php:7
3147
  msgid "Siblings"
3148
  msgstr ""
3149
 
3150
- #: includes/shortcodes/siblings.php:14, includes/shortcodes/subpages.php:14
3151
  msgid "Depth"
3152
  msgstr ""
3153
 
3154
- #: includes/shortcodes/siblings.php:15
3155
  msgid "Max depth level"
3156
  msgstr ""
3157
 
3158
- #: includes/shortcodes/siblings.php:24
3159
  msgid "List of cureent page siblings"
3160
  msgstr ""
3161
 
3162
  #. translators: Dep. – Deprecated
3163
- #: includes/shortcodes/slider.php:9
3164
  msgid "Slider (Dep.)"
3165
  msgstr ""
3166
 
3167
- #: includes/shortcodes/slider.php:63
3168
  msgid "Slider width (in pixels)"
3169
  msgstr ""
3170
 
3171
- #: includes/shortcodes/slider.php:71
3172
  msgid "Slider height (in pixels)"
3173
  msgstr ""
3174
 
3175
- #: includes/shortcodes/slider.php:77
3176
  msgid "Ignore width and height parameters and make slider responsive"
3177
  msgstr ""
3178
 
3179
- #: includes/shortcodes/slider.php:82
3180
  msgid "Display slide titles"
3181
  msgstr ""
3182
 
3183
- #: includes/shortcodes/slider.php:87
3184
  msgid "Is slider centered on the page"
3185
  msgstr ""
3186
 
3187
- #: includes/shortcodes/slider.php:103
3188
  msgid "Allow to change slides with mouse wheel"
3189
  msgstr ""
3190
 
3191
- #: includes/shortcodes/slider.php:112
3192
  msgid "Choose interval between slide animations. Set to 0 to disable autoplay"
3193
  msgstr ""
3194
 
3195
- #: includes/shortcodes/slider.php:129
3196
  msgid "Customizable image slider"
3197
  msgstr ""
3198
 
3199
- #: includes/shortcodes/spacer.php:7
3200
  msgid "Spacer"
3201
  msgstr ""
3202
 
3203
- #: includes/shortcodes/spacer.php:18
3204
  msgid "Height of the spacer in pixels"
3205
  msgstr ""
3206
 
3207
- #: includes/shortcodes/spacer.php:27
3208
  msgid "Empty space with adjustable height"
3209
  msgstr ""
3210
 
@@ -3316,23 +3341,23 @@ msgstr ""
3316
  msgid "Spoiler with hidden content"
3317
  msgstr ""
3318
 
3319
- #: includes/shortcodes/subpages.php:7
3320
  msgid "Sub pages"
3321
  msgstr ""
3322
 
3323
- #: includes/shortcodes/subpages.php:15
3324
  msgid "Max depth level of children pages"
3325
  msgstr ""
3326
 
3327
- #: includes/shortcodes/subpages.php:20
3328
  msgid "Parent ID"
3329
  msgstr ""
3330
 
3331
- #: includes/shortcodes/subpages.php:21
3332
  msgid "ID of the parent page. Leave blank to use current page"
3333
  msgstr ""
3334
 
3335
- #: includes/shortcodes/subpages.php:30
3336
  msgid "List of sub pages"
3337
  msgstr ""
3338
 
@@ -3358,6 +3383,11 @@ msgid ""
3358
  "</table>"
3359
  msgstr ""
3360
 
 
 
 
 
 
3361
  #: includes/shortcodes/tabs.php:7
3362
  msgid "Tabs"
3363
  msgstr ""
@@ -3643,35 +3673,35 @@ msgstr ""
3643
  msgid "user not found"
3644
  msgstr ""
3645
 
3646
- #: includes/shortcodes/video.php:7
3647
  msgid "Video"
3648
  msgstr ""
3649
 
3650
- #: includes/shortcodes/video.php:15
3651
  msgid "Url to mp4/flv video-file"
3652
  msgstr ""
3653
 
3654
- #: includes/shortcodes/video.php:20
3655
  msgid "Poster"
3656
  msgstr ""
3657
 
3658
- #: includes/shortcodes/video.php:21
3659
  msgid "Url to poster image, that will be shown before playback"
3660
  msgstr ""
3661
 
3662
- #: includes/shortcodes/video.php:27
3663
  msgid "Player title"
3664
  msgstr ""
3665
 
3666
- #: includes/shortcodes/video.php:50, includes/shortcodes/youtube-advanced.php:55
3667
  msgid "Controls"
3668
  msgstr ""
3669
 
3670
- #: includes/shortcodes/video.php:51
3671
  msgid "Show player controls (play/pause etc.) or not"
3672
  msgstr ""
3673
 
3674
- #: includes/shortcodes/video.php:72
3675
  msgid "Custom video player"
3676
  msgstr ""
3677
 
@@ -3908,12 +3938,12 @@ msgstr ""
3908
  msgid "Remind me later"
3909
  msgstr ""
3910
 
3911
- #: admin/partials/notices/rate.php:18
3912
  msgid "Dismiss"
3913
  msgstr ""
3914
 
3915
- #: admin/partials/pages/addons.php:27
3916
- msgid "Learn more"
3917
  msgstr ""
3918
 
3919
  #: admin/partials/pages/addons.php:30
@@ -3964,10 +3994,6 @@ msgstr ""
3964
  msgid "Back to shortcodes list"
3965
  msgstr ""
3966
 
3967
- #: admin/partials/widget/form.php:3
3968
- msgid "Title:"
3969
- msgstr ""
3970
-
3971
  #: admin/partials/settings/fields/checkbox.php:3
3972
  msgid "Enabled"
3973
  msgstr ""
82
  msgid "Shadow"
83
  msgstr ""
84
 
85
+ #: admin/class-shortcodes-ultimate-admin-settings.php:76
 
 
 
 
 
 
 
 
86
  msgid "Custom CSS code"
87
  msgstr ""
88
 
89
+ #: admin/class-shortcodes-ultimate-admin-settings.php:77
90
  msgid "In this field you can write your custom CSS code for shortcodes. These styles will have higher priority compared to original styles of shortcodes. You can use variables in your CSS code. These variables will be replaced by respective values."
91
  msgstr ""
92
 
93
+ #: admin/class-shortcodes-ultimate-admin-settings.php:84
94
  msgid "Supported blocks"
95
  msgstr ""
96
 
97
+ #: admin/class-shortcodes-ultimate-admin-settings.php:85
98
  msgid "Enable the \"Insert Shortcode\" button in selected blocks"
99
  msgstr ""
100
 
101
+ #: admin/class-shortcodes-ultimate-admin-settings.php:93
102
  msgid "Enable shortcodes in"
103
  msgstr ""
104
 
105
+ #: admin/class-shortcodes-ultimate-admin-settings.php:94
106
  msgid "This option allows you to enable shortcodes in places where they are disabled by default"
107
  msgstr ""
108
 
109
+ #: admin/class-shortcodes-ultimate-admin-settings.php:96
110
  msgid "Term descriptions (Categories, Tags, Custom Taxonomies)"
111
  msgstr ""
112
 
113
+ #: admin/class-shortcodes-ultimate-admin-settings.php:97
114
  msgid "Text widgets"
115
  msgstr ""
116
 
117
+ #: admin/class-shortcodes-ultimate-admin-settings.php:111
118
  msgid "Shortcodes prefix"
119
  msgstr ""
120
 
121
+ #: admin/class-shortcodes-ultimate-admin-settings.php:112
122
  msgid "This prefix will be used in shortcode names. For example: set <code>MY_</code> prefix and shortcodes will look like <code>[MY_button]</code>. Please note that this setting does not change shortcodes that have been inserted earlier. Change this setting very carefully."
123
  msgstr ""
124
 
125
+ #: admin/class-shortcodes-ultimate-admin-settings.php:122
126
  msgid "Custom formatting"
127
  msgstr ""
128
 
129
+ #: admin/class-shortcodes-ultimate-admin-settings.php:123
130
  msgid "Enable this option if you face any problems with formatting of nested shortcodes."
131
  msgstr ""
132
 
133
+ #: admin/class-shortcodes-ultimate-admin-settings.php:133
134
  msgid "Skip default settings"
135
  msgstr ""
136
 
137
+ #: admin/class-shortcodes-ultimate-admin-settings.php:134
138
  msgid "Enable this option if you don't want the inserted shortcode to contain any settings that were not changed by you. As a result, inserted shortcodes will be much shorter."
139
  msgstr ""
140
 
141
+ #: admin/class-shortcodes-ultimate-admin-settings.php:142
142
  msgid "Required user capability"
143
  msgstr ""
144
 
145
+ #: admin/class-shortcodes-ultimate-admin-settings.php:143
146
  msgid "A user must have this capability to be able to use the \"Insert Shortcode\" button. Do not change this value if you do not understand its meaning as this may lower the plugin security."
147
  msgstr ""
148
 
149
+ #: admin/class-shortcodes-ultimate-admin-settings.php:153
150
+ msgid "Unsafe features"
151
+ msgstr ""
152
+
153
+ #: admin/class-shortcodes-ultimate-admin-settings.php:156
154
+ msgid "This option enables potentially unsafe features of the plugin such as onlick attribute of the Button shortcode. The option is enabled by default and is turned off automatically once you have more than one non-admin user on the site."
155
+ msgstr ""
156
+
157
+ #: admin/class-shortcodes-ultimate-admin-settings.php:157, includes/shortcodes/button.php:368, includes/shortcodes/csv-table.php:83, includes/shortcodes/table.php:65, admin/partials/notices/unsafe-features.php:18, admin/partials/pages/addons.php:27
158
+ msgid "Learn more"
159
+ msgstr ""
160
+
161
+ #: admin/class-shortcodes-ultimate-admin-settings.php:168
162
  msgid "Hide deprecated shortcodes"
163
  msgstr ""
164
 
165
+ #: admin/class-shortcodes-ultimate-admin-settings.php:169
166
  msgid "This option hides all deprecated shortcodes from the Insert Shortcode window and at the Available Shortcodes page. Hidden shortcodes will continue to work."
167
  msgstr ""
168
 
169
+ #: admin/class-shortcodes-ultimate-admin-settings.php:179
170
  msgid "Nested shortcodes alternative mode"
171
  msgstr ""
172
 
173
+ #: admin/class-shortcodes-ultimate-admin-settings.php:180
174
  msgid "This option enables alternative (deprecated) mode for nested shortcodes."
175
  msgstr ""
176
 
177
+ #: admin/class-shortcodes-ultimate-admin-settings.php:202, admin/class-shortcodes-ultimate-admin-settings.php:203, admin/class-shortcodes-ultimate-admin-settings.php:320, inc/core/generator.php:209, admin/partials/notices/unsafe-features.php:19
178
+ msgid "Settings"
179
+ msgstr ""
180
+
181
+ #: admin/class-shortcodes-ultimate-admin-settings.php:220, admin/class-shortcodes-ultimate-admin-settings.php:299
182
+ msgid "General settings"
183
+ msgstr ""
184
+
185
  #: admin/class-shortcodes-ultimate-admin-shortcodes.php:26, admin/class-shortcodes-ultimate-admin-shortcodes.php:27
186
  msgid "Available shortcodes"
187
  msgstr ""
188
 
189
+ #: admin/class-shortcodes-ultimate-admin-shortcodes.php:88, admin/class-shortcodes-ultimate-admin-top-level.php:39, admin/class-shortcodes-ultimate-admin.php:267, admin/class-shortcodes-ultimate-widget.php:26, admin/class-shortcodes-ultimate-widget.php:77, includes/functions-galleries.php:297, includes/deprecated/class-su-widget.php:15, includes/deprecated/class-su-widget.php:43, admin/partials/help/sidebar.php:3
190
  msgid "Shortcodes Ultimate"
191
  msgstr ""
192
 
274
  msgid "Shortcodes"
275
  msgstr ""
276
 
277
+ #: admin/class-shortcodes-ultimate-widget.php:15, includes/deprecated/class-su-widget.php:8
278
  msgid "Shortcodes Ultimate widget"
279
  msgstr ""
280
 
550
  msgid "Add more style to your shortcodes"
551
  msgstr ""
552
 
553
+ #: includes/config/borders.php:6, includes/shortcodes/carousel.php:37, includes/shortcodes/custom-gallery.php:30, includes/shortcodes/display-posts.php:114, includes/shortcodes/image-carousel.php:87, includes/shortcodes/image-carousel.php:130, includes/shortcodes/posts.php:139, includes/shortcodes/qrcode.php:48, includes/shortcodes/slider.php:37
554
  msgid "None"
555
  msgstr ""
556
 
558
  msgid "Solid"
559
  msgstr ""
560
 
561
+ #: includes/config/borders.php:8, includes/shortcodes/divider.php:32, includes/shortcodes/expand.php:56
562
  msgid "Dotted"
563
  msgstr ""
564
 
565
+ #: includes/config/borders.php:9, includes/shortcodes/divider.php:33, includes/shortcodes/expand.php:57
566
  msgid "Dashed"
567
  msgstr ""
568
 
626
  msgid "Classic"
627
  msgstr ""
628
 
629
+ #: includes/deprecated/class-su-widget.php:49, admin/partials/widget/form.php:3
630
+ msgid "Title:"
631
+ msgstr ""
632
+
633
+ #: includes/shortcodes/accordion.php:8
634
  msgid "Accordion"
635
  msgstr ""
636
 
637
+ #: includes/shortcodes/accordion.php:15, includes/shortcodes/animate.php:45, includes/shortcodes/audio.php:38, includes/shortcodes/box.php:56, includes/shortcodes/button.php:144, includes/shortcodes/carousel.php:150, includes/shortcodes/column.php:41, includes/shortcodes/csv-table.php:52, includes/shortcodes/custom-gallery.php:82, includes/shortcodes/dailymotion.php:103, includes/shortcodes/display-posts.php:223, includes/shortcodes/divider.php:74, includes/shortcodes/document.php:50, includes/shortcodes/dropcap.php:35, includes/shortcodes/dummy-image.php:54, includes/shortcodes/dummy-text.php:46, includes/shortcodes/expand.php:89, includes/shortcodes/feed.php:39, includes/shortcodes/frame.php:26, includes/shortcodes/gmap.php:58, includes/shortcodes/guests.php:14, includes/shortcodes/heading.php:56, includes/shortcodes/highlight.php:28, includes/shortcodes/image-carousel.php:193, includes/shortcodes/label.php:28, includes/shortcodes/lightbox-content.php:109, includes/shortcodes/lightbox.php:38, includes/shortcodes/list.php:35, includes/shortcodes/members.php:35, includes/shortcodes/menu.php:20, includes/shortcodes/note.php:37, includes/shortcodes/permalink.php:39, includes/shortcodes/private.php:14, includes/shortcodes/pullquote.php:24, includes/shortcodes/qrcode.php:86, includes/shortcodes/quote.php:34, includes/shortcodes/row.php:16, includes/shortcodes/service.php:41, includes/shortcodes/siblings.php:21, includes/shortcodes/slider.php:132, includes/shortcodes/spacer.php:23, includes/shortcodes/spoiler.php:67, includes/shortcodes/subpages.php:27, includes/shortcodes/table.php:34, includes/shortcodes/tabs.php:58, includes/shortcodes/tabs.php:117, includes/shortcodes/tooltip.php:103, includes/shortcodes/video.php:68, includes/shortcodes/vimeo.php:71, includes/shortcodes/youtube-advanced.php:134, includes/shortcodes/youtube.php:60
638
  msgid "Extra CSS class"
639
  msgstr ""
640
 
641
+ #: includes/shortcodes/accordion.php:16, includes/shortcodes/animate.php:46, includes/shortcodes/audio.php:39, includes/shortcodes/box.php:57, includes/shortcodes/button.php:145, includes/shortcodes/carousel.php:151, includes/shortcodes/column.php:42, includes/shortcodes/csv-table.php:53, includes/shortcodes/custom-gallery.php:83, includes/shortcodes/dailymotion.php:104, includes/shortcodes/display-posts.php:224, includes/shortcodes/divider.php:75, includes/shortcodes/document.php:51, includes/shortcodes/dropcap.php:36, includes/shortcodes/dummy-image.php:55, includes/shortcodes/dummy-text.php:47, includes/shortcodes/expand.php:90, includes/shortcodes/feed.php:40, includes/shortcodes/gmap.php:59, includes/shortcodes/guests.php:15, includes/shortcodes/heading.php:57, includes/shortcodes/highlight.php:29, includes/shortcodes/image-carousel.php:194, includes/shortcodes/label.php:29, includes/shortcodes/lightbox-content.php:110, includes/shortcodes/lightbox.php:39, includes/shortcodes/list.php:36, includes/shortcodes/members.php:36, includes/shortcodes/menu.php:21, includes/shortcodes/note.php:38, includes/shortcodes/permalink.php:40, includes/shortcodes/private.php:15, includes/shortcodes/pullquote.php:25, includes/shortcodes/qrcode.php:87, includes/shortcodes/quote.php:35, includes/shortcodes/row.php:17, includes/shortcodes/service.php:42, includes/shortcodes/siblings.php:22, includes/shortcodes/slider.php:133, includes/shortcodes/spacer.php:24, includes/shortcodes/spoiler.php:68, includes/shortcodes/subpages.php:28, includes/shortcodes/table.php:35, includes/shortcodes/tabs.php:59, includes/shortcodes/tabs.php:118, includes/shortcodes/tooltip.php:104, includes/shortcodes/video.php:69, includes/shortcodes/vimeo.php:72, includes/shortcodes/youtube-advanced.php:135, includes/shortcodes/youtube.php:61
642
  msgid "Additional CSS class name(s) separated by space(s)"
643
  msgstr ""
644
 
645
+ #: includes/shortcodes/accordion.php:24
646
  msgid "Accordion with spoilers"
647
  msgstr ""
648
 
649
+ #: includes/shortcodes/accordion.php:25, includes/shortcodes/spoiler.php:74
650
  msgid "Did you know that you can wrap multiple spoilers with [accordion] shortcode to create accordion effect?"
651
  msgstr ""
652
 
653
+ #: includes/shortcodes/animate.php:8, includes/shortcodes/animate.php:16
654
  msgid "Animation"
655
  msgstr ""
656
 
657
+ #: includes/shortcodes/animate.php:17
658
  msgid "Select animation type"
659
  msgstr ""
660
 
661
+ #: includes/shortcodes/animate.php:25
662
  msgid "Duration"
663
  msgstr ""
664
 
665
+ #: includes/shortcodes/animate.php:26
666
  msgid "Animation duration (seconds)"
667
  msgstr ""
668
 
669
+ #: includes/shortcodes/animate.php:34
670
  msgid "Delay"
671
  msgstr ""
672
 
673
+ #: includes/shortcodes/animate.php:35
674
  msgid "Animation delay (seconds)"
675
  msgstr ""
676
 
677
+ #: includes/shortcodes/animate.php:40
678
  msgid "Inline"
679
  msgstr ""
680
 
681
+ #: includes/shortcodes/animate.php:41
682
  msgid "This parameter determines what HTML tag will be used for animation wrapper. Turn this option to YES and animated element will be wrapped in SPAN instead of DIV. Useful for inline animations, like buttons"
683
  msgstr ""
684
 
685
+ #: includes/shortcodes/animate.php:50
686
  msgid "Animated content"
687
  msgstr ""
688
 
689
+ #: includes/shortcodes/animate.php:51
690
  msgid "Wrapper for animation. Any nested element will be animated"
691
  msgstr ""
692
 
693
+ #: includes/shortcodes/audio.php:8
694
  msgid "Audio"
695
  msgstr ""
696
 
697
+ #: includes/shortcodes/audio.php:15, includes/shortcodes/video.php:15
698
  msgid "File"
699
  msgstr ""
700
 
701
+ #: includes/shortcodes/audio.php:16
702
  msgid "Audio file url. Supported formats: mp3, ogg"
703
  msgstr ""
704
 
705
+ #: includes/shortcodes/audio.php:21, includes/shortcodes/carousel.php:64, includes/shortcodes/custom-gallery.php:57, includes/shortcodes/dailymotion.php:23, includes/shortcodes/document.php:25, includes/shortcodes/dummy-image.php:18, includes/shortcodes/gmap.php:18, includes/shortcodes/lightbox-content.php:26, includes/shortcodes/slider.php:64, includes/shortcodes/video.php:36, includes/shortcodes/vimeo.php:23, includes/shortcodes/youtube-advanced.php:29, includes/shortcodes/youtube.php:23
706
  msgid "Width"
707
  msgstr ""
708
 
709
+ #: includes/shortcodes/audio.php:22
710
  msgid "Player width. You can specify width in percents and player will be responsive. Example values: <b%value>200px</b>, <b%value>100&#37;</b>"
711
  msgstr ""
712
 
713
+ #: includes/shortcodes/audio.php:27, includes/shortcodes/carousel.php:136, includes/shortcodes/dailymotion.php:44, includes/shortcodes/image-carousel.php:157, includes/shortcodes/slider.php:118, includes/shortcodes/video.php:57, includes/shortcodes/vimeo.php:44, includes/shortcodes/youtube-advanced.php:72, includes/shortcodes/youtube.php:44
714
  msgid "Autoplay"
715
  msgstr ""
716
 
717
+ #: includes/shortcodes/audio.php:28, includes/shortcodes/video.php:58
718
  msgid "Play file automatically when page is loaded"
719
  msgstr ""
720
 
721
+ #: includes/shortcodes/audio.php:33, includes/shortcodes/video.php:63, includes/shortcodes/youtube-advanced.php:84
722
  msgid "Loop"
723
  msgstr ""
724
 
725
+ #: includes/shortcodes/audio.php:34, includes/shortcodes/video.php:64
726
  msgid "Repeat when playback is ended"
727
  msgstr ""
728
 
729
+ #: includes/shortcodes/audio.php:43
730
  msgid "Custom audio player"
731
  msgstr ""
732
 
733
+ #: includes/shortcodes/audio.php:65, includes/shortcodes/audio.php:77, includes/shortcodes/dailymotion.php:137, includes/shortcodes/dailymotion.php:144, includes/shortcodes/screenr.php:30, includes/shortcodes/screenr.php:37, includes/shortcodes/video.php:98, includes/shortcodes/video.php:106, includes/shortcodes/vimeo.php:102, includes/shortcodes/vimeo.php:112, includes/shortcodes/youtube-advanced.php:174, includes/shortcodes/youtube-advanced.php:184, includes/shortcodes/youtube.php:89, includes/shortcodes/youtube.php:99
734
  msgid "please specify correct url"
735
  msgstr ""
736
 
738
  msgid "Box title"
739
  msgstr ""
740
 
741
+ #: includes/shortcodes/box.php:15, includes/shortcodes/dailymotion.php:97, includes/shortcodes/document.php:44, includes/shortcodes/gmap.php:52, includes/shortcodes/permalink.php:29, includes/shortcodes/qrcode.php:24, includes/shortcodes/service.php:15, includes/shortcodes/spoiler.php:13, includes/shortcodes/tabs.php:86, includes/shortcodes/video.php:27, includes/shortcodes/vimeo.php:60, includes/shortcodes/youtube-advanced.php:128, includes/shortcodes/youtube.php:54
742
  msgid "Title"
743
  msgstr ""
744
 
746
  msgid "Text for the box title"
747
  msgstr ""
748
 
749
+ #: includes/shortcodes/box.php:21, includes/shortcodes/button.php:31, includes/shortcodes/divider.php:31, includes/shortcodes/dropcap.php:15, includes/shortcodes/expand.php:54, includes/shortcodes/heading.php:14, includes/shortcodes/image-carousel.php:38, includes/shortcodes/label.php:15, includes/shortcodes/meta.php:19, includes/shortcodes/post.php:44, includes/shortcodes/quote.php:15, includes/shortcodes/spoiler.php:25, includes/shortcodes/tabs.php:18, includes/shortcodes/user.php:36
750
  msgid "Default"
751
  msgstr ""
752
 
766
  msgid "Noise"
767
  msgstr ""
768
 
769
+ #: includes/shortcodes/box.php:28, includes/shortcodes/button.php:42, includes/shortcodes/divider.php:37, includes/shortcodes/dropcap.php:21, includes/shortcodes/heading.php:17, includes/shortcodes/quote.php:18, includes/shortcodes/spoiler.php:30, includes/shortcodes/tabs.php:21
770
  msgid "Style"
771
  msgstr ""
772
 
814
  msgid "This is box title"
815
  msgstr ""
816
 
817
+ #: includes/shortcodes/button.php:8, includes/shortcodes/expand.php:58
818
  msgid "Button"
819
  msgstr ""
820
 
826
  msgid "Button link"
827
  msgstr ""
828
 
829
+ #: includes/shortcodes/button.php:21, includes/shortcodes/carousel.php:51, includes/shortcodes/custom-gallery.php:44, includes/shortcodes/feed.php:30, includes/shortcodes/image-carousel.php:144, includes/shortcodes/permalink.php:20, includes/shortcodes/qrcode.php:65, includes/shortcodes/slider.php:51, includes/shortcodes/tabs.php:108
830
  msgid "Open in same tab"
831
  msgstr ""
832
 
833
+ #: includes/shortcodes/button.php:22, includes/shortcodes/carousel.php:52, includes/shortcodes/custom-gallery.php:45, includes/shortcodes/feed.php:31, includes/shortcodes/image-carousel.php:145, includes/shortcodes/permalink.php:21, includes/shortcodes/qrcode.php:66, includes/shortcodes/slider.php:52, includes/shortcodes/tabs.php:109
834
  msgid "Open in new tab"
835
  msgstr ""
836
 
837
+ #: includes/shortcodes/button.php:25, includes/shortcodes/permalink.php:24
838
  msgid "Target"
839
  msgstr ""
840
 
842
  msgid "Button link target"
843
  msgstr ""
844
 
845
+ #: includes/shortcodes/button.php:32, includes/shortcodes/dropcap.php:16
846
  msgid "Flat"
847
  msgstr ""
848
 
862
  msgid "Button background style preset"
863
  msgstr ""
864
 
865
+ #: includes/shortcodes/button.php:49, includes/shortcodes/highlight.php:16, includes/shortcodes/note.php:16
866
  msgid "Background"
867
  msgstr ""
868
 
870
  msgid "Button background color"
871
  msgstr ""
872
 
873
+ #: includes/shortcodes/button.php:56, includes/shortcodes/expand.php:41, includes/shortcodes/highlight.php:23, includes/shortcodes/lightbox-content.php:92, includes/shortcodes/lightbox-content.php:98, includes/shortcodes/note.php:23, includes/shortcodes/tooltip.php:43
874
  msgid "Text color"
875
  msgstr ""
876
 
878
  msgid "Button text color"
879
  msgstr ""
880
 
881
+ #: includes/shortcodes/button.php:65, includes/shortcodes/column.php:30, includes/shortcodes/divider.php:60, includes/shortcodes/dropcap.php:30, includes/shortcodes/heading.php:26, includes/shortcodes/qrcode.php:33
882
  msgid "Size"
883
  msgstr ""
884
 
894
  msgid "Fluid buttons has 100% width"
895
  msgstr ""
896
 
897
+ #: includes/shortcodes/button.php:77, includes/shortcodes/column.php:36
898
  msgid "Centered"
899
  msgstr ""
900
 
990
  msgid "Styled button"
991
  msgstr ""
992
 
993
+ #. translators: do not translate the <b>onclick</b> part, the <b>Unsafe features</b> must be translated
994
+ #: includes/shortcodes/button.php:367
995
+ msgid "The <b>onclick</b> attribute cannot be used while <b>Unsafe features</b> option is turned off"
996
+ msgstr ""
997
+
998
  #. translators: Dep. – Deprecated
999
+ #: includes/shortcodes/carousel.php:10
1000
  msgid "Carousel (Dep.)"
1001
  msgstr ""
1002
 
1003
+ #: includes/shortcodes/carousel.php:15, includes/shortcodes/slider.php:15
1004
  msgid "There is a much better shortcode for your images. Have you already tried the Image Carousel? It can create both sliders and carousels."
1005
  msgstr ""
1006
 
1007
+ #: includes/shortcodes/carousel.php:16, includes/shortcodes/slider.php:16
1008
  msgid "Switch to Image Carousel"
1009
  msgstr ""
1010
 
1011
+ #: includes/shortcodes/carousel.php:22, includes/shortcodes/custom-gallery.php:15, includes/shortcodes/slider.php:22
1012
  msgid "Source"
1013
  msgstr ""
1014
 
1015
+ #: includes/shortcodes/carousel.php:23, includes/shortcodes/custom-gallery.php:16, includes/shortcodes/slider.php:23
1016
  msgid "Choose images source. You can use images from Media library or retrieve it from posts (thumbnails) posted under specified blog category. You can also pick any custom taxonomy"
1017
  msgstr ""
1018
 
1019
+ #: includes/shortcodes/carousel.php:31, includes/shortcodes/custom-gallery.php:24, includes/shortcodes/feed.php:24, includes/shortcodes/image-carousel.php:32, includes/shortcodes/slider.php:31
1020
  msgid "Limit"
1021
  msgstr ""
1022
 
1023
+ #: includes/shortcodes/carousel.php:32, includes/shortcodes/custom-gallery.php:25, includes/shortcodes/slider.php:32
1024
  msgid "Maximum number of image source posts (for recent posts, category and custom taxonomy)"
1025
  msgstr ""
1026
 
1027
+ #: includes/shortcodes/carousel.php:38, includes/shortcodes/custom-gallery.php:31, includes/shortcodes/image-carousel.php:131, includes/shortcodes/slider.php:38
1028
  msgid "Full-size image"
1029
  msgstr ""
1030
 
1031
+ #: includes/shortcodes/carousel.php:39, includes/shortcodes/custom-gallery.php:32, includes/shortcodes/image-carousel.php:132, includes/shortcodes/lightbox.php:8, includes/shortcodes/slider.php:39
1032
  msgid "Lightbox"
1033
  msgstr ""
1034
 
1035
+ #: includes/shortcodes/carousel.php:40, includes/shortcodes/custom-gallery.php:33, includes/shortcodes/slider.php:40
1036
  msgid "Slide link (added in media editor)"
1037
  msgstr ""
1038
 
1039
+ #: includes/shortcodes/carousel.php:41, includes/shortcodes/custom-gallery.php:34, includes/shortcodes/image-carousel.php:134, includes/shortcodes/slider.php:41
1040
  msgid "Attachment page"
1041
  msgstr ""
1042
 
1043
+ #: includes/shortcodes/carousel.php:42, includes/shortcodes/custom-gallery.php:35, includes/shortcodes/image-carousel.php:135, includes/shortcodes/slider.php:42
1044
  msgid "Post permalink"
1045
  msgstr ""
1046
 
1047
+ #: includes/shortcodes/carousel.php:45, includes/shortcodes/custom-gallery.php:38, includes/shortcodes/slider.php:45
1048
  msgid "Links"
1049
  msgstr ""
1050
 
1051
+ #: includes/shortcodes/carousel.php:46, includes/shortcodes/custom-gallery.php:39, includes/shortcodes/slider.php:46
1052
  msgid "Select which links will be used for images in this gallery"
1053
  msgstr ""
1054
 
1055
+ #: includes/shortcodes/carousel.php:55, includes/shortcodes/custom-gallery.php:48, includes/shortcodes/feed.php:34, includes/shortcodes/image-carousel.php:148, includes/shortcodes/slider.php:55
1056
  msgid "Links target"
1057
  msgstr ""
1058
 
1059
+ #: includes/shortcodes/carousel.php:56, includes/shortcodes/custom-gallery.php:49, includes/shortcodes/slider.php:56
1060
  msgid "Open links in"
1061
  msgstr ""
1062
 
1063
+ #: includes/shortcodes/carousel.php:65
1064
  msgid "Carousel width (in pixels)"
1065
  msgstr ""
1066
 
1067
+ #: includes/shortcodes/carousel.php:73, includes/shortcodes/custom-gallery.php:66, includes/shortcodes/dailymotion.php:32, includes/shortcodes/document.php:34, includes/shortcodes/dummy-image.php:27, includes/shortcodes/expand.php:28, includes/shortcodes/gmap.php:27, includes/shortcodes/slider.php:73, includes/shortcodes/spacer.php:18, includes/shortcodes/video.php:45, includes/shortcodes/vimeo.php:32, includes/shortcodes/youtube-advanced.php:38, includes/shortcodes/youtube.php:32
1068
  msgid "Height"
1069
  msgstr ""
1070
 
1071
+ #: includes/shortcodes/carousel.php:74
1072
  msgid "Carousel height (in pixels)"
1073
  msgstr ""
1074
 
1075
+ #: includes/shortcodes/carousel.php:79, includes/shortcodes/csv-table.php:35, includes/shortcodes/dailymotion.php:38, includes/shortcodes/document.php:40, includes/shortcodes/gmap.php:33, includes/shortcodes/slider.php:79, includes/shortcodes/table.php:17, includes/shortcodes/vimeo.php:38, includes/shortcodes/youtube-advanced.php:44, includes/shortcodes/youtube.php:38
1076
  msgid "Responsive"
1077
  msgstr ""
1078
 
1079
+ #: includes/shortcodes/carousel.php:80
1080
  msgid "Ignore width and height parameters and make carousel responsive"
1081
  msgstr ""
1082
 
1083
+ #: includes/shortcodes/carousel.php:88
1084
  msgid "Items to show"
1085
  msgstr ""
1086
 
1087
+ #: includes/shortcodes/carousel.php:89
1088
  msgid "How much carousel items is visible"
1089
  msgstr ""
1090
 
1091
+ #: includes/shortcodes/carousel.php:97
1092
  msgid "Scroll number"
1093
  msgstr ""
1094
 
1095
+ #: includes/shortcodes/carousel.php:98
1096
  msgid "How much items are scrolled in one transition"
1097
  msgstr ""
1098
 
1099
+ #: includes/shortcodes/carousel.php:103, includes/shortcodes/custom-gallery.php:77, includes/shortcodes/slider.php:85
1100
  msgid "Show titles"
1101
  msgstr ""
1102
 
1103
+ #: includes/shortcodes/carousel.php:104
1104
  msgid "Display titles for each item"
1105
  msgstr ""
1106
 
1107
+ #: includes/shortcodes/carousel.php:109, includes/shortcodes/expand.php:68, includes/shortcodes/frame.php:16, includes/shortcodes/heading.php:33, includes/shortcodes/image-carousel.php:90, includes/shortcodes/lightbox-content.php:76, includes/shortcodes/qrcode.php:50, includes/shortcodes/slider.php:91, includes/shortcodes/tooltip.php:59
1108
  msgid "Center"
1109
  msgstr ""
1110
 
1111
+ #: includes/shortcodes/carousel.php:110
1112
  msgid "Is carousel centered on the page"
1113
  msgstr ""
1114
 
1115
+ #: includes/shortcodes/carousel.php:115, includes/shortcodes/slider.php:97
1116
  msgid "Arrows"
1117
  msgstr ""
1118
 
1119
+ #: includes/shortcodes/carousel.php:116, includes/shortcodes/slider.php:98
1120
  msgid "Show left and right arrows"
1121
  msgstr ""
1122
 
1123
+ #: includes/shortcodes/carousel.php:121, includes/shortcodes/display-posts.php:197, includes/shortcodes/slider.php:103
1124
  msgid "Pagination"
1125
  msgstr ""
1126
 
1127
+ #: includes/shortcodes/carousel.php:122, includes/shortcodes/slider.php:104
1128
  msgid "Show pagination"
1129
  msgstr ""
1130
 
1131
+ #: includes/shortcodes/carousel.php:127, includes/shortcodes/slider.php:109
1132
  msgid "Mouse wheel control"
1133
  msgstr ""
1134
 
1135
+ #: includes/shortcodes/carousel.php:128
1136
  msgid "Allow to rotate carousel with mouse wheel"
1137
  msgstr ""
1138
 
1139
+ #: includes/shortcodes/carousel.php:137
1140
  msgid "Choose interval between auto animations. Set to 0 to disable autoplay"
1141
  msgstr ""
1142
 
1143
+ #: includes/shortcodes/carousel.php:145, includes/shortcodes/slider.php:127
1144
  msgid "Speed"
1145
  msgstr ""
1146
 
1147
+ #: includes/shortcodes/carousel.php:146, includes/shortcodes/slider.php:128
1148
  msgid "Specify animation speed"
1149
  msgstr ""
1150
 
1151
+ #: includes/shortcodes/carousel.php:155
1152
  msgid "Customizable image carousel"
1153
  msgstr ""
1154
 
1155
+ #: includes/shortcodes/carousel.php:259, includes/shortcodes/custom-gallery.php:165, includes/shortcodes/image-carousel.php:236, includes/shortcodes/slider.php:241
1156
  msgid "images not found"
1157
  msgstr ""
1158
 
1159
+ #: includes/shortcodes/column.php:8
1160
  msgid "Column"
1161
  msgstr ""
1162
 
1163
+ #: includes/shortcodes/column.php:16
1164
  msgid "Full width"
1165
  msgstr ""
1166
 
1167
+ #: includes/shortcodes/column.php:17
1168
  msgid "One half"
1169
  msgstr ""
1170
 
1171
+ #: includes/shortcodes/column.php:18
1172
  msgid "One third"
1173
  msgstr ""
1174
 
1175
+ #: includes/shortcodes/column.php:19
1176
  msgid "Two third"
1177
  msgstr ""
1178
 
1179
+ #: includes/shortcodes/column.php:20
1180
  msgid "One fourth"
1181
  msgstr ""
1182
 
1183
+ #: includes/shortcodes/column.php:21
1184
  msgid "Three fourth"
1185
  msgstr ""
1186
 
1187
+ #: includes/shortcodes/column.php:22
1188
  msgid "One fifth"
1189
  msgstr ""
1190
 
1191
+ #: includes/shortcodes/column.php:23
1192
  msgid "Two fifth"
1193
  msgstr ""
1194
 
1195
+ #: includes/shortcodes/column.php:24
1196
  msgid "Three fifth"
1197
  msgstr ""
1198
 
1199
+ #: includes/shortcodes/column.php:25
1200
  msgid "Four fifth"
1201
  msgstr ""
1202
 
1203
+ #: includes/shortcodes/column.php:26
1204
  msgid "One sixth"
1205
  msgstr ""
1206
 
1207
+ #: includes/shortcodes/column.php:27
1208
  msgid "Five sixth"
1209
  msgstr ""
1210
 
1211
+ #: includes/shortcodes/column.php:31
1212
  msgid "Select column width. This width will be calculated depend page width"
1213
  msgstr ""
1214
 
1215
+ #: includes/shortcodes/column.php:37
1216
  msgid "Is this column centered on the page"
1217
  msgstr ""
1218
 
1219
+ #: includes/shortcodes/column.php:46
1220
  msgid "Column content"
1221
  msgstr ""
1222
 
1223
+ #: includes/shortcodes/column.php:47
1224
  msgid "Flexible and responsive columns"
1225
  msgstr ""
1226
 
1227
+ #: includes/shortcodes/column.php:48
1228
  msgid "Did you know that you need to wrap columns with [row] shortcode?"
1229
  msgstr ""
1230
 
1280
  msgid "Fixed width table cells"
1281
  msgstr ""
1282
 
1283
+ #: includes/shortcodes/csv-table.php:82
1284
+ msgid "This shortcode cannot be used while <b>Unsafe features</b> option is turned off"
1285
+ msgstr ""
1286
+
1287
+ #: includes/shortcodes/csv-table.php:90, includes/shortcodes/csv-table.php:96
1288
  msgid "invalid URL"
1289
  msgstr ""
1290
 
1291
+ #: includes/shortcodes/csv-table.php:100
1292
  msgid "invalid delimiter"
1293
  msgstr ""
1294
 
1332
  msgid "Url of Dailymotion page with video"
1333
  msgstr ""
1334
 
1335
+ #: includes/shortcodes/dailymotion.php:24, includes/shortcodes/video.php:37, includes/shortcodes/vimeo.php:24, includes/shortcodes/youtube-advanced.php:30, includes/shortcodes/youtube.php:24
1336
  msgid "Player width"
1337
  msgstr ""
1338
 
1339
+ #: includes/shortcodes/dailymotion.php:33, includes/shortcodes/video.php:46, includes/shortcodes/vimeo.php:33, includes/shortcodes/youtube-advanced.php:39, includes/shortcodes/youtube.php:33
1340
  msgid "Player height"
1341
  msgstr ""
1342
 
1528
  msgid "Number of posts to displace or pass over. The offset parameter is ignored when posts_per_page=-1 (show all posts) is used."
1529
  msgstr ""
1530
 
1531
+ #: includes/shortcodes/display-posts.php:115, includes/shortcodes/meta.php:34, includes/shortcodes/post.php:17, includes/shortcodes/post.php:59, includes/shortcodes/posts.php:140
1532
  msgid "Post ID"
1533
  msgstr ""
1534
 
1637
  msgid "Trashed"
1638
  msgstr ""
1639
 
1640
+ #: includes/shortcodes/display-posts.php:162, includes/shortcodes/dummy-image.php:33, includes/shortcodes/posts.php:176
1641
  msgid "Any"
1642
  msgstr ""
1643
 
1778
  msgid "Pick the color for divider"
1779
  msgstr ""
1780
 
1781
+ #: includes/shortcodes/divider.php:51, includes/shortcodes/expand.php:48
1782
  msgid "Link color"
1783
  msgstr ""
1784
 
1826
  msgid "Document viewer by Google"
1827
  msgstr ""
1828
 
1829
+ #: includes/shortcodes/dropcap.php:8, includes/shortcodes/dropcap.php:41
1830
  msgid "Dropcap"
1831
  msgstr ""
1832
 
1833
+ #: includes/shortcodes/dropcap.php:17, includes/shortcodes/image-carousel.php:50
1834
  msgid "Light"
1835
  msgstr ""
1836
 
1837
+ #: includes/shortcodes/dropcap.php:18, includes/shortcodes/spoiler.php:27
1838
  msgid "Simple"
1839
  msgstr ""
1840
 
1841
+ #: includes/shortcodes/dropcap.php:22
1842
  msgid "Dropcap style preset"
1843
  msgstr ""
1844
 
1845
+ #: includes/shortcodes/dropcap.php:31
1846
  msgid "Choose dropcap size"
1847
  msgstr ""
1848
 
1849
+ #: includes/shortcodes/dropcap.php:40
1850
  msgid "D"
1851
  msgstr ""
1852
 
1853
+ #: includes/shortcodes/dummy-image.php:8, includes/shortcodes/dummy-image.php:79
1854
  msgid "Dummy image"
1855
  msgstr ""
1856
 
1857
+ #: includes/shortcodes/dummy-image.php:19
1858
  msgid "Image width"
1859
  msgstr ""
1860
 
1861
+ #: includes/shortcodes/dummy-image.php:28
1862
  msgid "Image height"
1863
  msgstr ""
1864
 
1865
+ #: includes/shortcodes/dummy-image.php:34
1866
  msgid "Abstract"
1867
  msgstr ""
1868
 
1869
+ #: includes/shortcodes/dummy-image.php:35
1870
  msgid "Animals"
1871
  msgstr ""
1872
 
1873
+ #: includes/shortcodes/dummy-image.php:36
1874
  msgid "Business"
1875
  msgstr ""
1876
 
1877
+ #: includes/shortcodes/dummy-image.php:37
1878
  msgid "Cats"
1879
  msgstr ""
1880
 
1881
+ #: includes/shortcodes/dummy-image.php:38
1882
  msgid "City"
1883
  msgstr ""
1884
 
1885
+ #: includes/shortcodes/dummy-image.php:39
1886
  msgid "Food"
1887
  msgstr ""
1888
 
1889
+ #: includes/shortcodes/dummy-image.php:40
1890
  msgid "Night life"
1891
  msgstr ""
1892
 
1893
+ #: includes/shortcodes/dummy-image.php:41
1894
  msgid "Fashion"
1895
  msgstr ""
1896
 
1897
+ #: includes/shortcodes/dummy-image.php:42
1898
  msgid "People"
1899
  msgstr ""
1900
 
1901
+ #: includes/shortcodes/dummy-image.php:43
1902
  msgid "Nature"
1903
  msgstr ""
1904
 
1905
+ #: includes/shortcodes/dummy-image.php:44
1906
  msgid "Sports"
1907
  msgstr ""
1908
 
1909
+ #: includes/shortcodes/dummy-image.php:45
1910
  msgid "Technics"
1911
  msgstr ""
1912
 
1913
+ #: includes/shortcodes/dummy-image.php:46
1914
  msgid "Transport"
1915
  msgstr ""
1916
 
1917
+ #: includes/shortcodes/dummy-image.php:49, includes/shortcodes/youtube-advanced.php:112
1918
  msgid "Theme"
1919
  msgstr ""
1920
 
1921
+ #: includes/shortcodes/dummy-image.php:50
1922
  msgid "Select the theme for this image"
1923
  msgstr ""
1924
 
1925
+ #: includes/shortcodes/dummy-image.php:59
1926
  msgid "Image placeholder with random image"
1927
  msgstr ""
1928
 
1978
  msgid "Text placeholder"
1979
  msgstr ""
1980
 
1981
+ #: includes/shortcodes/expand.php:8
1982
  msgid "Expand"
1983
  msgstr ""
1984
 
1985
+ #: includes/shortcodes/expand.php:13, includes/shortcodes/expand.php:104
1986
  msgid "Show more"
1987
  msgstr ""
1988
 
1989
+ #: includes/shortcodes/expand.php:14
1990
  msgid "More text"
1991
  msgstr ""
1992
 
1993
+ #: includes/shortcodes/expand.php:15
1994
  msgid "Enter the text for more link"
1995
  msgstr ""
1996
 
1997
+ #: includes/shortcodes/expand.php:18, includes/shortcodes/expand.php:105
1998
  msgid "Show less"
1999
  msgstr ""
2000
 
2001
+ #: includes/shortcodes/expand.php:19
2002
  msgid "Less text"
2003
  msgstr ""
2004
 
2005
+ #: includes/shortcodes/expand.php:20
2006
  msgid "Enter the text for less link"
2007
  msgstr ""
2008
 
2009
+ #: includes/shortcodes/expand.php:29
2010
  msgid "Height for collapsed state (in pixels)"
2011
  msgstr ""
2012
 
2013
+ #: includes/shortcodes/expand.php:34
2014
  msgid "Hide less link"
2015
  msgstr ""
2016
 
2017
+ #: includes/shortcodes/expand.php:35
2018
  msgid "This option allows you to hide less link, when the text block has been expanded"
2019
  msgstr ""
2020
 
2021
+ #: includes/shortcodes/expand.php:42
2022
  msgid "Pick the text color"
2023
  msgstr ""
2024
 
2025
+ #: includes/shortcodes/expand.php:49
2026
  msgid "Pick the link color"
2027
  msgstr ""
2028
 
2029
+ #: includes/shortcodes/expand.php:55
2030
  msgid "Underlined"
2031
  msgstr ""
2032
 
2033
+ #: includes/shortcodes/expand.php:61
2034
  msgid "Link style"
2035
  msgstr ""
2036
 
2037
+ #: includes/shortcodes/expand.php:62
2038
  msgid "Select the style for more/less link"
2039
  msgstr ""
2040
 
2041
+ #: includes/shortcodes/expand.php:67, includes/shortcodes/frame.php:15, includes/shortcodes/heading.php:32, includes/shortcodes/image-carousel.php:88, includes/shortcodes/lightbox-content.php:75, includes/shortcodes/pullquote.php:15, includes/shortcodes/qrcode.php:49, includes/shortcodes/tooltip.php:27, includes/shortcodes/tooltip.php:58
2042
  msgid "Left"
2043
  msgstr ""
2044
 
2045
+ #: includes/shortcodes/expand.php:69, includes/shortcodes/frame.php:17, includes/shortcodes/heading.php:34, includes/shortcodes/image-carousel.php:89, includes/shortcodes/lightbox-content.php:77, includes/shortcodes/pullquote.php:16, includes/shortcodes/qrcode.php:51, includes/shortcodes/tooltip.php:28, includes/shortcodes/tooltip.php:60
2046
  msgid "Right"
2047
  msgstr ""
2048
 
2049
+ #: includes/shortcodes/expand.php:72
2050
  msgid "Link align"
2051
  msgstr ""
2052
 
2053
+ #: includes/shortcodes/expand.php:73
2054
  msgid "Select link alignment"
2055
  msgstr ""
2056
 
2057
+ #: includes/shortcodes/expand.php:78
2058
  msgid "More icon"
2059
  msgstr ""
2060
 
2061
+ #: includes/shortcodes/expand.php:79
2062
  msgid "Add an icon to the more link"
2063
  msgstr ""
2064
 
2065
+ #: includes/shortcodes/expand.php:84
2066
  msgid "Less icon"
2067
  msgstr ""
2068
 
2069
+ #: includes/shortcodes/expand.php:85
2070
  msgid "Add an icon to the less link"
2071
  msgstr ""
2072
 
2073
+ #: includes/shortcodes/expand.php:94
2074
  msgid "This text block can be expanded"
2075
  msgstr ""
2076
 
2077
+ #: includes/shortcodes/expand.php:95
2078
  msgid "Expandable text block"
2079
  msgstr ""
2080
 
2110
  msgid "no items in the feed"
2111
  msgstr ""
2112
 
2113
+ #: includes/shortcodes/frame.php:8
2114
  msgid "Frame"
2115
  msgstr ""
2116
 
2117
+ #: includes/shortcodes/frame.php:20, includes/shortcodes/heading.php:37, includes/shortcodes/pullquote.php:19, includes/shortcodes/qrcode.php:54
2118
  msgid "Align"
2119
  msgstr ""
2120
 
2121
+ #: includes/shortcodes/frame.php:21
2122
  msgid "Frame alignment"
2123
  msgstr ""
2124
 
2125
+ #: includes/shortcodes/frame.php:25
2126
  msgid "Class"
2127
  msgstr ""
2128
 
2129
+ #: includes/shortcodes/frame.php:30
2130
  msgid "Styled image frame"
2131
  msgstr ""
2132
 
2166
  msgid "Maps by Google"
2167
  msgstr ""
2168
 
2169
+ #: includes/shortcodes/guests.php:8
2170
  msgid "Guests"
2171
  msgstr ""
2172
 
2173
+ #: includes/shortcodes/guests.php:19
2174
  msgid "This content will be available only for non-logged visitors"
2175
  msgstr ""
2176
 
2177
+ #: includes/shortcodes/guests.php:20
2178
  msgid "Content for guests only"
2179
  msgstr ""
2180
 
2210
  msgid "Styled heading"
2211
  msgstr ""
2212
 
2213
+ #: includes/shortcodes/highlight.php:8
2214
  msgid "Highlight"
2215
  msgstr ""
2216
 
2217
+ #: includes/shortcodes/highlight.php:17
2218
  msgid "Highlighted text background color"
2219
  msgstr ""
2220
 
2221
+ #: includes/shortcodes/highlight.php:24
2222
  msgid "Highlighted text color"
2223
  msgstr ""
2224
 
2225
+ #: includes/shortcodes/highlight.php:33, includes/shortcodes/highlight.php:34
2226
  msgid "Highlighted text"
2227
  msgstr ""
2228
 
2290
  msgid "This option allows to enable/disable image cropping and crop aspect ratio."
2291
  msgstr ""
2292
 
2293
+ #: includes/shortcodes/image-carousel.php:69, includes/shortcodes/row.php:8
2294
  msgid "Columns"
2295
  msgstr ""
2296
 
2434
  msgid "This option enables random order for selected images"
2435
  msgstr ""
2436
 
2437
+ #: includes/shortcodes/label.php:8, includes/shortcodes/label.php:33
2438
  msgid "Label"
2439
  msgstr ""
2440
 
2441
+ #: includes/shortcodes/label.php:16
2442
  msgid "Success"
2443
  msgstr ""
2444
 
2445
+ #: includes/shortcodes/label.php:17
2446
  msgid "Warning"
2447
  msgstr ""
2448
 
2449
+ #: includes/shortcodes/label.php:18
2450
  msgid "Important"
2451
  msgstr ""
2452
 
2453
+ #: includes/shortcodes/label.php:19
2454
  msgid "Black"
2455
  msgstr ""
2456
 
2457
+ #: includes/shortcodes/label.php:20
2458
  msgid "Info"
2459
  msgstr ""
2460
 
2461
+ #: includes/shortcodes/label.php:23
2462
  msgid "Type"
2463
  msgstr ""
2464
 
2465
+ #: includes/shortcodes/label.php:24
2466
  msgid "Style of the label"
2467
  msgstr ""
2468
 
2469
+ #: includes/shortcodes/label.php:34
2470
  msgid "Styled label"
2471
  msgstr ""
2472
 
2474
  msgid "Lightbox content"
2475
  msgstr ""
2476
 
2477
+ #: includes/shortcodes/lightbox-content.php:16, includes/shortcodes/permalink.php:14, includes/shortcodes/user.php:21
2478
  msgid "ID"
2479
  msgstr ""
2480
 
2675
  msgid "Content for logged in members only"
2676
  msgstr ""
2677
 
2678
+ #: includes/shortcodes/menu.php:8
2679
  msgid "Menu"
2680
  msgstr ""
2681
 
2682
+ #: includes/shortcodes/menu.php:15
2683
  msgid "Menu name"
2684
  msgstr ""
2685
 
2686
+ #: includes/shortcodes/menu.php:16
2687
  msgid "Custom menu name. Ex: Main menu"
2688
  msgstr ""
2689
 
2690
+ #: includes/shortcodes/menu.php:25
2691
  msgid "Custom menu by name"
2692
  msgstr ""
2693
 
2694
+ #: includes/shortcodes/menu.php:52
2695
  msgid "This menu doesn't exists, or has no elements"
2696
  msgstr ""
2697
 
2698
+ #: includes/shortcodes/meta.php:8
2699
  msgid "Meta data"
2700
  msgstr ""
2701
 
2702
+ #: includes/shortcodes/meta.php:14
2703
  msgid "Key"
2704
  msgstr ""
2705
 
2706
+ #: includes/shortcodes/meta.php:15
2707
  msgid "Meta key name"
2708
  msgstr ""
2709
 
2710
+ #: includes/shortcodes/meta.php:20, includes/shortcodes/post.php:45, includes/shortcodes/user.php:37
2711
  msgid "This text will be shown if data is not found"
2712
  msgstr ""
2713
 
2714
+ #: includes/shortcodes/meta.php:24, includes/shortcodes/post.php:49, includes/shortcodes/user.php:41
2715
  msgid "Before"
2716
  msgstr ""
2717
 
2718
+ #: includes/shortcodes/meta.php:25, includes/shortcodes/post.php:50, includes/shortcodes/user.php:42
2719
  msgid "This content will be shown before the value"
2720
  msgstr ""
2721
 
2722
+ #: includes/shortcodes/meta.php:29, includes/shortcodes/post.php:54, includes/shortcodes/user.php:46
2723
  msgid "After"
2724
  msgstr ""
2725
 
2726
+ #: includes/shortcodes/meta.php:30, includes/shortcodes/post.php:55, includes/shortcodes/user.php:47
2727
  msgid "This content will be shown after the value"
2728
  msgstr ""
2729
 
2730
+ #: includes/shortcodes/meta.php:35
2731
  msgid "You can specify custom post ID. Leave this field empty to use an ID of the current post. Current post ID may not work in Live Preview mode"
2732
  msgstr ""
2733
 
2734
+ #: includes/shortcodes/meta.php:39, includes/shortcodes/post.php:70, includes/shortcodes/user.php:56
2735
  msgid "Filter"
2736
  msgstr ""
2737
 
2738
+ #: includes/shortcodes/meta.php:40, includes/shortcodes/post.php:71, includes/shortcodes/user.php:57
2739
  msgid "You can apply custom filter to the retrieved value. Enter here function name. Your function must accept one argument and return modified value. Name of your function must include word <b>filter</b>. Example function: "
2740
  msgstr ""
2741
 
2742
+ #: includes/shortcodes/meta.php:43
2743
  msgid "Post meta"
2744
  msgstr ""
2745
 
2746
+ #: includes/shortcodes/meta.php:67
2747
  msgid "post ID is incorrect"
2748
  msgstr ""
2749
 
2750
+ #: includes/shortcodes/meta.php:71
2751
  msgid "please specify meta key name"
2752
  msgstr ""
2753
 
2775
  msgid "Colored box"
2776
  msgstr ""
2777
 
2778
+ #: includes/shortcodes/permalink.php:8
2779
  msgid "Permalink"
2780
  msgstr ""
2781
 
2782
+ #: includes/shortcodes/permalink.php:15
2783
  msgid "Post or page ID"
2784
  msgstr ""
2785
 
2786
+ #: includes/shortcodes/permalink.php:25, includes/shortcodes/qrcode.php:69, includes/shortcodes/tabs.php:112
2787
  msgid "Link target"
2788
  msgstr ""
2789
 
2790
+ #: includes/shortcodes/permalink.php:30
2791
  msgid "A value for the title attribute of the link"
2792
  msgstr ""
2793
 
2794
+ #: includes/shortcodes/permalink.php:34
2795
  msgid "Rel"
2796
  msgstr ""
2797
 
2798
+ #: includes/shortcodes/permalink.php:35
2799
  msgid "A value for the rel attribute of the link"
2800
  msgstr ""
2801
 
2802
+ #: includes/shortcodes/permalink.php:45
2803
  msgid "Permalink to specified post/page"
2804
  msgstr ""
2805
 
2955
  msgid "Set to yes to prevent sticky posts from being moved to the start of the returned list of posts. They are still included, but appear in regular order."
2956
  msgstr ""
2957
 
2958
+ #: includes/shortcodes/private.php:8
2959
  msgid "Private"
2960
  msgstr ""
2961
 
2962
+ #: includes/shortcodes/private.php:19
2963
  msgid "Private note text"
2964
  msgstr ""
2965
 
2966
+ #: includes/shortcodes/private.php:20
2967
  msgid "Private note for post authors. Any content wrapped with this shortcode will only be visible to post authors (users with publish_posts capability)."
2968
  msgstr ""
2969
 
2970
+ #: includes/shortcodes/pullquote.php:8, includes/shortcodes/pullquote.php:29, includes/shortcodes/pullquote.php:30
2971
  msgid "Pullquote"
2972
  msgstr ""
2973
 
2974
+ #: includes/shortcodes/pullquote.php:20
2975
  msgid "Pullquote alignment (float)"
2976
  msgstr ""
2977
 
3052
  msgid "Blockquote alternative"
3053
  msgstr ""
3054
 
3055
+ #: includes/shortcodes/row.php:25
3056
  msgid "Row for flexible columns"
3057
  msgstr ""
3058
 
3132
  msgid "By default, the content of this shortcode will be visible all the time. By using fields below, you can add some limitations. For example, if you type 1-5 in the Days of the week field, content will be only shown from Monday to Friday. Using the same principles, you can limit content visibility from years to seconds."
3133
  msgstr ""
3134
 
3135
+ #: includes/shortcodes/screenr.php:10
3136
  msgid "Screenr"
3137
  msgstr ""
3138
 
3168
  msgid "Service box with title"
3169
  msgstr ""
3170
 
3171
+ #: includes/shortcodes/siblings.php:8
3172
  msgid "Siblings"
3173
  msgstr ""
3174
 
3175
+ #: includes/shortcodes/siblings.php:16, includes/shortcodes/subpages.php:16
3176
  msgid "Depth"
3177
  msgstr ""
3178
 
3179
+ #: includes/shortcodes/siblings.php:17
3180
  msgid "Max depth level"
3181
  msgstr ""
3182
 
3183
+ #: includes/shortcodes/siblings.php:26
3184
  msgid "List of cureent page siblings"
3185
  msgstr ""
3186
 
3187
  #. translators: Dep. – Deprecated
3188
+ #: includes/shortcodes/slider.php:10
3189
  msgid "Slider (Dep.)"
3190
  msgstr ""
3191
 
3192
+ #: includes/shortcodes/slider.php:65
3193
  msgid "Slider width (in pixels)"
3194
  msgstr ""
3195
 
3196
+ #: includes/shortcodes/slider.php:74
3197
  msgid "Slider height (in pixels)"
3198
  msgstr ""
3199
 
3200
+ #: includes/shortcodes/slider.php:80
3201
  msgid "Ignore width and height parameters and make slider responsive"
3202
  msgstr ""
3203
 
3204
+ #: includes/shortcodes/slider.php:86
3205
  msgid "Display slide titles"
3206
  msgstr ""
3207
 
3208
+ #: includes/shortcodes/slider.php:92
3209
  msgid "Is slider centered on the page"
3210
  msgstr ""
3211
 
3212
+ #: includes/shortcodes/slider.php:110
3213
  msgid "Allow to change slides with mouse wheel"
3214
  msgstr ""
3215
 
3216
+ #: includes/shortcodes/slider.php:119
3217
  msgid "Choose interval between slide animations. Set to 0 to disable autoplay"
3218
  msgstr ""
3219
 
3220
+ #: includes/shortcodes/slider.php:137
3221
  msgid "Customizable image slider"
3222
  msgstr ""
3223
 
3224
+ #: includes/shortcodes/spacer.php:8
3225
  msgid "Spacer"
3226
  msgstr ""
3227
 
3228
+ #: includes/shortcodes/spacer.php:19
3229
  msgid "Height of the spacer in pixels"
3230
  msgstr ""
3231
 
3232
+ #: includes/shortcodes/spacer.php:28
3233
  msgid "Empty space with adjustable height"
3234
  msgstr ""
3235
 
3341
  msgid "Spoiler with hidden content"
3342
  msgstr ""
3343
 
3344
+ #: includes/shortcodes/subpages.php:8
3345
  msgid "Sub pages"
3346
  msgstr ""
3347
 
3348
+ #: includes/shortcodes/subpages.php:17
3349
  msgid "Max depth level of children pages"
3350
  msgstr ""
3351
 
3352
+ #: includes/shortcodes/subpages.php:22
3353
  msgid "Parent ID"
3354
  msgstr ""
3355
 
3356
+ #: includes/shortcodes/subpages.php:23
3357
  msgid "ID of the parent page. Leave blank to use current page"
3358
  msgstr ""
3359
 
3360
+ #: includes/shortcodes/subpages.php:32
3361
  msgid "List of sub pages"
3362
  msgstr ""
3363
 
3383
  "</table>"
3384
  msgstr ""
3385
 
3386
+ #. translators: do not translate the <b>url</b> part, the <b>Unsafe features</b> must be translated
3387
+ #: includes/shortcodes/table.php:64
3388
+ msgid "The <b>url</b> attribute cannot be used while <b>Unsafe features</b> option is turned off"
3389
+ msgstr ""
3390
+
3391
  #: includes/shortcodes/tabs.php:7
3392
  msgid "Tabs"
3393
  msgstr ""
3673
  msgid "user not found"
3674
  msgstr ""
3675
 
3676
+ #: includes/shortcodes/video.php:8
3677
  msgid "Video"
3678
  msgstr ""
3679
 
3680
+ #: includes/shortcodes/video.php:16
3681
  msgid "Url to mp4/flv video-file"
3682
  msgstr ""
3683
 
3684
+ #: includes/shortcodes/video.php:21
3685
  msgid "Poster"
3686
  msgstr ""
3687
 
3688
+ #: includes/shortcodes/video.php:22
3689
  msgid "Url to poster image, that will be shown before playback"
3690
  msgstr ""
3691
 
3692
+ #: includes/shortcodes/video.php:28
3693
  msgid "Player title"
3694
  msgstr ""
3695
 
3696
+ #: includes/shortcodes/video.php:51, includes/shortcodes/youtube-advanced.php:55
3697
  msgid "Controls"
3698
  msgstr ""
3699
 
3700
+ #: includes/shortcodes/video.php:52
3701
  msgid "Show player controls (play/pause etc.) or not"
3702
  msgstr ""
3703
 
3704
+ #: includes/shortcodes/video.php:73
3705
  msgid "Custom video player"
3706
  msgstr ""
3707
 
3938
  msgid "Remind me later"
3939
  msgstr ""
3940
 
3941
+ #: admin/partials/notices/rate.php:18, admin/partials/notices/unsafe-features.php:20
3942
  msgid "Dismiss"
3943
  msgstr ""
3944
 
3945
+ #: admin/partials/notices/unsafe-features.php:16
3946
+ msgid "Some minor features of the plugin have been automatically disabled to improve the security."
3947
  msgstr ""
3948
 
3949
  #: admin/partials/pages/addons.php:30
3994
  msgid "Back to shortcodes list"
3995
  msgstr ""
3996
 
 
 
 
 
3997
  #: admin/partials/settings/fields/checkbox.php:3
3998
  msgid "Enabled"
3999
  msgstr ""
readme.txt CHANGED
@@ -5,8 +5,8 @@ Donate link: https://paypal.me/anovladimir
5
  Tags: shortcode, toggle, columns, button, slider
6
  Requires PHP: 5.3
7
  Requires at least: 4.6
8
- Tested up to: 5.7
9
- Stable tag: 5.10.1
10
 
11
  A comprehensive collection of visual components for your site
12
 
@@ -146,20 +146,20 @@ First, visit the [Help Center](https://getshortcodes.com/support/). If you get s
146
  ## Changelog
147
 
148
 
149
- ### 5.10.1
150
 
151
  **What's new**
152
 
153
- - `su_qrcode`'s data attribute now understands the following variables: `%CURRENT_URL%` for the current page URL, and `%PERMALINK%` for post permalink
 
 
154
 
155
  **Fixed**
156
 
157
- - Fixed `tax_relation` attribute of the `su_posts` shortcode. Thanks to [janeri2021](https://wordpress.org/support/topic/error-in-shortcode-posts/)
158
- - Fixed compatibility with Page Builder by SiteOrigin. [Details](https://github.com/siteorigin/so-widgets-bundle/issues/1247)
159
- - Fixed `BlockControls` console warning in the Block Editor
160
- - Added missing file `popper.min.js.map`
161
- - Fixed issue with invalid z-index value in the Tooltip shortcode
162
- - Fixed issue with the shortcode generator presets for the Tooltip shortcode
163
 
164
  ---
165
  [Version history →](https://plugins.trac.wordpress.org/browser/shortcodes-ultimate/trunk/changelog.txt)
5
  Tags: shortcode, toggle, columns, button, slider
6
  Requires PHP: 5.3
7
  Requires at least: 4.6
8
+ Tested up to: 5.8
9
+ Stable tag: 5.10.2
10
 
11
  A comprehensive collection of visual components for your site
12
 
146
  ## Changelog
147
 
148
 
149
+ ### 5.10.2
150
 
151
  **What's new**
152
 
153
+ - Plugin security have been improved. You may see a new notification in the admin area. [Learn more](https://getshortcodes.com/docs/unsafe-features/)
154
+ - Added new setting `Unsafe features` under `Shortcodes → Settings → Advanced settings`. [Learn more](https://getshortcodes.com/docs/unsafe-features/)
155
+ - Improved accessibility of the plugin settings page
156
 
157
  **Fixed**
158
 
159
+ - Fixed *This video is unavailable* in `su_youtube_advanced` shortcode
160
+ - Fixed compatibility issue with SiteOrigin Page Builder. You can now turn on or off the old widget under `Shortcodes -> Settings Advanced settings`
161
+ - Fixed issue in `[su_note]` when it was displaying empty id attribute
162
+ - Fixed PHP warning at the new Widgets screen
 
 
163
 
164
  ---
165
  [Version history →](https://plugins.trac.wordpress.org/browser/shortcodes-ultimate/trunk/changelog.txt)
shortcodes-ultimate.php CHANGED
@@ -2,7 +2,7 @@
2
  /**
3
  * Plugin Name: Shortcodes Ultimate
4
  * Plugin URI: https://getshortcodes.com/
5
- * Version: 5.10.1
6
  * Author: Vladimir Anokhin
7
  * Author URI: https://getshortcodes.com/
8
  * Description: A comprehensive collection of visual components for WordPress
@@ -10,14 +10,14 @@
10
  * License: GPLv3
11
  * Requires PHP: 5.3
12
  * Requires at least: 4.6
13
- * Tested up to: 5.7
14
  */
15
 
16
  /**
17
  * Define plugin constants.
18
  */
19
  define( 'SU_PLUGIN_FILE', __FILE__ );
20
- define( 'SU_PLUGIN_VERSION', '5.10.1' );
21
 
22
  /**
23
  * Load dependencies.
2
  /**
3
  * Plugin Name: Shortcodes Ultimate
4
  * Plugin URI: https://getshortcodes.com/
5
+ * Version: 5.10.2
6
  * Author: Vladimir Anokhin
7
  * Author URI: https://getshortcodes.com/
8
  * Description: A comprehensive collection of visual components for WordPress
10
  * License: GPLv3
11
  * Requires PHP: 5.3
12
  * Requires at least: 4.6
13
+ * Tested up to: 5.8
14
  */
15
 
16
  /**
17
  * Define plugin constants.
18
  */
19
  define( 'SU_PLUGIN_FILE', __FILE__ );
20
+ define( 'SU_PLUGIN_VERSION', '5.10.2' );
21
 
22
  /**
23
  * Load dependencies.