Shortcodes Ultimate - Version 4.9.8.1

Version Description

  • Fixed: compatibility with WordPress 4.3
  • Added: lightbox captions for slider, carousel and custom_gallery. Commit by Valentino Pistis
  • Changed: text domain from 'su' to 'shortcodes-ultimate'
Download this release

Release Info

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

Code changes from version 4.9.8 to 4.9.8.1

Files changed (42) hide show
  1. assets/js/galleries-shortcodes.js +2 -1
  2. inc/core/admin-views.php +40 -40
  3. inc/core/assets.php +17 -17
  4. inc/core/counters.php +2 -2
  5. inc/core/data.php +1008 -1008
  6. inc/core/generator-views.php +16 -16
  7. inc/core/generator.php +21 -21
  8. inc/core/load.php +34 -34
  9. inc/core/requirements.php +2 -2
  10. inc/core/shortcodes.php +44 -44
  11. inc/core/tools.php +7 -7
  12. inc/core/vote.php +7 -7
  13. inc/core/widget.php +4 -4
  14. languages/{su-cs_CZ.mo → shortcodes-ultimate-cs_CZ.mo} +0 -0
  15. languages/{su-cs_CZ.po → shortcodes-ultimate-cs_CZ.po} +0 -0
  16. languages/{su-el_GR.mo → shortcodes-ultimate-el_GR.mo} +0 -0
  17. languages/{su-el_GR.po → shortcodes-ultimate-el_GR.po} +0 -0
  18. languages/{su-es_ES.mo → shortcodes-ultimate-es_ES.mo} +0 -0
  19. languages/{su-es_ES.po → shortcodes-ultimate-es_ES.po} +0 -0
  20. languages/{su-fr_FR.mo → shortcodes-ultimate-fr_FR.mo} +0 -0
  21. languages/{su-fr_FR.po → shortcodes-ultimate-fr_FR.po} +0 -0
  22. languages/{su-ja.mo → shortcodes-ultimate-ja.mo} +0 -0
  23. languages/{su-ja.po → shortcodes-ultimate-ja.po} +0 -0
  24. languages/{su-nl_NL.mo → shortcodes-ultimate-nl_NL.mo} +0 -0
  25. languages/{su-nl_NL.po → shortcodes-ultimate-nl_NL.po} +0 -0
  26. languages/{su-pl_PL.mo → shortcodes-ultimate-pl_PL.mo} +0 -0
  27. languages/{su-pl_PL.po → shortcodes-ultimate-pl_PL.po} +0 -0
  28. languages/{su-ru_RU.mo → shortcodes-ultimate-ru_RU.mo} +0 -0
  29. languages/{su-ru_RU.po → shortcodes-ultimate-ru_RU.po} +0 -0
  30. languages/{su-sk_SK.mo → shortcodes-ultimate-sk_SK.mo} +0 -0
  31. languages/{su-sk_SK.po → shortcodes-ultimate-sk_SK.po} +0 -0
  32. languages/{su-vi.mo → shortcodes-ultimate-vi.mo} +0 -0
  33. languages/{su-vi.po → shortcodes-ultimate-vi.po} +0 -0
  34. languages/{su-zh_CN.mo → shortcodes-ultimate-zh_CN.mo} +0 -0
  35. languages/{su-zh_CN.po → shortcodes-ultimate-zh_CN.po} +0 -0
  36. languages/{su.pot → shortcodes-ultimate.pot} +0 -0
  37. readme.txt +6 -1
  38. shortcodes-ultimate.php +3 -3
  39. templates/default-loop.php +3 -3
  40. templates/list-loop.php +1 -1
  41. templates/single-post.php +2 -2
  42. templates/teaser-loop.php +1 -1
assets/js/galleries-shortcodes.js CHANGED
@@ -5,7 +5,8 @@ jQuery(document).ready(function ($) {
5
  $(this).find('.su-slider-slide, .su-carousel-slide, .su-custom-gallery-slide').each(function (i) {
6
  $(this).attr('data-index', i);
7
  slides.push({
8
- src: $(this).children('a').attr('href')
 
9
  });
10
  });
11
  $(this).data('slides', slides);
5
  $(this).find('.su-slider-slide, .su-carousel-slide, .su-custom-gallery-slide').each(function (i) {
6
  $(this).attr('data-index', i);
7
  slides.push({
8
+ src: $(this).children('a').attr('href'),
9
+ title: $(this).children('a').attr('title')
10
  });
11
  });
12
  $(this).data('slides', slides);
inc/core/admin-views.php CHANGED
@@ -6,43 +6,43 @@ class Su_Admin_Views {
6
  ob_start();
7
  ?>
8
  <div id="su-about-screen">
9
- <h1><?php _e( 'Welcome to Shortcodes Ultimate', 'su' ); ?> <small><?php _e( 'A real swiss army knife for WordPress', 'su' ); ?></small></h1>
10
  <div class="sunrise-inline-menu">
11
- <a href="http://gndev.info/shortcodes-ultimate/" target="_blank"><strong><?php _e( 'Project homepage', 'su' ); ?></strong></a>
12
- <a href="http://gndev.info/kb/" target="_blank"><?php _e( 'Documentation', 'su' ); ?></a>
13
- <a href="http://wordpress.org/support/plugin/shortcodes-ultimate/" target="_blank"><?php _e( 'Support forum', 'su' ); ?></a>
14
- <a href="http://wordpress.org/extend/plugins/shortcodes-ultimate/changelog/" target="_blank"><?php _e( 'Changelog', 'su' ); ?></a>
15
- <a href="https://github.com/gndev/shortcodes-ultimate" target="_blank"><?php _e( 'Fork on GitHub', 'su' ); ?></a>
16
  </div>
17
  <div class="su-clearfix">
18
  <div class="su-about-column">
19
- <h3><?php _e( 'Plugin features', 'su' ); ?></h3>
20
  <ul>
21
- <li><?php _e( '40+ amazing shortcodes', 'su' ); ?></li>
22
- <li><?php _e( 'Power of CSS3 transitions', 'su' ); ?></li>
23
- <li><?php _e( 'Handy shortcodes generator', 'su' ) ?></li>
24
- <li><?php _e( 'International', 'su' ); ?></li>
25
- <li><?php _e( 'Documented API', 'su' ); ?></li>
26
  </ul>
27
  </div>
28
  <div class="su-about-column">
29
- <h3><?php _e( 'What is a shortcode?', 'su' ); ?></h3>
30
- <p><?php _e( '<strong>Shortcode</strong> is a WordPress-specific code that lets you do nifty things with very little effort.', 'su' ); ?></p>
31
- <p><?php _e( 'Shortcodes can embed files or create objects that would normally require lots of complicated, ugly code in just one line. Shortcode = shortcut.', 'su' ); ?></p>
32
  </div>
33
  </div>
34
  <div class="su-clearfix">
35
  <div class="su-about-column">
36
- <h3><?php _e( 'How does it works', 'su' ); ?></h3>
37
  <a href="http://www.youtube.com/watch?v=lni-w2dtcQY?autoplay=1&amp;showinfo=0&amp;rel=0&amp;theme=light#" target="_blank" class="su-demo-video"><img src="<?php echo plugins_url( 'assets/images/banners/how-it-works.jpg', SU_PLUGIN_FILE ); ?>" alt=""></a>
38
  </div>
39
  <div class="su-about-column">
40
- <h3><?php _e( 'More videos', 'su' ); ?></h3>
41
  <ul>
42
- <li><a href="http://www.youtube.com/watch?v=IjmaXz-b55I" target="_blank"><?php _e( 'Shortcodes Ultimate Tutorial', 'su' ); ?></a></li>
43
- <li><a href="http://www.youtube.com/watch?v=YU3Zu6C5ZfA" target="_blank"><?php _e( 'How to use special widget', 'su' ); ?></a></li>
44
- <li><a href="http://www.screenr.com/BK0H" target="_blank"><?php _e( 'How to create Carousel', 'su' ); ?></a></li>
45
- <li><a href="http://www.youtube.com/watch?v=kCWyO2F7jTw" target="_blank"><?php _e( 'How to create image gallery', 'su' ); ?></a></li>
46
  </ul>
47
  </div>
48
  </div>
@@ -113,11 +113,11 @@ class Su_Admin_Views {
113
 
114
  public static function cheatsheet( $field, $config ) {
115
  // Prepare print button
116
- $print = '<div><a href="javascript:;" id="su-cheatsheet-print" class="su-cheatsheet-switch button button-primary button-large">' . __( 'Printable version', 'su' ) . '</a><div id="su-cheatsheet-print-head"><h1>' . __( 'Shortcodes Ultimate', 'su' ) . ': ' . __( 'Cheatsheet', 'su' ) . '</h1><a href="javascript:;" class="su-cheatsheet-switch">&larr; ' . __( 'Back to Dashboard', 'su' ) . '</a></div></div>';
117
  // Prepare table array
118
  $table = array();
119
  // Table start
120
- $table[] = '<table><tr><th style="width:20%;">' . __( 'Shortcode', 'su' ) . '</th><th style="width:50%">' . __( 'Attributes', 'su' ) . '</th><th style="width:30%">' . __( 'Example code', 'su' ) . '</th></tr>';
121
  // Loop through shortcodes
122
  foreach ( (array) Su_Data::shortcodes() as $name => $shortcode ) {
123
  // Prepare vars
@@ -125,12 +125,12 @@ class Su_Admin_Views {
125
  $shortcode['name'] = ( isset( $shortcode['name'] ) ) ? $shortcode['name'] : $name;
126
  $attributes = array();
127
  $example = array();
128
- $icons = 'icon: music, icon: envelope &hellip; <a href="http://fortawesome.github.io/Font-Awesome/icons/" target="_blank">' . __( 'full list', 'su' ) . '</a>';
129
  // Loop through attributes
130
  if ( is_array( $shortcode['atts'] ) )
131
  foreach ( $shortcode['atts'] as $id => $data ) {
132
  // Prepare default value
133
- $default = ( isset( $data['default'] ) && $data['default'] !== '' ) ? '<p><em>' . __( 'Default value', 'su' ) . ':</em> ' . $data['default'] . '</p>' : '';
134
  // Check type is set
135
  if ( empty( $data['type'] ) ) $data['type'] = 'text';
136
  // Switch attribute types
@@ -162,11 +162,11 @@ class Su_Admin_Views {
162
  break;
163
  }
164
  // Check empty value
165
- if ( $value === '' ) $value = __( 'Any text value', 'su' );
166
  // Extra CSS class
167
- if ( $id === 'class' ) $value = __( 'Any custom CSS classes', 'su' );
168
  // Add attribute
169
- $attributes[] = '<div class="su-shortcode-attribute"><strong>' . $data['name'] . ' <em>&ndash; ' . $id . '</em></strong><p><em>' . __( 'Possible values', 'su' ) . ':</em> ' . $value . '</p>' . $default . '</div>';
170
  // Add attribute to the example code
171
  $example[] = $id . '="' . $data['default'] . '"';
172
  }
@@ -198,42 +198,42 @@ class Su_Admin_Views {
198
  $output = array();
199
  $addons = array(
200
  array(
201
- 'name' => __( 'New Shortcodes', 'su' ),
202
- 'desc' => __( 'Parallax sections, responsive content slider, pricing tables, vector icons, testimonials, progress bars and even more', 'su' ),
203
  'url' => 'http://gndev.info/shortcodes-ultimate/extra/',
204
  'image' => plugins_url( 'assets/images/banners/extra.png', SU_PLUGIN_FILE )
205
  ),
206
  array(
207
- 'name' => __( 'Maker', 'su' ),
208
- 'desc' => __( 'This add-on allows you to create custom shortcodes. You can easily create any shortcode with different parameters or even override default shortcodes', 'su' ),
209
  'url' => 'http://gndev.info/shortcodes-ultimate/maker/',
210
  'image' => plugins_url( 'assets/images/banners/maker.png', SU_PLUGIN_FILE )
211
  ),
212
  array(
213
- 'name' => __( 'Skins', 'su' ),
214
- 'desc' => __( 'Set of additional skins for Shortcodes Ultimate. It includes skins for accordeons/spoilers, tabs and some other shortcodes', 'su' ),
215
  'url' => 'http://gndev.info/shortcodes-ultimate/skins/',
216
  'image' => plugins_url( 'assets/images/banners/skins.png', SU_PLUGIN_FILE )
217
  ),
218
  array(
219
- 'name' => __( 'Add-ons bundle', 'su' ),
220
- 'desc' => __( 'Get all three add-ons with huge discount!', 'su' ),
221
  'url' => 'http://gndev.info/shortcodes-ultimate/add-ons-bundle/',
222
  'image' => plugins_url( 'assets/images/banners/bundle.png', SU_PLUGIN_FILE )
223
  ),
224
  );
225
  $plugins = array();
226
- $output[] = '<h2>' . __( 'Shortcodes Ultimate Add-ons', 'su' ) . '</h2>';
227
  $output[] = '<div class="su-addons-loop su-clearfix">';
228
  foreach ( $addons as $addon ) {
229
- $output[] = '<div class="su-addons-item" style="visibility:hidden" data-url="' . $addon['url'] . '"><img src="' . $addon['image'] . '" alt="' . $addon['image'] . '" /><div class="su-addons-item-content"><h4>' . $addon['name'] . '</h4><p>' . $addon['desc'] . '</p><div class="su-addons-item-button"><a href="' . $addon['url'] . '" class="button button-primary" target="_blank">' . __( 'Learn more', 'su' ) . '</a></div></div></div>';
230
  }
231
  $output[] = '</div>';
232
  if ( count( $plugins ) ) {
233
- $output[] = '<h2>' . __( 'Other WordPress Plugins', 'su' ) . '</h2>';
234
  $output[] = '<div class="su-addons-loop su-clearfix">';
235
  foreach ( $plugins as $plugin ) {
236
- $output[] = '<div class="su-addons-item" style="visibility:hidden" data-url="' . $plugin['url'] . '"><img src="' . $plugin['image'] . '" alt="' . $plugin['image'] . '" /><div class="su-addons-item-content"><h4>' . $plugin['name'] . '</h4><p>' . $plugin['desc'] . '</p>' . Su_Shortcodes::button( array( 'url' => $plugin['url'], 'target' => 'blank', 'style' => 'flat', 'background' => '#FF7654', 'wide' => 'yes', 'radius' => '0' ), __( 'Learn more', 'su' ) ) . '</div></div>';
237
  }
238
  $output[] = '</div>';
239
  }
6
  ob_start();
7
  ?>
8
  <div id="su-about-screen">
9
+ <h1><?php _e( 'Welcome to Shortcodes Ultimate', 'shortcodes-ultimate' ); ?> <small><?php _e( 'A real swiss army knife for WordPress', 'shortcodes-ultimate' ); ?></small></h1>
10
  <div class="sunrise-inline-menu">
11
+ <a href="http://gndev.info/shortcodes-ultimate/" target="_blank"><strong><?php _e( 'Project homepage', 'shortcodes-ultimate' ); ?></strong></a>
12
+ <a href="http://gndev.info/kb/" target="_blank"><?php _e( 'Documentation', 'shortcodes-ultimate' ); ?></a>
13
+ <a href="http://wordpress.org/support/plugin/shortcodes-ultimate/" target="_blank"><?php _e( 'Support forum', 'shortcodes-ultimate' ); ?></a>
14
+ <a href="http://wordpress.org/extend/plugins/shortcodes-ultimate/changelog/" target="_blank"><?php _e( 'Changelog', 'shortcodes-ultimate' ); ?></a>
15
+ <a href="https://github.com/gndev/shortcodes-ultimate" target="_blank"><?php _e( 'Fork on GitHub', 'shortcodes-ultimate' ); ?></a>
16
  </div>
17
  <div class="su-clearfix">
18
  <div class="su-about-column">
19
+ <h3><?php _e( 'Plugin features', 'shortcodes-ultimate' ); ?></h3>
20
  <ul>
21
+ <li><?php _e( '40+ amazing shortcodes', 'shortcodes-ultimate' ); ?></li>
22
+ <li><?php _e( 'Power of CSS3 transitions', 'shortcodes-ultimate' ); ?></li>
23
+ <li><?php _e( 'Handy shortcodes generator', 'shortcodes-ultimate' ) ?></li>
24
+ <li><?php _e( 'International', 'shortcodes-ultimate' ); ?></li>
25
+ <li><?php _e( 'Documented API', 'shortcodes-ultimate' ); ?></li>
26
  </ul>
27
  </div>
28
  <div class="su-about-column">
29
+ <h3><?php _e( 'What is a shortcode?', 'shortcodes-ultimate' ); ?></h3>
30
+ <p><?php _e( '<strong>Shortcode</strong> is a WordPress-specific code that lets you do nifty things with very little effort.', 'shortcodes-ultimate' ); ?></p>
31
+ <p><?php _e( 'Shortcodes can embed files or create objects that would normally require lots of complicated, ugly code in just one line. Shortcode = shortcut.', 'shortcodes-ultimate' ); ?></p>
32
  </div>
33
  </div>
34
  <div class="su-clearfix">
35
  <div class="su-about-column">
36
+ <h3><?php _e( 'How does it works', 'shortcodes-ultimate' ); ?></h3>
37
  <a href="http://www.youtube.com/watch?v=lni-w2dtcQY?autoplay=1&amp;showinfo=0&amp;rel=0&amp;theme=light#" target="_blank" class="su-demo-video"><img src="<?php echo plugins_url( 'assets/images/banners/how-it-works.jpg', SU_PLUGIN_FILE ); ?>" alt=""></a>
38
  </div>
39
  <div class="su-about-column">
40
+ <h3><?php _e( 'More videos', 'shortcodes-ultimate' ); ?></h3>
41
  <ul>
42
+ <li><a href="http://www.youtube.com/watch?v=IjmaXz-b55I" target="_blank"><?php _e( 'Shortcodes Ultimate Tutorial', 'shortcodes-ultimate' ); ?></a></li>
43
+ <li><a href="http://www.youtube.com/watch?v=YU3Zu6C5ZfA" target="_blank"><?php _e( 'How to use special widget', 'shortcodes-ultimate' ); ?></a></li>
44
+ <li><a href="http://www.screenr.com/BK0H" target="_blank"><?php _e( 'How to create Carousel', 'shortcodes-ultimate' ); ?></a></li>
45
+ <li><a href="http://www.youtube.com/watch?v=kCWyO2F7jTw" target="_blank"><?php _e( 'How to create image gallery', 'shortcodes-ultimate' ); ?></a></li>
46
  </ul>
47
  </div>
48
  </div>
113
 
114
  public static function cheatsheet( $field, $config ) {
115
  // Prepare print button
116
+ $print = '<div><a href="javascript:;" id="su-cheatsheet-print" class="su-cheatsheet-switch button button-primary button-large">' . __( 'Printable version', 'shortcodes-ultimate' ) . '</a><div id="su-cheatsheet-print-head"><h1>' . __( 'Shortcodes Ultimate', 'shortcodes-ultimate' ) . ': ' . __( 'Cheatsheet', 'shortcodes-ultimate' ) . '</h1><a href="javascript:;" class="su-cheatsheet-switch">&larr; ' . __( 'Back to Dashboard', 'shortcodes-ultimate' ) . '</a></div></div>';
117
  // Prepare table array
118
  $table = array();
119
  // Table start
120
+ $table[] = '<table><tr><th style="width:20%;">' . __( 'Shortcode', 'shortcodes-ultimate' ) . '</th><th style="width:50%">' . __( 'Attributes', 'shortcodes-ultimate' ) . '</th><th style="width:30%">' . __( 'Example code', 'shortcodes-ultimate' ) . '</th></tr>';
121
  // Loop through shortcodes
122
  foreach ( (array) Su_Data::shortcodes() as $name => $shortcode ) {
123
  // Prepare vars
125
  $shortcode['name'] = ( isset( $shortcode['name'] ) ) ? $shortcode['name'] : $name;
126
  $attributes = array();
127
  $example = array();
128
+ $icons = 'icon: music, icon: envelope &hellip; <a href="http://fortawesome.github.io/Font-Awesome/icons/" target="_blank">' . __( 'full list', 'shortcodes-ultimate' ) . '</a>';
129
  // Loop through attributes
130
  if ( is_array( $shortcode['atts'] ) )
131
  foreach ( $shortcode['atts'] as $id => $data ) {
132
  // Prepare default value
133
+ $default = ( isset( $data['default'] ) && $data['default'] !== '' ) ? '<p><em>' . __( 'Default value', 'shortcodes-ultimate' ) . ':</em> ' . $data['default'] . '</p>' : '';
134
  // Check type is set
135
  if ( empty( $data['type'] ) ) $data['type'] = 'text';
136
  // Switch attribute types
162
  break;
163
  }
164
  // Check empty value
165
+ if ( $value === '' ) $value = __( 'Any text value', 'shortcodes-ultimate' );
166
  // Extra CSS class
167
+ if ( $id === 'class' ) $value = __( 'Any custom CSS classes', 'shortcodes-ultimate' );
168
  // Add attribute
169
+ $attributes[] = '<div class="su-shortcode-attribute"><strong>' . $data['name'] . ' <em>&ndash; ' . $id . '</em></strong><p><em>' . __( 'Possible values', 'shortcodes-ultimate' ) . ':</em> ' . $value . '</p>' . $default . '</div>';
170
  // Add attribute to the example code
171
  $example[] = $id . '="' . $data['default'] . '"';
172
  }
198
  $output = array();
199
  $addons = array(
200
  array(
201
+ 'name' => __( 'New Shortcodes', 'shortcodes-ultimate' ),
202
+ 'desc' => __( 'Parallax sections, responsive content slider, pricing tables, vector icons, testimonials, progress bars and even more', 'shortcodes-ultimate' ),
203
  'url' => 'http://gndev.info/shortcodes-ultimate/extra/',
204
  'image' => plugins_url( 'assets/images/banners/extra.png', SU_PLUGIN_FILE )
205
  ),
206
  array(
207
+ 'name' => __( 'Maker', 'shortcodes-ultimate' ),
208
+ 'desc' => __( 'This add-on allows you to create custom shortcodes. You can easily create any shortcode with different parameters or even override default shortcodes', 'shortcodes-ultimate' ),
209
  'url' => 'http://gndev.info/shortcodes-ultimate/maker/',
210
  'image' => plugins_url( 'assets/images/banners/maker.png', SU_PLUGIN_FILE )
211
  ),
212
  array(
213
+ 'name' => __( 'Skins', 'shortcodes-ultimate' ),
214
+ 'desc' => __( 'Set of additional skins for Shortcodes Ultimate. It includes skins for accordeons/spoilers, tabs and some other shortcodes', 'shortcodes-ultimate' ),
215
  'url' => 'http://gndev.info/shortcodes-ultimate/skins/',
216
  'image' => plugins_url( 'assets/images/banners/skins.png', SU_PLUGIN_FILE )
217
  ),
218
  array(
219
+ 'name' => __( 'Add-ons bundle', 'shortcodes-ultimate' ),
220
+ 'desc' => __( 'Get all three add-ons with huge discount!', 'shortcodes-ultimate' ),
221
  'url' => 'http://gndev.info/shortcodes-ultimate/add-ons-bundle/',
222
  'image' => plugins_url( 'assets/images/banners/bundle.png', SU_PLUGIN_FILE )
223
  ),
224
  );
225
  $plugins = array();
226
+ $output[] = '<h2>' . __( 'Shortcodes Ultimate Add-ons', 'shortcodes-ultimate' ) . '</h2>';
227
  $output[] = '<div class="su-addons-loop su-clearfix">';
228
  foreach ( $addons as $addon ) {
229
+ $output[] = '<div class="su-addons-item" style="visibility:hidden" data-url="' . $addon['url'] . '"><img src="' . $addon['image'] . '" alt="' . $addon['image'] . '" /><div class="su-addons-item-content"><h4>' . $addon['name'] . '</h4><p>' . $addon['desc'] . '</p><div class="su-addons-item-button"><a href="' . $addon['url'] . '" class="button button-primary" target="_blank">' . __( 'Learn more', 'shortcodes-ultimate' ) . '</a></div></div></div>';
230
  }
231
  $output[] = '</div>';
232
  if ( count( $plugins ) ) {
233
+ $output[] = '<h2>' . __( 'Other WordPress Plugins', 'shortcodes-ultimate' ) . '</h2>';
234
  $output[] = '<div class="su-addons-loop su-clearfix">';
235
  foreach ( $plugins as $plugin ) {
236
+ $output[] = '<div class="su-addons-item" style="visibility:hidden" data-url="' . $plugin['url'] . '"><img src="' . $plugin['image'] . '" alt="' . $plugin['image'] . '" /><div class="su-addons-item-content"><h4>' . $plugin['name'] . '</h4><p>' . $plugin['desc'] . '</p>' . Su_Shortcodes::button( array( 'url' => $plugin['url'], 'target' => 'blank', 'style' => 'flat', 'background' => '#FF7654', 'wide' => 'yes', 'radius' => '0' ), __( 'Learn more', 'shortcodes-ultimate' ) ) . '</div></div>';
237
  }
238
  $output[] = '</div>';
239
  }
inc/core/assets.php CHANGED
@@ -66,12 +66,12 @@ class Su_Assets {
66
  wp_register_style( 'magnific-popup', plugins_url( 'assets/css/magnific-popup.css', SU_PLUGIN_FILE ), false, '0.9.9', 'all' );
67
  wp_register_script( 'magnific-popup', plugins_url( 'assets/js/magnific-popup.js', SU_PLUGIN_FILE ), array( 'jquery' ), '0.9.9', true );
68
  wp_localize_script( 'magnific-popup', 'su_magnific_popup', array(
69
- 'close' => __( 'Close (Esc)', 'su' ),
70
- 'loading' => __( 'Loading...', 'su' ),
71
- 'prev' => __( 'Previous (Left arrow key)', 'su' ),
72
- 'next' => __( 'Next (Right arrow key)', 'su' ),
73
- 'counter' => sprintf( __( '%s of %s', 'su' ), '%curr%', '%total%' ),
74
- 'error' => sprintf( __( 'Failed to load this link. %sOpen link%s.', 'su' ), '<a href="%url%" target="_blank"><u>', '</u></a>' )
75
  ) );
76
  // Ace
77
  wp_register_script( 'ace', plugins_url( 'assets/js/ace/ace.js', SU_PLUGIN_FILE ), false, '1.1.3', true );
@@ -83,9 +83,9 @@ class Su_Assets {
83
  wp_register_style( 'su-options-page', plugins_url( 'assets/css/options-page.css', SU_PLUGIN_FILE ), false, SU_PLUGIN_VERSION, 'all' );
84
  wp_register_script( 'su-options-page', plugins_url( 'assets/js/options-page.js', SU_PLUGIN_FILE ), array( 'magnific-popup', 'jquery-ui-sortable', 'ace', 'jsrender' ), SU_PLUGIN_VERSION, true );
85
  wp_localize_script( 'su-options-page', 'su_options_page', array(
86
- 'upload_title' => __( 'Choose files', 'su' ),
87
- 'upload_insert' => __( 'Add selected files', 'su' ),
88
- 'not_clickable' => __( 'This button is not clickable', 'su' )
89
  ) );
90
  // Cheatsheet
91
  wp_register_style( 'su-cheatsheet', plugins_url( 'assets/css/cheatsheet.css', SU_PLUGIN_FILE ), false, SU_PLUGIN_VERSION, 'all' );
@@ -93,13 +93,13 @@ class Su_Assets {
93
  wp_register_style( 'su-generator', plugins_url( 'assets/css/generator.css', SU_PLUGIN_FILE ), array( 'farbtastic', 'magnific-popup' ), SU_PLUGIN_VERSION, 'all' );
94
  wp_register_script( 'su-generator', plugins_url( 'assets/js/generator.js', SU_PLUGIN_FILE ), array( 'farbtastic', 'magnific-popup', 'qtip' ), SU_PLUGIN_VERSION, true );
95
  wp_localize_script( 'su-generator', 'su_generator', array(
96
- 'upload_title' => __( 'Choose file', 'su' ),
97
- 'upload_insert' => __( 'Insert', 'su' ),
98
- 'isp_media_title' => __( 'Select images', 'su' ),
99
- 'isp_media_insert' => __( 'Add selected images', 'su' ),
100
- 'presets_prompt_msg' => __( 'Please enter a name for new preset', 'su' ),
101
- 'presets_prompt_value' => __( 'New preset', 'su' ),
102
- 'last_used' => __( 'Last used settings', 'su' ),
103
  'hotkey' => get_option( 'su_option_hotkey' )
104
  ) );
105
  // Shortcodes stylesheets
@@ -116,7 +116,7 @@ class Su_Assets {
116
  wp_register_script( 'su-galleries-shortcodes', plugins_url( 'assets/js/galleries-shortcodes.js', SU_PLUGIN_FILE ), array( 'jquery', 'swiper' ), SU_PLUGIN_VERSION, true );
117
  wp_register_script( 'su-players-shortcodes', plugins_url( 'assets/js/players-shortcodes.js', SU_PLUGIN_FILE ), array( 'jquery', 'jplayer' ), SU_PLUGIN_VERSION, true );
118
  wp_register_script( 'su-other-shortcodes', plugins_url( 'assets/js/other-shortcodes.js', SU_PLUGIN_FILE ), array( 'jquery' ), SU_PLUGIN_VERSION, true );
119
- wp_localize_script( 'su-other-shortcodes', 'su_other_shortcodes', array( 'no_preview' => __( 'This shortcode doesn\'t work in live preview. Please insert it into editor and preview on the site.', 'su' ) ) );
120
  // Hook to deregister assets or add custom
121
  do_action( 'su/assets/register' );
122
  }
66
  wp_register_style( 'magnific-popup', plugins_url( 'assets/css/magnific-popup.css', SU_PLUGIN_FILE ), false, '0.9.9', 'all' );
67
  wp_register_script( 'magnific-popup', plugins_url( 'assets/js/magnific-popup.js', SU_PLUGIN_FILE ), array( 'jquery' ), '0.9.9', true );
68
  wp_localize_script( 'magnific-popup', 'su_magnific_popup', array(
69
+ 'close' => __( 'Close (Esc)', 'shortcodes-ultimate' ),
70
+ 'loading' => __( 'Loading...', 'shortcodes-ultimate' ),
71
+ 'prev' => __( 'Previous (Left arrow key)', 'shortcodes-ultimate' ),
72
+ 'next' => __( 'Next (Right arrow key)', 'shortcodes-ultimate' ),
73
+ 'counter' => sprintf( __( '%s of %s', 'shortcodes-ultimate' ), '%curr%', '%total%' ),
74
+ 'error' => sprintf( __( 'Failed to load this link. %sOpen link%s.', 'shortcodes-ultimate' ), '<a href="%url%" target="_blank"><u>', '</u></a>' )
75
  ) );
76
  // Ace
77
  wp_register_script( 'ace', plugins_url( 'assets/js/ace/ace.js', SU_PLUGIN_FILE ), false, '1.1.3', true );
83
  wp_register_style( 'su-options-page', plugins_url( 'assets/css/options-page.css', SU_PLUGIN_FILE ), false, SU_PLUGIN_VERSION, 'all' );
84
  wp_register_script( 'su-options-page', plugins_url( 'assets/js/options-page.js', SU_PLUGIN_FILE ), array( 'magnific-popup', 'jquery-ui-sortable', 'ace', 'jsrender' ), SU_PLUGIN_VERSION, true );
85
  wp_localize_script( 'su-options-page', 'su_options_page', array(
86
+ 'upload_title' => __( 'Choose files', 'shortcodes-ultimate' ),
87
+ 'upload_insert' => __( 'Add selected files', 'shortcodes-ultimate' ),
88
+ 'not_clickable' => __( 'This button is not clickable', 'shortcodes-ultimate' )
89
  ) );
90
  // Cheatsheet
91
  wp_register_style( 'su-cheatsheet', plugins_url( 'assets/css/cheatsheet.css', SU_PLUGIN_FILE ), false, SU_PLUGIN_VERSION, 'all' );
93
  wp_register_style( 'su-generator', plugins_url( 'assets/css/generator.css', SU_PLUGIN_FILE ), array( 'farbtastic', 'magnific-popup' ), SU_PLUGIN_VERSION, 'all' );
94
  wp_register_script( 'su-generator', plugins_url( 'assets/js/generator.js', SU_PLUGIN_FILE ), array( 'farbtastic', 'magnific-popup', 'qtip' ), SU_PLUGIN_VERSION, true );
95
  wp_localize_script( 'su-generator', 'su_generator', array(
96
+ 'upload_title' => __( 'Choose file', 'shortcodes-ultimate' ),
97
+ 'upload_insert' => __( 'Insert', 'shortcodes-ultimate' ),
98
+ 'isp_media_title' => __( 'Select images', 'shortcodes-ultimate' ),
99
+ 'isp_media_insert' => __( 'Add selected images', 'shortcodes-ultimate' ),
100
+ 'presets_prompt_msg' => __( 'Please enter a name for new preset', 'shortcodes-ultimate' ),
101
+ 'presets_prompt_value' => __( 'New preset', 'shortcodes-ultimate' ),
102
+ 'last_used' => __( 'Last used settings', 'shortcodes-ultimate' ),
103
  'hotkey' => get_option( 'su_option_hotkey' )
104
  ) );
105
  // Shortcodes stylesheets
116
  wp_register_script( 'su-galleries-shortcodes', plugins_url( 'assets/js/galleries-shortcodes.js', SU_PLUGIN_FILE ), array( 'jquery', 'swiper' ), SU_PLUGIN_VERSION, true );
117
  wp_register_script( 'su-players-shortcodes', plugins_url( 'assets/js/players-shortcodes.js', SU_PLUGIN_FILE ), array( 'jquery', 'jplayer' ), SU_PLUGIN_VERSION, true );
118
  wp_register_script( 'su-other-shortcodes', plugins_url( 'assets/js/other-shortcodes.js', SU_PLUGIN_FILE ), array( 'jquery' ), SU_PLUGIN_VERSION, true );
119
+ wp_localize_script( 'su-other-shortcodes', 'su_other_shortcodes', array( 'no_preview' => __( 'This shortcode doesn\'t work in live preview. Please insert it into editor and preview on the site.', 'shortcodes-ultimate' ) ) );
120
  // Hook to deregister assets or add custom
121
  do_action( 'su/assets/register' );
122
  }
inc/core/counters.php CHANGED
@@ -15,7 +15,7 @@ class Su_Counter_Extra_Addon {
15
  return sprintf(
16
  '%s <span class="update-plugins count-1" title="%s"><span class="update-count">%s</span></span>',
17
  $title,
18
- __( '1 new add-on for Shortcodes Ultimate', 'su' ),
19
  '1'
20
  );
21
  }
@@ -42,7 +42,7 @@ class Su_Counter_Bundle {
42
  return sprintf(
43
  '%s <span class="update-plugins count-1" title="%s"><span class="update-count">%s</span></span>',
44
  $title,
45
- __( '1 new add-on for Shortcodes Ultimate', 'su' ),
46
  '1'
47
  );
48
  }
15
  return sprintf(
16
  '%s <span class="update-plugins count-1" title="%s"><span class="update-count">%s</span></span>',
17
  $title,
18
+ __( '1 new add-on for Shortcodes Ultimate', 'shortcodes-ultimate' ),
19
  '1'
20
  );
21
  }
42
  return sprintf(
43
  '%s <span class="update-plugins count-1" title="%s"><span class="update-count">%s</span></span>',
44
  $title,
45
+ __( '1 new add-on for Shortcodes Ultimate', 'shortcodes-ultimate' ),
46
  '1'
47
  );
48
  }
inc/core/data.php CHANGED
@@ -14,13 +14,13 @@ class Su_Data {
14
  */
15
  public static function groups() {
16
  return apply_filters( 'su/data/groups', array(
17
- 'all' => __( 'All', 'su' ),
18
- 'content' => __( 'Content', 'su' ),
19
- 'box' => __( 'Box', 'su' ),
20
- 'media' => __( 'Media', 'su' ),
21
- 'gallery' => __( 'Gallery', 'su' ),
22
- 'data' => __( 'Data', 'su' ),
23
- 'other' => __( 'Other', 'su' )
24
  ) );
25
  }
26
 
@@ -29,13 +29,13 @@ class Su_Data {
29
  */
30
  public static function borders() {
31
  return apply_filters( 'su/data/borders', array(
32
- 'none' => __( 'None', 'su' ),
33
- 'solid' => __( 'Solid', 'su' ),
34
- 'dotted' => __( 'Dotted', 'su' ),
35
- 'dashed' => __( 'Dashed', 'su' ),
36
- 'double' => __( 'Double', 'su' ),
37
- 'groove' => __( 'Groove', 'su' ),
38
- 'ridge' => __( 'Ridge', 'su' )
39
  ) );
40
  }
41
 
@@ -59,40 +59,40 @@ class Su_Data {
59
  public static function examples() {
60
  return apply_filters( 'su/data/examples', array(
61
  'basic' => array(
62
- 'title' => __( 'Basic examples', 'su' ),
63
  'items' => array(
64
  array(
65
- 'name' => __( 'Accordions, spoilers, different styles, anchors', 'su' ),
66
  'id' => 'spoilers',
67
  'code' => plugin_dir_path( SU_PLUGIN_FILE ) . '/inc/examples/spoilers.example',
68
  'icon' => 'tasks'
69
  ),
70
  array(
71
- 'name' => __( 'Tabs, vertical tabs, tab anchors', 'su' ),
72
  'id' => 'tabs',
73
  'code' => plugin_dir_path( SU_PLUGIN_FILE ) . '/inc/examples/tabs.example',
74
  'icon' => 'folder'
75
  ),
76
  array(
77
- 'name' => __( 'Column layouts', 'su' ),
78
  'id' => 'columns',
79
  'code' => plugin_dir_path( SU_PLUGIN_FILE ) . '/inc/examples/columns.example',
80
  'icon' => 'th-large'
81
  ),
82
  array(
83
- 'name' => __( 'Media elements, YouTube, Vimeo, Screenr and self-hosted videos, audio player', 'su' ),
84
  'id' => 'media',
85
  'code' => plugin_dir_path( SU_PLUGIN_FILE ) . '/inc/examples/media.example',
86
  'icon' => 'play-circle'
87
  ),
88
  array(
89
- 'name' => __( 'Unlimited buttons', 'su' ),
90
  'id' => 'buttons',
91
  'code' => plugin_dir_path( SU_PLUGIN_FILE ) . '/inc/examples/buttons.example',
92
  'icon' => 'heart'
93
  ),
94
  array(
95
- 'name' => __( 'Animations', 'su' ),
96
  'id' => 'animations',
97
  'code' => plugin_dir_path( SU_PLUGIN_FILE ) . '/inc/examples/animations.example',
98
  'icon' => 'bolt'
@@ -100,16 +100,16 @@ class Su_Data {
100
  )
101
  ),
102
  'advanced' => array(
103
- 'title' => __( 'Advanced examples', 'su' ),
104
  'items' => array(
105
  array(
106
- 'name' => __( 'Interacting with posts shortcode', 'su' ),
107
  'id' => 'posts',
108
  'code' => plugin_dir_path( SU_PLUGIN_FILE ) . '/inc/examples/posts.example',
109
  'icon' => 'list'
110
  ),
111
  array(
112
- 'name' => __( 'Nested shortcodes, shortcodes inside of attributes', 'su' ),
113
  'id' => 'nested',
114
  'code' => plugin_dir_path( SU_PLUGIN_FILE ) . '/inc/examples/nested.example',
115
  'icon' => 'indent'
@@ -126,18 +126,18 @@ class Su_Data {
126
  $shortcodes = apply_filters( 'su/data/shortcodes', array(
127
  // heading
128
  'heading' => array(
129
- 'name' => __( 'Heading', 'su' ),
130
  'type' => 'wrap',
131
  'group' => 'content',
132
  'atts' => array(
133
  'style' => array(
134
  'type' => 'select',
135
  'values' => array(
136
- 'default' => __( 'Default', 'su' ),
137
  ),
138
  'default' => 'default',
139
- 'name' => __( 'Style', 'su' ),
140
- 'desc' => __( 'Choose style for this heading', 'su' ) . '%su_skins_link%'
141
  ),
142
  'size' => array(
143
  'type' => 'slider',
@@ -145,19 +145,19 @@ class Su_Data {
145
  'max' => 48,
146
  'step' => 1,
147
  'default' => 13,
148
- 'name' => __( 'Size', 'su' ),
149
- 'desc' => __( 'Select heading size (pixels)', 'su' )
150
  ),
151
  'align' => array(
152
  'type' => 'select',
153
  'values' => array(
154
- 'left' => __( 'Left', 'su' ),
155
- 'center' => __( 'Center', 'su' ),
156
- 'right' => __( 'Right', 'su' )
157
  ),
158
  'default' => 'center',
159
- 'name' => __( 'Align', 'su' ),
160
- 'desc' => __( 'Heading text alignment', 'su' )
161
  ),
162
  'margin' => array(
163
  'type' => 'slider',
@@ -165,33 +165,33 @@ class Su_Data {
165
  'max' => 200,
166
  'step' => 10,
167
  'default' => 20,
168
- 'name' => __( 'Margin', 'su' ),
169
- 'desc' => __( 'Bottom margin (pixels)', 'su' )
170
  ),
171
  'class' => array(
172
  'default' => '',
173
- 'name' => __( 'Class', 'su' ),
174
- 'desc' => __( 'Extra CSS class', 'su' )
175
  )
176
  ),
177
- 'content' => __( 'Heading text', 'su' ),
178
- 'desc' => __( 'Styled heading', 'su' ),
179
  'icon' => 'h-square'
180
  ),
181
  // tabs
182
  'tabs' => array(
183
- 'name' => __( 'Tabs', 'su' ),
184
  'type' => 'wrap',
185
  'group' => 'box',
186
  'atts' => array(
187
  'style' => array(
188
  'type' => 'select',
189
  'values' => array(
190
- 'default' => __( 'Default', 'su' )
191
  ),
192
  'default' => 'default',
193
- 'name' => __( 'Style', 'su' ),
194
- 'desc' => __( 'Choose style for this tabs', 'su' ) . '%su_skins_link%'
195
  ),
196
  'active' => array(
197
  'type' => 'number',
@@ -199,200 +199,200 @@ class Su_Data {
199
  'max' => 100,
200
  'step' => 1,
201
  'default' => 1,
202
- 'name' => __( 'Active tab', 'su' ),
203
- 'desc' => __( 'Select which tab is open by default', 'su' )
204
  ),
205
  'vertical' => array(
206
  'type' => 'bool',
207
  'default' => 'no',
208
- 'name' => __( 'Vertical', 'su' ),
209
- 'desc' => __( 'Show tabs vertically', 'su' )
210
  ),
211
  'class' => array(
212
  'default' => '',
213
- 'name' => __( 'Class', 'su' ),
214
- 'desc' => __( 'Extra CSS class', 'su' )
215
  )
216
  ),
217
- 'content' => __( "[%prefix_tab title=\"Title 1\"]Content 1[/%prefix_tab]\n[%prefix_tab title=\"Title 2\"]Content 2[/%prefix_tab]\n[%prefix_tab title=\"Title 3\"]Content 3[/%prefix_tab]", 'su' ),
218
- 'desc' => __( 'Tabs container', 'su' ),
219
  'example' => 'tabs',
220
  'icon' => 'list-alt'
221
  ),
222
  // tab
223
  'tab' => array(
224
- 'name' => __( 'Tab', 'su' ),
225
  'type' => 'wrap',
226
  'group' => 'box',
227
  'atts' => array(
228
  'title' => array(
229
- 'default' => __( 'Tab name', 'su' ),
230
- 'name' => __( 'Title', 'su' ),
231
- 'desc' => __( 'Enter tab name', 'su' )
232
  ),
233
  'disabled' => array(
234
  'type' => 'bool',
235
  'default' => 'no',
236
- 'name' => __( 'Disabled', 'su' ),
237
- 'desc' => __( 'Is this tab disabled', 'su' )
238
  ),
239
  'anchor' => array(
240
  'default' => '',
241
- 'name' => __( 'Anchor', 'su' ),
242
- 'desc' => __( 'You can use unique anchor for this tab to access it with hash in page url. For example: type here <b%value>Hello</b> and then use url like http://example.com/page-url#Hello. This tab will be activated and scrolled in', 'su' )
243
  ),
244
  'url' => array(
245
  'default' => '',
246
- 'name' => __( 'URL', 'su' ),
247
- 'desc' => __( 'You can link this tab to any webpage. Enter here full URL to switch this tab into link', 'su' )
248
  ),
249
  'target' => array(
250
  'type' => 'select',
251
  'values' => array(
252
- 'self' => __( 'Open link in same window/tab', 'su' ),
253
- 'blank' => __( 'Open link in new window/tab', 'su' )
254
  ),
255
  'default' => 'blank',
256
- 'name' => __( 'Link target', 'su' ),
257
- 'desc' => __( 'Choose how to open the custom tab link', 'su' )
258
  ),
259
  'class' => array(
260
  'default' => '',
261
- 'name' => __( 'Class', 'su' ),
262
- 'desc' => __( 'Extra CSS class', 'su' )
263
  )
264
  ),
265
- 'content' => __( 'Tab content', 'su' ),
266
- 'desc' => __( 'Single tab', 'su' ),
267
- 'note' => __( 'Did you know that you need to wrap single tabs with [tabs] shortcode?', 'su' ),
268
  'example' => 'tabs',
269
  'icon' => 'list-alt'
270
  ),
271
  // spoiler
272
  'spoiler' => array(
273
- 'name' => __( 'Spoiler', 'su' ),
274
  'type' => 'wrap',
275
  'group' => 'box',
276
  'atts' => array(
277
  'title' => array(
278
- 'default' => __( 'Spoiler title', 'su' ),
279
- 'name' => __( 'Title', 'su' ), 'desc' => __( 'Text in spoiler title', 'su' )
280
  ),
281
  'open' => array(
282
  'type' => 'bool',
283
  'default' => 'no',
284
- 'name' => __( 'Open', 'su' ),
285
- 'desc' => __( 'Is spoiler content visible by default', 'su' )
286
  ),
287
  'style' => array(
288
  'type' => 'select',
289
  'values' => array(
290
- 'default' => __( 'Default', 'su' ),
291
- 'fancy' => __( 'Fancy', 'su' ),
292
- 'simple' => __( 'Simple', 'su' )
293
  ),
294
  'default' => 'default',
295
- 'name' => __( 'Style', 'su' ),
296
- 'desc' => __( 'Choose style for this spoiler', 'su' ) . '%su_skins_link%'
297
  ),
298
  'icon' => array(
299
  'type' => 'select',
300
  'values' => array(
301
- 'plus' => __( 'Plus', 'su' ),
302
- 'plus-circle' => __( 'Plus circle', 'su' ),
303
- 'plus-square-1' => __( 'Plus square 1', 'su' ),
304
- 'plus-square-2' => __( 'Plus square 2', 'su' ),
305
- 'arrow' => __( 'Arrow', 'su' ),
306
- 'arrow-circle-1' => __( 'Arrow circle 1', 'su' ),
307
- 'arrow-circle-2' => __( 'Arrow circle 2', 'su' ),
308
- 'chevron' => __( 'Chevron', 'su' ),
309
- 'chevron-circle' => __( 'Chevron circle', 'su' ),
310
- 'caret' => __( 'Caret', 'su' ),
311
- 'caret-square' => __( 'Caret square', 'su' ),
312
- 'folder-1' => __( 'Folder 1', 'su' ),
313
- 'folder-2' => __( 'Folder 2', 'su' )
314
  ),
315
  'default' => 'plus',
316
- 'name' => __( 'Icon', 'su' ),
317
- 'desc' => __( 'Icons for spoiler', 'su' )
318
  ),
319
  'anchor' => array(
320
  'default' => '',
321
- 'name' => __( 'Anchor', 'su' ),
322
- 'desc' => __( 'You can use unique anchor for this spoiler to access it with hash in page url. For example: type here <b%value>Hello</b> and then use url like http://example.com/page-url#Hello. This spoiler will be open and scrolled in', 'su' )
323
  ),
324
  'class' => array(
325
  'default' => '',
326
- 'name' => __( 'Class', 'su' ),
327
- 'desc' => __( 'Extra CSS class', 'su' )
328
  )
329
  ),
330
- 'content' => __( 'Hidden content', 'su' ),
331
- 'desc' => __( 'Spoiler with hidden content', 'su' ),
332
- 'note' => __( 'Did you know that you can wrap multiple spoilers with [accordion] shortcode to create accordion effect?', 'su' ),
333
  'example' => 'spoilers',
334
  'icon' => 'list-ul'
335
  ),
336
  // accordion
337
  'accordion' => array(
338
- 'name' => __( 'Accordion', 'su' ),
339
  'type' => 'wrap',
340
  'group' => 'box',
341
  'atts' => array(
342
  'class' => array(
343
  'default' => '',
344
- 'name' => __( 'Class', 'su' ),
345
- 'desc' => __( 'Extra CSS class', 'su' )
346
  )
347
  ),
348
- 'content' => __( "[%prefix_spoiler]Content[/%prefix_spoiler]\n[%prefix_spoiler]Content[/%prefix_spoiler]\n[%prefix_spoiler]Content[/%prefix_spoiler]", 'su' ),
349
- 'desc' => __( 'Accordion with spoilers', 'su' ),
350
- 'note' => __( 'Did you know that you can wrap multiple spoilers with [accordion] shortcode to create accordion effect?', 'su' ),
351
  'example' => 'spoilers',
352
  'icon' => 'list'
353
  ),
354
  // divider
355
  'divider' => array(
356
- 'name' => __( 'Divider', 'su' ),
357
  'type' => 'single',
358
  'group' => 'content',
359
  'atts' => array(
360
  'top' => array(
361
  'type' => 'bool',
362
  'default' => 'yes',
363
- 'name' => __( 'Show TOP link', 'su' ),
364
- 'desc' => __( 'Show link to top of the page or not', 'su' )
365
  ),
366
  'text' => array(
367
  'values' => array( ),
368
- 'default' => __( 'Go to top', 'su' ),
369
- 'name' => __( 'Link text', 'su' ), 'desc' => __( 'Text for the GO TOP link', 'su' )
370
  ),
371
  'style' => array(
372
  'type' => 'select',
373
  'values' => array(
374
- 'default' => __( 'Default', 'su' ),
375
- 'dotted' => __( 'Dotted', 'su' ),
376
- 'dashed' => __( 'Dashed', 'su' ),
377
- 'double' => __( 'Double', 'su' )
378
  ),
379
  'default' => 'default',
380
- 'name' => __( 'Style', 'su' ),
381
- 'desc' => __( 'Choose style for this divider', 'su' )
382
  ),
383
  'divider_color' => array(
384
  'type' => 'color',
385
  'values' => array( ),
386
  'default' => '#999999',
387
- 'name' => __( 'Divider color', 'su' ),
388
- 'desc' => __( 'Pick the color for divider', 'su' )
389
  ),
390
  'link_color' => array(
391
  'type' => 'color',
392
  'values' => array( ),
393
  'default' => '#999999',
394
- 'name' => __( 'Link color', 'su' ),
395
- 'desc' => __( 'Pick the color for TOP link', 'su' )
396
  ),
397
  'size' => array(
398
  'type' => 'slider',
@@ -400,8 +400,8 @@ class Su_Data {
400
  'max' => 40,
401
  'step' => 1,
402
  'default' => 3,
403
- 'name' => __( 'Size', 'su' ),
404
- 'desc' => __( 'Height of the divider (in pixels)', 'su' )
405
  ),
406
  'margin' => array(
407
  'type' => 'slider',
@@ -409,21 +409,21 @@ class Su_Data {
409
  'max' => 200,
410
  'step' => 5,
411
  'default' => 15,
412
- 'name' => __( 'Margin', 'su' ),
413
- 'desc' => __( 'Adjust the top and bottom margins of this divider (in pixels)', 'su' )
414
  ),
415
  'class' => array(
416
  'default' => '',
417
- 'name' => __( 'Class', 'su' ),
418
- 'desc' => __( 'Extra CSS class', 'su' )
419
  )
420
  ),
421
- 'desc' => __( 'Content divider with optional TOP link', 'su' ),
422
  'icon' => 'ellipsis-h'
423
  ),
424
  // spacer
425
  'spacer' => array(
426
- 'name' => __( 'Spacer', 'su' ),
427
  'type' => 'single',
428
  'group' => 'content other',
429
  'atts' => array(
@@ -433,21 +433,21 @@ class Su_Data {
433
  'max' => 800,
434
  'step' => 10,
435
  'default' => 20,
436
- 'name' => __( 'Height', 'su' ),
437
- 'desc' => __( 'Height of the spacer in pixels', 'su' )
438
  ),
439
  'class' => array(
440
  'default' => '',
441
- 'name' => __( 'Class', 'su' ),
442
- 'desc' => __( 'Extra CSS class', 'su' )
443
  )
444
  ),
445
- 'desc' => __( 'Empty space with adjustable height', 'su' ),
446
  'icon' => 'arrows-v'
447
  ),
448
  // highlight
449
  'highlight' => array(
450
- 'name' => __( 'Highlight', 'su' ),
451
  'type' => 'wrap',
452
  'group' => 'content',
453
  'atts' => array(
@@ -455,132 +455,132 @@ class Su_Data {
455
  'type' => 'color',
456
  'values' => array( ),
457
  'default' => '#DDFF99',
458
- 'name' => __( 'Background', 'su' ),
459
- 'desc' => __( 'Highlighted text background color', 'su' )
460
  ),
461
  'color' => array(
462
  'type' => 'color',
463
  'values' => array( ),
464
  'default' => '#000000',
465
- 'name' => __( 'Text color', 'su' ), 'desc' => __( 'Highlighted text color', 'su' )
466
  ),
467
  'class' => array(
468
  'default' => '',
469
- 'name' => __( 'Class', 'su' ),
470
- 'desc' => __( 'Extra CSS class', 'su' )
471
  )
472
  ),
473
- 'content' => __( 'Highlighted text', 'su' ),
474
- 'desc' => __( 'Highlighted text', 'su' ),
475
  'icon' => 'pencil'
476
  ),
477
  // label
478
  'label' => array(
479
- 'name' => __( 'Label', 'su' ),
480
  'type' => 'wrap',
481
  'group' => 'content',
482
  'atts' => array(
483
  'type' => array(
484
  'type' => 'select',
485
  'values' => array(
486
- 'default' => __( 'Default', 'su' ),
487
- 'success' => __( 'Success', 'su' ),
488
- 'warning' => __( 'Warning', 'su' ),
489
- 'important' => __( 'Important', 'su' ),
490
- 'black' => __( 'Black', 'su' ),
491
- 'info' => __( 'Info', 'su' )
492
  ),
493
  'default' => 'default',
494
- 'name' => __( 'Type', 'su' ),
495
- 'desc' => __( 'Style of the label', 'su' )
496
  ),
497
  'class' => array(
498
  'default' => '',
499
- 'name' => __( 'Class', 'su' ),
500
- 'desc' => __( 'Extra CSS class', 'su' )
501
  )
502
  ),
503
- 'content' => __( 'Label', 'su' ),
504
- 'desc' => __( 'Styled label', 'su' ),
505
  'icon' => 'tag'
506
  ),
507
  // quote
508
  'quote' => array(
509
- 'name' => __( 'Quote', 'su' ),
510
  'type' => 'wrap',
511
  'group' => 'box',
512
  'atts' => array(
513
  'style' => array(
514
  'type' => 'select',
515
  'values' => array(
516
- 'default' => __( 'Default', 'su' )
517
  ),
518
  'default' => 'default',
519
- 'name' => __( 'Style', 'su' ),
520
- 'desc' => __( 'Choose style for this quote', 'su' ) . '%su_skins_link%'
521
  ),
522
  'cite' => array(
523
  'default' => '',
524
- 'name' => __( 'Cite', 'su' ),
525
- 'desc' => __( 'Quote author name', 'su' )
526
  ),
527
  'url' => array(
528
  'values' => array( ),
529
  'default' => '',
530
- 'name' => __( 'Cite url', 'su' ),
531
- 'desc' => __( 'Url of the quote author. Leave empty to disable link', 'su' )
532
  ),
533
  'class' => array(
534
  'default' => '',
535
- 'name' => __( 'Class', 'su' ),
536
- 'desc' => __( 'Extra CSS class', 'su' )
537
  )
538
  ),
539
- 'content' => __( 'Quote', 'su' ),
540
- 'desc' => __( 'Blockquote alternative', 'su' ),
541
  'icon' => 'quote-right'
542
  ),
543
  // pullquote
544
  'pullquote' => array(
545
- 'name' => __( 'Pullquote', 'su' ),
546
  'type' => 'wrap',
547
  'group' => 'box',
548
  'atts' => array(
549
  'align' => array(
550
  'type' => 'select',
551
  'values' => array(
552
- 'left' => __( 'Left', 'su' ),
553
- 'right' => __( 'Right', 'su' )
554
  ),
555
  'default' => 'left',
556
- 'name' => __( 'Align', 'su' ), 'desc' => __( 'Pullquote alignment (float)', 'su' )
557
  ),
558
  'class' => array(
559
  'default' => '',
560
- 'name' => __( 'Class', 'su' ),
561
- 'desc' => __( 'Extra CSS class', 'su' )
562
  )
563
  ),
564
- 'content' => __( 'Pullquote', 'su' ),
565
- 'desc' => __( 'Pullquote', 'su' ),
566
  'icon' => 'quote-left'
567
  ),
568
  // dropcap
569
  'dropcap' => array(
570
- 'name' => __( 'Dropcap', 'su' ),
571
  'type' => 'wrap',
572
  'group' => 'content',
573
  'atts' => array(
574
  'style' => array(
575
  'type' => 'select',
576
  'values' => array(
577
- 'default' => __( 'Default', 'su' ),
578
- 'flat' => __( 'Flat', 'su' ),
579
- 'light' => __( 'Light', 'su' ),
580
- 'simple' => __( 'Simple', 'su' )
581
  ),
582
  'default' => 'default',
583
- 'name' => __( 'Style', 'su' ), 'desc' => __( 'Dropcap style preset', 'su' )
584
  ),
585
  'size' => array(
586
  'type' => 'slider',
@@ -588,184 +588,184 @@ class Su_Data {
588
  'max' => 5,
589
  'step' => 1,
590
  'default' => 3,
591
- 'name' => __( 'Size', 'su' ),
592
- 'desc' => __( 'Choose dropcap size', 'su' )
593
  ),
594
  'class' => array(
595
  'default' => '',
596
- 'name' => __( 'Class', 'su' ),
597
- 'desc' => __( 'Extra CSS class', 'su' )
598
  )
599
  ),
600
- 'content' => __( 'D', 'su' ),
601
- 'desc' => __( 'Dropcap', 'su' ),
602
  'icon' => 'bold'
603
  ),
604
  // frame
605
  'frame' => array(
606
- 'name' => __( 'Frame', 'su' ),
607
  'type' => 'wrap',
608
  'group' => 'content',
609
  'atts' => array(
610
  'align' => array(
611
  'type' => 'select',
612
  'values' => array(
613
- 'left' => __( 'Left', 'su' ),
614
- 'center' => __( 'Center', 'su' ),
615
- 'right' => __( 'Right', 'su' )
616
  ),
617
  'default' => 'left',
618
- 'name' => __( 'Align', 'su' ),
619
- 'desc' => __( 'Frame alignment', 'su' )
620
  ),
621
  'class' => array(
622
  'default' => '',
623
- 'name' => __( 'Class', 'su' ),
624
- 'desc' => __( 'Extra CSS class', 'su' )
625
  )
626
  ),
627
  'content' => '<img src="http://lorempixel.com/g/400/200/" />',
628
- 'desc' => __( 'Styled image frame', 'su' ),
629
  'icon' => 'picture-o'
630
  ),
631
  // row
632
  'row' => array(
633
- 'name' => __( 'Row', 'su' ),
634
  'type' => 'wrap',
635
  'group' => 'box',
636
  'atts' => array(
637
  'class' => array(
638
  'default' => '',
639
- 'name' => __( 'Class', 'su' ),
640
- 'desc' => __( 'Extra CSS class', 'su' )
641
  )
642
  ),
643
- 'content' => __( "[%prefix_column size=\"1/3\"]Content[/%prefix_column]\n[%prefix_column size=\"1/3\"]Content[/%prefix_column]\n[%prefix_column size=\"1/3\"]Content[/%prefix_column]", 'su' ),
644
- 'desc' => __( 'Row for flexible columns', 'su' ),
645
  'icon' => 'columns'
646
  ),
647
  // column
648
  'column' => array(
649
- 'name' => __( 'Column', 'su' ),
650
  'type' => 'wrap',
651
  'group' => 'box',
652
  'atts' => array(
653
  'size' => array(
654
  'type' => 'select',
655
  'values' => array(
656
- '1/1' => __( 'Full width', 'su' ),
657
- '1/2' => __( 'One half', 'su' ),
658
- '1/3' => __( 'One third', 'su' ),
659
- '2/3' => __( 'Two third', 'su' ),
660
- '1/4' => __( 'One fourth', 'su' ),
661
- '3/4' => __( 'Three fourth', 'su' ),
662
- '1/5' => __( 'One fifth', 'su' ),
663
- '2/5' => __( 'Two fifth', 'su' ),
664
- '3/5' => __( 'Three fifth', 'su' ),
665
- '4/5' => __( 'Four fifth', 'su' ),
666
- '1/6' => __( 'One sixth', 'su' ),
667
- '5/6' => __( 'Five sixth', 'su' )
668
  ),
669
  'default' => '1/2',
670
- 'name' => __( 'Size', 'su' ),
671
- 'desc' => __( 'Select column width. This width will be calculated depend page width', 'su' )
672
  ),
673
  'center' => array(
674
  'type' => 'bool',
675
  'default' => 'no',
676
- 'name' => __( 'Centered', 'su' ),
677
- 'desc' => __( 'Is this column centered on the page', 'su' )
678
  ),
679
  'class' => array(
680
  'default' => '',
681
- 'name' => __( 'Class', 'su' ),
682
- 'desc' => __( 'Extra CSS class', 'su' )
683
  )
684
  ),
685
- 'content' => __( 'Column content', 'su' ),
686
- 'desc' => __( 'Flexible and responsive columns', 'su' ),
687
- 'note' => __( 'Did you know that you need to wrap columns with [row] shortcode?', 'su' ),
688
  'example' => 'columns',
689
  'icon' => 'columns'
690
  ),
691
  // list
692
  'list' => array(
693
- 'name' => __( 'List', 'su' ),
694
  'type' => 'wrap',
695
  'group' => 'content',
696
  'atts' => array(
697
  'icon' => array(
698
  'type' => 'icon',
699
  'default' => '',
700
- 'name' => __( 'Icon', 'su' ),
701
- 'desc' => __( 'You can upload custom icon for this list or pick a built-in icon', 'su' )
702
  ),
703
  'icon_color' => array(
704
  'type' => 'color',
705
  'default' => '#333333',
706
- 'name' => __( 'Icon color', 'su' ),
707
- 'desc' => __( 'This color will be applied to the selected icon. Does not works with uploaded icons', 'su' )
708
  ),
709
  'class' => array(
710
  'default' => '',
711
- 'name' => __( 'Class', 'su' ),
712
- 'desc' => __( 'Extra CSS class', 'su' )
713
  )
714
  ),
715
- 'content' => __( "<ul>\n<li>List item</li>\n<li>List item</li>\n<li>List item</li>\n</ul>", 'su' ),
716
- 'desc' => __( 'Styled unordered list', 'su' ),
717
  'icon' => 'list-ol'
718
  ),
719
  // button
720
  'button' => array(
721
- 'name' => __( 'Button', 'su' ),
722
  'type' => 'wrap',
723
  'group' => 'content',
724
  'atts' => array(
725
  'url' => array(
726
  'values' => array( ),
727
  'default' => get_option( 'home' ),
728
- 'name' => __( 'Link', 'su' ),
729
- 'desc' => __( 'Button link', 'su' )
730
  ),
731
  'target' => array(
732
  'type' => 'select',
733
  'values' => array(
734
- 'self' => __( 'Same tab', 'su' ),
735
- 'blank' => __( 'New tab', 'su' )
736
  ),
737
  'default' => 'self',
738
- 'name' => __( 'Target', 'su' ),
739
- 'desc' => __( 'Button link target', 'su' )
740
  ),
741
  'style' => array(
742
  'type' => 'select',
743
  'values' => array(
744
- 'default' => __( 'Default', 'su' ),
745
- 'flat' => __( 'Flat', 'su' ),
746
- 'ghost' => __( 'Ghost', 'su' ),
747
- 'soft' => __( 'Soft', 'su' ),
748
- 'glass' => __( 'Glass', 'su' ),
749
- 'bubbles' => __( 'Bubbles', 'su' ),
750
- 'noise' => __( 'Noise', 'su' ),
751
- 'stroked' => __( 'Stroked', 'su' ),
752
- '3d' => __( '3D', 'su' )
753
  ),
754
  'default' => 'default',
755
- 'name' => __( 'Style', 'su' ), 'desc' => __( 'Button background style preset', 'su' )
756
  ),
757
  'background' => array(
758
  'type' => 'color',
759
  'values' => array( ),
760
  'default' => '#2D89EF',
761
- 'name' => __( 'Background', 'su' ), 'desc' => __( 'Button background color', 'su' )
762
  ),
763
  'color' => array(
764
  'type' => 'color',
765
  'values' => array( ),
766
  'default' => '#FFFFFF',
767
- 'name' => __( 'Text color', 'su' ),
768
- 'desc' => __( 'Button text color', 'su' )
769
  ),
770
  'size' => array(
771
  'type' => 'slider',
@@ -773,105 +773,105 @@ class Su_Data {
773
  'max' => 20,
774
  'step' => 1,
775
  'default' => 3,
776
- 'name' => __( 'Size', 'su' ),
777
- 'desc' => __( 'Button size', 'su' )
778
  ),
779
  'wide' => array(
780
  'type' => 'bool',
781
  'default' => 'no',
782
- 'name' => __( 'Fluid', 'su' ), 'desc' => __( 'Fluid buttons has 100% width', 'su' )
783
  ),
784
  'center' => array(
785
  'type' => 'bool',
786
  'default' => 'no',
787
- 'name' => __( 'Centered', 'su' ), 'desc' => __( 'Is button centered on the page', 'su' )
788
  ),
789
  'radius' => array(
790
  'type' => 'select',
791
  'values' => array(
792
- 'auto' => __( 'Auto', 'su' ),
793
- 'round' => __( 'Round', 'su' ),
794
- '0' => __( 'Square', 'su' ),
795
  '5' => '5px',
796
  '10' => '10px',
797
  '20' => '20px'
798
  ),
799
  'default' => 'auto',
800
- 'name' => __( 'Radius', 'su' ),
801
- 'desc' => __( 'Radius of button corners. Auto-radius calculation based on button size', 'su' )
802
  ),
803
  'icon' => array(
804
  'type' => 'icon',
805
  'default' => '',
806
- 'name' => __( 'Icon', 'su' ),
807
- 'desc' => __( 'You can upload custom icon for this button or pick a built-in icon', 'su' )
808
  ),
809
  'icon_color' => array(
810
  'type' => 'color',
811
  'default' => '#FFFFFF',
812
- 'name' => __( 'Icon color', 'su' ),
813
- 'desc' => __( 'This color will be applied to the selected icon. Does not works with uploaded icons', 'su' )
814
  ),
815
  'text_shadow' => array(
816
  'type' => 'shadow',
817
  'default' => 'none',
818
- 'name' => __( 'Text shadow', 'su' ),
819
- 'desc' => __( 'Button text shadow', 'su' )
820
  ),
821
  'desc' => array(
822
  'default' => '',
823
- 'name' => __( 'Description', 'su' ),
824
- 'desc' => __( 'Small description under button text. This option is incompatible with icon.', 'su' )
825
  ),
826
  'onclick' => array(
827
  'default' => '',
828
- 'name' => __( 'onClick', 'su' ),
829
- 'desc' => __( 'Advanced JavaScript code for onClick action', 'su' )
830
  ),
831
  'rel' => array(
832
  'default' => '',
833
- 'name' => __( 'Rel attribute', 'su' ),
834
- 'desc' => __( 'Here you can add value for the rel attribute.<br>Example values: <b%value>nofollow</b>, <b%value>lightbox</b>', 'su' )
835
  ),
836
  'title' => array(
837
  'default' => '',
838
- 'name' => __( 'Title attribute', 'su' ),
839
- 'desc' => __( 'Here you can add value for the title attribute', 'su' )
840
  ),
841
  'class' => array(
842
  'default' => '',
843
- 'name' => __( 'Class', 'su' ),
844
- 'desc' => __( 'Extra CSS class', 'su' )
845
  )
846
  ),
847
- 'content' => __( 'Button text', 'su' ),
848
- 'desc' => __( 'Styled button', 'su' ),
849
  'example' => 'buttons',
850
  'icon' => 'heart'
851
  ),
852
  // service
853
  'service' => array(
854
- 'name' => __( 'Service', 'su' ),
855
  'type' => 'wrap',
856
  'group' => 'box',
857
  'atts' => array(
858
  'title' => array(
859
  'values' => array( ),
860
- 'default' => __( 'Service title', 'su' ),
861
- 'name' => __( 'Title', 'su' ),
862
- 'desc' => __( 'Service name', 'su' )
863
  ),
864
  'icon' => array(
865
  'type' => 'icon',
866
  'default' => '',
867
- 'name' => __( 'Icon', 'su' ),
868
- 'desc' => __( 'You can upload custom icon for this box', 'su' )
869
  ),
870
  'icon_color' => array(
871
  'type' => 'color',
872
  'default' => '#333333',
873
- 'name' => __( 'Icon color', 'su' ),
874
- 'desc' => __( 'This color will be applied to the selected icon. Does not works with uploaded icons', 'su' )
875
  ),
876
  'size' => array(
877
  'type' => 'slider',
@@ -879,55 +879,55 @@ class Su_Data {
879
  'max' => 128,
880
  'step' => 2,
881
  'default' => 32,
882
- 'name' => __( 'Icon size', 'su' ),
883
- 'desc' => __( 'Size of the uploaded icon in pixels', 'su' )
884
  ),
885
  'class' => array(
886
  'default' => '',
887
- 'name' => __( 'Class', 'su' ),
888
- 'desc' => __( 'Extra CSS class', 'su' )
889
  )
890
  ),
891
- 'content' => __( 'Service description', 'su' ),
892
- 'desc' => __( 'Service box with title', 'su' ),
893
  'icon' => 'check-square-o'
894
  ),
895
  // box
896
  'box' => array(
897
- 'name' => __( 'Box', 'su' ),
898
  'type' => 'wrap',
899
  'group' => 'box',
900
  'atts' => array(
901
  'title' => array(
902
  'values' => array( ),
903
- 'default' => __( 'Box title', 'su' ),
904
- 'name' => __( 'Title', 'su' ), 'desc' => __( 'Text for the box title', 'su' )
905
  ),
906
  'style' => array(
907
  'type' => 'select',
908
  'values' => array(
909
- 'default' => __( 'Default', 'su' ),
910
- 'soft' => __( 'Soft', 'su' ),
911
- 'glass' => __( 'Glass', 'su' ),
912
- 'bubbles' => __( 'Bubbles', 'su' ),
913
- 'noise' => __( 'Noise', 'su' )
914
  ),
915
  'default' => 'default',
916
- 'name' => __( 'Style', 'su' ),
917
- 'desc' => __( 'Box style preset', 'su' )
918
  ),
919
  'box_color' => array(
920
  'type' => 'color',
921
  'values' => array( ),
922
  'default' => '#333333',
923
- 'name' => __( 'Color', 'su' ),
924
- 'desc' => __( 'Color for the box title and borders', 'su' )
925
  ),
926
  'title_color' => array(
927
  'type' => 'color',
928
  'values' => array( ),
929
  'default' => '#FFFFFF',
930
- 'name' => __( 'Title text color', 'su' ), 'desc' => __( 'Color for the box title text', 'su' )
931
  ),
932
  'radius' => array(
933
  'type' => 'slider',
@@ -935,22 +935,22 @@ class Su_Data {
935
  'max' => 20,
936
  'step' => 1,
937
  'default' => 3,
938
- 'name' => __( 'Radius', 'su' ),
939
- 'desc' => __( 'Box corners radius', 'su' )
940
  ),
941
  'class' => array(
942
  'default' => '',
943
- 'name' => __( 'Class', 'su' ),
944
- 'desc' => __( 'Extra CSS class', 'su' )
945
  )
946
  ),
947
- 'content' => __( 'Box content', 'su' ),
948
- 'desc' => __( 'Colored box with caption', 'su' ),
949
  'icon' => 'list-alt'
950
  ),
951
  // note
952
  'note' => array(
953
- 'name' => __( 'Note', 'su' ),
954
  'type' => 'wrap',
955
  'group' => 'box',
956
  'atts' => array(
@@ -958,14 +958,14 @@ class Su_Data {
958
  'type' => 'color',
959
  'values' => array( ),
960
  'default' => '#FFFF66',
961
- 'name' => __( 'Background', 'su' ), 'desc' => __( 'Note background color', 'su' )
962
  ),
963
  'text_color' => array(
964
  'type' => 'color',
965
  'values' => array( ),
966
  'default' => '#333333',
967
- 'name' => __( 'Text color', 'su' ),
968
- 'desc' => __( 'Note text color', 'su' )
969
  ),
970
  'radius' => array(
971
  'type' => 'slider',
@@ -973,33 +973,33 @@ class Su_Data {
973
  'max' => 20,
974
  'step' => 1,
975
  'default' => 3,
976
- 'name' => __( 'Radius', 'su' ), 'desc' => __( 'Note corners radius', 'su' )
977
  ),
978
  'class' => array(
979
  'default' => '',
980
- 'name' => __( 'Class', 'su' ),
981
- 'desc' => __( 'Extra CSS class', 'su' )
982
  )
983
  ),
984
- 'content' => __( 'Note text', 'su' ),
985
- 'desc' => __( 'Colored box', 'su' ),
986
  'icon' => 'list-alt'
987
  ),
988
  // expand
989
  'expand' => array(
990
- 'name' => __( 'Expand', 'su' ),
991
  'type' => 'wrap',
992
  'group' => 'box',
993
  'atts' => array(
994
  'more_text' => array(
995
- 'default' => __( 'Show more', 'su' ),
996
- 'name' => __( 'More text', 'su' ),
997
- 'desc' => __( 'Enter the text for more link', 'su' )
998
  ),
999
  'less_text' => array(
1000
- 'default' => __( 'Show less', 'su' ),
1001
- 'name' => __( 'Less text', 'su' ),
1002
- 'desc' => __( 'Enter the text for less link', 'su' )
1003
  ),
1004
  'height' => array(
1005
  'type' => 'slider',
@@ -1007,122 +1007,122 @@ class Su_Data {
1007
  'max' => 1000,
1008
  'step' => 10,
1009
  'default' => 100,
1010
- 'name' => __( 'Height', 'su' ),
1011
- 'desc' => __( 'Height for collapsed state (in pixels)', 'su' )
1012
  ),
1013
  'hide_less' => array(
1014
  'type' => 'bool',
1015
  'default' => 'no',
1016
- 'name' => __( 'Hide less link', 'su' ),
1017
- 'desc' => __( 'This option allows you to hide less link, when the text block has been expanded', 'su' )
1018
  ),
1019
  'text_color' => array(
1020
  'type' => 'color',
1021
  'values' => array( ),
1022
  'default' => '#333333',
1023
- 'name' => __( 'Text color', 'su' ),
1024
- 'desc' => __( 'Pick the text color', 'su' )
1025
  ),
1026
  'link_color' => array(
1027
  'type' => 'color',
1028
  'values' => array( ),
1029
  'default' => '#0088FF',
1030
- 'name' => __( 'Link color', 'su' ),
1031
- 'desc' => __( 'Pick the link color', 'su' )
1032
  ),
1033
  'link_style' => array(
1034
  'type' => 'select',
1035
  'values' => array(
1036
- 'default' => __( 'Default', 'su' ),
1037
- 'underlined' => __( 'Underlined', 'su' ),
1038
- 'dotted' => __( 'Dotted', 'su' ),
1039
- 'dashed' => __( 'Dashed', 'su' ),
1040
- 'button' => __( 'Button', 'su' ),
1041
  ),
1042
  'default' => 'default',
1043
- 'name' => __( 'Link style', 'su' ),
1044
- 'desc' => __( 'Select the style for more/less link', 'su' )
1045
  ),
1046
  'link_align' => array(
1047
  'type' => 'select',
1048
  'values' => array(
1049
- 'left' => __( 'Left', 'su' ),
1050
- 'center' => __( 'Center', 'su' ),
1051
- 'right' => __( 'Right', 'su' ),
1052
  ),
1053
  'default' => 'left',
1054
- 'name' => __( 'Link align', 'su' ),
1055
- 'desc' => __( 'Select link alignment', 'su' )
1056
  ),
1057
  'more_icon' => array(
1058
  'type' => 'icon',
1059
  'default' => '',
1060
- 'name' => __( 'More icon', 'su' ),
1061
- 'desc' => __( 'Add an icon to the more link', 'su' )
1062
  ),
1063
  'less_icon' => array(
1064
  'type' => 'icon',
1065
  'default' => '',
1066
- 'name' => __( 'Less icon', 'su' ),
1067
- 'desc' => __( 'Add an icon to the less link', 'su' )
1068
  ),
1069
  'class' => array(
1070
  'default' => '',
1071
- 'name' => __( 'Class', 'su' ),
1072
- 'desc' => __( 'Extra CSS class', 'su' )
1073
  )
1074
  ),
1075
- 'content' => __( 'This text block can be expanded', 'su' ),
1076
- 'desc' => __( 'Expandable text block', 'su' ),
1077
  'icon' => 'sort-amount-asc'
1078
  ),
1079
  // lightbox
1080
  'lightbox' => array(
1081
- 'name' => __( 'Lightbox', 'su' ),
1082
  'type' => 'wrap',
1083
  'group' => 'gallery',
1084
  'atts' => array(
1085
  'type' => array(
1086
  'type' => 'select',
1087
  'values' => array(
1088
- 'iframe' => __( 'Iframe', 'su' ),
1089
- 'image' => __( 'Image', 'su' ),
1090
- 'inline' => __( 'Inline (html content)', 'su' )
1091
  ),
1092
  'default' => 'iframe',
1093
- 'name' => __( 'Content type', 'su' ),
1094
- 'desc' => __( 'Select type of the lightbox window content', 'su' )
1095
  ),
1096
  'src' => array(
1097
  'default' => '',
1098
- 'name' => __( 'Content source', 'su' ),
1099
- 'desc' => __( 'Insert here URL or CSS selector. Use URL for Iframe and Image content types. Use CSS selector for Inline content type.<br />Example values:<br /><b%value>http://www.youtube.com/watch?v=XXXXXXXXX</b> - YouTube video (iframe)<br /><b%value>http://example.com/wp-content/uploads/image.jpg</b> - uploaded image (image)<br /><b%value>http://example.com/</b> - any web page (iframe)<br /><b%value>#my-custom-popup</b> - any HTML content (inline)', 'su' )
1100
  ),
1101
  'class' => array(
1102
  'default' => '',
1103
- 'name' => __( 'Class', 'su' ),
1104
- 'desc' => __( 'Extra CSS class', 'su' )
1105
  )
1106
  ),
1107
- 'content' => __( '[%prefix_button] Click Here to Watch the Video [/%prefix_button]', 'su' ),
1108
- 'desc' => __( 'Lightbox window with custom content', 'su' ),
1109
  'icon' => 'external-link'
1110
  ),
1111
  // lightbox content
1112
  'lightbox_content' => array(
1113
- 'name' => __( 'Lightbox content', 'su' ),
1114
  'type' => 'wrap',
1115
  'group' => 'gallery',
1116
  'atts' => array(
1117
  'id' => array(
1118
  'default' => '',
1119
- 'name' => __( 'ID', 'su' ),
1120
- 'desc' => sprintf( __( 'Enter here the ID from Content source field. %s Example value: %s', 'su' ), '<br>', '<b%value>my-custom-popup</b>' )
1121
  ),
1122
  'width' => array(
1123
  'default' => '50%',
1124
- 'name' => __( 'Width', 'su' ),
1125
- 'desc' => sprintf( __( 'Adjust the width for inline content (in pixels or percents). %s Example values: %s, %s, %s', 'su' ), '<br>', '<b%value>300px</b>', '<b%value>600px</b>', '<b%value>90%</b>' )
1126
  ),
1127
  'margin' => array(
1128
  'type' => 'slider',
@@ -1130,8 +1130,8 @@ class Su_Data {
1130
  'max' => 600,
1131
  'step' => 5,
1132
  'default' => 40,
1133
- 'name' => __( 'Margin', 'su' ),
1134
- 'desc' => __( 'Adjust the margin for inline content (in pixels)', 'su' )
1135
  ),
1136
  'padding' => array(
1137
  'type' => 'slider',
@@ -1139,108 +1139,108 @@ class Su_Data {
1139
  'max' => 600,
1140
  'step' => 5,
1141
  'default' => 40,
1142
- 'name' => __( 'Padding', 'su' ),
1143
- 'desc' => __( 'Adjust the padding for inline content (in pixels)', 'su' )
1144
  ),
1145
  'text_align' => array(
1146
  'type' => 'select',
1147
  'values' => array(
1148
- 'left' => __( 'Left', 'su' ),
1149
- 'center' => __( 'Center', 'su' ),
1150
- 'right' => __( 'Right', 'su' )
1151
  ),
1152
  'default' => 'center',
1153
- 'name' => __( 'Text alignment', 'su' ),
1154
- 'desc' => __( 'Select the text alignment', 'su' )
1155
  ),
1156
  'background' => array(
1157
  'type' => 'color',
1158
  'default' => '#FFFFFF',
1159
- 'name' => __( 'Background color', 'su' ),
1160
- 'desc' => __( 'Pick a background color', 'su' )
1161
  ),
1162
  'color' => array(
1163
  'type' => 'color',
1164
  'default' => '#333333',
1165
- 'name' => __( 'Text color', 'su' ),
1166
- 'desc' => __( 'Pick a text color', 'su' )
1167
  ),
1168
  'color' => array(
1169
  'type' => 'color',
1170
  'default' => '#333333',
1171
- 'name' => __( 'Text color', 'su' ),
1172
- 'desc' => __( 'Pick a text color', 'su' )
1173
  ),
1174
  'shadow' => array(
1175
  'type' => 'shadow',
1176
  'default' => '0px 0px 15px #333333',
1177
- 'name' => __( 'Shadow', 'su' ),
1178
- 'desc' => __( 'Adjust the shadow for content box', 'su' )
1179
  ),
1180
  'class' => array(
1181
  'default' => '',
1182
- 'name' => __( 'Class', 'su' ),
1183
- 'desc' => __( 'Extra CSS class', 'su' )
1184
  )
1185
  ),
1186
- 'content' => __( 'Inline content', 'su' ),
1187
- 'desc' => __( 'Inline content for lightbox', 'su' ),
1188
  'icon' => 'external-link'
1189
  ),
1190
  // tooltip
1191
  'tooltip' => array(
1192
- 'name' => __( 'Tooltip', 'su' ),
1193
  'type' => 'wrap',
1194
  'group' => 'other',
1195
  'atts' => array(
1196
  'style' => array(
1197
  'type' => 'select',
1198
  'values' => array(
1199
- 'light' => __( 'Basic: Light', 'su' ),
1200
- 'dark' => __( 'Basic: Dark', 'su' ),
1201
- 'yellow' => __( 'Basic: Yellow', 'su' ),
1202
- 'green' => __( 'Basic: Green', 'su' ),
1203
- 'red' => __( 'Basic: Red', 'su' ),
1204
- 'blue' => __( 'Basic: Blue', 'su' ),
1205
- 'youtube' => __( 'Youtube', 'su' ),
1206
- 'tipsy' => __( 'Tipsy', 'su' ),
1207
- 'bootstrap' => __( 'Bootstrap', 'su' ),
1208
- 'jtools' => __( 'jTools', 'su' ),
1209
- 'tipped' => __( 'Tipped', 'su' ),
1210
- 'cluetip' => __( 'Cluetip', 'su' ),
1211
  ),
1212
  'default' => 'yellow',
1213
- 'name' => __( 'Style', 'su' ),
1214
- 'desc' => __( 'Tooltip window style', 'su' )
1215
  ),
1216
  'position' => array(
1217
  'type' => 'select',
1218
  'values' => array(
1219
- 'north' => __( 'Top', 'su' ),
1220
- 'south' => __( 'Bottom', 'su' ),
1221
- 'west' => __( 'Left', 'su' ),
1222
- 'east' => __( 'Right', 'su' )
1223
  ),
1224
  'default' => 'top',
1225
- 'name' => __( 'Position', 'su' ),
1226
- 'desc' => __( 'Tooltip position', 'su' )
1227
  ),
1228
  'shadow' => array(
1229
  'type' => 'bool',
1230
  'default' => 'no',
1231
- 'name' => __( 'Shadow', 'su' ),
1232
- 'desc' => __( 'Add shadow to tooltip. This option is only works with basic styes, e.g. blue, green etc.', 'su' )
1233
  ),
1234
  'rounded' => array(
1235
  'type' => 'bool',
1236
  'default' => 'no',
1237
- 'name' => __( 'Rounded corners', 'su' ),
1238
- 'desc' => __( 'Use rounded for tooltip. This option is only works with basic styes, e.g. blue, green etc.', 'su' )
1239
  ),
1240
  'size' => array(
1241
  'type' => 'select',
1242
  'values' => array(
1243
- 'default' => __( 'Default', 'su' ),
1244
  '1' => 1,
1245
  '2' => 2,
1246
  '3' => 3,
@@ -1249,73 +1249,73 @@ class Su_Data {
1249
  '6' => 6,
1250
  ),
1251
  'default' => 'default',
1252
- 'name' => __( 'Font size', 'su' ),
1253
- 'desc' => __( 'Tooltip font size', 'su' )
1254
  ),
1255
  'title' => array(
1256
  'default' => '',
1257
- 'name' => __( 'Tooltip title', 'su' ),
1258
- 'desc' => __( 'Enter title for tooltip window. Leave this field empty to hide the title', 'su' )
1259
  ),
1260
  'content' => array(
1261
- 'default' => __( 'Tooltip text', 'su' ),
1262
- 'name' => __( 'Tooltip content', 'su' ),
1263
- 'desc' => __( 'Enter tooltip content here', 'su' )
1264
  ),
1265
  'behavior' => array(
1266
  'type' => 'select',
1267
  'values' => array(
1268
- 'hover' => __( 'Show and hide on mouse hover', 'su' ),
1269
- 'click' => __( 'Show and hide by mouse click', 'su' ),
1270
- 'always' => __( 'Always visible', 'su' )
1271
  ),
1272
  'default' => 'hover',
1273
- 'name' => __( 'Behavior', 'su' ),
1274
- 'desc' => __( 'Select tooltip behavior', 'su' )
1275
  ),
1276
  'close' => array(
1277
  'type' => 'bool',
1278
  'default' => 'no',
1279
- 'name' => __( 'Close button', 'su' ),
1280
- 'desc' => __( 'Show close button', 'su' )
1281
  ),
1282
  'class' => array(
1283
  'default' => '',
1284
- 'name' => __( 'Class', 'su' ),
1285
- 'desc' => __( 'Extra CSS class', 'su' )
1286
  )
1287
  ),
1288
- 'content' => __( '[%prefix_button] Hover me to open tooltip [/%prefix_button]', 'su' ),
1289
- 'desc' => __( 'Tooltip window with custom content', 'su' ),
1290
  'icon' => 'comment-o'
1291
  ),
1292
  // private
1293
  'private' => array(
1294
- 'name' => __( 'Private', 'su' ),
1295
  'type' => 'wrap',
1296
  'group' => 'other',
1297
  'atts' => array(
1298
  'class' => array(
1299
  'default' => '',
1300
- 'name' => __( 'Class', 'su' ),
1301
- 'desc' => __( 'Extra CSS class', 'su' )
1302
  )
1303
  ),
1304
- 'content' => __( 'Private note text', 'su' ),
1305
- 'desc' => __( 'Private note for post authors', 'su' ),
1306
  'icon' => 'lock'
1307
  ),
1308
  // youtube
1309
  'youtube' => array(
1310
- 'name' => __( 'YouTube', 'su' ),
1311
  'type' => 'single',
1312
  'group' => 'media',
1313
  'atts' => array(
1314
  'url' => array(
1315
  'values' => array( ),
1316
  'default' => '',
1317
- 'name' => __( 'Url', 'su' ),
1318
- 'desc' => __( 'Url of YouTube page with video. Ex: http://youtube.com/watch?v=XXXXXX', 'su' )
1319
  ),
1320
  'width' => array(
1321
  'type' => 'slider',
@@ -1323,8 +1323,8 @@ class Su_Data {
1323
  'max' => 1600,
1324
  'step' => 20,
1325
  'default' => 600,
1326
- 'name' => __( 'Width', 'su' ),
1327
- 'desc' => __( 'Player width', 'su' )
1328
  ),
1329
  'height' => array(
1330
  'type' => 'slider',
@@ -1332,47 +1332,47 @@ class Su_Data {
1332
  'max' => 1600,
1333
  'step' => 20,
1334
  'default' => 400,
1335
- 'name' => __( 'Height', 'su' ),
1336
- 'desc' => __( 'Player height', 'su' )
1337
  ),
1338
  'responsive' => array(
1339
  'type' => 'bool',
1340
  'default' => 'yes',
1341
- 'name' => __( 'Responsive', 'su' ),
1342
- 'desc' => __( 'Ignore width and height parameters and make player responsive', 'su' )
1343
  ),
1344
  'autoplay' => array(
1345
  'type' => 'bool',
1346
  'default' => 'no',
1347
- 'name' => __( 'Autoplay', 'su' ),
1348
- 'desc' => __( 'Play video automatically when page is loaded', 'su' )
1349
  ),
1350
  'class' => array(
1351
  'default' => '',
1352
- 'name' => __( 'Class', 'su' ),
1353
- 'desc' => __( 'Extra CSS class', 'su' )
1354
  )
1355
  ),
1356
- 'desc' => __( 'YouTube video', 'su' ),
1357
  'example' => 'media',
1358
  'icon' => 'youtube-play'
1359
  ),
1360
  // youtube_advanced
1361
  'youtube_advanced' => array(
1362
- 'name' => __( 'YouTube Advanced', 'su' ),
1363
  'type' => 'single',
1364
  'group' => 'media',
1365
  'atts' => array(
1366
  'url' => array(
1367
  'values' => array( ),
1368
  'default' => '',
1369
- 'name' => __( 'Url', 'su' ),
1370
- 'desc' => __( 'Url of YouTube page with video. Ex: http://youtube.com/watch?v=XXXXXX', 'su' )
1371
  ),
1372
  'playlist' => array(
1373
  'default' => '',
1374
- 'name' => __( 'Playlist', 'su' ),
1375
- 'desc' => __( 'Value is a comma-separated list of video IDs to play. If you specify a value, the first video that plays will be the VIDEO_ID specified in the URL path, and the videos specified in the playlist parameter will play thereafter', 'su' )
1376
  ),
1377
  'width' => array(
1378
  'type' => 'slider',
@@ -1380,8 +1380,8 @@ class Su_Data {
1380
  'max' => 1600,
1381
  'step' => 20,
1382
  'default' => 600,
1383
- 'name' => __( 'Width', 'su' ),
1384
- 'desc' => __( 'Player width', 'su' )
1385
  ),
1386
  'height' => array(
1387
  'type' => 'slider',
@@ -1389,114 +1389,114 @@ class Su_Data {
1389
  'max' => 1600,
1390
  'step' => 20,
1391
  'default' => 400,
1392
- 'name' => __( 'Height', 'su' ),
1393
- 'desc' => __( 'Player height', 'su' )
1394
  ),
1395
  'responsive' => array(
1396
  'type' => 'bool',
1397
  'default' => 'yes',
1398
- 'name' => __( 'Responsive', 'su' ),
1399
- 'desc' => __( 'Ignore width and height parameters and make player responsive', 'su' )
1400
  ),
1401
  'controls' => array(
1402
  'type' => 'select',
1403
  'values' => array(
1404
- 'no' => __( '0 - Hide controls', 'su' ),
1405
- 'yes' => __( '1 - Show controls', 'su' ),
1406
- 'alt' => __( '2 - Show controls when playback is started', 'su' )
1407
  ),
1408
  'default' => 'yes',
1409
- 'name' => __( 'Controls', 'su' ),
1410
- 'desc' => __( 'This parameter indicates whether the video player controls will display', 'su' )
1411
  ),
1412
  'autohide' => array(
1413
  'type' => 'select',
1414
  'values' => array(
1415
- 'no' => __( '0 - Do not hide controls', 'su' ),
1416
- 'yes' => __( '1 - Hide all controls on mouse out', 'su' ),
1417
- 'alt' => __( '2 - Hide progress bar on mouse out', 'su' )
1418
  ),
1419
  'default' => 'alt',
1420
- 'name' => __( 'Autohide', 'su' ),
1421
- 'desc' => __( 'This parameter indicates whether the video controls will automatically hide after a video begins playing', 'su' )
1422
  ),
1423
  'showinfo' => array(
1424
  'type' => 'bool',
1425
  'default' => 'yes',
1426
- 'name' => __( 'Show title bar', 'su' ),
1427
- 'desc' => __( 'If you set the parameter value to NO, then the player will not display information like the video title and uploader before the video starts playing.', 'su' )
1428
  ),
1429
  'autoplay' => array(
1430
  'type' => 'bool',
1431
  'default' => 'no',
1432
- 'name' => __( 'Autoplay', 'su' ),
1433
- 'desc' => __( 'Play video automatically when page is loaded', 'su' )
1434
  ),
1435
  'loop' => array(
1436
  'type' => 'bool',
1437
  'default' => 'no',
1438
- 'name' => __( 'Loop', 'su' ),
1439
- 'desc' => __( 'Setting of YES will cause the player to play the initial video again and again', 'su' )
1440
  ),
1441
  'rel' => array(
1442
  'type' => 'bool',
1443
  'default' => 'yes',
1444
- 'name' => __( 'Related videos', 'su' ),
1445
- 'desc' => __( 'This parameter indicates whether the player should show related videos when playback of the initial video ends', 'su' )
1446
  ),
1447
  'fs' => array(
1448
  'type' => 'bool',
1449
  'default' => 'yes',
1450
- 'name' => __( 'Show full-screen button', 'su' ),
1451
- 'desc' => __( 'Setting this parameter to NO prevents the fullscreen button from displaying', 'su' )
1452
  ),
1453
  'modestbranding' => array(
1454
  'type' => 'bool',
1455
  'default' => 'no',
1456
  'name' => 'modestbranding',
1457
- 'desc' => __( 'This parameter lets you use a YouTube player that does not show a YouTube logo. Set the parameter value to YES to prevent the YouTube logo from displaying in the control bar. Note that a small YouTube text label will still display in the upper-right corner of a paused video when the user\'s mouse pointer hovers over the player', 'su' )
1458
  ),
1459
  'theme' => array(
1460
  'type' => 'select',
1461
  'values' => array(
1462
- 'dark' => __( 'Dark theme', 'su' ),
1463
- 'light' => __( 'Light theme', 'su' )
1464
  ),
1465
  'default' => 'dark',
1466
- 'name' => __( 'Theme', 'su' ),
1467
- 'desc' => __( 'This parameter indicates whether the embedded player will display player controls (like a play button or volume control) within a dark or light control bar', 'su' )
1468
  ),
1469
  'https' => array(
1470
  'type' => 'bool',
1471
  'default' => 'no',
1472
- 'name' => __( 'Force HTTPS', 'su' ),
1473
- 'desc' => __( 'Use HTTPS in player iframe', 'su' )
1474
  ),
1475
  'wmode' => array(
1476
  'default' => '',
1477
- 'name' => __( 'WMode', 'su' ),
1478
- 'desc' => sprintf( __( 'Here you can specify wmode value for the embed URL. %s Example values: %s, %s', 'su' ), '<br>', '<b%value>transparent</b>', '<b%value>opaque</b>' )
1479
  ),
1480
  'class' => array(
1481
  'default' => '',
1482
- 'name' => __( 'Class', 'su' ),
1483
- 'desc' => __( 'Extra CSS class', 'su' )
1484
  )
1485
  ),
1486
- 'desc' => __( 'YouTube video player with advanced settings', 'su' ),
1487
  'example' => 'media',
1488
  'icon' => 'youtube-play'
1489
  ),
1490
  // vimeo
1491
  'vimeo' => array(
1492
- 'name' => __( 'Vimeo', 'su' ),
1493
  'type' => 'single',
1494
  'group' => 'media',
1495
  'atts' => array(
1496
  'url' => array(
1497
  'values' => array( ),
1498
  'default' => '',
1499
- 'name' => __( 'Url', 'su' ), 'desc' => __( 'Url of Vimeo page with video', 'su' )
1500
  ),
1501
  'width' => array(
1502
  'type' => 'slider',
@@ -1504,8 +1504,8 @@ class Su_Data {
1504
  'max' => 1600,
1505
  'step' => 20,
1506
  'default' => 600,
1507
- 'name' => __( 'Width', 'su' ),
1508
- 'desc' => __( 'Player width', 'su' )
1509
  ),
1510
  'height' => array(
1511
  'type' => 'slider',
@@ -1513,41 +1513,41 @@ class Su_Data {
1513
  'max' => 1600,
1514
  'step' => 20,
1515
  'default' => 400,
1516
- 'name' => __( 'Height', 'su' ),
1517
- 'desc' => __( 'Player height', 'su' )
1518
  ),
1519
  'responsive' => array(
1520
  'type' => 'bool',
1521
  'default' => 'yes',
1522
- 'name' => __( 'Responsive', 'su' ),
1523
- 'desc' => __( 'Ignore width and height parameters and make player responsive', 'su' )
1524
  ),
1525
  'autoplay' => array(
1526
  'type' => 'bool',
1527
  'default' => 'no',
1528
- 'name' => __( 'Autoplay', 'su' ),
1529
- 'desc' => __( 'Play video automatically when page is loaded', 'su' )
1530
  ),
1531
  'class' => array(
1532
  'default' => '',
1533
- 'name' => __( 'Class', 'su' ),
1534
- 'desc' => __( 'Extra CSS class', 'su' )
1535
  )
1536
  ),
1537
- 'desc' => __( 'Vimeo video', 'su' ),
1538
  'example' => 'media',
1539
  'icon' => 'youtube-play'
1540
  ),
1541
  // screenr
1542
  'screenr' => array(
1543
- 'name' => __( 'Screenr', 'su' ),
1544
  'type' => 'single',
1545
  'group' => 'media',
1546
  'atts' => array(
1547
  'url' => array(
1548
  'default' => '',
1549
- 'name' => __( 'Url', 'su' ),
1550
- 'desc' => __( 'Url of Screenr page with video', 'su' )
1551
  ),
1552
  'width' => array(
1553
  'type' => 'slider',
@@ -1555,8 +1555,8 @@ class Su_Data {
1555
  'max' => 1600,
1556
  'step' => 20,
1557
  'default' => 600,
1558
- 'name' => __( 'Width', 'su' ),
1559
- 'desc' => __( 'Player width', 'su' )
1560
  ),
1561
  'height' => array(
1562
  'type' => 'slider',
@@ -1564,34 +1564,34 @@ class Su_Data {
1564
  'max' => 1600,
1565
  'step' => 20,
1566
  'default' => 400,
1567
- 'name' => __( 'Height', 'su' ),
1568
- 'desc' => __( 'Player height', 'su' )
1569
  ),
1570
  'responsive' => array(
1571
  'type' => 'bool',
1572
  'default' => 'yes',
1573
- 'name' => __( 'Responsive', 'su' ),
1574
- 'desc' => __( 'Ignore width and height parameters and make player responsive', 'su' )
1575
  ),
1576
  'class' => array(
1577
  'default' => '',
1578
- 'name' => __( 'Class', 'su' ),
1579
- 'desc' => __( 'Extra CSS class', 'su' )
1580
  )
1581
  ),
1582
- 'desc' => __( 'Screenr video', 'su' ),
1583
  'icon' => 'youtube-play'
1584
  ),
1585
  // dailymotion
1586
  'dailymotion' => array(
1587
- 'name' => __( 'Dailymotion', 'su' ),
1588
  'type' => 'single',
1589
  'group' => 'media',
1590
  'atts' => array(
1591
  'url' => array(
1592
  'default' => '',
1593
- 'name' => __( 'Url', 'su' ),
1594
- 'desc' => __( 'Url of Dailymotion page with video', 'su' )
1595
  ),
1596
  'width' => array(
1597
  'type' => 'slider',
@@ -1599,8 +1599,8 @@ class Su_Data {
1599
  'max' => 1600,
1600
  'step' => 20,
1601
  'default' => 600,
1602
- 'name' => __( 'Width', 'su' ),
1603
- 'desc' => __( 'Player width', 'su' )
1604
  ),
1605
  'height' => array(
1606
  'type' => 'slider',
@@ -1608,44 +1608,44 @@ class Su_Data {
1608
  'max' => 1600,
1609
  'step' => 20,
1610
  'default' => 400,
1611
- 'name' => __( 'Height', 'su' ),
1612
- 'desc' => __( 'Player height', 'su' )
1613
  ),
1614
  'responsive' => array(
1615
  'type' => 'bool',
1616
  'default' => 'yes',
1617
- 'name' => __( 'Responsive', 'su' ),
1618
- 'desc' => __( 'Ignore width and height parameters and make player responsive', 'su' )
1619
  ),
1620
  'autoplay' => array(
1621
  'type' => 'bool',
1622
  'default' => 'no',
1623
- 'name' => __( 'Autoplay', 'su' ),
1624
- 'desc' => __( 'Start the playback of the video automatically after the player load. May not work on some mobile OS versions', 'su' )
1625
  ),
1626
  'background' => array(
1627
  'type' => 'color',
1628
  'default' => '#FFC300',
1629
- 'name' => __( 'Background color', 'su' ),
1630
- 'desc' => __( 'HTML color of the background of controls elements', 'su' )
1631
  ),
1632
  'foreground' => array(
1633
  'type' => 'color',
1634
  'default' => '#F7FFFD',
1635
- 'name' => __( 'Foreground color', 'su' ),
1636
- 'desc' => __( 'HTML color of the foreground of controls elements', 'su' )
1637
  ),
1638
  'highlight' => array(
1639
  'type' => 'color',
1640
  'default' => '#171D1B',
1641
- 'name' => __( 'Highlight color', 'su' ),
1642
- 'desc' => __( 'HTML color of the controls elements\' highlights', 'su' )
1643
  ),
1644
  'logo' => array(
1645
  'type' => 'bool',
1646
  'default' => 'yes',
1647
- 'name' => __( 'Show logo', 'su' ),
1648
- 'desc' => __( 'Allows to hide or show the Dailymotion logo', 'su' )
1649
  ),
1650
  'quality' => array(
1651
  'type' => 'select',
@@ -1657,93 +1657,93 @@ class Su_Data {
1657
  '1080' => '1080'
1658
  ),
1659
  'default' => '380',
1660
- 'name' => __( 'Quality', 'su' ),
1661
- 'desc' => __( 'Determines the quality that must be played by default if available', 'su' )
1662
  ),
1663
  'related' => array(
1664
  'type' => 'bool',
1665
  'default' => 'yes',
1666
- 'name' => __( 'Show related videos', 'su' ),
1667
- 'desc' => __( 'Show related videos at the end of the video', 'su' )
1668
  ),
1669
  'info' => array(
1670
  'type' => 'bool',
1671
  'default' => 'yes',
1672
- 'name' => __( 'Show video info', 'su' ),
1673
- 'desc' => __( 'Show videos info (title/author) on the start screen', 'su' )
1674
  ),
1675
  'class' => array(
1676
  'default' => '',
1677
- 'name' => __( 'Class', 'su' ),
1678
- 'desc' => __( 'Extra CSS class', 'su' )
1679
  )
1680
  ),
1681
- 'desc' => __( 'Dailymotion video', 'su' ),
1682
  'icon' => 'youtube-play'
1683
  ),
1684
  // audio
1685
  'audio' => array(
1686
- 'name' => __( 'Audio', 'su' ),
1687
  'type' => 'single',
1688
  'group' => 'media',
1689
  'atts' => array(
1690
  'url' => array(
1691
  'type' => 'upload',
1692
  'default' => '',
1693
- 'name' => __( 'File', 'su' ),
1694
- 'desc' => __( 'Audio file url. Supported formats: mp3, ogg', 'su' )
1695
  ),
1696
  'width' => array(
1697
  'values' => array(),
1698
  'default' => '100%',
1699
- 'name' => __( 'Width', 'su' ),
1700
- '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>', 'su' )
1701
  ),
1702
  'autoplay' => array(
1703
  'type' => 'bool',
1704
  'default' => 'no',
1705
- 'name' => __( 'Autoplay', 'su' ),
1706
- 'desc' => __( 'Play file automatically when page is loaded', 'su' )
1707
  ),
1708
  'loop' => array(
1709
  'type' => 'bool',
1710
  'default' => 'no',
1711
- 'name' => __( 'Loop', 'su' ),
1712
- 'desc' => __( 'Repeat when playback is ended', 'su' )
1713
  ),
1714
  'class' => array(
1715
  'default' => '',
1716
- 'name' => __( 'Class', 'su' ),
1717
- 'desc' => __( 'Extra CSS class', 'su' )
1718
  )
1719
  ),
1720
- 'desc' => __( 'Custom audio player', 'su' ),
1721
  'example' => 'media',
1722
  'icon' => 'play-circle'
1723
  ),
1724
  // video
1725
  'video' => array(
1726
- 'name' => __( 'Video', 'su' ),
1727
  'type' => 'single',
1728
  'group' => 'media',
1729
  'atts' => array(
1730
  'url' => array(
1731
  'type' => 'upload',
1732
  'default' => '',
1733
- 'name' => __( 'File', 'su' ),
1734
- 'desc' => __( 'Url to mp4/flv video-file', 'su' )
1735
  ),
1736
  'poster' => array(
1737
  'type' => 'upload',
1738
  'default' => '',
1739
- 'name' => __( 'Poster', 'su' ),
1740
- 'desc' => __( 'Url to poster image, that will be shown before playback', 'su' )
1741
  ),
1742
  'title' => array(
1743
  'values' => array( ),
1744
  'default' => '',
1745
- 'name' => __( 'Title', 'su' ),
1746
- 'desc' => __( 'Player title', 'su' )
1747
  ),
1748
  'width' => array(
1749
  'type' => 'slider',
@@ -1751,8 +1751,8 @@ class Su_Data {
1751
  'max' => 1600,
1752
  'step' => 20,
1753
  'default' => 600,
1754
- 'name' => __( 'Width', 'su' ),
1755
- 'desc' => __( 'Player width', 'su' )
1756
  ),
1757
  'height' => array(
1758
  'type' => 'slider',
@@ -1760,150 +1760,150 @@ class Su_Data {
1760
  'max' => 1600,
1761
  'step' => 20,
1762
  'default' => 300,
1763
- 'name' => __( 'Height', 'su' ),
1764
- 'desc' => __( 'Player height', 'su' )
1765
  ),
1766
  'controls' => array(
1767
  'type' => 'bool',
1768
  'default' => 'yes',
1769
- 'name' => __( 'Controls', 'su' ),
1770
- 'desc' => __( 'Show player controls (play/pause etc.) or not', 'su' )
1771
  ),
1772
  'autoplay' => array(
1773
  'type' => 'bool',
1774
  'default' => 'no',
1775
- 'name' => __( 'Autoplay', 'su' ),
1776
- 'desc' => __( 'Play file automatically when page is loaded', 'su' )
1777
  ),
1778
  'loop' => array(
1779
  'type' => 'bool',
1780
  'default' => 'no',
1781
- 'name' => __( 'Loop', 'su' ),
1782
- 'desc' => __( 'Repeat when playback is ended', 'su' )
1783
  ),
1784
  'class' => array(
1785
  'default' => '',
1786
- 'name' => __( 'Class', 'su' ),
1787
- 'desc' => __( 'Extra CSS class', 'su' )
1788
  )
1789
  ),
1790
- 'desc' => __( 'Custom video player', 'su' ),
1791
  'example' => 'media',
1792
  'icon' => 'play-circle'
1793
  ),
1794
  // table
1795
  'table' => array(
1796
- 'name' => __( 'Table', 'su' ),
1797
  'type' => 'mixed',
1798
  'group' => 'content',
1799
  'atts' => array(
1800
  'url' => array(
1801
  'type' => 'upload',
1802
  'default' => '',
1803
- 'name' => __( 'CSV file', 'su' ),
1804
- 'desc' => __( 'Upload CSV file if you want to create HTML-table from file', 'su' )
1805
  ),
1806
  'class' => array(
1807
  'default' => '',
1808
- 'name' => __( 'Class', 'su' ),
1809
- 'desc' => __( 'Extra CSS class', 'su' )
1810
  )
1811
  ),
1812
- 'content' => __( "<table>\n<tr>\n\t<td>Table</td>\n\t<td>Table</td>\n</tr>\n<tr>\n\t<td>Table</td>\n\t<td>Table</td>\n</tr>\n</table>", 'su' ),
1813
- 'desc' => __( 'Styled table from HTML or CSV file', 'su' ),
1814
  'icon' => 'table'
1815
  ),
1816
  // permalink
1817
  'permalink' => array(
1818
- 'name' => __( 'Permalink', 'su' ),
1819
  'type' => 'mixed',
1820
  'group' => 'content other',
1821
  'atts' => array(
1822
  'id' => array(
1823
  'values' => array( ), 'default' => 1,
1824
- 'name' => __( 'ID', 'su' ),
1825
- 'desc' => __( 'Post or page ID', 'su' )
1826
  ),
1827
  'target' => array(
1828
  'type' => 'select',
1829
  'values' => array(
1830
- 'self' => __( 'Same tab', 'su' ),
1831
- 'blank' => __( 'New tab', 'su' )
1832
  ),
1833
  'default' => 'self',
1834
- 'name' => __( 'Target', 'su' ),
1835
- 'desc' => __( 'Link target. blank - link will be opened in new window/tab', 'su' )
1836
  ),
1837
  'class' => array(
1838
  'default' => '',
1839
- 'name' => __( 'Class', 'su' ),
1840
- 'desc' => __( 'Extra CSS class', 'su' )
1841
  )
1842
  ),
1843
  'content' => '',
1844
- 'desc' => __( 'Permalink to specified post/page', 'su' ),
1845
  'icon' => 'link'
1846
  ),
1847
  // members
1848
  'members' => array(
1849
- 'name' => __( 'Members', 'su' ),
1850
  'type' => 'wrap',
1851
  'group' => 'other',
1852
  'atts' => array(
1853
  'message' => array(
1854
- 'default' => __( 'This content is for registered users only. Please %login%.', 'su' ),
1855
- 'name' => __( 'Message', 'su' ), 'desc' => __( 'Message for not logged users', 'su' )
1856
  ),
1857
  'color' => array(
1858
  'type' => 'color',
1859
  'default' => '#ffcc00',
1860
- 'name' => __( 'Box color', 'su' ), 'desc' => __( 'This color will applied only to box for not logged users', 'su' )
1861
  ),
1862
  'login_text' => array(
1863
- 'default' => __( 'login', 'su' ),
1864
- 'name' => __( 'Login link text', 'su' ), 'desc' => __( 'Text for the login link', 'su' )
1865
  ),
1866
  'login_url' => array(
1867
  'default' => wp_login_url(),
1868
- 'name' => __( 'Login link url', 'su' ), 'desc' => __( 'Login link url', 'su' )
1869
  ),
1870
  'class' => array(
1871
  'default' => '',
1872
- 'name' => __( 'Class', 'su' ),
1873
- 'desc' => __( 'Extra CSS class', 'su' )
1874
  )
1875
  ),
1876
- 'content' => __( 'Content for logged members', 'su' ),
1877
- 'desc' => __( 'Content for logged in members only', 'su' ),
1878
  'icon' => 'lock'
1879
  ),
1880
  // guests
1881
  'guests' => array(
1882
- 'name' => __( 'Guests', 'su' ),
1883
  'type' => 'wrap',
1884
  'group' => 'other',
1885
  'atts' => array(
1886
  'class' => array(
1887
  'default' => '',
1888
- 'name' => __( 'Class', 'su' ),
1889
- 'desc' => __( 'Extra CSS class', 'su' )
1890
  )
1891
  ),
1892
- 'content' => __( 'Content for guests', 'su' ),
1893
- 'desc' => __( 'Content for guests only', 'su' ),
1894
  'icon' => 'user'
1895
  ),
1896
  // feed
1897
  'feed' => array(
1898
- 'name' => __( 'RSS Feed', 'su' ),
1899
  'type' => 'single',
1900
  'group' => 'content other',
1901
  'atts' => array(
1902
  'url' => array(
1903
  'values' => array( ),
1904
  'default' => '',
1905
- 'name' => __( 'Url', 'su' ),
1906
- 'desc' => __( 'Url to RSS-feed', 'su' )
1907
  ),
1908
  'limit' => array(
1909
  'type' => 'slider',
@@ -1911,96 +1911,96 @@ class Su_Data {
1911
  'max' => 20,
1912
  'step' => 1,
1913
  'default' => 3,
1914
- 'name' => __( 'Limit', 'su' ), 'desc' => __( 'Number of items to show', 'su' )
1915
  ),
1916
  'class' => array(
1917
  'default' => '',
1918
- 'name' => __( 'Class', 'su' ),
1919
- 'desc' => __( 'Extra CSS class', 'su' )
1920
  )
1921
  ),
1922
- 'desc' => __( 'Feed grabber', 'su' ),
1923
  'icon' => 'rss'
1924
  ),
1925
  // menu
1926
  'menu' => array(
1927
- 'name' => __( 'Menu', 'su' ),
1928
  'type' => 'single',
1929
  'group' => 'other',
1930
  'atts' => array(
1931
  'name' => array(
1932
  'values' => array( ),
1933
  'default' => '',
1934
- 'name' => __( 'Menu name', 'su' ), 'desc' => __( 'Custom menu name. Ex: Main menu', 'su' )
1935
  ),
1936
  'class' => array(
1937
  'default' => '',
1938
- 'name' => __( 'Class', 'su' ),
1939
- 'desc' => __( 'Extra CSS class', 'su' )
1940
  )
1941
  ),
1942
- 'desc' => __( 'Custom menu by name', 'su' ),
1943
  'icon' => 'bars'
1944
  ),
1945
  // subpages
1946
  'subpages' => array(
1947
- 'name' => __( 'Sub pages', 'su' ),
1948
  'type' => 'single',
1949
  'group' => 'other',
1950
  'atts' => array(
1951
  'depth' => array(
1952
  'type' => 'select',
1953
  'values' => array( 1, 2, 3, 4, 5 ), 'default' => 1,
1954
- 'name' => __( 'Depth', 'su' ),
1955
- 'desc' => __( 'Max depth level of children pages', 'su' )
1956
  ),
1957
  'p' => array(
1958
  'values' => array( ),
1959
  'default' => '',
1960
- 'name' => __( 'Parent ID', 'su' ),
1961
- 'desc' => __( 'ID of the parent page. Leave blank to use current page', 'su' )
1962
  ),
1963
  'class' => array(
1964
  'default' => '',
1965
- 'name' => __( 'Class', 'su' ),
1966
- 'desc' => __( 'Extra CSS class', 'su' )
1967
  )
1968
  ),
1969
- 'desc' => __( 'List of sub pages', 'su' ),
1970
  'icon' => 'bars'
1971
  ),
1972
  // siblings
1973
  'siblings' => array(
1974
- 'name' => __( 'Siblings', 'su' ),
1975
  'type' => 'single',
1976
  'group' => 'other',
1977
  'atts' => array(
1978
  'depth' => array(
1979
  'type' => 'select',
1980
  'values' => array( 1, 2, 3 ), 'default' => 1,
1981
- 'name' => __( 'Depth', 'su' ),
1982
- 'desc' => __( 'Max depth level', 'su' )
1983
  ),
1984
  'class' => array(
1985
  'default' => '',
1986
- 'name' => __( 'Class', 'su' ),
1987
- 'desc' => __( 'Extra CSS class', 'su' )
1988
  )
1989
  ),
1990
- 'desc' => __( 'List of cureent page siblings', 'su' ),
1991
  'icon' => 'bars'
1992
  ),
1993
  // document
1994
  'document' => array(
1995
- 'name' => __( 'Document', 'su' ),
1996
  'type' => 'single',
1997
  'group' => 'media',
1998
  'atts' => array(
1999
  'url' => array(
2000
  'type' => 'upload',
2001
  'default' => '',
2002
- 'name' => __( 'Url', 'su' ),
2003
- 'desc' => __( 'Url to uploaded document. Supported formats: doc, xls, pdf etc.', 'su' )
2004
  ),
2005
  'width' => array(
2006
  'type' => 'slider',
@@ -2008,8 +2008,8 @@ class Su_Data {
2008
  'max' => 1600,
2009
  'step' => 20,
2010
  'default' => 600,
2011
- 'name' => __( 'Width', 'su' ),
2012
- 'desc' => __( 'Viewer width', 'su' )
2013
  ),
2014
  'height' => array(
2015
  'type' => 'slider',
@@ -2017,27 +2017,27 @@ class Su_Data {
2017
  'max' => 1600,
2018
  'step' => 20,
2019
  'default' => 600,
2020
- 'name' => __( 'Height', 'su' ),
2021
- 'desc' => __( 'Viewer height', 'su' )
2022
  ),
2023
  'responsive' => array(
2024
  'type' => 'bool',
2025
  'default' => 'yes',
2026
- 'name' => __( 'Responsive', 'su' ),
2027
- 'desc' => __( 'Ignore width and height parameters and make viewer responsive', 'su' )
2028
  ),
2029
  'class' => array(
2030
  'default' => '',
2031
- 'name' => __( 'Class', 'su' ),
2032
- 'desc' => __( 'Extra CSS class', 'su' )
2033
  )
2034
  ),
2035
- 'desc' => __( 'Document viewer by Google', 'su' ),
2036
  'icon' => 'file-text'
2037
  ),
2038
  // gmap
2039
  'gmap' => array(
2040
- 'name' => __( 'Gmap', 'su' ),
2041
  'type' => 'single',
2042
  'group' => 'media',
2043
  'atts' => array(
@@ -2047,8 +2047,8 @@ class Su_Data {
2047
  'max' => 1600,
2048
  'step' => 20,
2049
  'default' => 600,
2050
- 'name' => __( 'Width', 'su' ),
2051
- 'desc' => __( 'Map width', 'su' )
2052
  ),
2053
  'height' => array(
2054
  'type' => 'slider',
@@ -2056,41 +2056,41 @@ class Su_Data {
2056
  'max' => 1600,
2057
  'step' => 20,
2058
  'default' => 400,
2059
- 'name' => __( 'Height', 'su' ),
2060
- 'desc' => __( 'Map height', 'su' )
2061
  ),
2062
  'responsive' => array(
2063
  'type' => 'bool',
2064
  'default' => 'yes',
2065
- 'name' => __( 'Responsive', 'su' ),
2066
- 'desc' => __( 'Ignore width and height parameters and make map responsive', 'su' )
2067
  ),
2068
  'address' => array(
2069
  'values' => array( ),
2070
  'default' => '',
2071
- 'name' => __( 'Marker', 'su' ),
2072
- 'desc' => __( 'Address for the marker. You can type it in any language', 'su' )
2073
  ),
2074
  'class' => array(
2075
  'default' => '',
2076
- 'name' => __( 'Class', 'su' ),
2077
- 'desc' => __( 'Extra CSS class', 'su' )
2078
  )
2079
  ),
2080
- 'desc' => __( 'Maps by Google', 'su' ),
2081
  'icon' => 'globe'
2082
  ),
2083
  // slider
2084
  'slider' => array(
2085
- 'name' => __( 'Slider', 'su' ),
2086
  'type' => 'single',
2087
  'group' => 'gallery',
2088
  'atts' => array(
2089
  'source' => array(
2090
  'type' => 'image_source',
2091
  'default' => 'none',
2092
- 'name' => __( 'Source', 'su' ),
2093
- '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', 'su' )
2094
  ),
2095
  'limit' => array(
2096
  'type' => 'slider',
@@ -2098,32 +2098,32 @@ class Su_Data {
2098
  'max' => 100,
2099
  'step' => 1,
2100
  'default' => 20,
2101
- 'name' => __( 'Limit', 'su' ),
2102
- 'desc' => __( 'Maximum number of image source posts (for recent posts, category and custom taxonomy)', 'su' )
2103
  ),
2104
  'link' => array(
2105
  'type' => 'select',
2106
  'values' => array(
2107
- 'none' => __( 'None', 'su' ),
2108
- 'image' => __( 'Full-size image', 'su' ),
2109
- 'lightbox' => __( 'Lightbox', 'su' ),
2110
- 'custom' => __( 'Slide link (added in media editor)', 'su' ),
2111
- 'attachment' => __( 'Attachment page', 'su' ),
2112
- 'post' => __( 'Post permalink', 'su' )
2113
  ),
2114
  'default' => 'none',
2115
- 'name' => __( 'Links', 'su' ),
2116
- 'desc' => __( 'Select which links will be used for images in this gallery', 'su' )
2117
  ),
2118
  'target' => array(
2119
  'type' => 'select',
2120
  'values' => array(
2121
- 'self' => __( 'Same window', 'su' ),
2122
- 'blank' => __( 'New window', 'su' )
2123
  ),
2124
  'default' => 'self',
2125
- 'name' => __( 'Links target', 'su' ),
2126
- 'desc' => __( 'Open links in', 'su' )
2127
  ),
2128
  'width' => array(
2129
  'type' => 'slider',
@@ -2131,7 +2131,7 @@ class Su_Data {
2131
  'max' => 1600,
2132
  'step' => 20,
2133
  'default' => 600,
2134
- 'name' => __( 'Width', 'su' ), 'desc' => __( 'Slider width (in pixels)', 'su' )
2135
  ),
2136
  'height' => array(
2137
  'type' => 'slider',
@@ -2139,39 +2139,39 @@ class Su_Data {
2139
  'max' => 1600,
2140
  'step' => 20,
2141
  'default' => 300,
2142
- 'name' => __( 'Height', 'su' ), 'desc' => __( 'Slider height (in pixels)', 'su' )
2143
  ),
2144
  'responsive' => array(
2145
  'type' => 'bool',
2146
  'default' => 'yes',
2147
- 'name' => __( 'Responsive', 'su' ),
2148
- 'desc' => __( 'Ignore width and height parameters and make slider responsive', 'su' )
2149
  ),
2150
  'title' => array(
2151
  'type' => 'bool',
2152
  'default' => 'yes',
2153
- 'name' => __( 'Show titles', 'su' ), 'desc' => __( 'Display slide titles', 'su' )
2154
  ),
2155
  'centered' => array(
2156
  'type' => 'bool',
2157
  'default' => 'yes',
2158
- 'name' => __( 'Center', 'su' ), 'desc' => __( 'Is slider centered on the page', 'su' )
2159
  ),
2160
  'arrows' => array(
2161
  'type' => 'bool',
2162
  'default' => 'yes',
2163
- 'name' => __( 'Arrows', 'su' ), 'desc' => __( 'Show left and right arrows', 'su' )
2164
  ),
2165
  'pages' => array(
2166
  'type' => 'bool',
2167
  'default' => 'yes',
2168
- 'name' => __( 'Pagination', 'su' ),
2169
- 'desc' => __( 'Show pagination', 'su' )
2170
  ),
2171
  'mousewheel' => array(
2172
  'type' => 'bool',
2173
- 'default' => 'yes', 'name' => __( 'Mouse wheel control', 'su' ),
2174
- 'desc' => __( 'Allow to change slides with mouse wheel', 'su' )
2175
  ),
2176
  'autoplay' => array(
2177
  'type' => 'number',
@@ -2179,8 +2179,8 @@ class Su_Data {
2179
  'max' => 100000,
2180
  'step' => 100,
2181
  'default' => 5000,
2182
- 'name' => __( 'Autoplay', 'su' ),
2183
- 'desc' => __( 'Choose interval between slide animations. Set to 0 to disable autoplay', 'su' )
2184
  ),
2185
  'speed' => array(
2186
  'type' => 'number',
@@ -2188,28 +2188,28 @@ class Su_Data {
2188
  'max' => 20000,
2189
  'step' => 100,
2190
  'default' => 600,
2191
- 'name' => __( 'Speed', 'su' ), 'desc' => __( 'Specify animation speed', 'su' )
2192
  ),
2193
  'class' => array(
2194
  'default' => '',
2195
- 'name' => __( 'Class', 'su' ),
2196
- 'desc' => __( 'Extra CSS class', 'su' )
2197
  )
2198
  ),
2199
- 'desc' => __( 'Customizable image slider', 'su' ),
2200
  'icon' => 'picture-o'
2201
  ),
2202
  // carousel
2203
  'carousel' => array(
2204
- 'name' => __( 'Carousel', 'su' ),
2205
  'type' => 'single',
2206
  'group' => 'gallery',
2207
  'atts' => array(
2208
  'source' => array(
2209
  'type' => 'image_source',
2210
  'default' => 'none',
2211
- 'name' => __( 'Source', 'su' ),
2212
- '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', 'su' )
2213
  ),
2214
  'limit' => array(
2215
  'type' => 'slider',
@@ -2217,32 +2217,32 @@ class Su_Data {
2217
  'max' => 100,
2218
  'step' => 1,
2219
  'default' => 20,
2220
- 'name' => __( 'Limit', 'su' ),
2221
- 'desc' => __( 'Maximum number of image source posts (for recent posts, category and custom taxonomy)', 'su' )
2222
  ),
2223
  'link' => array(
2224
  'type' => 'select',
2225
  'values' => array(
2226
- 'none' => __( 'None', 'su' ),
2227
- 'image' => __( 'Full-size image', 'su' ),
2228
- 'lightbox' => __( 'Lightbox', 'su' ),
2229
- 'custom' => __( 'Slide link (added in media editor)', 'su' ),
2230
- 'attachment' => __( 'Attachment page', 'su' ),
2231
- 'post' => __( 'Post permalink', 'su' )
2232
  ),
2233
  'default' => 'none',
2234
- 'name' => __( 'Links', 'su' ),
2235
- 'desc' => __( 'Select which links will be used for images in this gallery', 'su' )
2236
  ),
2237
  'target' => array(
2238
  'type' => 'select',
2239
  'values' => array(
2240
- 'self' => __( 'Same window', 'su' ),
2241
- 'blank' => __( 'New window', 'su' )
2242
  ),
2243
  'default' => 'self',
2244
- 'name' => __( 'Links target', 'su' ),
2245
- 'desc' => __( 'Open links in', 'su' )
2246
  ),
2247
  'width' => array(
2248
  'type' => 'slider',
@@ -2250,8 +2250,8 @@ class Su_Data {
2250
  'max' => 1600,
2251
  'step' => 20,
2252
  'default' => 600,
2253
- 'name' => __( 'Width', 'su' ),
2254
- 'desc' => __( 'Carousel width (in pixels)', 'su' )
2255
  ),
2256
  'height' => array(
2257
  'type' => 'slider',
@@ -2259,14 +2259,14 @@ class Su_Data {
2259
  'max' => 1600,
2260
  'step' => 20,
2261
  'default' => 100,
2262
- 'name' => __( 'Height', 'su' ),
2263
- 'desc' => __( 'Carousel height (in pixels)', 'su' )
2264
  ),
2265
  'responsive' => array(
2266
  'type' => 'bool',
2267
  'default' => 'yes',
2268
- 'name' => __( 'Responsive', 'su' ),
2269
- 'desc' => __( 'Ignore width and height parameters and make carousel responsive', 'su' )
2270
  ),
2271
  'items' => array(
2272
  'type' => 'number',
@@ -2274,42 +2274,42 @@ class Su_Data {
2274
  'max' => 20,
2275
  'step' => 1,
2276
  'default' => 3,
2277
- 'name' => __( 'Items to show', 'su' ),
2278
- 'desc' => __( 'How much carousel items is visible', 'su' )
2279
  ),
2280
  'scroll' => array(
2281
  'type' => 'number',
2282
  'min' => 1,
2283
  'max' => 20,
2284
  'step' => 1, 'default' => 1,
2285
- 'name' => __( 'Scroll number', 'su' ),
2286
- 'desc' => __( 'How much items are scrolled in one transition', 'su' )
2287
  ),
2288
  'title' => array(
2289
  'type' => 'bool',
2290
  'default' => 'yes',
2291
- 'name' => __( 'Show titles', 'su' ), 'desc' => __( 'Display titles for each item', 'su' )
2292
  ),
2293
  'centered' => array(
2294
  'type' => 'bool',
2295
  'default' => 'yes',
2296
- 'name' => __( 'Center', 'su' ), 'desc' => __( 'Is carousel centered on the page', 'su' )
2297
  ),
2298
  'arrows' => array(
2299
  'type' => 'bool',
2300
  'default' => 'yes',
2301
- 'name' => __( 'Arrows', 'su' ), 'desc' => __( 'Show left and right arrows', 'su' )
2302
  ),
2303
  'pages' => array(
2304
  'type' => 'bool',
2305
  'default' => 'no',
2306
- 'name' => __( 'Pagination', 'su' ),
2307
- 'desc' => __( 'Show pagination', 'su' )
2308
  ),
2309
  'mousewheel' => array(
2310
  'type' => 'bool',
2311
- 'default' => 'yes', 'name' => __( 'Mouse wheel control', 'su' ),
2312
- 'desc' => __( 'Allow to rotate carousel with mouse wheel', 'su' )
2313
  ),
2314
  'autoplay' => array(
2315
  'type' => 'number',
@@ -2317,8 +2317,8 @@ class Su_Data {
2317
  'max' => 100000,
2318
  'step' => 100,
2319
  'default' => 5000,
2320
- 'name' => __( 'Autoplay', 'su' ),
2321
- 'desc' => __( 'Choose interval between auto animations. Set to 0 to disable autoplay', 'su' )
2322
  ),
2323
  'speed' => array(
2324
  'type' => 'number',
@@ -2326,28 +2326,28 @@ class Su_Data {
2326
  'max' => 20000,
2327
  'step' => 100,
2328
  'default' => 600,
2329
- 'name' => __( 'Speed', 'su' ), 'desc' => __( 'Specify animation speed', 'su' )
2330
  ),
2331
  'class' => array(
2332
  'default' => '',
2333
- 'name' => __( 'Class', 'su' ),
2334
- 'desc' => __( 'Extra CSS class', 'su' )
2335
  )
2336
  ),
2337
- 'desc' => __( 'Customizable image carousel', 'su' ),
2338
  'icon' => 'picture-o'
2339
  ),
2340
  // custom_gallery
2341
  'custom_gallery' => array(
2342
- 'name' => __( 'Gallery', 'su' ),
2343
  'type' => 'single',
2344
  'group' => 'gallery',
2345
  'atts' => array(
2346
  'source' => array(
2347
  'type' => 'image_source',
2348
  'default' => 'none',
2349
- 'name' => __( 'Source', 'su' ),
2350
- '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', 'su' )
2351
  ),
2352
  'limit' => array(
2353
  'type' => 'slider',
@@ -2355,32 +2355,32 @@ class Su_Data {
2355
  'max' => 100,
2356
  'step' => 1,
2357
  'default' => 20,
2358
- 'name' => __( 'Limit', 'su' ),
2359
- 'desc' => __( 'Maximum number of image source posts (for recent posts, category and custom taxonomy)', 'su' )
2360
  ),
2361
  'link' => array(
2362
  'type' => 'select',
2363
  'values' => array(
2364
- 'none' => __( 'None', 'su' ),
2365
- 'image' => __( 'Full-size image', 'su' ),
2366
- 'lightbox' => __( 'Lightbox', 'su' ),
2367
- 'custom' => __( 'Slide link (added in media editor)', 'su' ),
2368
- 'attachment' => __( 'Attachment page', 'su' ),
2369
- 'post' => __( 'Post permalink', 'su' )
2370
  ),
2371
  'default' => 'none',
2372
- 'name' => __( 'Links', 'su' ),
2373
- 'desc' => __( 'Select which links will be used for images in this gallery', 'su' )
2374
  ),
2375
  'target' => array(
2376
  'type' => 'select',
2377
  'values' => array(
2378
- 'self' => __( 'Same window', 'su' ),
2379
- 'blank' => __( 'New window', 'su' )
2380
  ),
2381
  'default' => 'self',
2382
- 'name' => __( 'Links target', 'su' ),
2383
- 'desc' => __( 'Open links in', 'su' )
2384
  ),
2385
  'width' => array(
2386
  'type' => 'slider',
@@ -2388,7 +2388,7 @@ class Su_Data {
2388
  'max' => 1600,
2389
  'step' => 10,
2390
  'default' => 90,
2391
- 'name' => __( 'Width', 'su' ), 'desc' => __( 'Single item width (in pixels)', 'su' )
2392
  ),
2393
  'height' => array(
2394
  'type' => 'slider',
@@ -2396,42 +2396,42 @@ class Su_Data {
2396
  'max' => 1600,
2397
  'step' => 10,
2398
  'default' => 90,
2399
- 'name' => __( 'Height', 'su' ), 'desc' => __( 'Single item height (in pixels)', 'su' )
2400
  ),
2401
  'title' => array(
2402
  'type' => 'select',
2403
  'values' => array(
2404
- 'never' => __( 'Never', 'su' ),
2405
- 'hover' => __( 'On mouse over', 'su' ),
2406
- 'always' => __( 'Always', 'su' )
2407
  ),
2408
  'default' => 'hover',
2409
- 'name' => __( 'Show titles', 'su' ),
2410
- 'desc' => __( 'Title display mode', 'su' )
2411
  ),
2412
  'class' => array(
2413
  'default' => '',
2414
- 'name' => __( 'Class', 'su' ),
2415
- 'desc' => __( 'Extra CSS class', 'su' )
2416
  )
2417
  ),
2418
- 'desc' => __( 'Customizable image gallery', 'su' ),
2419
  'icon' => 'picture-o'
2420
  ),
2421
  // posts
2422
  'posts' => array(
2423
- 'name' => __( 'Posts', 'su' ),
2424
  'type' => 'single',
2425
  'group' => 'other',
2426
  'atts' => array(
2427
  'template' => array(
2428
- 'default' => 'templates/default-loop.php', 'name' => __( 'Template', 'su' ),
2429
- 'desc' => __( '<b>Do not change this field value if you do not understand description below.</b><br/>Relative path to the template file. Default templates is placed under the plugin directory (templates folder). You can copy it under your theme directory and modify as you want. You can use following default templates that already available in the plugin directory:<br/><b%value>templates/default-loop.php</b> - posts loop<br/><b%value>templates/teaser-loop.php</b> - posts loop with thumbnail and title<br/><b%value>templates/single-post.php</b> - single post template<br/><b%value>templates/list-loop.php</b> - unordered list with posts titles', 'su' )
2430
  ),
2431
  'id' => array(
2432
  'default' => '',
2433
- 'name' => __( 'Post ID\'s', 'su' ),
2434
- 'desc' => __( 'Enter comma separated ID\'s of the posts that you want to show', 'su' )
2435
  ),
2436
  'posts_per_page' => array(
2437
  'type' => 'number',
@@ -2439,139 +2439,139 @@ class Su_Data {
2439
  'max' => 10000,
2440
  'step' => 1,
2441
  'default' => get_option( 'posts_per_page' ),
2442
- 'name' => __( 'Posts per page', 'su' ),
2443
- 'desc' => __( 'Specify number of posts that you want to show. Enter -1 to get all posts', 'su' )
2444
  ),
2445
  'post_type' => array(
2446
  'type' => 'select',
2447
  'multiple' => true,
2448
  'values' => Su_Tools::get_types(),
2449
  'default' => 'post',
2450
- 'name' => __( 'Post types', 'su' ),
2451
- 'desc' => __( 'Select post types. Hold Ctrl key to select multiple post types', 'su' )
2452
  ),
2453
  'taxonomy' => array(
2454
  'type' => 'select',
2455
  'values' => Su_Tools::get_taxonomies(),
2456
  'default' => 'category',
2457
- 'name' => __( 'Taxonomy', 'su' ),
2458
- 'desc' => __( 'Select taxonomy to show posts from', 'su' )
2459
  ),
2460
  'tax_term' => array(
2461
  'type' => 'select',
2462
  'multiple' => true,
2463
  'values' => Su_Tools::get_terms( 'category' ),
2464
  'default' => '',
2465
- 'name' => __( 'Terms', 'su' ),
2466
- 'desc' => __( 'Select terms to show posts from', 'su' )
2467
  ),
2468
  'tax_operator' => array(
2469
  'type' => 'select',
2470
  'values' => array( 'IN', 'NOT IN', 'AND' ),
2471
- 'default' => 'IN', 'name' => __( 'Taxonomy term operator', 'su' ),
2472
- 'desc' => __( 'IN - posts that have any of selected categories terms<br/>NOT IN - posts that is does not have any of selected terms<br/>AND - posts that have all selected terms', 'su' )
2473
  ),
2474
  // 'author' => array(
2475
  // 'type' => 'select',
2476
  // 'multiple' => true,
2477
  // 'values' => Su_Tools::get_users(),
2478
  // 'default' => 'default',
2479
- // 'name' => __( 'Authors', 'su' ),
2480
- // 'desc' => __( 'Choose the authors whose posts you want to show. Enter here comma-separated list of users (IDs). Example: 1,7,18', 'su' )
2481
  // ),
2482
  'author' => array(
2483
  'default' => '',
2484
- 'name' => __( 'Authors', 'su' ),
2485
- 'desc' => __( 'Enter here comma-separated list of author\'s IDs. Example: 1,7,18', 'su' )
2486
  ),
2487
  'meta_key' => array(
2488
  'default' => '',
2489
- 'name' => __( 'Meta key', 'su' ),
2490
- 'desc' => __( 'Enter meta key name to show posts that have this key', 'su' )
2491
  ),
2492
  'offset' => array(
2493
  'type' => 'number',
2494
  'min' => 0,
2495
  'max' => 10000,
2496
  'step' => 1, 'default' => 0,
2497
- 'name' => __( 'Offset', 'su' ),
2498
- 'desc' => __( 'Specify offset to start posts loop not from first post', 'su' )
2499
  ),
2500
  'order' => array(
2501
  'type' => 'select',
2502
  'values' => array(
2503
- 'desc' => __( 'Descending', 'su' ),
2504
- 'asc' => __( 'Ascending', 'su' )
2505
  ),
2506
  'default' => 'DESC',
2507
- 'name' => __( 'Order', 'su' ),
2508
- 'desc' => __( 'Posts order', 'su' )
2509
  ),
2510
  'orderby' => array(
2511
  'type' => 'select',
2512
  'values' => array(
2513
- 'none' => __( 'None', 'su' ),
2514
- 'id' => __( 'Post ID', 'su' ),
2515
- 'author' => __( 'Post author', 'su' ),
2516
- 'title' => __( 'Post title', 'su' ),
2517
- 'name' => __( 'Post slug', 'su' ),
2518
- 'date' => __( 'Date', 'su' ), 'modified' => __( 'Last modified date', 'su' ),
2519
- 'parent' => __( 'Post parent', 'su' ),
2520
- 'rand' => __( 'Random', 'su' ), 'comment_count' => __( 'Comments number', 'su' ),
2521
- 'menu_order' => __( 'Menu order', 'su' ), 'meta_value' => __( 'Meta key values', 'su' ),
2522
  ),
2523
  'default' => 'date',
2524
- 'name' => __( 'Order by', 'su' ),
2525
- 'desc' => __( 'Order posts by', 'su' )
2526
  ),
2527
  'post_parent' => array(
2528
  'default' => '',
2529
- 'name' => __( 'Post parent', 'su' ),
2530
- 'desc' => __( 'Show childrens of entered post (enter post ID)', 'su' )
2531
  ),
2532
  'post_status' => array(
2533
  'type' => 'select',
2534
  'values' => array(
2535
- 'publish' => __( 'Published', 'su' ),
2536
- 'pending' => __( 'Pending', 'su' ),
2537
- 'draft' => __( 'Draft', 'su' ),
2538
- 'auto-draft' => __( 'Auto-draft', 'su' ),
2539
- 'future' => __( 'Future post', 'su' ),
2540
- 'private' => __( 'Private post', 'su' ),
2541
- 'inherit' => __( 'Inherit', 'su' ),
2542
- 'trash' => __( 'Trashed', 'su' ),
2543
- 'any' => __( 'Any', 'su' ),
2544
  ),
2545
  'default' => 'publish',
2546
- 'name' => __( 'Post status', 'su' ),
2547
- 'desc' => __( 'Show only posts with selected status', 'su' )
2548
  ),
2549
  'ignore_sticky_posts' => array(
2550
  'type' => 'bool',
2551
  'default' => 'no',
2552
- 'name' => __( 'Ignore sticky', 'su' ),
2553
- 'desc' => __( 'Select Yes to ignore posts that is sticked', 'su' )
2554
  )
2555
  ),
2556
- 'desc' => __( 'Custom posts query with customizable template', 'su' ),
2557
  'icon' => 'th-list'
2558
  ),
2559
  // dummy_text
2560
  'dummy_text' => array(
2561
- 'name' => __( 'Dummy text', 'su' ),
2562
  'type' => 'single',
2563
  'group' => 'content',
2564
  'atts' => array(
2565
  'what' => array(
2566
  'type' => 'select',
2567
  'values' => array(
2568
- 'paras' => __( 'Paragraphs', 'su' ),
2569
- 'words' => __( 'Words', 'su' ),
2570
- 'bytes' => __( 'Bytes', 'su' ),
2571
  ),
2572
  'default' => 'paras',
2573
- 'name' => __( 'What', 'su' ),
2574
- 'desc' => __( 'What to generate', 'su' )
2575
  ),
2576
  'amount' => array(
2577
  'type' => 'slider',
@@ -2579,27 +2579,27 @@ class Su_Data {
2579
  'max' => 100,
2580
  'step' => 1,
2581
  'default' => 1,
2582
- 'name' => __( 'Amount', 'su' ),
2583
- 'desc' => __( 'How many items (paragraphs or words) to generate. Minimum words amount is 5', 'su' )
2584
  ),
2585
  'cache' => array(
2586
  'type' => 'bool',
2587
  'default' => 'yes',
2588
- 'name' => __( 'Cache', 'su' ),
2589
- 'desc' => __( 'Generated text will be cached. Be careful with this option. If you disable it and insert many dummy_text shortcodes the page load time will be highly increased', 'su' )
2590
  ),
2591
  'class' => array(
2592
  'default' => '',
2593
- 'name' => __( 'Class', 'su' ),
2594
- 'desc' => __( 'Extra CSS class', 'su' )
2595
  )
2596
  ),
2597
- 'desc' => __( 'Text placeholder', 'su' ),
2598
  'icon' => 'text-height'
2599
  ),
2600
  // dummy_image
2601
  'dummy_image' => array(
2602
- 'name' => __( 'Dummy image', 'su' ),
2603
  'type' => 'single',
2604
  'group' => 'content',
2605
  'atts' => array(
@@ -2609,8 +2609,8 @@ class Su_Data {
2609
  'max' => 1600,
2610
  'step' => 10,
2611
  'default' => 500,
2612
- 'name' => __( 'Width', 'su' ),
2613
- 'desc' => __( 'Image width', 'su' )
2614
  ),
2615
  'height' => array(
2616
  'type' => 'slider',
@@ -2618,43 +2618,43 @@ class Su_Data {
2618
  'max' => 1600,
2619
  'step' => 10,
2620
  'default' => 300,
2621
- 'name' => __( 'Height', 'su' ),
2622
- 'desc' => __( 'Image height', 'su' )
2623
  ),
2624
  'theme' => array(
2625
  'type' => 'select',
2626
  'values' => array(
2627
- 'any' => __( 'Any', 'su' ),
2628
- 'abstract' => __( 'Abstract', 'su' ),
2629
- 'animals' => __( 'Animals', 'su' ),
2630
- 'business' => __( 'Business', 'su' ),
2631
- 'cats' => __( 'Cats', 'su' ),
2632
- 'city' => __( 'City', 'su' ),
2633
- 'food' => __( 'Food', 'su' ),
2634
- 'nightlife' => __( 'Night life', 'su' ),
2635
- 'fashion' => __( 'Fashion', 'su' ),
2636
- 'people' => __( 'People', 'su' ),
2637
- 'nature' => __( 'Nature', 'su' ),
2638
- 'sports' => __( 'Sports', 'su' ),
2639
- 'technics' => __( 'Technics', 'su' ),
2640
- 'transport' => __( 'Transport', 'su' )
2641
  ),
2642
  'default' => 'any',
2643
- 'name' => __( 'Theme', 'su' ),
2644
- 'desc' => __( 'Select the theme for this image', 'su' )
2645
  ),
2646
  'class' => array(
2647
  'default' => '',
2648
- 'name' => __( 'Class', 'su' ),
2649
- 'desc' => __( 'Extra CSS class', 'su' )
2650
  )
2651
  ),
2652
- 'desc' => __( 'Image placeholder with random image', 'su' ),
2653
  'icon' => 'picture-o'
2654
  ),
2655
  // animate
2656
  'animate' => array(
2657
- 'name' => __( 'Animation', 'su' ),
2658
  'type' => 'wrap',
2659
  'group' => 'other',
2660
  'atts' => array(
@@ -2662,8 +2662,8 @@ class Su_Data {
2662
  'type' => 'select',
2663
  'values' => array_combine( self::animations(), self::animations() ),
2664
  'default' => 'bounceIn',
2665
- 'name' => __( 'Animation', 'su' ),
2666
- 'desc' => __( 'Select animation type', 'su' )
2667
  ),
2668
  'duration' => array(
2669
  'type' => 'slider',
@@ -2671,8 +2671,8 @@ class Su_Data {
2671
  'max' => 20,
2672
  'step' => 0.5,
2673
  'default' => 1,
2674
- 'name' => __( 'Duration', 'su' ),
2675
- 'desc' => __( 'Animation duration (seconds)', 'su' )
2676
  ),
2677
  'delay' => array(
2678
  'type' => 'slider',
@@ -2680,244 +2680,244 @@ class Su_Data {
2680
  'max' => 20,
2681
  'step' => 0.5,
2682
  'default' => 0,
2683
- 'name' => __( 'Delay', 'su' ),
2684
- 'desc' => __( 'Animation delay (seconds)', 'su' )
2685
  ),
2686
  'inline' => array(
2687
  'type' => 'bool',
2688
  'default' => 'no',
2689
- 'name' => __( 'Inline', 'su' ),
2690
- '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', 'su' )
2691
  ),
2692
  'class' => array(
2693
  'default' => '',
2694
- 'name' => __( 'Class', 'su' ),
2695
- 'desc' => __( 'Extra CSS class', 'su' )
2696
  )
2697
  ),
2698
- 'content' => __( 'Animated content', 'su' ),
2699
- 'desc' => __( 'Wrapper for animation. Any nested element will be animated', 'su' ),
2700
  'example' => 'animations',
2701
  'icon' => 'bolt'
2702
  ),
2703
  // meta
2704
  'meta' => array(
2705
- 'name' => __( 'Meta', 'su' ),
2706
  'type' => 'single',
2707
  'group' => 'data',
2708
  'atts' => array(
2709
  'key' => array(
2710
  'default' => '',
2711
- 'name' => __( 'Key', 'su' ),
2712
- 'desc' => __( 'Meta key name', 'su' )
2713
  ),
2714
  'default' => array(
2715
  'default' => '',
2716
- 'name' => __( 'Default', 'su' ),
2717
- 'desc' => __( 'This text will be shown if data is not found', 'su' )
2718
  ),
2719
  'before' => array(
2720
  'default' => '',
2721
- 'name' => __( 'Before', 'su' ),
2722
- 'desc' => __( 'This content will be shown before the value', 'su' )
2723
  ),
2724
  'after' => array(
2725
  'default' => '',
2726
- 'name' => __( 'After', 'su' ),
2727
- 'desc' => __( 'This content will be shown after the value', 'su' )
2728
  ),
2729
  'post_id' => array(
2730
  'default' => '',
2731
- 'name' => __( 'Post ID', 'su' ),
2732
- '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', 'su' )
2733
  ),
2734
  'filter' => array(
2735
  'default' => '',
2736
- 'name' => __( 'Filter', 'su' ),
2737
- 'desc' => __( 'You can apply custom filter to the retrieved value. Enter here function name. Your function must accept one argument and return modified value. Example function: ', 'su' ) . "<br /><pre><code style='display:block;padding:5px'>function my_custom_filter( \$value ) {\n\treturn 'Value is: ' . \$value;\n}</code></pre>"
2738
  )
2739
  ),
2740
- 'desc' => __( 'Post meta', 'su' ),
2741
  'icon' => 'info-circle'
2742
  ),
2743
  // user
2744
  'user' => array(
2745
- 'name' => __( 'User', 'su' ),
2746
  'type' => 'single',
2747
  'group' => 'data',
2748
  'atts' => array(
2749
  'field' => array(
2750
  'type' => 'select',
2751
  'values' => array(
2752
- 'display_name' => __( 'Display name', 'su' ),
2753
- 'ID' => __( 'ID', 'su' ),
2754
- 'user_login' => __( 'Login', 'su' ),
2755
- 'user_nicename' => __( 'Nice name', 'su' ),
2756
- 'user_email' => __( 'Email', 'su' ),
2757
- 'user_url' => __( 'URL', 'su' ),
2758
- 'user_registered' => __( 'Registered', 'su' ),
2759
- 'user_activation_key' => __( 'Activation key', 'su' ),
2760
- 'user_status' => __( 'Status', 'su' )
2761
  ),
2762
  'default' => 'display_name',
2763
- 'name' => __( 'Field', 'su' ),
2764
- 'desc' => __( 'User data field name', 'su' )
2765
  ),
2766
  'default' => array(
2767
  'default' => '',
2768
- 'name' => __( 'Default', 'su' ),
2769
- 'desc' => __( 'This text will be shown if data is not found', 'su' )
2770
  ),
2771
  'before' => array(
2772
  'default' => '',
2773
- 'name' => __( 'Before', 'su' ),
2774
- 'desc' => __( 'This content will be shown before the value', 'su' )
2775
  ),
2776
  'after' => array(
2777
  'default' => '',
2778
- 'name' => __( 'After', 'su' ),
2779
- 'desc' => __( 'This content will be shown after the value', 'su' )
2780
  ),
2781
  'user_id' => array(
2782
  'default' => '',
2783
- 'name' => __( 'User ID', 'su' ),
2784
- 'desc' => __( 'You can specify custom user ID. Leave this field empty to use an ID of the current user', 'su' )
2785
  ),
2786
  'filter' => array(
2787
  'default' => '',
2788
- 'name' => __( 'Filter', 'su' ),
2789
- 'desc' => __( 'You can apply custom filter to the retrieved value. Enter here function name. Your function must accept one argument and return modified value. Example function: ', 'su' ) . "<br /><pre><code style='display:block;padding:5px'>function my_custom_filter( \$value ) {\n\treturn 'Value is: ' . \$value;\n}</code></pre>"
2790
  )
2791
  ),
2792
- 'desc' => __( 'User data', 'su' ),
2793
  'icon' => 'info-circle'
2794
  ),
2795
  // post
2796
  'post' => array(
2797
- 'name' => __( 'Post', 'su' ),
2798
  'type' => 'single',
2799
  'group' => 'data',
2800
  'atts' => array(
2801
  'field' => array(
2802
  'type' => 'select',
2803
  'values' => array(
2804
- 'ID' => __( 'Post ID', 'su' ),
2805
- 'post_author' => __( 'Post author', 'su' ),
2806
- 'post_date' => __( 'Post date', 'su' ),
2807
- 'post_date_gmt' => __( 'Post date', 'su' ) . ' GMT',
2808
- 'post_content' => __( 'Post content', 'su' ),
2809
- 'post_title' => __( 'Post title', 'su' ),
2810
- 'post_excerpt' => __( 'Post excerpt', 'su' ),
2811
- 'post_status' => __( 'Post status', 'su' ),
2812
- 'comment_status' => __( 'Comment status', 'su' ),
2813
- 'ping_status' => __( 'Ping status', 'su' ),
2814
- 'post_name' => __( 'Post name', 'su' ),
2815
- 'post_modified' => __( 'Post modified', 'su' ),
2816
- 'post_modified_gmt' => __( 'Post modified', 'su' ) . ' GMT',
2817
- 'post_content_filtered' => __( 'Filtered post content', 'su' ),
2818
- 'post_parent' => __( 'Post parent', 'su' ),
2819
- 'guid' => __( 'GUID', 'su' ),
2820
- 'menu_order' => __( 'Menu order', 'su' ),
2821
- 'post_type' => __( 'Post type', 'su' ),
2822
- 'post_mime_type' => __( 'Post mime type', 'su' ),
2823
- 'comment_count' => __( 'Comment count', 'su' )
2824
  ),
2825
  'default' => 'post_title',
2826
- 'name' => __( 'Field', 'su' ),
2827
- 'desc' => __( 'Post data field name', 'su' )
2828
  ),
2829
  'default' => array(
2830
  'default' => '',
2831
- 'name' => __( 'Default', 'su' ),
2832
- 'desc' => __( 'This text will be shown if data is not found', 'su' )
2833
  ),
2834
  'before' => array(
2835
  'default' => '',
2836
- 'name' => __( 'Before', 'su' ),
2837
- 'desc' => __( 'This content will be shown before the value', 'su' )
2838
  ),
2839
  'after' => array(
2840
  'default' => '',
2841
- 'name' => __( 'After', 'su' ),
2842
- 'desc' => __( 'This content will be shown after the value', 'su' )
2843
  ),
2844
  'post_id' => array(
2845
  'default' => '',
2846
- 'name' => __( 'Post ID', 'su' ),
2847
- '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', 'su' )
2848
  ),
2849
  'filter' => array(
2850
  'default' => '',
2851
- 'name' => __( 'Filter', 'su' ),
2852
- 'desc' => __( 'You can apply custom filter to the retrieved value. Enter here function name. Your function must accept one argument and return modified value. Example function: ', 'su' ) . "<br /><pre><code style='display:block;padding:5px'>function my_custom_filter( \$value ) {\n\treturn 'Value is: ' . \$value;\n}</code></pre>"
2853
  )
2854
  ),
2855
- 'desc' => __( 'Post data', 'su' ),
2856
  'icon' => 'info-circle'
2857
  ),
2858
  // post_terms
2859
  // 'post_terms' => array(
2860
- // 'name' => __( 'Post terms', 'su' ),
2861
  // 'type' => 'single',
2862
  // 'group' => 'data',
2863
  // 'atts' => array(
2864
  // 'post_id' => array(
2865
  // 'default' => '',
2866
- // 'name' => __( 'Post ID', 'su' ),
2867
- // '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', 'su' )
2868
  // ),
2869
  // 'links' => array(
2870
  // 'type' => 'bool',
2871
  // 'default' => 'yes',
2872
- // 'name' => __( 'Show links', 'su' ),
2873
- // 'desc' => __( 'Show terms names as hyperlinks', 'su' )
2874
  // ),
2875
  // 'format' => array(
2876
  // 'type' => 'select',
2877
  // 'values' => array(
2878
- // 'text' => __( 'Terms separated by commas', 'su' ),
2879
- // 'br' => __( 'Terms separated by new lines', 'su' ),
2880
- // 'ul' => __( 'Unordered list', 'su' ),
2881
- // 'ol' => __( 'Ordered list', 'su' ),
2882
  // ),
2883
  // 'default' => 'text',
2884
- // 'name' => __( 'Format', 'su' ),
2885
- // 'desc' => __( 'Choose how to output the terms', 'su' )
2886
  // ),
2887
  // ),
2888
- // 'desc' => __( 'Terms list', 'su' ),
2889
  // 'icon' => 'info-circle'
2890
  // ),
2891
  // template
2892
  'template' => array(
2893
- 'name' => __( 'Template', 'su' ),
2894
  'type' => 'single',
2895
  'group' => 'other',
2896
  'atts' => array(
2897
  'name' => array(
2898
  'default' => '',
2899
- 'name' => __( 'Template name', 'su' ),
2900
- 'desc' => sprintf( __( 'Use template file name (with optional .php extension). If you need to use templates from theme sub-folder, use relative path. Example values: %s, %s, %s', 'su' ), '<b%value>page</b>', '<b%value>page.php</b>', '<b%value>includes/page.php</b>' )
2901
  )
2902
  ),
2903
- 'desc' => __( 'Theme template', 'su' ),
2904
  'icon' => 'puzzle-piece'
2905
  ),
2906
  // qrcode
2907
  'qrcode' => array(
2908
- 'name' => __( 'QR code', 'su' ),
2909
  'type' => 'single',
2910
  'group' => 'content',
2911
  'atts' => array(
2912
  'data' => array(
2913
  'default' => '',
2914
- 'name' => __( 'Data', 'su' ),
2915
- 'desc' => __( 'The text to store within the QR code. You can use here any text or even URL', 'su' )
2916
  ),
2917
  'title' => array(
2918
  'default' => '',
2919
- 'name' => __( 'Title', 'su' ),
2920
- 'desc' => __( 'Enter here short description. This text will be used in alt attribute of QR code', 'su' )
2921
  ),
2922
  'size' => array(
2923
  'type' => 'slider',
@@ -2925,8 +2925,8 @@ class Su_Data {
2925
  'max' => 1000,
2926
  'step' => 10,
2927
  'default' => 200,
2928
- 'name' => __( 'Size', 'su' ),
2929
- 'desc' => __( 'Image width and height (in pixels)', 'su' )
2930
  ),
2931
  'margin' => array(
2932
  'type' => 'slider',
@@ -2934,97 +2934,97 @@ class Su_Data {
2934
  'max' => 50,
2935
  'step' => 5,
2936
  'default' => 0,
2937
- 'name' => __( 'Margin', 'su' ),
2938
- 'desc' => __( 'Thickness of a margin (in pixels)', 'su' )
2939
  ),
2940
  'align' => array(
2941
  'type' => 'select',
2942
  'values' => array(
2943
- 'none' => __( 'None', 'su' ),
2944
- 'left' => __( 'Left', 'su' ),
2945
- 'center' => __( 'Center', 'su' ),
2946
- 'right' => __( 'Right', 'su' ),
2947
  ),
2948
  'default' => 'none',
2949
- 'name' => __( 'Align', 'su' ),
2950
- 'desc' => __( 'Choose image alignment', 'su' )
2951
  ),
2952
  'link' => array(
2953
  'default' => '',
2954
- 'name' => __( 'Link', 'su' ),
2955
- 'desc' => __( 'You can make this QR code clickable. Enter here the URL', 'su' )
2956
  ),
2957
  'target' => array(
2958
  'type' => 'select',
2959
  'values' => array(
2960
- 'self' => __( 'Open link in same window/tab', 'su' ),
2961
- 'blank' => __( 'Open link in new window/tab', 'su' ),
2962
  ),
2963
  'default' => 'blank',
2964
- 'name' => __( 'Link target', 'su' ),
2965
- 'desc' => __( 'Select link target', 'su' )
2966
  ),
2967
  'color' => array(
2968
  'type' => 'color',
2969
  'default' => '#000000',
2970
- 'name' => __( 'Primary color', 'su' ),
2971
- 'desc' => __( 'Pick a primary color', 'su' )
2972
  ),
2973
  'background' => array(
2974
  'type' => 'color',
2975
  'default' => '#ffffff',
2976
- 'name' => __( 'Background color', 'su' ),
2977
- 'desc' => __( 'Pick a background color', 'su' )
2978
  ),
2979
  'class' => array(
2980
  'default' => '',
2981
- 'name' => __( 'Class', 'su' ),
2982
- 'desc' => __( 'Extra CSS class', 'su' )
2983
  )
2984
  ),
2985
- 'desc' => __( 'Advanced QR code generator', 'su' ),
2986
  'icon' => 'qrcode'
2987
  ),
2988
  // scheduler
2989
  'scheduler' => array(
2990
- 'name' => __( 'Scheduler', 'su' ),
2991
  'type' => 'wrap',
2992
  'group' => 'other',
2993
  'atts' => array(
2994
  'time' => array(
2995
  'default' => '',
2996
- 'name' => __( 'Time', 'su' ),
2997
- 'desc' => sprintf( __( 'In this field you can specify one or more time ranges. Every day at this time the content of shortcode will be visible. %s %s %s - show content from 9:00 to 18:00 %s - show content from 9:00 to 13:00 and from 14:00 to 18:00 %s - example with minutes (content will be visible each day, 45 minutes) %s - example with seconds', 'su' ), '<br><br>', __( 'Examples (click to set)', 'su' ), '<br><b%value>9-18</b>', '<br><b%value>9-13, 14-18</b>', '<br><b%value>9:30-10:15</b>', '<br><b%value>9:00:00-17:59:59</b>' )
2998
  ),
2999
  'days_week' => array(
3000
  'default' => '',
3001
- 'name' => __( 'Days of the week', 'su' ),
3002
- 'desc' => sprintf( __( 'In this field you can specify one or more days of the week. Every week at these days the content of shortcode will be visible. %s 0 - Sunday %s 1 - Monday %s 2 - Tuesday %s 3 - Wednesday %s 4 - Thursday %s 5 - Friday %s 6 - Saturday %s %s %s - show content from Monday to Friday %s - show content only at Sunday %s - show content at Sunday and from Wednesday to Friday', 'su' ), '<br><br>', '<br>', '<br>', '<br>', '<br>', '<br>', '<br>', '<br><br>', __( 'Examples (click to set)', 'su' ), '<br><b%value>1-5</b>', '<br><b%value>0</b>', '<br><b%value>0, 3-5</b>' )
3003
  ),
3004
  'days_month' => array(
3005
  'default' => '',
3006
- 'name' => __( 'Days of the month', 'su' ),
3007
- 'desc' => sprintf( __( 'In this field you can specify one or more days of the month. Every month at these days the content of shortcode will be visible. %s %s %s - show content only at first day of month %s - show content from 1th to 5th %s - show content from 10th to 15th and from 20th to 25th', 'su' ), '<br><br>', __( 'Examples (click to set)', 'su' ), '<br><b%value>1</b>', '<br><b%value>1-5</b>', '<br><b%value>10-15, 20-25</b>' )
3008
  ),
3009
  'months' => array(
3010
  'default' => '',
3011
- 'name' => __( 'Months', 'su' ),
3012
- 'desc' => sprintf( __( 'In this field you can specify the month or months in which the content will be visible. %s %s %s - show content only in January %s - show content from February to June %s - show content in January, March and from May to July', 'su' ), '<br><br>', __( 'Examples (click to set)', 'su' ), '<br><b%value>1</b>', '<br><b%value>2-6</b>', '<br><b%value>1, 3, 5-7</b>' )
3013
  ),
3014
  'years' => array(
3015
  'default' => '',
3016
- 'name' => __( 'Years', 'su' ),
3017
- 'desc' => sprintf( __( 'In this field you can specify the year or years in which the content will be visible. %s %s %s - show content only in 2014 %s - show content from 2014 to 2016 %s - show content in 2014, 2018 and from 2020 to 2022', 'su' ), '<br><br>', __( 'Examples (click to set)', 'su' ), '<br><b%value>2014</b>', '<br><b%value>2014-2016</b>', '<br><b%value>2014, 2018, 2020-2022</b>' )
3018
  ),
3019
  'alt' => array(
3020
  'default' => '',
3021
- 'name' => __( 'Alternative text', 'su' ),
3022
- 'desc' => __( 'In this field you can type the text which will be shown if content is not visible at the current moment', 'su' )
3023
  )
3024
  ),
3025
- 'content' => __( 'Scheduled content', 'su' ),
3026
- 'desc' => __( 'Allows to show the content only at the specified time period', 'su' ),
3027
- 'note' => __( 'This shortcode allows you to show content only at the specified time.', 'su' ) . '<br><br>' . __( 'Please pay special attention to the descriptions, which are located below each text field. It will save you a lot of time', 'su' ) . '<br><br>' . __( '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.', 'su' ),
3028
  'icon' => 'clock-o'
3029
  ),
3030
  ) );
14
  */
15
  public static function groups() {
16
  return apply_filters( 'su/data/groups', array(
17
+ 'all' => __( 'All', 'shortcodes-ultimate' ),
18
+ 'content' => __( 'Content', 'shortcodes-ultimate' ),
19
+ 'box' => __( 'Box', 'shortcodes-ultimate' ),
20
+ 'media' => __( 'Media', 'shortcodes-ultimate' ),
21
+ 'gallery' => __( 'Gallery', 'shortcodes-ultimate' ),
22
+ 'data' => __( 'Data', 'shortcodes-ultimate' ),
23
+ 'other' => __( 'Other', 'shortcodes-ultimate' )
24
  ) );
25
  }
26
 
29
  */
30
  public static function borders() {
31
  return apply_filters( 'su/data/borders', array(
32
+ 'none' => __( 'None', 'shortcodes-ultimate' ),
33
+ 'solid' => __( 'Solid', 'shortcodes-ultimate' ),
34
+ 'dotted' => __( 'Dotted', 'shortcodes-ultimate' ),
35
+ 'dashed' => __( 'Dashed', 'shortcodes-ultimate' ),
36
+ 'double' => __( 'Double', 'shortcodes-ultimate' ),
37
+ 'groove' => __( 'Groove', 'shortcodes-ultimate' ),
38
+ 'ridge' => __( 'Ridge', 'shortcodes-ultimate' )
39
  ) );
40
  }
41
 
59
  public static function examples() {
60
  return apply_filters( 'su/data/examples', array(
61
  'basic' => array(
62
+ 'title' => __( 'Basic examples', 'shortcodes-ultimate' ),
63
  'items' => array(
64
  array(
65
+ 'name' => __( 'Accordions, spoilers, different styles, anchors', 'shortcodes-ultimate' ),
66
  'id' => 'spoilers',
67
  'code' => plugin_dir_path( SU_PLUGIN_FILE ) . '/inc/examples/spoilers.example',
68
  'icon' => 'tasks'
69
  ),
70
  array(
71
+ 'name' => __( 'Tabs, vertical tabs, tab anchors', 'shortcodes-ultimate' ),
72
  'id' => 'tabs',
73
  'code' => plugin_dir_path( SU_PLUGIN_FILE ) . '/inc/examples/tabs.example',
74
  'icon' => 'folder'
75
  ),
76
  array(
77
+ 'name' => __( 'Column layouts', 'shortcodes-ultimate' ),
78
  'id' => 'columns',
79
  'code' => plugin_dir_path( SU_PLUGIN_FILE ) . '/inc/examples/columns.example',
80
  'icon' => 'th-large'
81
  ),
82
  array(
83
+ 'name' => __( 'Media elements, YouTube, Vimeo, Screenr and self-hosted videos, audio player', 'shortcodes-ultimate' ),
84
  'id' => 'media',
85
  'code' => plugin_dir_path( SU_PLUGIN_FILE ) . '/inc/examples/media.example',
86
  'icon' => 'play-circle'
87
  ),
88
  array(
89
+ 'name' => __( 'Unlimited buttons', 'shortcodes-ultimate' ),
90
  'id' => 'buttons',
91
  'code' => plugin_dir_path( SU_PLUGIN_FILE ) . '/inc/examples/buttons.example',
92
  'icon' => 'heart'
93
  ),
94
  array(
95
+ 'name' => __( 'Animations', 'shortcodes-ultimate' ),
96
  'id' => 'animations',
97
  'code' => plugin_dir_path( SU_PLUGIN_FILE ) . '/inc/examples/animations.example',
98
  'icon' => 'bolt'
100
  )
101
  ),
102
  'advanced' => array(
103
+ 'title' => __( 'Advanced examples', 'shortcodes-ultimate' ),
104
  'items' => array(
105
  array(
106
+ 'name' => __( 'Interacting with posts shortcode', 'shortcodes-ultimate' ),
107
  'id' => 'posts',
108
  'code' => plugin_dir_path( SU_PLUGIN_FILE ) . '/inc/examples/posts.example',
109
  'icon' => 'list'
110
  ),
111
  array(
112
+ 'name' => __( 'Nested shortcodes, shortcodes inside of attributes', 'shortcodes-ultimate' ),
113
  'id' => 'nested',
114
  'code' => plugin_dir_path( SU_PLUGIN_FILE ) . '/inc/examples/nested.example',
115
  'icon' => 'indent'
126
  $shortcodes = apply_filters( 'su/data/shortcodes', array(
127
  // heading
128
  'heading' => array(
129
+ 'name' => __( 'Heading', 'shortcodes-ultimate' ),
130
  'type' => 'wrap',
131
  'group' => 'content',
132
  'atts' => array(
133
  'style' => array(
134
  'type' => 'select',
135
  'values' => array(
136
+ 'default' => __( 'Default', 'shortcodes-ultimate' ),
137
  ),
138
  'default' => 'default',
139
+ 'name' => __( 'Style', 'shortcodes-ultimate' ),
140
+ 'desc' => __( 'Choose style for this heading', 'shortcodes-ultimate' ) . '%su_skins_link%'
141
  ),
142
  'size' => array(
143
  'type' => 'slider',
145
  'max' => 48,
146
  'step' => 1,
147
  'default' => 13,
148
+ 'name' => __( 'Size', 'shortcodes-ultimate' ),
149
+ 'desc' => __( 'Select heading size (pixels)', 'shortcodes-ultimate' )
150
  ),
151
  'align' => array(
152
  'type' => 'select',
153
  'values' => array(
154
+ 'left' => __( 'Left', 'shortcodes-ultimate' ),
155
+ 'center' => __( 'Center', 'shortcodes-ultimate' ),
156
+ 'right' => __( 'Right', 'shortcodes-ultimate' )
157
  ),
158
  'default' => 'center',
159
+ 'name' => __( 'Align', 'shortcodes-ultimate' ),
160
+ 'desc' => __( 'Heading text alignment', 'shortcodes-ultimate' )
161
  ),
162
  'margin' => array(
163
  'type' => 'slider',
165
  'max' => 200,
166
  'step' => 10,
167
  'default' => 20,
168
+ 'name' => __( 'Margin', 'shortcodes-ultimate' ),
169
+ 'desc' => __( 'Bottom margin (pixels)', 'shortcodes-ultimate' )
170
  ),
171
  'class' => array(
172
  'default' => '',
173
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
174
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
175
  )
176
  ),
177
+ 'content' => __( 'Heading text', 'shortcodes-ultimate' ),
178
+ 'desc' => __( 'Styled heading', 'shortcodes-ultimate' ),
179
  'icon' => 'h-square'
180
  ),
181
  // tabs
182
  'tabs' => array(
183
+ 'name' => __( 'Tabs', 'shortcodes-ultimate' ),
184
  'type' => 'wrap',
185
  'group' => 'box',
186
  'atts' => array(
187
  'style' => array(
188
  'type' => 'select',
189
  'values' => array(
190
+ 'default' => __( 'Default', 'shortcodes-ultimate' )
191
  ),
192
  'default' => 'default',
193
+ 'name' => __( 'Style', 'shortcodes-ultimate' ),
194
+ 'desc' => __( 'Choose style for this tabs', 'shortcodes-ultimate' ) . '%su_skins_link%'
195
  ),
196
  'active' => array(
197
  'type' => 'number',
199
  'max' => 100,
200
  'step' => 1,
201
  'default' => 1,
202
+ 'name' => __( 'Active tab', 'shortcodes-ultimate' ),
203
+ 'desc' => __( 'Select which tab is open by default', 'shortcodes-ultimate' )
204
  ),
205
  'vertical' => array(
206
  'type' => 'bool',
207
  'default' => 'no',
208
+ 'name' => __( 'Vertical', 'shortcodes-ultimate' ),
209
+ 'desc' => __( 'Show tabs vertically', 'shortcodes-ultimate' )
210
  ),
211
  'class' => array(
212
  'default' => '',
213
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
214
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
215
  )
216
  ),
217
+ 'content' => __( "[%prefix_tab title=\"Title 1\"]Content 1[/%prefix_tab]\n[%prefix_tab title=\"Title 2\"]Content 2[/%prefix_tab]\n[%prefix_tab title=\"Title 3\"]Content 3[/%prefix_tab]", 'shortcodes-ultimate' ),
218
+ 'desc' => __( 'Tabs container', 'shortcodes-ultimate' ),
219
  'example' => 'tabs',
220
  'icon' => 'list-alt'
221
  ),
222
  // tab
223
  'tab' => array(
224
+ 'name' => __( 'Tab', 'shortcodes-ultimate' ),
225
  'type' => 'wrap',
226
  'group' => 'box',
227
  'atts' => array(
228
  'title' => array(
229
+ 'default' => __( 'Tab name', 'shortcodes-ultimate' ),
230
+ 'name' => __( 'Title', 'shortcodes-ultimate' ),
231
+ 'desc' => __( 'Enter tab name', 'shortcodes-ultimate' )
232
  ),
233
  'disabled' => array(
234
  'type' => 'bool',
235
  'default' => 'no',
236
+ 'name' => __( 'Disabled', 'shortcodes-ultimate' ),
237
+ 'desc' => __( 'Is this tab disabled', 'shortcodes-ultimate' )
238
  ),
239
  'anchor' => array(
240
  'default' => '',
241
+ 'name' => __( 'Anchor', 'shortcodes-ultimate' ),
242
+ 'desc' => __( 'You can use unique anchor for this tab to access it with hash in page url. For example: type here <b%value>Hello</b> and then use url like http://example.com/page-url#Hello. This tab will be activated and scrolled in', 'shortcodes-ultimate' )
243
  ),
244
  'url' => array(
245
  'default' => '',
246
+ 'name' => __( 'URL', 'shortcodes-ultimate' ),
247
+ 'desc' => __( 'You can link this tab to any webpage. Enter here full URL to switch this tab into link', 'shortcodes-ultimate' )
248
  ),
249
  'target' => array(
250
  'type' => 'select',
251
  'values' => array(
252
+ 'self' => __( 'Open link in same window/tab', 'shortcodes-ultimate' ),
253
+ 'blank' => __( 'Open link in new window/tab', 'shortcodes-ultimate' )
254
  ),
255
  'default' => 'blank',
256
+ 'name' => __( 'Link target', 'shortcodes-ultimate' ),
257
+ 'desc' => __( 'Choose how to open the custom tab link', 'shortcodes-ultimate' )
258
  ),
259
  'class' => array(
260
  'default' => '',
261
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
262
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
263
  )
264
  ),
265
+ 'content' => __( 'Tab content', 'shortcodes-ultimate' ),
266
+ 'desc' => __( 'Single tab', 'shortcodes-ultimate' ),
267
+ 'note' => __( 'Did you know that you need to wrap single tabs with [tabs] shortcode?', 'shortcodes-ultimate' ),
268
  'example' => 'tabs',
269
  'icon' => 'list-alt'
270
  ),
271
  // spoiler
272
  'spoiler' => array(
273
+ 'name' => __( 'Spoiler', 'shortcodes-ultimate' ),
274
  'type' => 'wrap',
275
  'group' => 'box',
276
  'atts' => array(
277
  'title' => array(
278
+ 'default' => __( 'Spoiler title', 'shortcodes-ultimate' ),
279
+ 'name' => __( 'Title', 'shortcodes-ultimate' ), 'desc' => __( 'Text in spoiler title', 'shortcodes-ultimate' )
280
  ),
281
  'open' => array(
282
  'type' => 'bool',
283
  'default' => 'no',
284
+ 'name' => __( 'Open', 'shortcodes-ultimate' ),
285
+ 'desc' => __( 'Is spoiler content visible by default', 'shortcodes-ultimate' )
286
  ),
287
  'style' => array(
288
  'type' => 'select',
289
  'values' => array(
290
+ 'default' => __( 'Default', 'shortcodes-ultimate' ),
291
+ 'fancy' => __( 'Fancy', 'shortcodes-ultimate' ),
292
+ 'simple' => __( 'Simple', 'shortcodes-ultimate' )
293
  ),
294
  'default' => 'default',
295
+ 'name' => __( 'Style', 'shortcodes-ultimate' ),
296
+ 'desc' => __( 'Choose style for this spoiler', 'shortcodes-ultimate' ) . '%su_skins_link%'
297
  ),
298
  'icon' => array(
299
  'type' => 'select',
300
  'values' => array(
301
+ 'plus' => __( 'Plus', 'shortcodes-ultimate' ),
302
+ 'plus-circle' => __( 'Plus circle', 'shortcodes-ultimate' ),
303
+ 'plus-square-1' => __( 'Plus square 1', 'shortcodes-ultimate' ),
304
+ 'plus-square-2' => __( 'Plus square 2', 'shortcodes-ultimate' ),
305
+ 'arrow' => __( 'Arrow', 'shortcodes-ultimate' ),
306
+ 'arrow-circle-1' => __( 'Arrow circle 1', 'shortcodes-ultimate' ),
307
+ 'arrow-circle-2' => __( 'Arrow circle 2', 'shortcodes-ultimate' ),
308
+ 'chevron' => __( 'Chevron', 'shortcodes-ultimate' ),
309
+ 'chevron-circle' => __( 'Chevron circle', 'shortcodes-ultimate' ),
310
+ 'caret' => __( 'Caret', 'shortcodes-ultimate' ),
311
+ 'caret-square' => __( 'Caret square', 'shortcodes-ultimate' ),
312
+ 'folder-1' => __( 'Folder 1', 'shortcodes-ultimate' ),
313
+ 'folder-2' => __( 'Folder 2', 'shortcodes-ultimate' )
314
  ),
315
  'default' => 'plus',
316
+ 'name' => __( 'Icon', 'shortcodes-ultimate' ),
317
+ 'desc' => __( 'Icons for spoiler', 'shortcodes-ultimate' )
318
  ),
319
  'anchor' => array(
320
  'default' => '',
321
+ 'name' => __( 'Anchor', 'shortcodes-ultimate' ),
322
+ 'desc' => __( 'You can use unique anchor for this spoiler to access it with hash in page url. For example: type here <b%value>Hello</b> and then use url like http://example.com/page-url#Hello. This spoiler will be open and scrolled in', 'shortcodes-ultimate' )
323
  ),
324
  'class' => array(
325
  'default' => '',
326
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
327
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
328
  )
329
  ),
330
+ 'content' => __( 'Hidden content', 'shortcodes-ultimate' ),
331
+ 'desc' => __( 'Spoiler with hidden content', 'shortcodes-ultimate' ),
332
+ 'note' => __( 'Did you know that you can wrap multiple spoilers with [accordion] shortcode to create accordion effect?', 'shortcodes-ultimate' ),
333
  'example' => 'spoilers',
334
  'icon' => 'list-ul'
335
  ),
336
  // accordion
337
  'accordion' => array(
338
+ 'name' => __( 'Accordion', 'shortcodes-ultimate' ),
339
  'type' => 'wrap',
340
  'group' => 'box',
341
  'atts' => array(
342
  'class' => array(
343
  'default' => '',
344
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
345
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
346
  )
347
  ),
348
+ 'content' => __( "[%prefix_spoiler]Content[/%prefix_spoiler]\n[%prefix_spoiler]Content[/%prefix_spoiler]\n[%prefix_spoiler]Content[/%prefix_spoiler]", 'shortcodes-ultimate' ),
349
+ 'desc' => __( 'Accordion with spoilers', 'shortcodes-ultimate' ),
350
+ 'note' => __( 'Did you know that you can wrap multiple spoilers with [accordion] shortcode to create accordion effect?', 'shortcodes-ultimate' ),
351
  'example' => 'spoilers',
352
  'icon' => 'list'
353
  ),
354
  // divider
355
  'divider' => array(
356
+ 'name' => __( 'Divider', 'shortcodes-ultimate' ),
357
  'type' => 'single',
358
  'group' => 'content',
359
  'atts' => array(
360
  'top' => array(
361
  'type' => 'bool',
362
  'default' => 'yes',
363
+ 'name' => __( 'Show TOP link', 'shortcodes-ultimate' ),
364
+ 'desc' => __( 'Show link to top of the page or not', 'shortcodes-ultimate' )
365
  ),
366
  'text' => array(
367
  'values' => array( ),
368
+ 'default' => __( 'Go to top', 'shortcodes-ultimate' ),
369
+ 'name' => __( 'Link text', 'shortcodes-ultimate' ), 'desc' => __( 'Text for the GO TOP link', 'shortcodes-ultimate' )
370
  ),
371
  'style' => array(
372
  'type' => 'select',
373
  'values' => array(
374
+ 'default' => __( 'Default', 'shortcodes-ultimate' ),
375
+ 'dotted' => __( 'Dotted', 'shortcodes-ultimate' ),
376
+ 'dashed' => __( 'Dashed', 'shortcodes-ultimate' ),
377
+ 'double' => __( 'Double', 'shortcodes-ultimate' )
378
  ),
379
  'default' => 'default',
380
+ 'name' => __( 'Style', 'shortcodes-ultimate' ),
381
+ 'desc' => __( 'Choose style for this divider', 'shortcodes-ultimate' )
382
  ),
383
  'divider_color' => array(
384
  'type' => 'color',
385
  'values' => array( ),
386
  'default' => '#999999',
387
+ 'name' => __( 'Divider color', 'shortcodes-ultimate' ),
388
+ 'desc' => __( 'Pick the color for divider', 'shortcodes-ultimate' )
389
  ),
390
  'link_color' => array(
391
  'type' => 'color',
392
  'values' => array( ),
393
  'default' => '#999999',
394
+ 'name' => __( 'Link color', 'shortcodes-ultimate' ),
395
+ 'desc' => __( 'Pick the color for TOP link', 'shortcodes-ultimate' )
396
  ),
397
  'size' => array(
398
  'type' => 'slider',
400
  'max' => 40,
401
  'step' => 1,
402
  'default' => 3,
403
+ 'name' => __( 'Size', 'shortcodes-ultimate' ),
404
+ 'desc' => __( 'Height of the divider (in pixels)', 'shortcodes-ultimate' )
405
  ),
406
  'margin' => array(
407
  'type' => 'slider',
409
  'max' => 200,
410
  'step' => 5,
411
  'default' => 15,
412
+ 'name' => __( 'Margin', 'shortcodes-ultimate' ),
413
+ 'desc' => __( 'Adjust the top and bottom margins of this divider (in pixels)', 'shortcodes-ultimate' )
414
  ),
415
  'class' => array(
416
  'default' => '',
417
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
418
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
419
  )
420
  ),
421
+ 'desc' => __( 'Content divider with optional TOP link', 'shortcodes-ultimate' ),
422
  'icon' => 'ellipsis-h'
423
  ),
424
  // spacer
425
  'spacer' => array(
426
+ 'name' => __( 'Spacer', 'shortcodes-ultimate' ),
427
  'type' => 'single',
428
  'group' => 'content other',
429
  'atts' => array(
433
  'max' => 800,
434
  'step' => 10,
435
  'default' => 20,
436
+ 'name' => __( 'Height', 'shortcodes-ultimate' ),
437
+ 'desc' => __( 'Height of the spacer in pixels', 'shortcodes-ultimate' )
438
  ),
439
  'class' => array(
440
  'default' => '',
441
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
442
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
443
  )
444
  ),
445
+ 'desc' => __( 'Empty space with adjustable height', 'shortcodes-ultimate' ),
446
  'icon' => 'arrows-v'
447
  ),
448
  // highlight
449
  'highlight' => array(
450
+ 'name' => __( 'Highlight', 'shortcodes-ultimate' ),
451
  'type' => 'wrap',
452
  'group' => 'content',
453
  'atts' => array(
455
  'type' => 'color',
456
  'values' => array( ),
457
  'default' => '#DDFF99',
458
+ 'name' => __( 'Background', 'shortcodes-ultimate' ),
459
+ 'desc' => __( 'Highlighted text background color', 'shortcodes-ultimate' )
460
  ),
461
  'color' => array(
462
  'type' => 'color',
463
  'values' => array( ),
464
  'default' => '#000000',
465
+ 'name' => __( 'Text color', 'shortcodes-ultimate' ), 'desc' => __( 'Highlighted text color', 'shortcodes-ultimate' )
466
  ),
467
  'class' => array(
468
  'default' => '',
469
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
470
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
471
  )
472
  ),
473
+ 'content' => __( 'Highlighted text', 'shortcodes-ultimate' ),
474
+ 'desc' => __( 'Highlighted text', 'shortcodes-ultimate' ),
475
  'icon' => 'pencil'
476
  ),
477
  // label
478
  'label' => array(
479
+ 'name' => __( 'Label', 'shortcodes-ultimate' ),
480
  'type' => 'wrap',
481
  'group' => 'content',
482
  'atts' => array(
483
  'type' => array(
484
  'type' => 'select',
485
  'values' => array(
486
+ 'default' => __( 'Default', 'shortcodes-ultimate' ),
487
+ 'success' => __( 'Success', 'shortcodes-ultimate' ),
488
+ 'warning' => __( 'Warning', 'shortcodes-ultimate' ),
489
+ 'important' => __( 'Important', 'shortcodes-ultimate' ),
490
+ 'black' => __( 'Black', 'shortcodes-ultimate' ),
491
+ 'info' => __( 'Info', 'shortcodes-ultimate' )
492
  ),
493
  'default' => 'default',
494
+ 'name' => __( 'Type', 'shortcodes-ultimate' ),
495
+ 'desc' => __( 'Style of the label', 'shortcodes-ultimate' )
496
  ),
497
  'class' => array(
498
  'default' => '',
499
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
500
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
501
  )
502
  ),
503
+ 'content' => __( 'Label', 'shortcodes-ultimate' ),
504
+ 'desc' => __( 'Styled label', 'shortcodes-ultimate' ),
505
  'icon' => 'tag'
506
  ),
507
  // quote
508
  'quote' => array(
509
+ 'name' => __( 'Quote', 'shortcodes-ultimate' ),
510
  'type' => 'wrap',
511
  'group' => 'box',
512
  'atts' => array(
513
  'style' => array(
514
  'type' => 'select',
515
  'values' => array(
516
+ 'default' => __( 'Default', 'shortcodes-ultimate' )
517
  ),
518
  'default' => 'default',
519
+ 'name' => __( 'Style', 'shortcodes-ultimate' ),
520
+ 'desc' => __( 'Choose style for this quote', 'shortcodes-ultimate' ) . '%su_skins_link%'
521
  ),
522
  'cite' => array(
523
  'default' => '',
524
+ 'name' => __( 'Cite', 'shortcodes-ultimate' ),
525
+ 'desc' => __( 'Quote author name', 'shortcodes-ultimate' )
526
  ),
527
  'url' => array(
528
  'values' => array( ),
529
  'default' => '',
530
+ 'name' => __( 'Cite url', 'shortcodes-ultimate' ),
531
+ 'desc' => __( 'Url of the quote author. Leave empty to disable link', 'shortcodes-ultimate' )
532
  ),
533
  'class' => array(
534
  'default' => '',
535
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
536
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
537
  )
538
  ),
539
+ 'content' => __( 'Quote', 'shortcodes-ultimate' ),
540
+ 'desc' => __( 'Blockquote alternative', 'shortcodes-ultimate' ),
541
  'icon' => 'quote-right'
542
  ),
543
  // pullquote
544
  'pullquote' => array(
545
+ 'name' => __( 'Pullquote', 'shortcodes-ultimate' ),
546
  'type' => 'wrap',
547
  'group' => 'box',
548
  'atts' => array(
549
  'align' => array(
550
  'type' => 'select',
551
  'values' => array(
552
+ 'left' => __( 'Left', 'shortcodes-ultimate' ),
553
+ 'right' => __( 'Right', 'shortcodes-ultimate' )
554
  ),
555
  'default' => 'left',
556
+ 'name' => __( 'Align', 'shortcodes-ultimate' ), 'desc' => __( 'Pullquote alignment (float)', 'shortcodes-ultimate' )
557
  ),
558
  'class' => array(
559
  'default' => '',
560
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
561
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
562
  )
563
  ),
564
+ 'content' => __( 'Pullquote', 'shortcodes-ultimate' ),
565
+ 'desc' => __( 'Pullquote', 'shortcodes-ultimate' ),
566
  'icon' => 'quote-left'
567
  ),
568
  // dropcap
569
  'dropcap' => array(
570
+ 'name' => __( 'Dropcap', 'shortcodes-ultimate' ),
571
  'type' => 'wrap',
572
  'group' => 'content',
573
  'atts' => array(
574
  'style' => array(
575
  'type' => 'select',
576
  'values' => array(
577
+ 'default' => __( 'Default', 'shortcodes-ultimate' ),
578
+ 'flat' => __( 'Flat', 'shortcodes-ultimate' ),
579
+ 'light' => __( 'Light', 'shortcodes-ultimate' ),
580
+ 'simple' => __( 'Simple', 'shortcodes-ultimate' )
581
  ),
582
  'default' => 'default',
583
+ 'name' => __( 'Style', 'shortcodes-ultimate' ), 'desc' => __( 'Dropcap style preset', 'shortcodes-ultimate' )
584
  ),
585
  'size' => array(
586
  'type' => 'slider',
588
  'max' => 5,
589
  'step' => 1,
590
  'default' => 3,
591
+ 'name' => __( 'Size', 'shortcodes-ultimate' ),
592
+ 'desc' => __( 'Choose dropcap size', 'shortcodes-ultimate' )
593
  ),
594
  'class' => array(
595
  'default' => '',
596
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
597
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
598
  )
599
  ),
600
+ 'content' => __( 'D', 'shortcodes-ultimate' ),
601
+ 'desc' => __( 'Dropcap', 'shortcodes-ultimate' ),
602
  'icon' => 'bold'
603
  ),
604
  // frame
605
  'frame' => array(
606
+ 'name' => __( 'Frame', 'shortcodes-ultimate' ),
607
  'type' => 'wrap',
608
  'group' => 'content',
609
  'atts' => array(
610
  'align' => array(
611
  'type' => 'select',
612
  'values' => array(
613
+ 'left' => __( 'Left', 'shortcodes-ultimate' ),
614
+ 'center' => __( 'Center', 'shortcodes-ultimate' ),
615
+ 'right' => __( 'Right', 'shortcodes-ultimate' )
616
  ),
617
  'default' => 'left',
618
+ 'name' => __( 'Align', 'shortcodes-ultimate' ),
619
+ 'desc' => __( 'Frame alignment', 'shortcodes-ultimate' )
620
  ),
621
  'class' => array(
622
  'default' => '',
623
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
624
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
625
  )
626
  ),
627
  'content' => '<img src="http://lorempixel.com/g/400/200/" />',
628
+ 'desc' => __( 'Styled image frame', 'shortcodes-ultimate' ),
629
  'icon' => 'picture-o'
630
  ),
631
  // row
632
  'row' => array(
633
+ 'name' => __( 'Row', 'shortcodes-ultimate' ),
634
  'type' => 'wrap',
635
  'group' => 'box',
636
  'atts' => array(
637
  'class' => array(
638
  'default' => '',
639
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
640
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
641
  )
642
  ),
643
+ 'content' => __( "[%prefix_column size=\"1/3\"]Content[/%prefix_column]\n[%prefix_column size=\"1/3\"]Content[/%prefix_column]\n[%prefix_column size=\"1/3\"]Content[/%prefix_column]", 'shortcodes-ultimate' ),
644
+ 'desc' => __( 'Row for flexible columns', 'shortcodes-ultimate' ),
645
  'icon' => 'columns'
646
  ),
647
  // column
648
  'column' => array(
649
+ 'name' => __( 'Column', 'shortcodes-ultimate' ),
650
  'type' => 'wrap',
651
  'group' => 'box',
652
  'atts' => array(
653
  'size' => array(
654
  'type' => 'select',
655
  'values' => array(
656
+ '1/1' => __( 'Full width', 'shortcodes-ultimate' ),
657
+ '1/2' => __( 'One half', 'shortcodes-ultimate' ),
658
+ '1/3' => __( 'One third', 'shortcodes-ultimate' ),
659
+ '2/3' => __( 'Two third', 'shortcodes-ultimate' ),
660
+ '1/4' => __( 'One fourth', 'shortcodes-ultimate' ),
661
+ '3/4' => __( 'Three fourth', 'shortcodes-ultimate' ),
662
+ '1/5' => __( 'One fifth', 'shortcodes-ultimate' ),
663
+ '2/5' => __( 'Two fifth', 'shortcodes-ultimate' ),
664
+ '3/5' => __( 'Three fifth', 'shortcodes-ultimate' ),
665
+ '4/5' => __( 'Four fifth', 'shortcodes-ultimate' ),
666
+ '1/6' => __( 'One sixth', 'shortcodes-ultimate' ),
667
+ '5/6' => __( 'Five sixth', 'shortcodes-ultimate' )
668
  ),
669
  'default' => '1/2',
670
+ 'name' => __( 'Size', 'shortcodes-ultimate' ),
671
+ 'desc' => __( 'Select column width. This width will be calculated depend page width', 'shortcodes-ultimate' )
672
  ),
673
  'center' => array(
674
  'type' => 'bool',
675
  'default' => 'no',
676
+ 'name' => __( 'Centered', 'shortcodes-ultimate' ),
677
+ 'desc' => __( 'Is this column centered on the page', 'shortcodes-ultimate' )
678
  ),
679
  'class' => array(
680
  'default' => '',
681
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
682
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
683
  )
684
  ),
685
+ 'content' => __( 'Column content', 'shortcodes-ultimate' ),
686
+ 'desc' => __( 'Flexible and responsive columns', 'shortcodes-ultimate' ),
687
+ 'note' => __( 'Did you know that you need to wrap columns with [row] shortcode?', 'shortcodes-ultimate' ),
688
  'example' => 'columns',
689
  'icon' => 'columns'
690
  ),
691
  // list
692
  'list' => array(
693
+ 'name' => __( 'List', 'shortcodes-ultimate' ),
694
  'type' => 'wrap',
695
  'group' => 'content',
696
  'atts' => array(
697
  'icon' => array(
698
  'type' => 'icon',
699
  'default' => '',
700
+ 'name' => __( 'Icon', 'shortcodes-ultimate' ),
701
+ 'desc' => __( 'You can upload custom icon for this list or pick a built-in icon', 'shortcodes-ultimate' )
702
  ),
703
  'icon_color' => array(
704
  'type' => 'color',
705
  'default' => '#333333',
706
+ 'name' => __( 'Icon color', 'shortcodes-ultimate' ),
707
+ 'desc' => __( 'This color will be applied to the selected icon. Does not works with uploaded icons', 'shortcodes-ultimate' )
708
  ),
709
  'class' => array(
710
  'default' => '',
711
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
712
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
713
  )
714
  ),
715
+ 'content' => __( "<ul>\n<li>List item</li>\n<li>List item</li>\n<li>List item</li>\n</ul>", 'shortcodes-ultimate' ),
716
+ 'desc' => __( 'Styled unordered list', 'shortcodes-ultimate' ),
717
  'icon' => 'list-ol'
718
  ),
719
  // button
720
  'button' => array(
721
+ 'name' => __( 'Button', 'shortcodes-ultimate' ),
722
  'type' => 'wrap',
723
  'group' => 'content',
724
  'atts' => array(
725
  'url' => array(
726
  'values' => array( ),
727
  'default' => get_option( 'home' ),
728
+ 'name' => __( 'Link', 'shortcodes-ultimate' ),
729
+ 'desc' => __( 'Button link', 'shortcodes-ultimate' )
730
  ),
731
  'target' => array(
732
  'type' => 'select',
733
  'values' => array(
734
+ 'self' => __( 'Same tab', 'shortcodes-ultimate' ),
735
+ 'blank' => __( 'New tab', 'shortcodes-ultimate' )
736
  ),
737
  'default' => 'self',
738
+ 'name' => __( 'Target', 'shortcodes-ultimate' ),
739
+ 'desc' => __( 'Button link target', 'shortcodes-ultimate' )
740
  ),
741
  'style' => array(
742
  'type' => 'select',
743
  'values' => array(
744
+ 'default' => __( 'Default', 'shortcodes-ultimate' ),
745
+ 'flat' => __( 'Flat', 'shortcodes-ultimate' ),
746
+ 'ghost' => __( 'Ghost', 'shortcodes-ultimate' ),
747
+ 'soft' => __( 'Soft', 'shortcodes-ultimate' ),
748
+ 'glass' => __( 'Glass', 'shortcodes-ultimate' ),
749
+ 'bubbles' => __( 'Bubbles', 'shortcodes-ultimate' ),
750
+ 'noise' => __( 'Noise', 'shortcodes-ultimate' ),
751
+ 'stroked' => __( 'Stroked', 'shortcodes-ultimate' ),
752
+ '3d' => __( '3D', 'shortcodes-ultimate' )
753
  ),
754
  'default' => 'default',
755
+ 'name' => __( 'Style', 'shortcodes-ultimate' ), 'desc' => __( 'Button background style preset', 'shortcodes-ultimate' )
756
  ),
757
  'background' => array(
758
  'type' => 'color',
759
  'values' => array( ),
760
  'default' => '#2D89EF',
761
+ 'name' => __( 'Background', 'shortcodes-ultimate' ), 'desc' => __( 'Button background color', 'shortcodes-ultimate' )
762
  ),
763
  'color' => array(
764
  'type' => 'color',
765
  'values' => array( ),
766
  'default' => '#FFFFFF',
767
+ 'name' => __( 'Text color', 'shortcodes-ultimate' ),
768
+ 'desc' => __( 'Button text color', 'shortcodes-ultimate' )
769
  ),
770
  'size' => array(
771
  'type' => 'slider',
773
  'max' => 20,
774
  'step' => 1,
775
  'default' => 3,
776
+ 'name' => __( 'Size', 'shortcodes-ultimate' ),
777
+ 'desc' => __( 'Button size', 'shortcodes-ultimate' )
778
  ),
779
  'wide' => array(
780
  'type' => 'bool',
781
  'default' => 'no',
782
+ 'name' => __( 'Fluid', 'shortcodes-ultimate' ), 'desc' => __( 'Fluid buttons has 100% width', 'shortcodes-ultimate' )
783
  ),
784
  'center' => array(
785
  'type' => 'bool',
786
  'default' => 'no',
787
+ 'name' => __( 'Centered', 'shortcodes-ultimate' ), 'desc' => __( 'Is button centered on the page', 'shortcodes-ultimate' )
788
  ),
789
  'radius' => array(
790
  'type' => 'select',
791
  'values' => array(
792
+ 'auto' => __( 'Auto', 'shortcodes-ultimate' ),
793
+ 'round' => __( 'Round', 'shortcodes-ultimate' ),
794
+ '0' => __( 'Square', 'shortcodes-ultimate' ),
795
  '5' => '5px',
796
  '10' => '10px',
797
  '20' => '20px'
798
  ),
799
  'default' => 'auto',
800
+ 'name' => __( 'Radius', 'shortcodes-ultimate' ),
801
+ 'desc' => __( 'Radius of button corners. Auto-radius calculation based on button size', 'shortcodes-ultimate' )
802
  ),
803
  'icon' => array(
804
  'type' => 'icon',
805
  'default' => '',
806
+ 'name' => __( 'Icon', 'shortcodes-ultimate' ),
807
+ 'desc' => __( 'You can upload custom icon for this button or pick a built-in icon', 'shortcodes-ultimate' )
808
  ),
809
  'icon_color' => array(
810
  'type' => 'color',
811
  'default' => '#FFFFFF',
812
+ 'name' => __( 'Icon color', 'shortcodes-ultimate' ),
813
+ 'desc' => __( 'This color will be applied to the selected icon. Does not works with uploaded icons', 'shortcodes-ultimate' )
814
  ),
815
  'text_shadow' => array(
816
  'type' => 'shadow',
817
  'default' => 'none',
818
+ 'name' => __( 'Text shadow', 'shortcodes-ultimate' ),
819
+ 'desc' => __( 'Button text shadow', 'shortcodes-ultimate' )
820
  ),
821
  'desc' => array(
822
  'default' => '',
823
+ 'name' => __( 'Description', 'shortcodes-ultimate' ),
824
+ 'desc' => __( 'Small description under button text. This option is incompatible with icon.', 'shortcodes-ultimate' )
825
  ),
826
  'onclick' => array(
827
  'default' => '',
828
+ 'name' => __( 'onClick', 'shortcodes-ultimate' ),
829
+ 'desc' => __( 'Advanced JavaScript code for onClick action', 'shortcodes-ultimate' )
830
  ),
831
  'rel' => array(
832
  'default' => '',
833
+ 'name' => __( 'Rel attribute', 'shortcodes-ultimate' ),
834
+ 'desc' => __( 'Here you can add value for the rel attribute.<br>Example values: <b%value>nofollow</b>, <b%value>lightbox</b>', 'shortcodes-ultimate' )
835
  ),
836
  'title' => array(
837
  'default' => '',
838
+ 'name' => __( 'Title attribute', 'shortcodes-ultimate' ),
839
+ 'desc' => __( 'Here you can add value for the title attribute', 'shortcodes-ultimate' )
840
  ),
841
  'class' => array(
842
  'default' => '',
843
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
844
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
845
  )
846
  ),
847
+ 'content' => __( 'Button text', 'shortcodes-ultimate' ),
848
+ 'desc' => __( 'Styled button', 'shortcodes-ultimate' ),
849
  'example' => 'buttons',
850
  'icon' => 'heart'
851
  ),
852
  // service
853
  'service' => array(
854
+ 'name' => __( 'Service', 'shortcodes-ultimate' ),
855
  'type' => 'wrap',
856
  'group' => 'box',
857
  'atts' => array(
858
  'title' => array(
859
  'values' => array( ),
860
+ 'default' => __( 'Service title', 'shortcodes-ultimate' ),
861
+ 'name' => __( 'Title', 'shortcodes-ultimate' ),
862
+ 'desc' => __( 'Service name', 'shortcodes-ultimate' )
863
  ),
864
  'icon' => array(
865
  'type' => 'icon',
866
  'default' => '',
867
+ 'name' => __( 'Icon', 'shortcodes-ultimate' ),
868
+ 'desc' => __( 'You can upload custom icon for this box', 'shortcodes-ultimate' )
869
  ),
870
  'icon_color' => array(
871
  'type' => 'color',
872
  'default' => '#333333',
873
+ 'name' => __( 'Icon color', 'shortcodes-ultimate' ),
874
+ 'desc' => __( 'This color will be applied to the selected icon. Does not works with uploaded icons', 'shortcodes-ultimate' )
875
  ),
876
  'size' => array(
877
  'type' => 'slider',
879
  'max' => 128,
880
  'step' => 2,
881
  'default' => 32,
882
+ 'name' => __( 'Icon size', 'shortcodes-ultimate' ),
883
+ 'desc' => __( 'Size of the uploaded icon in pixels', 'shortcodes-ultimate' )
884
  ),
885
  'class' => array(
886
  'default' => '',
887
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
888
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
889
  )
890
  ),
891
+ 'content' => __( 'Service description', 'shortcodes-ultimate' ),
892
+ 'desc' => __( 'Service box with title', 'shortcodes-ultimate' ),
893
  'icon' => 'check-square-o'
894
  ),
895
  // box
896
  'box' => array(
897
+ 'name' => __( 'Box', 'shortcodes-ultimate' ),
898
  'type' => 'wrap',
899
  'group' => 'box',
900
  'atts' => array(
901
  'title' => array(
902
  'values' => array( ),
903
+ 'default' => __( 'Box title', 'shortcodes-ultimate' ),
904
+ 'name' => __( 'Title', 'shortcodes-ultimate' ), 'desc' => __( 'Text for the box title', 'shortcodes-ultimate' )
905
  ),
906
  'style' => array(
907
  'type' => 'select',
908
  'values' => array(
909
+ 'default' => __( 'Default', 'shortcodes-ultimate' ),
910
+ 'soft' => __( 'Soft', 'shortcodes-ultimate' ),
911
+ 'glass' => __( 'Glass', 'shortcodes-ultimate' ),
912
+ 'bubbles' => __( 'Bubbles', 'shortcodes-ultimate' ),
913
+ 'noise' => __( 'Noise', 'shortcodes-ultimate' )
914
  ),
915
  'default' => 'default',
916
+ 'name' => __( 'Style', 'shortcodes-ultimate' ),
917
+ 'desc' => __( 'Box style preset', 'shortcodes-ultimate' )
918
  ),
919
  'box_color' => array(
920
  'type' => 'color',
921
  'values' => array( ),
922
  'default' => '#333333',
923
+ 'name' => __( 'Color', 'shortcodes-ultimate' ),
924
+ 'desc' => __( 'Color for the box title and borders', 'shortcodes-ultimate' )
925
  ),
926
  'title_color' => array(
927
  'type' => 'color',
928
  'values' => array( ),
929
  'default' => '#FFFFFF',
930
+ 'name' => __( 'Title text color', 'shortcodes-ultimate' ), 'desc' => __( 'Color for the box title text', 'shortcodes-ultimate' )
931
  ),
932
  'radius' => array(
933
  'type' => 'slider',
935
  'max' => 20,
936
  'step' => 1,
937
  'default' => 3,
938
+ 'name' => __( 'Radius', 'shortcodes-ultimate' ),
939
+ 'desc' => __( 'Box corners radius', 'shortcodes-ultimate' )
940
  ),
941
  'class' => array(
942
  'default' => '',
943
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
944
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
945
  )
946
  ),
947
+ 'content' => __( 'Box content', 'shortcodes-ultimate' ),
948
+ 'desc' => __( 'Colored box with caption', 'shortcodes-ultimate' ),
949
  'icon' => 'list-alt'
950
  ),
951
  // note
952
  'note' => array(
953
+ 'name' => __( 'Note', 'shortcodes-ultimate' ),
954
  'type' => 'wrap',
955
  'group' => 'box',
956
  'atts' => array(
958
  'type' => 'color',
959
  'values' => array( ),
960
  'default' => '#FFFF66',
961
+ 'name' => __( 'Background', 'shortcodes-ultimate' ), 'desc' => __( 'Note background color', 'shortcodes-ultimate' )
962
  ),
963
  'text_color' => array(
964
  'type' => 'color',
965
  'values' => array( ),
966
  'default' => '#333333',
967
+ 'name' => __( 'Text color', 'shortcodes-ultimate' ),
968
+ 'desc' => __( 'Note text color', 'shortcodes-ultimate' )
969
  ),
970
  'radius' => array(
971
  'type' => 'slider',
973
  'max' => 20,
974
  'step' => 1,
975
  'default' => 3,
976
+ 'name' => __( 'Radius', 'shortcodes-ultimate' ), 'desc' => __( 'Note corners radius', 'shortcodes-ultimate' )
977
  ),
978
  'class' => array(
979
  'default' => '',
980
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
981
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
982
  )
983
  ),
984
+ 'content' => __( 'Note text', 'shortcodes-ultimate' ),
985
+ 'desc' => __( 'Colored box', 'shortcodes-ultimate' ),
986
  'icon' => 'list-alt'
987
  ),
988
  // expand
989
  'expand' => array(
990
+ 'name' => __( 'Expand', 'shortcodes-ultimate' ),
991
  'type' => 'wrap',
992
  'group' => 'box',
993
  'atts' => array(
994
  'more_text' => array(
995
+ 'default' => __( 'Show more', 'shortcodes-ultimate' ),
996
+ 'name' => __( 'More text', 'shortcodes-ultimate' ),
997
+ 'desc' => __( 'Enter the text for more link', 'shortcodes-ultimate' )
998
  ),
999
  'less_text' => array(
1000
+ 'default' => __( 'Show less', 'shortcodes-ultimate' ),
1001
+ 'name' => __( 'Less text', 'shortcodes-ultimate' ),
1002
+ 'desc' => __( 'Enter the text for less link', 'shortcodes-ultimate' )
1003
  ),
1004
  'height' => array(
1005
  'type' => 'slider',
1007
  'max' => 1000,
1008
  'step' => 10,
1009
  'default' => 100,
1010
+ 'name' => __( 'Height', 'shortcodes-ultimate' ),
1011
+ 'desc' => __( 'Height for collapsed state (in pixels)', 'shortcodes-ultimate' )
1012
  ),
1013
  'hide_less' => array(
1014
  'type' => 'bool',
1015
  'default' => 'no',
1016
+ 'name' => __( 'Hide less link', 'shortcodes-ultimate' ),
1017
+ 'desc' => __( 'This option allows you to hide less link, when the text block has been expanded', 'shortcodes-ultimate' )
1018
  ),
1019
  'text_color' => array(
1020
  'type' => 'color',
1021
  'values' => array( ),
1022
  'default' => '#333333',
1023
+ 'name' => __( 'Text color', 'shortcodes-ultimate' ),
1024
+ 'desc' => __( 'Pick the text color', 'shortcodes-ultimate' )
1025
  ),
1026
  'link_color' => array(
1027
  'type' => 'color',
1028
  'values' => array( ),
1029
  'default' => '#0088FF',
1030
+ 'name' => __( 'Link color', 'shortcodes-ultimate' ),
1031
+ 'desc' => __( 'Pick the link color', 'shortcodes-ultimate' )
1032
  ),
1033
  'link_style' => array(
1034
  'type' => 'select',
1035
  'values' => array(
1036
+ 'default' => __( 'Default', 'shortcodes-ultimate' ),
1037
+ 'underlined' => __( 'Underlined', 'shortcodes-ultimate' ),
1038
+ 'dotted' => __( 'Dotted', 'shortcodes-ultimate' ),
1039
+ 'dashed' => __( 'Dashed', 'shortcodes-ultimate' ),
1040
+ 'button' => __( 'Button', 'shortcodes-ultimate' ),
1041
  ),
1042
  'default' => 'default',
1043
+ 'name' => __( 'Link style', 'shortcodes-ultimate' ),
1044
+ 'desc' => __( 'Select the style for more/less link', 'shortcodes-ultimate' )
1045
  ),
1046
  'link_align' => array(
1047
  'type' => 'select',
1048
  'values' => array(
1049
+ 'left' => __( 'Left', 'shortcodes-ultimate' ),
1050
+ 'center' => __( 'Center', 'shortcodes-ultimate' ),
1051
+ 'right' => __( 'Right', 'shortcodes-ultimate' ),
1052
  ),
1053
  'default' => 'left',
1054
+ 'name' => __( 'Link align', 'shortcodes-ultimate' ),
1055
+ 'desc' => __( 'Select link alignment', 'shortcodes-ultimate' )
1056
  ),
1057
  'more_icon' => array(
1058
  'type' => 'icon',
1059
  'default' => '',
1060
+ 'name' => __( 'More icon', 'shortcodes-ultimate' ),
1061
+ 'desc' => __( 'Add an icon to the more link', 'shortcodes-ultimate' )
1062
  ),
1063
  'less_icon' => array(
1064
  'type' => 'icon',
1065
  'default' => '',
1066
+ 'name' => __( 'Less icon', 'shortcodes-ultimate' ),
1067
+ 'desc' => __( 'Add an icon to the less link', 'shortcodes-ultimate' )
1068
  ),
1069
  'class' => array(
1070
  'default' => '',
1071
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
1072
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
1073
  )
1074
  ),
1075
+ 'content' => __( 'This text block can be expanded', 'shortcodes-ultimate' ),
1076
+ 'desc' => __( 'Expandable text block', 'shortcodes-ultimate' ),
1077
  'icon' => 'sort-amount-asc'
1078
  ),
1079
  // lightbox
1080
  'lightbox' => array(
1081
+ 'name' => __( 'Lightbox', 'shortcodes-ultimate' ),
1082
  'type' => 'wrap',
1083
  'group' => 'gallery',
1084
  'atts' => array(
1085
  'type' => array(
1086
  'type' => 'select',
1087
  'values' => array(
1088
+ 'iframe' => __( 'Iframe', 'shortcodes-ultimate' ),
1089
+ 'image' => __( 'Image', 'shortcodes-ultimate' ),
1090
+ 'inline' => __( 'Inline (html content)', 'shortcodes-ultimate' )
1091
  ),
1092
  'default' => 'iframe',
1093
+ 'name' => __( 'Content type', 'shortcodes-ultimate' ),
1094
+ 'desc' => __( 'Select type of the lightbox window content', 'shortcodes-ultimate' )
1095
  ),
1096
  'src' => array(
1097
  'default' => '',
1098
+ 'name' => __( 'Content source', 'shortcodes-ultimate' ),
1099
+ 'desc' => __( 'Insert here URL or CSS selector. Use URL for Iframe and Image content types. Use CSS selector for Inline content type.<br />Example values:<br /><b%value>http://www.youtube.com/watch?v=XXXXXXXXX</b> - YouTube video (iframe)<br /><b%value>http://example.com/wp-content/uploads/image.jpg</b> - uploaded image (image)<br /><b%value>http://example.com/</b> - any web page (iframe)<br /><b%value>#my-custom-popup</b> - any HTML content (inline)', 'shortcodes-ultimate' )
1100
  ),
1101
  'class' => array(
1102
  'default' => '',
1103
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
1104
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
1105
  )
1106
  ),
1107
+ 'content' => __( '[%prefix_button] Click Here to Watch the Video [/%prefix_button]', 'shortcodes-ultimate' ),
1108
+ 'desc' => __( 'Lightbox window with custom content', 'shortcodes-ultimate' ),
1109
  'icon' => 'external-link'
1110
  ),
1111
  // lightbox content
1112
  'lightbox_content' => array(
1113
+ 'name' => __( 'Lightbox content', 'shortcodes-ultimate' ),
1114
  'type' => 'wrap',
1115
  'group' => 'gallery',
1116
  'atts' => array(
1117
  'id' => array(
1118
  'default' => '',
1119
+ 'name' => __( 'ID', 'shortcodes-ultimate' ),
1120
+ 'desc' => sprintf( __( 'Enter here the ID from Content source field. %s Example value: %s', 'shortcodes-ultimate' ), '<br>', '<b%value>my-custom-popup</b>' )
1121
  ),
1122
  'width' => array(
1123
  'default' => '50%',
1124
+ 'name' => __( 'Width', 'shortcodes-ultimate' ),
1125
+ 'desc' => sprintf( __( 'Adjust the width for inline content (in pixels or percents). %s Example values: %s, %s, %s', 'shortcodes-ultimate' ), '<br>', '<b%value>300px</b>', '<b%value>600px</b>', '<b%value>90%</b>' )
1126
  ),
1127
  'margin' => array(
1128
  'type' => 'slider',
1130
  'max' => 600,
1131
  'step' => 5,
1132
  'default' => 40,
1133
+ 'name' => __( 'Margin', 'shortcodes-ultimate' ),
1134
+ 'desc' => __( 'Adjust the margin for inline content (in pixels)', 'shortcodes-ultimate' )
1135
  ),
1136
  'padding' => array(
1137
  'type' => 'slider',
1139
  'max' => 600,
1140
  'step' => 5,
1141
  'default' => 40,
1142
+ 'name' => __( 'Padding', 'shortcodes-ultimate' ),
1143
+ 'desc' => __( 'Adjust the padding for inline content (in pixels)', 'shortcodes-ultimate' )
1144
  ),
1145
  'text_align' => array(
1146
  'type' => 'select',
1147
  'values' => array(
1148
+ 'left' => __( 'Left', 'shortcodes-ultimate' ),
1149
+ 'center' => __( 'Center', 'shortcodes-ultimate' ),
1150
+ 'right' => __( 'Right', 'shortcodes-ultimate' )
1151
  ),
1152
  'default' => 'center',
1153
+ 'name' => __( 'Text alignment', 'shortcodes-ultimate' ),
1154
+ 'desc' => __( 'Select the text alignment', 'shortcodes-ultimate' )
1155
  ),
1156
  'background' => array(
1157
  'type' => 'color',
1158
  'default' => '#FFFFFF',
1159
+ 'name' => __( 'Background color', 'shortcodes-ultimate' ),
1160
+ 'desc' => __( 'Pick a background color', 'shortcodes-ultimate' )
1161
  ),
1162
  'color' => array(
1163
  'type' => 'color',
1164
  'default' => '#333333',
1165
+ 'name' => __( 'Text color', 'shortcodes-ultimate' ),
1166
+ 'desc' => __( 'Pick a text color', 'shortcodes-ultimate' )
1167
  ),
1168
  'color' => array(
1169
  'type' => 'color',
1170
  'default' => '#333333',
1171
+ 'name' => __( 'Text color', 'shortcodes-ultimate' ),
1172
+ 'desc' => __( 'Pick a text color', 'shortcodes-ultimate' )
1173
  ),
1174
  'shadow' => array(
1175
  'type' => 'shadow',
1176
  'default' => '0px 0px 15px #333333',
1177
+ 'name' => __( 'Shadow', 'shortcodes-ultimate' ),
1178
+ 'desc' => __( 'Adjust the shadow for content box', 'shortcodes-ultimate' )
1179
  ),
1180
  'class' => array(
1181
  'default' => '',
1182
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
1183
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
1184
  )
1185
  ),
1186
+ 'content' => __( 'Inline content', 'shortcodes-ultimate' ),
1187
+ 'desc' => __( 'Inline content for lightbox', 'shortcodes-ultimate' ),
1188
  'icon' => 'external-link'
1189
  ),
1190
  // tooltip
1191
  'tooltip' => array(
1192
+ 'name' => __( 'Tooltip', 'shortcodes-ultimate' ),
1193
  'type' => 'wrap',
1194
  'group' => 'other',
1195
  'atts' => array(
1196
  'style' => array(
1197
  'type' => 'select',
1198
  'values' => array(
1199
+ 'light' => __( 'Basic: Light', 'shortcodes-ultimate' ),
1200
+ 'dark' => __( 'Basic: Dark', 'shortcodes-ultimate' ),
1201
+ 'yellow' => __( 'Basic: Yellow', 'shortcodes-ultimate' ),
1202
+ 'green' => __( 'Basic: Green', 'shortcodes-ultimate' ),
1203
+ 'red' => __( 'Basic: Red', 'shortcodes-ultimate' ),
1204
+ 'blue' => __( 'Basic: Blue', 'shortcodes-ultimate' ),
1205
+ 'youtube' => __( 'Youtube', 'shortcodes-ultimate' ),
1206
+ 'tipsy' => __( 'Tipsy', 'shortcodes-ultimate' ),
1207
+ 'bootstrap' => __( 'Bootstrap', 'shortcodes-ultimate' ),
1208
+ 'jtools' => __( 'jTools', 'shortcodes-ultimate' ),
1209
+ 'tipped' => __( 'Tipped', 'shortcodes-ultimate' ),
1210
+ 'cluetip' => __( 'Cluetip', 'shortcodes-ultimate' ),
1211
  ),
1212
  'default' => 'yellow',
1213
+ 'name' => __( 'Style', 'shortcodes-ultimate' ),
1214
+ 'desc' => __( 'Tooltip window style', 'shortcodes-ultimate' )
1215
  ),
1216
  'position' => array(
1217
  'type' => 'select',
1218
  'values' => array(
1219
+ 'north' => __( 'Top', 'shortcodes-ultimate' ),
1220
+ 'south' => __( 'Bottom', 'shortcodes-ultimate' ),
1221
+ 'west' => __( 'Left', 'shortcodes-ultimate' ),
1222
+ 'east' => __( 'Right', 'shortcodes-ultimate' )
1223
  ),
1224
  'default' => 'top',
1225
+ 'name' => __( 'Position', 'shortcodes-ultimate' ),
1226
+ 'desc' => __( 'Tooltip position', 'shortcodes-ultimate' )
1227
  ),
1228
  'shadow' => array(
1229
  'type' => 'bool',
1230
  'default' => 'no',
1231
+ 'name' => __( 'Shadow', 'shortcodes-ultimate' ),
1232
+ 'desc' => __( 'Add shadow to tooltip. This option is only works with basic styes, e.g. blue, green etc.', 'shortcodes-ultimate' )
1233
  ),
1234
  'rounded' => array(
1235
  'type' => 'bool',
1236
  'default' => 'no',
1237
+ 'name' => __( 'Rounded corners', 'shortcodes-ultimate' ),
1238
+ 'desc' => __( 'Use rounded for tooltip. This option is only works with basic styes, e.g. blue, green etc.', 'shortcodes-ultimate' )
1239
  ),
1240
  'size' => array(
1241
  'type' => 'select',
1242
  'values' => array(
1243
+ 'default' => __( 'Default', 'shortcodes-ultimate' ),
1244
  '1' => 1,
1245
  '2' => 2,
1246
  '3' => 3,
1249
  '6' => 6,
1250
  ),
1251
  'default' => 'default',
1252
+ 'name' => __( 'Font size', 'shortcodes-ultimate' ),
1253
+ 'desc' => __( 'Tooltip font size', 'shortcodes-ultimate' )
1254
  ),
1255
  'title' => array(
1256
  'default' => '',
1257
+ 'name' => __( 'Tooltip title', 'shortcodes-ultimate' ),
1258
+ 'desc' => __( 'Enter title for tooltip window. Leave this field empty to hide the title', 'shortcodes-ultimate' )
1259
  ),
1260
  'content' => array(
1261
+ 'default' => __( 'Tooltip text', 'shortcodes-ultimate' ),
1262
+ 'name' => __( 'Tooltip content', 'shortcodes-ultimate' ),
1263
+ 'desc' => __( 'Enter tooltip content here', 'shortcodes-ultimate' )
1264
  ),
1265
  'behavior' => array(
1266
  'type' => 'select',
1267
  'values' => array(
1268
+ 'hover' => __( 'Show and hide on mouse hover', 'shortcodes-ultimate' ),
1269
+ 'click' => __( 'Show and hide by mouse click', 'shortcodes-ultimate' ),
1270
+ 'always' => __( 'Always visible', 'shortcodes-ultimate' )
1271
  ),
1272
  'default' => 'hover',
1273
+ 'name' => __( 'Behavior', 'shortcodes-ultimate' ),
1274
+ 'desc' => __( 'Select tooltip behavior', 'shortcodes-ultimate' )
1275
  ),
1276
  'close' => array(
1277
  'type' => 'bool',
1278
  'default' => 'no',
1279
+ 'name' => __( 'Close button', 'shortcodes-ultimate' ),
1280
+ 'desc' => __( 'Show close button', 'shortcodes-ultimate' )
1281
  ),
1282
  'class' => array(
1283
  'default' => '',
1284
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
1285
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
1286
  )
1287
  ),
1288
+ 'content' => __( '[%prefix_button] Hover me to open tooltip [/%prefix_button]', 'shortcodes-ultimate' ),
1289
+ 'desc' => __( 'Tooltip window with custom content', 'shortcodes-ultimate' ),
1290
  'icon' => 'comment-o'
1291
  ),
1292
  // private
1293
  'private' => array(
1294
+ 'name' => __( 'Private', 'shortcodes-ultimate' ),
1295
  'type' => 'wrap',
1296
  'group' => 'other',
1297
  'atts' => array(
1298
  'class' => array(
1299
  'default' => '',
1300
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
1301
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
1302
  )
1303
  ),
1304
+ 'content' => __( 'Private note text', 'shortcodes-ultimate' ),
1305
+ 'desc' => __( 'Private note for post authors', 'shortcodes-ultimate' ),
1306
  'icon' => 'lock'
1307
  ),
1308
  // youtube
1309
  'youtube' => array(
1310
+ 'name' => __( 'YouTube', 'shortcodes-ultimate' ),
1311
  'type' => 'single',
1312
  'group' => 'media',
1313
  'atts' => array(
1314
  'url' => array(
1315
  'values' => array( ),
1316
  'default' => '',
1317
+ 'name' => __( 'Url', 'shortcodes-ultimate' ),
1318
+ 'desc' => __( 'Url of YouTube page with video. Ex: http://youtube.com/watch?v=XXXXXX', 'shortcodes-ultimate' )
1319
  ),
1320
  'width' => array(
1321
  'type' => 'slider',
1323
  'max' => 1600,
1324
  'step' => 20,
1325
  'default' => 600,
1326
+ 'name' => __( 'Width', 'shortcodes-ultimate' ),
1327
+ 'desc' => __( 'Player width', 'shortcodes-ultimate' )
1328
  ),
1329
  'height' => array(
1330
  'type' => 'slider',
1332
  'max' => 1600,
1333
  'step' => 20,
1334
  'default' => 400,
1335
+ 'name' => __( 'Height', 'shortcodes-ultimate' ),
1336
+ 'desc' => __( 'Player height', 'shortcodes-ultimate' )
1337
  ),
1338
  'responsive' => array(
1339
  'type' => 'bool',
1340
  'default' => 'yes',
1341
+ 'name' => __( 'Responsive', 'shortcodes-ultimate' ),
1342
+ 'desc' => __( 'Ignore width and height parameters and make player responsive', 'shortcodes-ultimate' )
1343
  ),
1344
  'autoplay' => array(
1345
  'type' => 'bool',
1346
  'default' => 'no',
1347
+ 'name' => __( 'Autoplay', 'shortcodes-ultimate' ),
1348
+ 'desc' => __( 'Play video automatically when page is loaded', 'shortcodes-ultimate' )
1349
  ),
1350
  'class' => array(
1351
  'default' => '',
1352
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
1353
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
1354
  )
1355
  ),
1356
+ 'desc' => __( 'YouTube video', 'shortcodes-ultimate' ),
1357
  'example' => 'media',
1358
  'icon' => 'youtube-play'
1359
  ),
1360
  // youtube_advanced
1361
  'youtube_advanced' => array(
1362
+ 'name' => __( 'YouTube Advanced', 'shortcodes-ultimate' ),
1363
  'type' => 'single',
1364
  'group' => 'media',
1365
  'atts' => array(
1366
  'url' => array(
1367
  'values' => array( ),
1368
  'default' => '',
1369
+ 'name' => __( 'Url', 'shortcodes-ultimate' ),
1370
+ 'desc' => __( 'Url of YouTube page with video. Ex: http://youtube.com/watch?v=XXXXXX', 'shortcodes-ultimate' )
1371
  ),
1372
  'playlist' => array(
1373
  'default' => '',
1374
+ 'name' => __( 'Playlist', 'shortcodes-ultimate' ),
1375
+ 'desc' => __( 'Value is a comma-separated list of video IDs to play. If you specify a value, the first video that plays will be the VIDEO_ID specified in the URL path, and the videos specified in the playlist parameter will play thereafter', 'shortcodes-ultimate' )
1376
  ),
1377
  'width' => array(
1378
  'type' => 'slider',
1380
  'max' => 1600,
1381
  'step' => 20,
1382
  'default' => 600,
1383
+ 'name' => __( 'Width', 'shortcodes-ultimate' ),
1384
+ 'desc' => __( 'Player width', 'shortcodes-ultimate' )
1385
  ),
1386
  'height' => array(
1387
  'type' => 'slider',
1389
  'max' => 1600,
1390
  'step' => 20,
1391
  'default' => 400,
1392
+ 'name' => __( 'Height', 'shortcodes-ultimate' ),
1393
+ 'desc' => __( 'Player height', 'shortcodes-ultimate' )
1394
  ),
1395
  'responsive' => array(
1396
  'type' => 'bool',
1397
  'default' => 'yes',
1398
+ 'name' => __( 'Responsive', 'shortcodes-ultimate' ),
1399
+ 'desc' => __( 'Ignore width and height parameters and make player responsive', 'shortcodes-ultimate' )
1400
  ),
1401
  'controls' => array(
1402
  'type' => 'select',
1403
  'values' => array(
1404
+ 'no' => __( '0 - Hide controls', 'shortcodes-ultimate' ),
1405
+ 'yes' => __( '1 - Show controls', 'shortcodes-ultimate' ),
1406
+ 'alt' => __( '2 - Show controls when playback is started', 'shortcodes-ultimate' )
1407
  ),
1408
  'default' => 'yes',
1409
+ 'name' => __( 'Controls', 'shortcodes-ultimate' ),
1410
+ 'desc' => __( 'This parameter indicates whether the video player controls will display', 'shortcodes-ultimate' )
1411
  ),
1412
  'autohide' => array(
1413
  'type' => 'select',
1414
  'values' => array(
1415
+ 'no' => __( '0 - Do not hide controls', 'shortcodes-ultimate' ),
1416
+ 'yes' => __( '1 - Hide all controls on mouse out', 'shortcodes-ultimate' ),
1417
+ 'alt' => __( '2 - Hide progress bar on mouse out', 'shortcodes-ultimate' )
1418
  ),
1419
  'default' => 'alt',
1420
+ 'name' => __( 'Autohide', 'shortcodes-ultimate' ),
1421
+ 'desc' => __( 'This parameter indicates whether the video controls will automatically hide after a video begins playing', 'shortcodes-ultimate' )
1422
  ),
1423
  'showinfo' => array(
1424
  'type' => 'bool',
1425
  'default' => 'yes',
1426
+ 'name' => __( 'Show title bar', 'shortcodes-ultimate' ),
1427
+ 'desc' => __( 'If you set the parameter value to NO, then the player will not display information like the video title and uploader before the video starts playing.', 'shortcodes-ultimate' )
1428
  ),
1429
  'autoplay' => array(
1430
  'type' => 'bool',
1431
  'default' => 'no',
1432
+ 'name' => __( 'Autoplay', 'shortcodes-ultimate' ),
1433
+ 'desc' => __( 'Play video automatically when page is loaded', 'shortcodes-ultimate' )
1434
  ),
1435
  'loop' => array(
1436
  'type' => 'bool',
1437
  'default' => 'no',
1438
+ 'name' => __( 'Loop', 'shortcodes-ultimate' ),
1439
+ 'desc' => __( 'Setting of YES will cause the player to play the initial video again and again', 'shortcodes-ultimate' )
1440
  ),
1441
  'rel' => array(
1442
  'type' => 'bool',
1443
  'default' => 'yes',
1444
+ 'name' => __( 'Related videos', 'shortcodes-ultimate' ),
1445
+ 'desc' => __( 'This parameter indicates whether the player should show related videos when playback of the initial video ends', 'shortcodes-ultimate' )
1446
  ),
1447
  'fs' => array(
1448
  'type' => 'bool',
1449
  'default' => 'yes',
1450
+ 'name' => __( 'Show full-screen button', 'shortcodes-ultimate' ),
1451
+ 'desc' => __( 'Setting this parameter to NO prevents the fullscreen button from displaying', 'shortcodes-ultimate' )
1452
  ),
1453
  'modestbranding' => array(
1454
  'type' => 'bool',
1455
  'default' => 'no',
1456
  'name' => 'modestbranding',
1457
+ 'desc' => __( 'This parameter lets you use a YouTube player that does not show a YouTube logo. Set the parameter value to YES to prevent the YouTube logo from displaying in the control bar. Note that a small YouTube text label will still display in the upper-right corner of a paused video when the user\'s mouse pointer hovers over the player', 'shortcodes-ultimate' )
1458
  ),
1459
  'theme' => array(
1460
  'type' => 'select',
1461
  'values' => array(
1462
+ 'dark' => __( 'Dark theme', 'shortcodes-ultimate' ),
1463
+ 'light' => __( 'Light theme', 'shortcodes-ultimate' )
1464
  ),
1465
  'default' => 'dark',
1466
+ 'name' => __( 'Theme', 'shortcodes-ultimate' ),
1467
+ 'desc' => __( 'This parameter indicates whether the embedded player will display player controls (like a play button or volume control) within a dark or light control bar', 'shortcodes-ultimate' )
1468
  ),
1469
  'https' => array(
1470
  'type' => 'bool',
1471
  'default' => 'no',
1472
+ 'name' => __( 'Force HTTPS', 'shortcodes-ultimate' ),
1473
+ 'desc' => __( 'Use HTTPS in player iframe', 'shortcodes-ultimate' )
1474
  ),
1475
  'wmode' => array(
1476
  'default' => '',
1477
+ 'name' => __( 'WMode', 'shortcodes-ultimate' ),
1478
+ 'desc' => sprintf( __( 'Here you can specify wmode value for the embed URL. %s Example values: %s, %s', 'shortcodes-ultimate' ), '<br>', '<b%value>transparent</b>', '<b%value>opaque</b>' )
1479
  ),
1480
  'class' => array(
1481
  'default' => '',
1482
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
1483
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
1484
  )
1485
  ),
1486
+ 'desc' => __( 'YouTube video player with advanced settings', 'shortcodes-ultimate' ),
1487
  'example' => 'media',
1488
  'icon' => 'youtube-play'
1489
  ),
1490
  // vimeo
1491
  'vimeo' => array(
1492
+ 'name' => __( 'Vimeo', 'shortcodes-ultimate' ),
1493
  'type' => 'single',
1494
  'group' => 'media',
1495
  'atts' => array(
1496
  'url' => array(
1497
  'values' => array( ),
1498
  'default' => '',
1499
+ 'name' => __( 'Url', 'shortcodes-ultimate' ), 'desc' => __( 'Url of Vimeo page with video', 'shortcodes-ultimate' )
1500
  ),
1501
  'width' => array(
1502
  'type' => 'slider',
1504
  'max' => 1600,
1505
  'step' => 20,
1506
  'default' => 600,
1507
+ 'name' => __( 'Width', 'shortcodes-ultimate' ),
1508
+ 'desc' => __( 'Player width', 'shortcodes-ultimate' )
1509
  ),
1510
  'height' => array(
1511
  'type' => 'slider',
1513
  'max' => 1600,
1514
  'step' => 20,
1515
  'default' => 400,
1516
+ 'name' => __( 'Height', 'shortcodes-ultimate' ),
1517
+ 'desc' => __( 'Player height', 'shortcodes-ultimate' )
1518
  ),
1519
  'responsive' => array(
1520
  'type' => 'bool',
1521
  'default' => 'yes',
1522
+ 'name' => __( 'Responsive', 'shortcodes-ultimate' ),
1523
+ 'desc' => __( 'Ignore width and height parameters and make player responsive', 'shortcodes-ultimate' )
1524
  ),
1525
  'autoplay' => array(
1526
  'type' => 'bool',
1527
  'default' => 'no',
1528
+ 'name' => __( 'Autoplay', 'shortcodes-ultimate' ),
1529
+ 'desc' => __( 'Play video automatically when page is loaded', 'shortcodes-ultimate' )
1530
  ),
1531
  'class' => array(
1532
  'default' => '',
1533
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
1534
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
1535
  )
1536
  ),
1537
+ 'desc' => __( 'Vimeo video', 'shortcodes-ultimate' ),
1538
  'example' => 'media',
1539
  'icon' => 'youtube-play'
1540
  ),
1541
  // screenr
1542
  'screenr' => array(
1543
+ 'name' => __( 'Screenr', 'shortcodes-ultimate' ),
1544
  'type' => 'single',
1545
  'group' => 'media',
1546
  'atts' => array(
1547
  'url' => array(
1548
  'default' => '',
1549
+ 'name' => __( 'Url', 'shortcodes-ultimate' ),
1550
+ 'desc' => __( 'Url of Screenr page with video', 'shortcodes-ultimate' )
1551
  ),
1552
  'width' => array(
1553
  'type' => 'slider',
1555
  'max' => 1600,
1556
  'step' => 20,
1557
  'default' => 600,
1558
+ 'name' => __( 'Width', 'shortcodes-ultimate' ),
1559
+ 'desc' => __( 'Player width', 'shortcodes-ultimate' )
1560
  ),
1561
  'height' => array(
1562
  'type' => 'slider',
1564
  'max' => 1600,
1565
  'step' => 20,
1566
  'default' => 400,
1567
+ 'name' => __( 'Height', 'shortcodes-ultimate' ),
1568
+ 'desc' => __( 'Player height', 'shortcodes-ultimate' )
1569
  ),
1570
  'responsive' => array(
1571
  'type' => 'bool',
1572
  'default' => 'yes',
1573
+ 'name' => __( 'Responsive', 'shortcodes-ultimate' ),
1574
+ 'desc' => __( 'Ignore width and height parameters and make player responsive', 'shortcodes-ultimate' )
1575
  ),
1576
  'class' => array(
1577
  'default' => '',
1578
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
1579
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
1580
  )
1581
  ),
1582
+ 'desc' => __( 'Screenr video', 'shortcodes-ultimate' ),
1583
  'icon' => 'youtube-play'
1584
  ),
1585
  // dailymotion
1586
  'dailymotion' => array(
1587
+ 'name' => __( 'Dailymotion', 'shortcodes-ultimate' ),
1588
  'type' => 'single',
1589
  'group' => 'media',
1590
  'atts' => array(
1591
  'url' => array(
1592
  'default' => '',
1593
+ 'name' => __( 'Url', 'shortcodes-ultimate' ),
1594
+ 'desc' => __( 'Url of Dailymotion page with video', 'shortcodes-ultimate' )
1595
  ),
1596
  'width' => array(
1597
  'type' => 'slider',
1599
  'max' => 1600,
1600
  'step' => 20,
1601
  'default' => 600,
1602
+ 'name' => __( 'Width', 'shortcodes-ultimate' ),
1603
+ 'desc' => __( 'Player width', 'shortcodes-ultimate' )
1604
  ),
1605
  'height' => array(
1606
  'type' => 'slider',
1608
  'max' => 1600,
1609
  'step' => 20,
1610
  'default' => 400,
1611
+ 'name' => __( 'Height', 'shortcodes-ultimate' ),
1612
+ 'desc' => __( 'Player height', 'shortcodes-ultimate' )
1613
  ),
1614
  'responsive' => array(
1615
  'type' => 'bool',
1616
  'default' => 'yes',
1617
+ 'name' => __( 'Responsive', 'shortcodes-ultimate' ),
1618
+ 'desc' => __( 'Ignore width and height parameters and make player responsive', 'shortcodes-ultimate' )
1619
  ),
1620
  'autoplay' => array(
1621
  'type' => 'bool',
1622
  'default' => 'no',
1623
+ 'name' => __( 'Autoplay', 'shortcodes-ultimate' ),
1624
+ 'desc' => __( 'Start the playback of the video automatically after the player load. May not work on some mobile OS versions', 'shortcodes-ultimate' )
1625
  ),
1626
  'background' => array(
1627
  'type' => 'color',
1628
  'default' => '#FFC300',
1629
+ 'name' => __( 'Background color', 'shortcodes-ultimate' ),
1630
+ 'desc' => __( 'HTML color of the background of controls elements', 'shortcodes-ultimate' )
1631
  ),
1632
  'foreground' => array(
1633
  'type' => 'color',
1634
  'default' => '#F7FFFD',
1635
+ 'name' => __( 'Foreground color', 'shortcodes-ultimate' ),
1636
+ 'desc' => __( 'HTML color of the foreground of controls elements', 'shortcodes-ultimate' )
1637
  ),
1638
  'highlight' => array(
1639
  'type' => 'color',
1640
  'default' => '#171D1B',
1641
+ 'name' => __( 'Highlight color', 'shortcodes-ultimate' ),
1642
+ 'desc' => __( 'HTML color of the controls elements\' highlights', 'shortcodes-ultimate' )
1643
  ),
1644
  'logo' => array(
1645
  'type' => 'bool',
1646
  'default' => 'yes',
1647
+ 'name' => __( 'Show logo', 'shortcodes-ultimate' ),
1648
+ 'desc' => __( 'Allows to hide or show the Dailymotion logo', 'shortcodes-ultimate' )
1649
  ),
1650
  'quality' => array(
1651
  'type' => 'select',
1657
  '1080' => '1080'
1658
  ),
1659
  'default' => '380',
1660
+ 'name' => __( 'Quality', 'shortcodes-ultimate' ),
1661
+ 'desc' => __( 'Determines the quality that must be played by default if available', 'shortcodes-ultimate' )
1662
  ),
1663
  'related' => array(
1664
  'type' => 'bool',
1665
  'default' => 'yes',
1666
+ 'name' => __( 'Show related videos', 'shortcodes-ultimate' ),
1667
+ 'desc' => __( 'Show related videos at the end of the video', 'shortcodes-ultimate' )
1668
  ),
1669
  'info' => array(
1670
  'type' => 'bool',
1671
  'default' => 'yes',
1672
+ 'name' => __( 'Show video info', 'shortcodes-ultimate' ),
1673
+ 'desc' => __( 'Show videos info (title/author) on the start screen', 'shortcodes-ultimate' )
1674
  ),
1675
  'class' => array(
1676
  'default' => '',
1677
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
1678
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
1679
  )
1680
  ),
1681
+ 'desc' => __( 'Dailymotion video', 'shortcodes-ultimate' ),
1682
  'icon' => 'youtube-play'
1683
  ),
1684
  // audio
1685
  'audio' => array(
1686
+ 'name' => __( 'Audio', 'shortcodes-ultimate' ),
1687
  'type' => 'single',
1688
  'group' => 'media',
1689
  'atts' => array(
1690
  'url' => array(
1691
  'type' => 'upload',
1692
  'default' => '',
1693
+ 'name' => __( 'File', 'shortcodes-ultimate' ),
1694
+ 'desc' => __( 'Audio file url. Supported formats: mp3, ogg', 'shortcodes-ultimate' )
1695
  ),
1696
  'width' => array(
1697
  'values' => array(),
1698
  'default' => '100%',
1699
+ 'name' => __( 'Width', 'shortcodes-ultimate' ),
1700
+ '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' )
1701
  ),
1702
  'autoplay' => array(
1703
  'type' => 'bool',
1704
  'default' => 'no',
1705
+ 'name' => __( 'Autoplay', 'shortcodes-ultimate' ),
1706
+ 'desc' => __( 'Play file automatically when page is loaded', 'shortcodes-ultimate' )
1707
  ),
1708
  'loop' => array(
1709
  'type' => 'bool',
1710
  'default' => 'no',
1711
+ 'name' => __( 'Loop', 'shortcodes-ultimate' ),
1712
+ 'desc' => __( 'Repeat when playback is ended', 'shortcodes-ultimate' )
1713
  ),
1714
  'class' => array(
1715
  'default' => '',
1716
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
1717
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
1718
  )
1719
  ),
1720
+ 'desc' => __( 'Custom audio player', 'shortcodes-ultimate' ),
1721
  'example' => 'media',
1722
  'icon' => 'play-circle'
1723
  ),
1724
  // video
1725
  'video' => array(
1726
+ 'name' => __( 'Video', 'shortcodes-ultimate' ),
1727
  'type' => 'single',
1728
  'group' => 'media',
1729
  'atts' => array(
1730
  'url' => array(
1731
  'type' => 'upload',
1732
  'default' => '',
1733
+ 'name' => __( 'File', 'shortcodes-ultimate' ),
1734
+ 'desc' => __( 'Url to mp4/flv video-file', 'shortcodes-ultimate' )
1735
  ),
1736
  'poster' => array(
1737
  'type' => 'upload',
1738
  'default' => '',
1739
+ 'name' => __( 'Poster', 'shortcodes-ultimate' ),
1740
+ 'desc' => __( 'Url to poster image, that will be shown before playback', 'shortcodes-ultimate' )
1741
  ),
1742
  'title' => array(
1743
  'values' => array( ),
1744
  'default' => '',
1745
+ 'name' => __( 'Title', 'shortcodes-ultimate' ),
1746
+ 'desc' => __( 'Player title', 'shortcodes-ultimate' )
1747
  ),
1748
  'width' => array(
1749
  'type' => 'slider',
1751
  'max' => 1600,
1752
  'step' => 20,
1753
  'default' => 600,
1754
+ 'name' => __( 'Width', 'shortcodes-ultimate' ),
1755
+ 'desc' => __( 'Player width', 'shortcodes-ultimate' )
1756
  ),
1757
  'height' => array(
1758
  'type' => 'slider',
1760
  'max' => 1600,
1761
  'step' => 20,
1762
  'default' => 300,
1763
+ 'name' => __( 'Height', 'shortcodes-ultimate' ),
1764
+ 'desc' => __( 'Player height', 'shortcodes-ultimate' )
1765
  ),
1766
  'controls' => array(
1767
  'type' => 'bool',
1768
  'default' => 'yes',
1769
+ 'name' => __( 'Controls', 'shortcodes-ultimate' ),
1770
+ 'desc' => __( 'Show player controls (play/pause etc.) or not', 'shortcodes-ultimate' )
1771
  ),
1772
  'autoplay' => array(
1773
  'type' => 'bool',
1774
  'default' => 'no',
1775
+ 'name' => __( 'Autoplay', 'shortcodes-ultimate' ),
1776
+ 'desc' => __( 'Play file automatically when page is loaded', 'shortcodes-ultimate' )
1777
  ),
1778
  'loop' => array(
1779
  'type' => 'bool',
1780
  'default' => 'no',
1781
+ 'name' => __( 'Loop', 'shortcodes-ultimate' ),
1782
+ 'desc' => __( 'Repeat when playback is ended', 'shortcodes-ultimate' )
1783
  ),
1784
  'class' => array(
1785
  'default' => '',
1786
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
1787
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
1788
  )
1789
  ),
1790
+ 'desc' => __( 'Custom video player', 'shortcodes-ultimate' ),
1791
  'example' => 'media',
1792
  'icon' => 'play-circle'
1793
  ),
1794
  // table
1795
  'table' => array(
1796
+ 'name' => __( 'Table', 'shortcodes-ultimate' ),
1797
  'type' => 'mixed',
1798
  'group' => 'content',
1799
  'atts' => array(
1800
  'url' => array(
1801
  'type' => 'upload',
1802
  'default' => '',
1803
+ 'name' => __( 'CSV file', 'shortcodes-ultimate' ),
1804
+ 'desc' => __( 'Upload CSV file if you want to create HTML-table from file', 'shortcodes-ultimate' )
1805
  ),
1806
  'class' => array(
1807
  'default' => '',
1808
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
1809
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
1810
  )
1811
  ),
1812
+ 'content' => __( "<table>\n<tr>\n\t<td>Table</td>\n\t<td>Table</td>\n</tr>\n<tr>\n\t<td>Table</td>\n\t<td>Table</td>\n</tr>\n</table>", 'shortcodes-ultimate' ),
1813
+ 'desc' => __( 'Styled table from HTML or CSV file', 'shortcodes-ultimate' ),
1814
  'icon' => 'table'
1815
  ),
1816
  // permalink
1817
  'permalink' => array(
1818
+ 'name' => __( 'Permalink', 'shortcodes-ultimate' ),
1819
  'type' => 'mixed',
1820
  'group' => 'content other',
1821
  'atts' => array(
1822
  'id' => array(
1823
  'values' => array( ), 'default' => 1,
1824
+ 'name' => __( 'ID', 'shortcodes-ultimate' ),
1825
+ 'desc' => __( 'Post or page ID', 'shortcodes-ultimate' )
1826
  ),
1827
  'target' => array(
1828
  'type' => 'select',
1829
  'values' => array(
1830
+ 'self' => __( 'Same tab', 'shortcodes-ultimate' ),
1831
+ 'blank' => __( 'New tab', 'shortcodes-ultimate' )
1832
  ),
1833
  'default' => 'self',
1834
+ 'name' => __( 'Target', 'shortcodes-ultimate' ),
1835
+ 'desc' => __( 'Link target. blank - link will be opened in new window/tab', 'shortcodes-ultimate' )
1836
  ),
1837
  'class' => array(
1838
  'default' => '',
1839
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
1840
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
1841
  )
1842
  ),
1843
  'content' => '',
1844
+ 'desc' => __( 'Permalink to specified post/page', 'shortcodes-ultimate' ),
1845
  'icon' => 'link'
1846
  ),
1847
  // members
1848
  'members' => array(
1849
+ 'name' => __( 'Members', 'shortcodes-ultimate' ),
1850
  'type' => 'wrap',
1851
  'group' => 'other',
1852
  'atts' => array(
1853
  'message' => array(
1854
+ 'default' => __( 'This content is for registered users only. Please %login%.', 'shortcodes-ultimate' ),
1855
+ 'name' => __( 'Message', 'shortcodes-ultimate' ), 'desc' => __( 'Message for not logged users', 'shortcodes-ultimate' )
1856
  ),
1857
  'color' => array(
1858
  'type' => 'color',
1859
  'default' => '#ffcc00',
1860
+ 'name' => __( 'Box color', 'shortcodes-ultimate' ), 'desc' => __( 'This color will applied only to box for not logged users', 'shortcodes-ultimate' )
1861
  ),
1862
  'login_text' => array(
1863
+ 'default' => __( 'login', 'shortcodes-ultimate' ),
1864
+ 'name' => __( 'Login link text', 'shortcodes-ultimate' ), 'desc' => __( 'Text for the login link', 'shortcodes-ultimate' )
1865
  ),
1866
  'login_url' => array(
1867
  'default' => wp_login_url(),
1868
+ 'name' => __( 'Login link url', 'shortcodes-ultimate' ), 'desc' => __( 'Login link url', 'shortcodes-ultimate' )
1869
  ),
1870
  'class' => array(
1871
  'default' => '',
1872
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
1873
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
1874
  )
1875
  ),
1876
+ 'content' => __( 'Content for logged members', 'shortcodes-ultimate' ),
1877
+ 'desc' => __( 'Content for logged in members only', 'shortcodes-ultimate' ),
1878
  'icon' => 'lock'
1879
  ),
1880
  // guests
1881
  'guests' => array(
1882
+ 'name' => __( 'Guests', 'shortcodes-ultimate' ),
1883
  'type' => 'wrap',
1884
  'group' => 'other',
1885
  'atts' => array(
1886
  'class' => array(
1887
  'default' => '',
1888
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
1889
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
1890
  )
1891
  ),
1892
+ 'content' => __( 'Content for guests', 'shortcodes-ultimate' ),
1893
+ 'desc' => __( 'Content for guests only', 'shortcodes-ultimate' ),
1894
  'icon' => 'user'
1895
  ),
1896
  // feed
1897
  'feed' => array(
1898
+ 'name' => __( 'RSS Feed', 'shortcodes-ultimate' ),
1899
  'type' => 'single',
1900
  'group' => 'content other',
1901
  'atts' => array(
1902
  'url' => array(
1903
  'values' => array( ),
1904
  'default' => '',
1905
+ 'name' => __( 'Url', 'shortcodes-ultimate' ),
1906
+ 'desc' => __( 'Url to RSS-feed', 'shortcodes-ultimate' )
1907
  ),
1908
  'limit' => array(
1909
  'type' => 'slider',
1911
  'max' => 20,
1912
  'step' => 1,
1913
  'default' => 3,
1914
+ 'name' => __( 'Limit', 'shortcodes-ultimate' ), 'desc' => __( 'Number of items to show', 'shortcodes-ultimate' )
1915
  ),
1916
  'class' => array(
1917
  'default' => '',
1918
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
1919
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
1920
  )
1921
  ),
1922
+ 'desc' => __( 'Feed grabber', 'shortcodes-ultimate' ),
1923
  'icon' => 'rss'
1924
  ),
1925
  // menu
1926
  'menu' => array(
1927
+ 'name' => __( 'Menu', 'shortcodes-ultimate' ),
1928
  'type' => 'single',
1929
  'group' => 'other',
1930
  'atts' => array(
1931
  'name' => array(
1932
  'values' => array( ),
1933
  'default' => '',
1934
+ 'name' => __( 'Menu name', 'shortcodes-ultimate' ), 'desc' => __( 'Custom menu name. Ex: Main menu', 'shortcodes-ultimate' )
1935
  ),
1936
  'class' => array(
1937
  'default' => '',
1938
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
1939
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
1940
  )
1941
  ),
1942
+ 'desc' => __( 'Custom menu by name', 'shortcodes-ultimate' ),
1943
  'icon' => 'bars'
1944
  ),
1945
  // subpages
1946
  'subpages' => array(
1947
+ 'name' => __( 'Sub pages', 'shortcodes-ultimate' ),
1948
  'type' => 'single',
1949
  'group' => 'other',
1950
  'atts' => array(
1951
  'depth' => array(
1952
  'type' => 'select',
1953
  'values' => array( 1, 2, 3, 4, 5 ), 'default' => 1,
1954
+ 'name' => __( 'Depth', 'shortcodes-ultimate' ),
1955
+ 'desc' => __( 'Max depth level of children pages', 'shortcodes-ultimate' )
1956
  ),
1957
  'p' => array(
1958
  'values' => array( ),
1959
  'default' => '',
1960
+ 'name' => __( 'Parent ID', 'shortcodes-ultimate' ),
1961
+ 'desc' => __( 'ID of the parent page. Leave blank to use current page', 'shortcodes-ultimate' )
1962
  ),
1963
  'class' => array(
1964
  'default' => '',
1965
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
1966
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
1967
  )
1968
  ),
1969
+ 'desc' => __( 'List of sub pages', 'shortcodes-ultimate' ),
1970
  'icon' => 'bars'
1971
  ),
1972
  // siblings
1973
  'siblings' => array(
1974
+ 'name' => __( 'Siblings', 'shortcodes-ultimate' ),
1975
  'type' => 'single',
1976
  'group' => 'other',
1977
  'atts' => array(
1978
  'depth' => array(
1979
  'type' => 'select',
1980
  'values' => array( 1, 2, 3 ), 'default' => 1,
1981
+ 'name' => __( 'Depth', 'shortcodes-ultimate' ),
1982
+ 'desc' => __( 'Max depth level', 'shortcodes-ultimate' )
1983
  ),
1984
  'class' => array(
1985
  'default' => '',
1986
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
1987
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
1988
  )
1989
  ),
1990
+ 'desc' => __( 'List of cureent page siblings', 'shortcodes-ultimate' ),
1991
  'icon' => 'bars'
1992
  ),
1993
  // document
1994
  'document' => array(
1995
+ 'name' => __( 'Document', 'shortcodes-ultimate' ),
1996
  'type' => 'single',
1997
  'group' => 'media',
1998
  'atts' => array(
1999
  'url' => array(
2000
  'type' => 'upload',
2001
  'default' => '',
2002
+ 'name' => __( 'Url', 'shortcodes-ultimate' ),
2003
+ 'desc' => __( 'Url to uploaded document. Supported formats: doc, xls, pdf etc.', 'shortcodes-ultimate' )
2004
  ),
2005
  'width' => array(
2006
  'type' => 'slider',
2008
  'max' => 1600,
2009
  'step' => 20,
2010
  'default' => 600,
2011
+ 'name' => __( 'Width', 'shortcodes-ultimate' ),
2012
+ 'desc' => __( 'Viewer width', 'shortcodes-ultimate' )
2013
  ),
2014
  'height' => array(
2015
  'type' => 'slider',
2017
  'max' => 1600,
2018
  'step' => 20,
2019
  'default' => 600,
2020
+ 'name' => __( 'Height', 'shortcodes-ultimate' ),
2021
+ 'desc' => __( 'Viewer height', 'shortcodes-ultimate' )
2022
  ),
2023
  'responsive' => array(
2024
  'type' => 'bool',
2025
  'default' => 'yes',
2026
+ 'name' => __( 'Responsive', 'shortcodes-ultimate' ),
2027
+ 'desc' => __( 'Ignore width and height parameters and make viewer responsive', 'shortcodes-ultimate' )
2028
  ),
2029
  'class' => array(
2030
  'default' => '',
2031
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
2032
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
2033
  )
2034
  ),
2035
+ 'desc' => __( 'Document viewer by Google', 'shortcodes-ultimate' ),
2036
  'icon' => 'file-text'
2037
  ),
2038
  // gmap
2039
  'gmap' => array(
2040
+ 'name' => __( 'Gmap', 'shortcodes-ultimate' ),
2041
  'type' => 'single',
2042
  'group' => 'media',
2043
  'atts' => array(
2047
  'max' => 1600,
2048
  'step' => 20,
2049
  'default' => 600,
2050
+ 'name' => __( 'Width', 'shortcodes-ultimate' ),
2051
+ 'desc' => __( 'Map width', 'shortcodes-ultimate' )
2052
  ),
2053
  'height' => array(
2054
  'type' => 'slider',
2056
  'max' => 1600,
2057
  'step' => 20,
2058
  'default' => 400,
2059
+ 'name' => __( 'Height', 'shortcodes-ultimate' ),
2060
+ 'desc' => __( 'Map height', 'shortcodes-ultimate' )
2061
  ),
2062
  'responsive' => array(
2063
  'type' => 'bool',
2064
  'default' => 'yes',
2065
+ 'name' => __( 'Responsive', 'shortcodes-ultimate' ),
2066
+ 'desc' => __( 'Ignore width and height parameters and make map responsive', 'shortcodes-ultimate' )
2067
  ),
2068
  'address' => array(
2069
  'values' => array( ),
2070
  'default' => '',
2071
+ 'name' => __( 'Marker', 'shortcodes-ultimate' ),
2072
+ 'desc' => __( 'Address for the marker. You can type it in any language', 'shortcodes-ultimate' )
2073
  ),
2074
  'class' => array(
2075
  'default' => '',
2076
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
2077
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
2078
  )
2079
  ),
2080
+ 'desc' => __( 'Maps by Google', 'shortcodes-ultimate' ),
2081
  'icon' => 'globe'
2082
  ),
2083
  // slider
2084
  'slider' => array(
2085
+ 'name' => __( 'Slider', 'shortcodes-ultimate' ),
2086
  'type' => 'single',
2087
  'group' => 'gallery',
2088
  'atts' => array(
2089
  'source' => array(
2090
  'type' => 'image_source',
2091
  'default' => 'none',
2092
+ 'name' => __( 'Source', 'shortcodes-ultimate' ),
2093
+ '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' )
2094
  ),
2095
  'limit' => array(
2096
  'type' => 'slider',
2098
  'max' => 100,
2099
  'step' => 1,
2100
  'default' => 20,
2101
+ 'name' => __( 'Limit', 'shortcodes-ultimate' ),
2102
+ 'desc' => __( 'Maximum number of image source posts (for recent posts, category and custom taxonomy)', 'shortcodes-ultimate' )
2103
  ),
2104
  'link' => array(
2105
  'type' => 'select',
2106
  'values' => array(
2107
+ 'none' => __( 'None', 'shortcodes-ultimate' ),
2108
+ 'image' => __( 'Full-size image', 'shortcodes-ultimate' ),
2109
+ 'lightbox' => __( 'Lightbox', 'shortcodes-ultimate' ),
2110
+ 'custom' => __( 'Slide link (added in media editor)', 'shortcodes-ultimate' ),
2111
+ 'attachment' => __( 'Attachment page', 'shortcodes-ultimate' ),
2112
+ 'post' => __( 'Post permalink', 'shortcodes-ultimate' )
2113
  ),
2114
  'default' => 'none',
2115
+ 'name' => __( 'Links', 'shortcodes-ultimate' ),
2116
+ 'desc' => __( 'Select which links will be used for images in this gallery', 'shortcodes-ultimate' )
2117
  ),
2118
  'target' => array(
2119
  'type' => 'select',
2120
  'values' => array(
2121
+ 'self' => __( 'Same window', 'shortcodes-ultimate' ),
2122
+ 'blank' => __( 'New window', 'shortcodes-ultimate' )
2123
  ),
2124
  'default' => 'self',
2125
+ 'name' => __( 'Links target', 'shortcodes-ultimate' ),
2126
+ 'desc' => __( 'Open links in', 'shortcodes-ultimate' )
2127
  ),
2128
  'width' => array(
2129
  'type' => 'slider',
2131
  'max' => 1600,
2132
  'step' => 20,
2133
  'default' => 600,
2134
+ 'name' => __( 'Width', 'shortcodes-ultimate' ), 'desc' => __( 'Slider width (in pixels)', 'shortcodes-ultimate' )
2135
  ),
2136
  'height' => array(
2137
  'type' => 'slider',
2139
  'max' => 1600,
2140
  'step' => 20,
2141
  'default' => 300,
2142
+ 'name' => __( 'Height', 'shortcodes-ultimate' ), 'desc' => __( 'Slider height (in pixels)', 'shortcodes-ultimate' )
2143
  ),
2144
  'responsive' => array(
2145
  'type' => 'bool',
2146
  'default' => 'yes',
2147
+ 'name' => __( 'Responsive', 'shortcodes-ultimate' ),
2148
+ 'desc' => __( 'Ignore width and height parameters and make slider responsive', 'shortcodes-ultimate' )
2149
  ),
2150
  'title' => array(
2151
  'type' => 'bool',
2152
  'default' => 'yes',
2153
+ 'name' => __( 'Show titles', 'shortcodes-ultimate' ), 'desc' => __( 'Display slide titles', 'shortcodes-ultimate' )
2154
  ),
2155
  'centered' => array(
2156
  'type' => 'bool',
2157
  'default' => 'yes',
2158
+ 'name' => __( 'Center', 'shortcodes-ultimate' ), 'desc' => __( 'Is slider centered on the page', 'shortcodes-ultimate' )
2159
  ),
2160
  'arrows' => array(
2161
  'type' => 'bool',
2162
  'default' => 'yes',
2163
+ 'name' => __( 'Arrows', 'shortcodes-ultimate' ), 'desc' => __( 'Show left and right arrows', 'shortcodes-ultimate' )
2164
  ),
2165
  'pages' => array(
2166
  'type' => 'bool',
2167
  'default' => 'yes',
2168
+ 'name' => __( 'Pagination', 'shortcodes-ultimate' ),
2169
+ 'desc' => __( 'Show pagination', 'shortcodes-ultimate' )
2170
  ),
2171
  'mousewheel' => array(
2172
  'type' => 'bool',
2173
+ 'default' => 'yes', 'name' => __( 'Mouse wheel control', 'shortcodes-ultimate' ),
2174
+ 'desc' => __( 'Allow to change slides with mouse wheel', 'shortcodes-ultimate' )
2175
  ),
2176
  'autoplay' => array(
2177
  'type' => 'number',
2179
  'max' => 100000,
2180
  'step' => 100,
2181
  'default' => 5000,
2182
+ 'name' => __( 'Autoplay', 'shortcodes-ultimate' ),
2183
+ 'desc' => __( 'Choose interval between slide animations. Set to 0 to disable autoplay', 'shortcodes-ultimate' )
2184
  ),
2185
  'speed' => array(
2186
  'type' => 'number',
2188
  'max' => 20000,
2189
  'step' => 100,
2190
  'default' => 600,
2191
+ 'name' => __( 'Speed', 'shortcodes-ultimate' ), 'desc' => __( 'Specify animation speed', 'shortcodes-ultimate' )
2192
  ),
2193
  'class' => array(
2194
  'default' => '',
2195
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
2196
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
2197
  )
2198
  ),
2199
+ 'desc' => __( 'Customizable image slider', 'shortcodes-ultimate' ),
2200
  'icon' => 'picture-o'
2201
  ),
2202
  // carousel
2203
  'carousel' => array(
2204
+ 'name' => __( 'Carousel', 'shortcodes-ultimate' ),
2205
  'type' => 'single',
2206
  'group' => 'gallery',
2207
  'atts' => array(
2208
  'source' => array(
2209
  'type' => 'image_source',
2210
  'default' => 'none',
2211
+ 'name' => __( 'Source', 'shortcodes-ultimate' ),
2212
+ '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' )
2213
  ),
2214
  'limit' => array(
2215
  'type' => 'slider',
2217
  'max' => 100,
2218
  'step' => 1,
2219
  'default' => 20,
2220
+ 'name' => __( 'Limit', 'shortcodes-ultimate' ),
2221
+ 'desc' => __( 'Maximum number of image source posts (for recent posts, category and custom taxonomy)', 'shortcodes-ultimate' )
2222
  ),
2223
  'link' => array(
2224
  'type' => 'select',
2225
  'values' => array(
2226
+ 'none' => __( 'None', 'shortcodes-ultimate' ),
2227
+ 'image' => __( 'Full-size image', 'shortcodes-ultimate' ),
2228
+ 'lightbox' => __( 'Lightbox', 'shortcodes-ultimate' ),
2229
+ 'custom' => __( 'Slide link (added in media editor)', 'shortcodes-ultimate' ),
2230
+ 'attachment' => __( 'Attachment page', 'shortcodes-ultimate' ),
2231
+ 'post' => __( 'Post permalink', 'shortcodes-ultimate' )
2232
  ),
2233
  'default' => 'none',
2234
+ 'name' => __( 'Links', 'shortcodes-ultimate' ),
2235
+ 'desc' => __( 'Select which links will be used for images in this gallery', 'shortcodes-ultimate' )
2236
  ),
2237
  'target' => array(
2238
  'type' => 'select',
2239
  'values' => array(
2240
+ 'self' => __( 'Same window', 'shortcodes-ultimate' ),
2241
+ 'blank' => __( 'New window', 'shortcodes-ultimate' )
2242
  ),
2243
  'default' => 'self',
2244
+ 'name' => __( 'Links target', 'shortcodes-ultimate' ),
2245
+ 'desc' => __( 'Open links in', 'shortcodes-ultimate' )
2246
  ),
2247
  'width' => array(
2248
  'type' => 'slider',
2250
  'max' => 1600,
2251
  'step' => 20,
2252
  'default' => 600,
2253
+ 'name' => __( 'Width', 'shortcodes-ultimate' ),
2254
+ 'desc' => __( 'Carousel width (in pixels)', 'shortcodes-ultimate' )
2255
  ),
2256
  'height' => array(
2257
  'type' => 'slider',
2259
  'max' => 1600,
2260
  'step' => 20,
2261
  'default' => 100,
2262
+ 'name' => __( 'Height', 'shortcodes-ultimate' ),
2263
+ 'desc' => __( 'Carousel height (in pixels)', 'shortcodes-ultimate' )
2264
  ),
2265
  'responsive' => array(
2266
  'type' => 'bool',
2267
  'default' => 'yes',
2268
+ 'name' => __( 'Responsive', 'shortcodes-ultimate' ),
2269
+ 'desc' => __( 'Ignore width and height parameters and make carousel responsive', 'shortcodes-ultimate' )
2270
  ),
2271
  'items' => array(
2272
  'type' => 'number',
2274
  'max' => 20,
2275
  'step' => 1,
2276
  'default' => 3,
2277
+ 'name' => __( 'Items to show', 'shortcodes-ultimate' ),
2278
+ 'desc' => __( 'How much carousel items is visible', 'shortcodes-ultimate' )
2279
  ),
2280
  'scroll' => array(
2281
  'type' => 'number',
2282
  'min' => 1,
2283
  'max' => 20,
2284
  'step' => 1, 'default' => 1,
2285
+ 'name' => __( 'Scroll number', 'shortcodes-ultimate' ),
2286
+ 'desc' => __( 'How much items are scrolled in one transition', 'shortcodes-ultimate' )
2287
  ),
2288
  'title' => array(
2289
  'type' => 'bool',
2290
  'default' => 'yes',
2291
+ 'name' => __( 'Show titles', 'shortcodes-ultimate' ), 'desc' => __( 'Display titles for each item', 'shortcodes-ultimate' )
2292
  ),
2293
  'centered' => array(
2294
  'type' => 'bool',
2295
  'default' => 'yes',
2296
+ 'name' => __( 'Center', 'shortcodes-ultimate' ), 'desc' => __( 'Is carousel centered on the page', 'shortcodes-ultimate' )
2297
  ),
2298
  'arrows' => array(
2299
  'type' => 'bool',
2300
  'default' => 'yes',
2301
+ 'name' => __( 'Arrows', 'shortcodes-ultimate' ), 'desc' => __( 'Show left and right arrows', 'shortcodes-ultimate' )
2302
  ),
2303
  'pages' => array(
2304
  'type' => 'bool',
2305
  'default' => 'no',
2306
+ 'name' => __( 'Pagination', 'shortcodes-ultimate' ),
2307
+ 'desc' => __( 'Show pagination', 'shortcodes-ultimate' )
2308
  ),
2309
  'mousewheel' => array(
2310
  'type' => 'bool',
2311
+ 'default' => 'yes', 'name' => __( 'Mouse wheel control', 'shortcodes-ultimate' ),
2312
+ 'desc' => __( 'Allow to rotate carousel with mouse wheel', 'shortcodes-ultimate' )
2313
  ),
2314
  'autoplay' => array(
2315
  'type' => 'number',
2317
  'max' => 100000,
2318
  'step' => 100,
2319
  'default' => 5000,
2320
+ 'name' => __( 'Autoplay', 'shortcodes-ultimate' ),
2321
+ 'desc' => __( 'Choose interval between auto animations. Set to 0 to disable autoplay', 'shortcodes-ultimate' )
2322
  ),
2323
  'speed' => array(
2324
  'type' => 'number',
2326
  'max' => 20000,
2327
  'step' => 100,
2328
  'default' => 600,
2329
+ 'name' => __( 'Speed', 'shortcodes-ultimate' ), 'desc' => __( 'Specify animation speed', 'shortcodes-ultimate' )
2330
  ),
2331
  'class' => array(
2332
  'default' => '',
2333
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
2334
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
2335
  )
2336
  ),
2337
+ 'desc' => __( 'Customizable image carousel', 'shortcodes-ultimate' ),
2338
  'icon' => 'picture-o'
2339
  ),
2340
  // custom_gallery
2341
  'custom_gallery' => array(
2342
+ 'name' => __( 'Gallery', 'shortcodes-ultimate' ),
2343
  'type' => 'single',
2344
  'group' => 'gallery',
2345
  'atts' => array(
2346
  'source' => array(
2347
  'type' => 'image_source',
2348
  'default' => 'none',
2349
+ 'name' => __( 'Source', 'shortcodes-ultimate' ),
2350
+ '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' )
2351
  ),
2352
  'limit' => array(
2353
  'type' => 'slider',
2355
  'max' => 100,
2356
  'step' => 1,
2357
  'default' => 20,
2358
+ 'name' => __( 'Limit', 'shortcodes-ultimate' ),
2359
+ 'desc' => __( 'Maximum number of image source posts (for recent posts, category and custom taxonomy)', 'shortcodes-ultimate' )
2360
  ),
2361
  'link' => array(
2362
  'type' => 'select',
2363
  'values' => array(
2364
+ 'none' => __( 'None', 'shortcodes-ultimate' ),
2365
+ 'image' => __( 'Full-size image', 'shortcodes-ultimate' ),
2366
+ 'lightbox' => __( 'Lightbox', 'shortcodes-ultimate' ),
2367
+ 'custom' => __( 'Slide link (added in media editor)', 'shortcodes-ultimate' ),
2368
+ 'attachment' => __( 'Attachment page', 'shortcodes-ultimate' ),
2369
+ 'post' => __( 'Post permalink', 'shortcodes-ultimate' )
2370
  ),
2371
  'default' => 'none',
2372
+ 'name' => __( 'Links', 'shortcodes-ultimate' ),
2373
+ 'desc' => __( 'Select which links will be used for images in this gallery', 'shortcodes-ultimate' )
2374
  ),
2375
  'target' => array(
2376
  'type' => 'select',
2377
  'values' => array(
2378
+ 'self' => __( 'Same window', 'shortcodes-ultimate' ),
2379
+ 'blank' => __( 'New window', 'shortcodes-ultimate' )
2380
  ),
2381
  'default' => 'self',
2382
+ 'name' => __( 'Links target', 'shortcodes-ultimate' ),
2383
+ 'desc' => __( 'Open links in', 'shortcodes-ultimate' )
2384
  ),
2385
  'width' => array(
2386
  'type' => 'slider',
2388
  'max' => 1600,
2389
  'step' => 10,
2390
  'default' => 90,
2391
+ 'name' => __( 'Width', 'shortcodes-ultimate' ), 'desc' => __( 'Single item width (in pixels)', 'shortcodes-ultimate' )
2392
  ),
2393
  'height' => array(
2394
  'type' => 'slider',
2396
  'max' => 1600,
2397
  'step' => 10,
2398
  'default' => 90,
2399
+ 'name' => __( 'Height', 'shortcodes-ultimate' ), 'desc' => __( 'Single item height (in pixels)', 'shortcodes-ultimate' )
2400
  ),
2401
  'title' => array(
2402
  'type' => 'select',
2403
  'values' => array(
2404
+ 'never' => __( 'Never', 'shortcodes-ultimate' ),
2405
+ 'hover' => __( 'On mouse over', 'shortcodes-ultimate' ),
2406
+ 'always' => __( 'Always', 'shortcodes-ultimate' )
2407
  ),
2408
  'default' => 'hover',
2409
+ 'name' => __( 'Show titles', 'shortcodes-ultimate' ),
2410
+ 'desc' => __( 'Title display mode', 'shortcodes-ultimate' )
2411
  ),
2412
  'class' => array(
2413
  'default' => '',
2414
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
2415
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
2416
  )
2417
  ),
2418
+ 'desc' => __( 'Customizable image gallery', 'shortcodes-ultimate' ),
2419
  'icon' => 'picture-o'
2420
  ),
2421
  // posts
2422
  'posts' => array(
2423
+ 'name' => __( 'Posts', 'shortcodes-ultimate' ),
2424
  'type' => 'single',
2425
  'group' => 'other',
2426
  'atts' => array(
2427
  'template' => array(
2428
+ 'default' => 'templates/default-loop.php', 'name' => __( 'Template', 'shortcodes-ultimate' ),
2429
+ 'desc' => __( '<b>Do not change this field value if you do not understand description below.</b><br/>Relative path to the template file. Default templates is placed under the plugin directory (templates folder). You can copy it under your theme directory and modify as you want. You can use following default templates that already available in the plugin directory:<br/><b%value>templates/default-loop.php</b> - posts loop<br/><b%value>templates/teaser-loop.php</b> - posts loop with thumbnail and title<br/><b%value>templates/single-post.php</b> - single post template<br/><b%value>templates/list-loop.php</b> - unordered list with posts titles', 'shortcodes-ultimate' )
2430
  ),
2431
  'id' => array(
2432
  'default' => '',
2433
+ 'name' => __( 'Post ID\'s', 'shortcodes-ultimate' ),
2434
+ 'desc' => __( 'Enter comma separated ID\'s of the posts that you want to show', 'shortcodes-ultimate' )
2435
  ),
2436
  'posts_per_page' => array(
2437
  'type' => 'number',
2439
  'max' => 10000,
2440
  'step' => 1,
2441
  'default' => get_option( 'posts_per_page' ),
2442
+ 'name' => __( 'Posts per page', 'shortcodes-ultimate' ),
2443
+ 'desc' => __( 'Specify number of posts that you want to show. Enter -1 to get all posts', 'shortcodes-ultimate' )
2444
  ),
2445
  'post_type' => array(
2446
  'type' => 'select',
2447
  'multiple' => true,
2448
  'values' => Su_Tools::get_types(),
2449
  'default' => 'post',
2450
+ 'name' => __( 'Post types', 'shortcodes-ultimate' ),
2451
+ 'desc' => __( 'Select post types. Hold Ctrl key to select multiple post types', 'shortcodes-ultimate' )
2452
  ),
2453
  'taxonomy' => array(
2454
  'type' => 'select',
2455
  'values' => Su_Tools::get_taxonomies(),
2456
  'default' => 'category',
2457
+ 'name' => __( 'Taxonomy', 'shortcodes-ultimate' ),
2458
+ 'desc' => __( 'Select taxonomy to show posts from', 'shortcodes-ultimate' )
2459
  ),
2460
  'tax_term' => array(
2461
  'type' => 'select',
2462
  'multiple' => true,
2463
  'values' => Su_Tools::get_terms( 'category' ),
2464
  'default' => '',
2465
+ 'name' => __( 'Terms', 'shortcodes-ultimate' ),
2466
+ 'desc' => __( 'Select terms to show posts from', 'shortcodes-ultimate' )
2467
  ),
2468
  'tax_operator' => array(
2469
  'type' => 'select',
2470
  'values' => array( 'IN', 'NOT IN', 'AND' ),
2471
+ 'default' => 'IN', 'name' => __( 'Taxonomy term operator', 'shortcodes-ultimate' ),
2472
+ 'desc' => __( 'IN - posts that have any of selected categories terms<br/>NOT IN - posts that is does not have any of selected terms<br/>AND - posts that have all selected terms', 'shortcodes-ultimate' )
2473
  ),
2474
  // 'author' => array(
2475
  // 'type' => 'select',
2476
  // 'multiple' => true,
2477
  // 'values' => Su_Tools::get_users(),
2478
  // 'default' => 'default',
2479
+ // 'name' => __( 'Authors', 'shortcodes-ultimate' ),
2480
+ // 'desc' => __( 'Choose the authors whose posts you want to show. Enter here comma-separated list of users (IDs). Example: 1,7,18', 'shortcodes-ultimate' )
2481
  // ),
2482
  'author' => array(
2483
  'default' => '',
2484
+ 'name' => __( 'Authors', 'shortcodes-ultimate' ),
2485
+ 'desc' => __( 'Enter here comma-separated list of author\'s IDs. Example: 1,7,18', 'shortcodes-ultimate' )
2486
  ),
2487
  'meta_key' => array(
2488
  'default' => '',
2489
+ 'name' => __( 'Meta key', 'shortcodes-ultimate' ),
2490
+ 'desc' => __( 'Enter meta key name to show posts that have this key', 'shortcodes-ultimate' )
2491
  ),
2492
  'offset' => array(
2493
  'type' => 'number',
2494
  'min' => 0,
2495
  'max' => 10000,
2496
  'step' => 1, 'default' => 0,
2497
+ 'name' => __( 'Offset', 'shortcodes-ultimate' ),
2498
+ 'desc' => __( 'Specify offset to start posts loop not from first post', 'shortcodes-ultimate' )
2499
  ),
2500
  'order' => array(
2501
  'type' => 'select',
2502
  'values' => array(
2503
+ 'desc' => __( 'Descending', 'shortcodes-ultimate' ),
2504
+ 'asc' => __( 'Ascending', 'shortcodes-ultimate' )
2505
  ),
2506
  'default' => 'DESC',
2507
+ 'name' => __( 'Order', 'shortcodes-ultimate' ),
2508
+ 'desc' => __( 'Posts order', 'shortcodes-ultimate' )
2509
  ),
2510
  'orderby' => array(
2511
  'type' => 'select',
2512
  'values' => array(
2513
+ 'none' => __( 'None', 'shortcodes-ultimate' ),
2514
+ 'id' => __( 'Post ID', 'shortcodes-ultimate' ),
2515
+ 'author' => __( 'Post author', 'shortcodes-ultimate' ),
2516
+ 'title' => __( 'Post title', 'shortcodes-ultimate' ),
2517
+ 'name' => __( 'Post slug', 'shortcodes-ultimate' ),
2518
+ 'date' => __( 'Date', 'shortcodes-ultimate' ), 'modified' => __( 'Last modified date', 'shortcodes-ultimate' ),
2519
+ 'parent' => __( 'Post parent', 'shortcodes-ultimate' ),
2520
+ 'rand' => __( 'Random', 'shortcodes-ultimate' ), 'comment_count' => __( 'Comments number', 'shortcodes-ultimate' ),
2521
+ 'menu_order' => __( 'Menu order', 'shortcodes-ultimate' ), 'meta_value' => __( 'Meta key values', 'shortcodes-ultimate' ),
2522
  ),
2523
  'default' => 'date',
2524
+ 'name' => __( 'Order by', 'shortcodes-ultimate' ),
2525
+ 'desc' => __( 'Order posts by', 'shortcodes-ultimate' )
2526
  ),
2527
  'post_parent' => array(
2528
  'default' => '',
2529
+ 'name' => __( 'Post parent', 'shortcodes-ultimate' ),
2530
+ 'desc' => __( 'Show childrens of entered post (enter post ID)', 'shortcodes-ultimate' )
2531
  ),
2532
  'post_status' => array(
2533
  'type' => 'select',
2534
  'values' => array(
2535
+ 'publish' => __( 'Published', 'shortcodes-ultimate' ),
2536
+ 'pending' => __( 'Pending', 'shortcodes-ultimate' ),
2537
+ 'draft' => __( 'Draft', 'shortcodes-ultimate' ),
2538
+ 'auto-draft' => __( 'Auto-draft', 'shortcodes-ultimate' ),
2539
+ 'future' => __( 'Future post', 'shortcodes-ultimate' ),
2540
+ 'private' => __( 'Private post', 'shortcodes-ultimate' ),
2541
+ 'inherit' => __( 'Inherit', 'shortcodes-ultimate' ),
2542
+ 'trash' => __( 'Trashed', 'shortcodes-ultimate' ),
2543
+ 'any' => __( 'Any', 'shortcodes-ultimate' ),
2544
  ),
2545
  'default' => 'publish',
2546
+ 'name' => __( 'Post status', 'shortcodes-ultimate' ),
2547
+ 'desc' => __( 'Show only posts with selected status', 'shortcodes-ultimate' )
2548
  ),
2549
  'ignore_sticky_posts' => array(
2550
  'type' => 'bool',
2551
  'default' => 'no',
2552
+ 'name' => __( 'Ignore sticky', 'shortcodes-ultimate' ),
2553
+ 'desc' => __( 'Select Yes to ignore posts that is sticked', 'shortcodes-ultimate' )
2554
  )
2555
  ),
2556
+ 'desc' => __( 'Custom posts query with customizable template', 'shortcodes-ultimate' ),
2557
  'icon' => 'th-list'
2558
  ),
2559
  // dummy_text
2560
  'dummy_text' => array(
2561
+ 'name' => __( 'Dummy text', 'shortcodes-ultimate' ),
2562
  'type' => 'single',
2563
  'group' => 'content',
2564
  'atts' => array(
2565
  'what' => array(
2566
  'type' => 'select',
2567
  'values' => array(
2568
+ 'paras' => __( 'Paragraphs', 'shortcodes-ultimate' ),
2569
+ 'words' => __( 'Words', 'shortcodes-ultimate' ),
2570
+ 'bytes' => __( 'Bytes', 'shortcodes-ultimate' ),
2571
  ),
2572
  'default' => 'paras',
2573
+ 'name' => __( 'What', 'shortcodes-ultimate' ),
2574
+ 'desc' => __( 'What to generate', 'shortcodes-ultimate' )
2575
  ),
2576
  'amount' => array(
2577
  'type' => 'slider',
2579
  'max' => 100,
2580
  'step' => 1,
2581
  'default' => 1,
2582
+ 'name' => __( 'Amount', 'shortcodes-ultimate' ),
2583
+ 'desc' => __( 'How many items (paragraphs or words) to generate. Minimum words amount is 5', 'shortcodes-ultimate' )
2584
  ),
2585
  'cache' => array(
2586
  'type' => 'bool',
2587
  'default' => 'yes',
2588
+ 'name' => __( 'Cache', 'shortcodes-ultimate' ),
2589
+ 'desc' => __( 'Generated text will be cached. Be careful with this option. If you disable it and insert many dummy_text shortcodes the page load time will be highly increased', 'shortcodes-ultimate' )
2590
  ),
2591
  'class' => array(
2592
  'default' => '',
2593
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
2594
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
2595
  )
2596
  ),
2597
+ 'desc' => __( 'Text placeholder', 'shortcodes-ultimate' ),
2598
  'icon' => 'text-height'
2599
  ),
2600
  // dummy_image
2601
  'dummy_image' => array(
2602
+ 'name' => __( 'Dummy image', 'shortcodes-ultimate' ),
2603
  'type' => 'single',
2604
  'group' => 'content',
2605
  'atts' => array(
2609
  'max' => 1600,
2610
  'step' => 10,
2611
  'default' => 500,
2612
+ 'name' => __( 'Width', 'shortcodes-ultimate' ),
2613
+ 'desc' => __( 'Image width', 'shortcodes-ultimate' )
2614
  ),
2615
  'height' => array(
2616
  'type' => 'slider',
2618
  'max' => 1600,
2619
  'step' => 10,
2620
  'default' => 300,
2621
+ 'name' => __( 'Height', 'shortcodes-ultimate' ),
2622
+ 'desc' => __( 'Image height', 'shortcodes-ultimate' )
2623
  ),
2624
  'theme' => array(
2625
  'type' => 'select',
2626
  'values' => array(
2627
+ 'any' => __( 'Any', 'shortcodes-ultimate' ),
2628
+ 'abstract' => __( 'Abstract', 'shortcodes-ultimate' ),
2629
+ 'animals' => __( 'Animals', 'shortcodes-ultimate' ),
2630
+ 'business' => __( 'Business', 'shortcodes-ultimate' ),
2631
+ 'cats' => __( 'Cats', 'shortcodes-ultimate' ),
2632
+ 'city' => __( 'City', 'shortcodes-ultimate' ),
2633
+ 'food' => __( 'Food', 'shortcodes-ultimate' ),
2634
+ 'nightlife' => __( 'Night life', 'shortcodes-ultimate' ),
2635
+ 'fashion' => __( 'Fashion', 'shortcodes-ultimate' ),
2636
+ 'people' => __( 'People', 'shortcodes-ultimate' ),
2637
+ 'nature' => __( 'Nature', 'shortcodes-ultimate' ),
2638
+ 'sports' => __( 'Sports', 'shortcodes-ultimate' ),
2639
+ 'technics' => __( 'Technics', 'shortcodes-ultimate' ),
2640
+ 'transport' => __( 'Transport', 'shortcodes-ultimate' )
2641
  ),
2642
  'default' => 'any',
2643
+ 'name' => __( 'Theme', 'shortcodes-ultimate' ),
2644
+ 'desc' => __( 'Select the theme for this image', 'shortcodes-ultimate' )
2645
  ),
2646
  'class' => array(
2647
  'default' => '',
2648
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
2649
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
2650
  )
2651
  ),
2652
+ 'desc' => __( 'Image placeholder with random image', 'shortcodes-ultimate' ),
2653
  'icon' => 'picture-o'
2654
  ),
2655
  // animate
2656
  'animate' => array(
2657
+ 'name' => __( 'Animation', 'shortcodes-ultimate' ),
2658
  'type' => 'wrap',
2659
  'group' => 'other',
2660
  'atts' => array(
2662
  'type' => 'select',
2663
  'values' => array_combine( self::animations(), self::animations() ),
2664
  'default' => 'bounceIn',
2665
+ 'name' => __( 'Animation', 'shortcodes-ultimate' ),
2666
+ 'desc' => __( 'Select animation type', 'shortcodes-ultimate' )
2667
  ),
2668
  'duration' => array(
2669
  'type' => 'slider',
2671
  'max' => 20,
2672
  'step' => 0.5,
2673
  'default' => 1,
2674
+ 'name' => __( 'Duration', 'shortcodes-ultimate' ),
2675
+ 'desc' => __( 'Animation duration (seconds)', 'shortcodes-ultimate' )
2676
  ),
2677
  'delay' => array(
2678
  'type' => 'slider',
2680
  'max' => 20,
2681
  'step' => 0.5,
2682
  'default' => 0,
2683
+ 'name' => __( 'Delay', 'shortcodes-ultimate' ),
2684
+ 'desc' => __( 'Animation delay (seconds)', 'shortcodes-ultimate' )
2685
  ),
2686
  'inline' => array(
2687
  'type' => 'bool',
2688
  'default' => 'no',
2689
+ 'name' => __( 'Inline', 'shortcodes-ultimate' ),
2690
+ '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' )
2691
  ),
2692
  'class' => array(
2693
  'default' => '',
2694
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
2695
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
2696
  )
2697
  ),
2698
+ 'content' => __( 'Animated content', 'shortcodes-ultimate' ),
2699
+ 'desc' => __( 'Wrapper for animation. Any nested element will be animated', 'shortcodes-ultimate' ),
2700
  'example' => 'animations',
2701
  'icon' => 'bolt'
2702
  ),
2703
  // meta
2704
  'meta' => array(
2705
+ 'name' => __( 'Meta', 'shortcodes-ultimate' ),
2706
  'type' => 'single',
2707
  'group' => 'data',
2708
  'atts' => array(
2709
  'key' => array(
2710
  'default' => '',
2711
+ 'name' => __( 'Key', 'shortcodes-ultimate' ),
2712
+ 'desc' => __( 'Meta key name', 'shortcodes-ultimate' )
2713
  ),
2714
  'default' => array(
2715
  'default' => '',
2716
+ 'name' => __( 'Default', 'shortcodes-ultimate' ),
2717
+ 'desc' => __( 'This text will be shown if data is not found', 'shortcodes-ultimate' )
2718
  ),
2719
  'before' => array(
2720
  'default' => '',
2721
+ 'name' => __( 'Before', 'shortcodes-ultimate' ),
2722
+ 'desc' => __( 'This content will be shown before the value', 'shortcodes-ultimate' )
2723
  ),
2724
  'after' => array(
2725
  'default' => '',
2726
+ 'name' => __( 'After', 'shortcodes-ultimate' ),
2727
+ 'desc' => __( 'This content will be shown after the value', 'shortcodes-ultimate' )
2728
  ),
2729
  'post_id' => array(
2730
  'default' => '',
2731
+ 'name' => __( 'Post ID', 'shortcodes-ultimate' ),
2732
+ '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' )
2733
  ),
2734
  'filter' => array(
2735
  'default' => '',
2736
+ 'name' => __( 'Filter', 'shortcodes-ultimate' ),
2737
+ 'desc' => __( 'You can apply custom filter to the retrieved value. Enter here function name. Your function must accept one argument and return modified value. 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>"
2738
  )
2739
  ),
2740
+ 'desc' => __( 'Post meta', 'shortcodes-ultimate' ),
2741
  'icon' => 'info-circle'
2742
  ),
2743
  // user
2744
  'user' => array(
2745
+ 'name' => __( 'User', 'shortcodes-ultimate' ),
2746
  'type' => 'single',
2747
  'group' => 'data',
2748
  'atts' => array(
2749
  'field' => array(
2750
  'type' => 'select',
2751
  'values' => array(
2752
+ 'display_name' => __( 'Display name', 'shortcodes-ultimate' ),
2753
+ 'ID' => __( 'ID', 'shortcodes-ultimate' ),
2754
+ 'user_login' => __( 'Login', 'shortcodes-ultimate' ),
2755
+ 'user_nicename' => __( 'Nice name', 'shortcodes-ultimate' ),
2756
+ 'user_email' => __( 'Email', 'shortcodes-ultimate' ),
2757
+ 'user_url' => __( 'URL', 'shortcodes-ultimate' ),
2758
+ 'user_registered' => __( 'Registered', 'shortcodes-ultimate' ),
2759
+ 'user_activation_key' => __( 'Activation key', 'shortcodes-ultimate' ),
2760
+ 'user_status' => __( 'Status', 'shortcodes-ultimate' )
2761
  ),
2762
  'default' => 'display_name',
2763
+ 'name' => __( 'Field', 'shortcodes-ultimate' ),
2764
+ 'desc' => __( 'User data field name', 'shortcodes-ultimate' )
2765
  ),
2766
  'default' => array(
2767
  'default' => '',
2768
+ 'name' => __( 'Default', 'shortcodes-ultimate' ),
2769
+ 'desc' => __( 'This text will be shown if data is not found', 'shortcodes-ultimate' )
2770
  ),
2771
  'before' => array(
2772
  'default' => '',
2773
+ 'name' => __( 'Before', 'shortcodes-ultimate' ),
2774
+ 'desc' => __( 'This content will be shown before the value', 'shortcodes-ultimate' )
2775
  ),
2776
  'after' => array(
2777
  'default' => '',
2778
+ 'name' => __( 'After', 'shortcodes-ultimate' ),
2779
+ 'desc' => __( 'This content will be shown after the value', 'shortcodes-ultimate' )
2780
  ),
2781
  'user_id' => array(
2782
  'default' => '',
2783
+ 'name' => __( 'User ID', 'shortcodes-ultimate' ),
2784
+ 'desc' => __( 'You can specify custom user ID. Leave this field empty to use an ID of the current user', 'shortcodes-ultimate' )
2785
  ),
2786
  'filter' => array(
2787
  'default' => '',
2788
+ 'name' => __( 'Filter', 'shortcodes-ultimate' ),
2789
+ 'desc' => __( 'You can apply custom filter to the retrieved value. Enter here function name. Your function must accept one argument and return modified value. 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>"
2790
  )
2791
  ),
2792
+ 'desc' => __( 'User data', 'shortcodes-ultimate' ),
2793
  'icon' => 'info-circle'
2794
  ),
2795
  // post
2796
  'post' => array(
2797
+ 'name' => __( 'Post', 'shortcodes-ultimate' ),
2798
  'type' => 'single',
2799
  'group' => 'data',
2800
  'atts' => array(
2801
  'field' => array(
2802
  'type' => 'select',
2803
  'values' => array(
2804
+ 'ID' => __( 'Post ID', 'shortcodes-ultimate' ),
2805
+ 'post_author' => __( 'Post author', 'shortcodes-ultimate' ),
2806
+ 'post_date' => __( 'Post date', 'shortcodes-ultimate' ),
2807
+ 'post_date_gmt' => __( 'Post date', 'shortcodes-ultimate' ) . ' GMT',
2808
+ 'post_content' => __( 'Post content', 'shortcodes-ultimate' ),
2809
+ 'post_title' => __( 'Post title', 'shortcodes-ultimate' ),
2810
+ 'post_excerpt' => __( 'Post excerpt', 'shortcodes-ultimate' ),
2811
+ 'post_status' => __( 'Post status', 'shortcodes-ultimate' ),
2812
+ 'comment_status' => __( 'Comment status', 'shortcodes-ultimate' ),
2813
+ 'ping_status' => __( 'Ping status', 'shortcodes-ultimate' ),
2814
+ 'post_name' => __( 'Post name', 'shortcodes-ultimate' ),
2815
+ 'post_modified' => __( 'Post modified', 'shortcodes-ultimate' ),
2816
+ 'post_modified_gmt' => __( 'Post modified', 'shortcodes-ultimate' ) . ' GMT',
2817
+ 'post_content_filtered' => __( 'Filtered post content', 'shortcodes-ultimate' ),
2818
+ 'post_parent' => __( 'Post parent', 'shortcodes-ultimate' ),
2819
+ 'guid' => __( 'GUID', 'shortcodes-ultimate' ),
2820
+ 'menu_order' => __( 'Menu order', 'shortcodes-ultimate' ),
2821
+ 'post_type' => __( 'Post type', 'shortcodes-ultimate' ),
2822
+ 'post_mime_type' => __( 'Post mime type', 'shortcodes-ultimate' ),
2823
+ 'comment_count' => __( 'Comment count', 'shortcodes-ultimate' )
2824
  ),
2825
  'default' => 'post_title',
2826
+ 'name' => __( 'Field', 'shortcodes-ultimate' ),
2827
+ 'desc' => __( 'Post data field name', 'shortcodes-ultimate' )
2828
  ),
2829
  'default' => array(
2830
  'default' => '',
2831
+ 'name' => __( 'Default', 'shortcodes-ultimate' ),
2832
+ 'desc' => __( 'This text will be shown if data is not found', 'shortcodes-ultimate' )
2833
  ),
2834
  'before' => array(
2835
  'default' => '',
2836
+ 'name' => __( 'Before', 'shortcodes-ultimate' ),
2837
+ 'desc' => __( 'This content will be shown before the value', 'shortcodes-ultimate' )
2838
  ),
2839
  'after' => array(
2840
  'default' => '',
2841
+ 'name' => __( 'After', 'shortcodes-ultimate' ),
2842
+ 'desc' => __( 'This content will be shown after the value', 'shortcodes-ultimate' )
2843
  ),
2844
  'post_id' => array(
2845
  'default' => '',
2846
+ 'name' => __( 'Post ID', 'shortcodes-ultimate' ),
2847
+ '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' )
2848
  ),
2849
  'filter' => array(
2850
  'default' => '',
2851
+ 'name' => __( 'Filter', 'shortcodes-ultimate' ),
2852
+ 'desc' => __( 'You can apply custom filter to the retrieved value. Enter here function name. Your function must accept one argument and return modified value. 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>"
2853
  )
2854
  ),
2855
+ 'desc' => __( 'Post data', 'shortcodes-ultimate' ),
2856
  'icon' => 'info-circle'
2857
  ),
2858
  // post_terms
2859
  // 'post_terms' => array(
2860
+ // 'name' => __( 'Post terms', 'shortcodes-ultimate' ),
2861
  // 'type' => 'single',
2862
  // 'group' => 'data',
2863
  // 'atts' => array(
2864
  // 'post_id' => array(
2865
  // 'default' => '',
2866
+ // 'name' => __( 'Post ID', 'shortcodes-ultimate' ),
2867
+ // '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' )
2868
  // ),
2869
  // 'links' => array(
2870
  // 'type' => 'bool',
2871
  // 'default' => 'yes',
2872
+ // 'name' => __( 'Show links', 'shortcodes-ultimate' ),
2873
+ // 'desc' => __( 'Show terms names as hyperlinks', 'shortcodes-ultimate' )
2874
  // ),
2875
  // 'format' => array(
2876
  // 'type' => 'select',
2877
  // 'values' => array(
2878
+ // 'text' => __( 'Terms separated by commas', 'shortcodes-ultimate' ),
2879
+ // 'br' => __( 'Terms separated by new lines', 'shortcodes-ultimate' ),
2880
+ // 'ul' => __( 'Unordered list', 'shortcodes-ultimate' ),
2881
+ // 'ol' => __( 'Ordered list', 'shortcodes-ultimate' ),
2882
  // ),
2883
  // 'default' => 'text',
2884
+ // 'name' => __( 'Format', 'shortcodes-ultimate' ),
2885
+ // 'desc' => __( 'Choose how to output the terms', 'shortcodes-ultimate' )
2886
  // ),
2887
  // ),
2888
+ // 'desc' => __( 'Terms list', 'shortcodes-ultimate' ),
2889
  // 'icon' => 'info-circle'
2890
  // ),
2891
  // template
2892
  'template' => array(
2893
+ 'name' => __( 'Template', 'shortcodes-ultimate' ),
2894
  'type' => 'single',
2895
  'group' => 'other',
2896
  'atts' => array(
2897
  'name' => array(
2898
  'default' => '',
2899
+ 'name' => __( 'Template name', 'shortcodes-ultimate' ),
2900
+ 'desc' => sprintf( __( 'Use template file name (with optional .php extension). If you need to use templates from theme sub-folder, use relative path. Example values: %s, %s, %s', 'shortcodes-ultimate' ), '<b%value>page</b>', '<b%value>page.php</b>', '<b%value>includes/page.php</b>' )
2901
  )
2902
  ),
2903
+ 'desc' => __( 'Theme template', 'shortcodes-ultimate' ),
2904
  'icon' => 'puzzle-piece'
2905
  ),
2906
  // qrcode
2907
  'qrcode' => array(
2908
+ 'name' => __( 'QR code', 'shortcodes-ultimate' ),
2909
  'type' => 'single',
2910
  'group' => 'content',
2911
  'atts' => array(
2912
  'data' => array(
2913
  'default' => '',
2914
+ 'name' => __( 'Data', 'shortcodes-ultimate' ),
2915
+ 'desc' => __( 'The text to store within the QR code. You can use here any text or even URL', 'shortcodes-ultimate' )
2916
  ),
2917
  'title' => array(
2918
  'default' => '',
2919
+ 'name' => __( 'Title', 'shortcodes-ultimate' ),
2920
+ 'desc' => __( 'Enter here short description. This text will be used in alt attribute of QR code', 'shortcodes-ultimate' )
2921
  ),
2922
  'size' => array(
2923
  'type' => 'slider',
2925
  'max' => 1000,
2926
  'step' => 10,
2927
  'default' => 200,
2928
+ 'name' => __( 'Size', 'shortcodes-ultimate' ),
2929
+ 'desc' => __( 'Image width and height (in pixels)', 'shortcodes-ultimate' )
2930
  ),
2931
  'margin' => array(
2932
  'type' => 'slider',
2934
  'max' => 50,
2935
  'step' => 5,
2936
  'default' => 0,
2937
+ 'name' => __( 'Margin', 'shortcodes-ultimate' ),
2938
+ 'desc' => __( 'Thickness of a margin (in pixels)', 'shortcodes-ultimate' )
2939
  ),
2940
  'align' => array(
2941
  'type' => 'select',
2942
  'values' => array(
2943
+ 'none' => __( 'None', 'shortcodes-ultimate' ),
2944
+ 'left' => __( 'Left', 'shortcodes-ultimate' ),
2945
+ 'center' => __( 'Center', 'shortcodes-ultimate' ),
2946
+ 'right' => __( 'Right', 'shortcodes-ultimate' ),
2947
  ),
2948
  'default' => 'none',
2949
+ 'name' => __( 'Align', 'shortcodes-ultimate' ),
2950
+ 'desc' => __( 'Choose image alignment', 'shortcodes-ultimate' )
2951
  ),
2952
  'link' => array(
2953
  'default' => '',
2954
+ 'name' => __( 'Link', 'shortcodes-ultimate' ),
2955
+ 'desc' => __( 'You can make this QR code clickable. Enter here the URL', 'shortcodes-ultimate' )
2956
  ),
2957
  'target' => array(
2958
  'type' => 'select',
2959
  'values' => array(
2960
+ 'self' => __( 'Open link in same window/tab', 'shortcodes-ultimate' ),
2961
+ 'blank' => __( 'Open link in new window/tab', 'shortcodes-ultimate' ),
2962
  ),
2963
  'default' => 'blank',
2964
+ 'name' => __( 'Link target', 'shortcodes-ultimate' ),
2965
+ 'desc' => __( 'Select link target', 'shortcodes-ultimate' )
2966
  ),
2967
  'color' => array(
2968
  'type' => 'color',
2969
  'default' => '#000000',
2970
+ 'name' => __( 'Primary color', 'shortcodes-ultimate' ),
2971
+ 'desc' => __( 'Pick a primary color', 'shortcodes-ultimate' )
2972
  ),
2973
  'background' => array(
2974
  'type' => 'color',
2975
  'default' => '#ffffff',
2976
+ 'name' => __( 'Background color', 'shortcodes-ultimate' ),
2977
+ 'desc' => __( 'Pick a background color', 'shortcodes-ultimate' )
2978
  ),
2979
  'class' => array(
2980
  'default' => '',
2981
+ 'name' => __( 'Class', 'shortcodes-ultimate' ),
2982
+ 'desc' => __( 'Extra CSS class', 'shortcodes-ultimate' )
2983
  )
2984
  ),
2985
+ 'desc' => __( 'Advanced QR code generator', 'shortcodes-ultimate' ),
2986
  'icon' => 'qrcode'
2987
  ),
2988
  // scheduler
2989
  'scheduler' => array(
2990
+ 'name' => __( 'Scheduler', 'shortcodes-ultimate' ),
2991
  'type' => 'wrap',
2992
  'group' => 'other',
2993
  'atts' => array(
2994
  'time' => array(
2995
  'default' => '',
2996
+ 'name' => __( 'Time', 'shortcodes-ultimate' ),
2997
+ 'desc' => sprintf( __( 'In this field you can specify one or more time ranges. Every day at this time the content of shortcode will be visible. %s %s %s - show content from 9:00 to 18:00 %s - show content from 9:00 to 13:00 and from 14:00 to 18:00 %s - example with minutes (content will be visible each day, 45 minutes) %s - example with seconds', 'shortcodes-ultimate' ), '<br><br>', __( 'Examples (click to set)', 'shortcodes-ultimate' ), '<br><b%value>9-18</b>', '<br><b%value>9-13, 14-18</b>', '<br><b%value>9:30-10:15</b>', '<br><b%value>9:00:00-17:59:59</b>' )
2998
  ),
2999
  'days_week' => array(
3000
  'default' => '',
3001
+ 'name' => __( 'Days of the week', 'shortcodes-ultimate' ),
3002
+ 'desc' => sprintf( __( 'In this field you can specify one or more days of the week. Every week at these days the content of shortcode will be visible. %s 0 - Sunday %s 1 - Monday %s 2 - Tuesday %s 3 - Wednesday %s 4 - Thursday %s 5 - Friday %s 6 - Saturday %s %s %s - show content from Monday to Friday %s - show content only at Sunday %s - show content at Sunday and from Wednesday to Friday', 'shortcodes-ultimate' ), '<br><br>', '<br>', '<br>', '<br>', '<br>', '<br>', '<br>', '<br><br>', __( 'Examples (click to set)', 'shortcodes-ultimate' ), '<br><b%value>1-5</b>', '<br><b%value>0</b>', '<br><b%value>0, 3-5</b>' )
3003
  ),
3004
  'days_month' => array(
3005
  'default' => '',
3006
+ 'name' => __( 'Days of the month', 'shortcodes-ultimate' ),
3007
+ 'desc' => sprintf( __( 'In this field you can specify one or more days of the month. Every month at these days the content of shortcode will be visible. %s %s %s - show content only at first day of month %s - show content from 1th to 5th %s - show content from 10th to 15th and from 20th to 25th', 'shortcodes-ultimate' ), '<br><br>', __( 'Examples (click to set)', 'shortcodes-ultimate' ), '<br><b%value>1</b>', '<br><b%value>1-5</b>', '<br><b%value>10-15, 20-25</b>' )
3008
  ),
3009
  'months' => array(
3010
  'default' => '',
3011
+ 'name' => __( 'Months', 'shortcodes-ultimate' ),
3012
+ 'desc' => sprintf( __( 'In this field you can specify the month or months in which the content will be visible. %s %s %s - show content only in January %s - show content from February to June %s - show content in January, March and from May to July', 'shortcodes-ultimate' ), '<br><br>', __( 'Examples (click to set)', 'shortcodes-ultimate' ), '<br><b%value>1</b>', '<br><b%value>2-6</b>', '<br><b%value>1, 3, 5-7</b>' )
3013
  ),
3014
  'years' => array(
3015
  'default' => '',
3016
+ 'name' => __( 'Years', 'shortcodes-ultimate' ),
3017
+ 'desc' => sprintf( __( 'In this field you can specify the year or years in which the content will be visible. %s %s %s - show content only in 2014 %s - show content from 2014 to 2016 %s - show content in 2014, 2018 and from 2020 to 2022', 'shortcodes-ultimate' ), '<br><br>', __( 'Examples (click to set)', 'shortcodes-ultimate' ), '<br><b%value>2014</b>', '<br><b%value>2014-2016</b>', '<br><b%value>2014, 2018, 2020-2022</b>' )
3018
  ),
3019
  'alt' => array(
3020
  'default' => '',
3021
+ 'name' => __( 'Alternative text', 'shortcodes-ultimate' ),
3022
+ 'desc' => __( 'In this field you can type the text which will be shown if content is not visible at the current moment', 'shortcodes-ultimate' )
3023
  )
3024
  ),
3025
+ 'content' => __( 'Scheduled content', 'shortcodes-ultimate' ),
3026
+ 'desc' => __( 'Allows to show the content only at the specified time period', 'shortcodes-ultimate' ),
3027
+ 'note' => __( 'This shortcode allows you to show content only at the specified time.', 'shortcodes-ultimate' ) . '<br><br>' . __( 'Please pay special attention to the descriptions, which are located below each text field. It will save you a lot of time', 'shortcodes-ultimate' ) . '<br><br>' . __( '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.', 'shortcodes-ultimate' ),
3028
  'icon' => 'clock-o'
3029
  ),
3030
  ) );
inc/core/generator-views.php CHANGED
@@ -42,17 +42,17 @@ class Su_Generator_Views {
42
  }
43
 
44
  public static function bool( $id, $field ) {
45
- $return = '<span class="su-generator-switch su-generator-switch-' . $field['default'] . '"><span class="su-generator-yes">' . __( 'Yes', 'su' ) . '</span><span class="su-generator-no">' . __( 'No', 'su' ) . '</span></span><input type="hidden" name="' . $id . '" value="' . esc_attr( $field['default'] ) . '" id="su-generator-attr-' . $id . '" class="su-generator-attr su-generator-switch-value" />';
46
  return $return;
47
  }
48
 
49
  public static function upload( $id, $field ) {
50
- $return = '<input type="text" name="' . $id . '" value="' . esc_attr( $field['default'] ) . '" id="su-generator-attr-' . $id . '" class="su-generator-attr su-generator-upload-value" /><div class="su-generator-field-actions"><a href="javascript:;" class="button su-generator-upload-button"><img src="' . admin_url( '/images/media-button.png' ) . '" alt="' . __( 'Media manager', 'su' ) . '" />' . __( 'Media manager', 'su' ) . '</a></div>';
51
  return $return;
52
  }
53
 
54
  public static function icon( $id, $field ) {
55
- $return = '<input type="text" name="' . $id . '" value="' . esc_attr( $field['default'] ) . '" id="su-generator-attr-' . $id . '" class="su-generator-attr su-generator-icon-picker-value" /><div class="su-generator-field-actions"><a href="javascript:;" class="button su-generator-upload-button su-generator-field-action"><img src="' . admin_url( '/images/media-button.png' ) . '" alt="' . __( 'Media manager', 'su' ) . '" />' . __( 'Media manager', 'su' ) . '</a> <a href="javascript:;" class="button su-generator-icon-picker-button su-generator-field-action"><img src="' . admin_url( '/images/media-button-other.gif' ) . '" alt="' . __( 'Icon picker', 'su' ) . '" />' . __( 'Icon picker', 'su' ) . '</a></div><div class="su-generator-icon-picker su-generator-clearfix"><input type="text" class="widefat" placeholder="' . __( 'Filter icons', 'su' ) . '" /></div>';
56
  return $return;
57
  }
58
 
@@ -66,21 +66,21 @@ class Su_Generator_Views {
66
  // Prepare galleries list
67
  $galleries = $shult->get_option( 'galleries' );
68
  $created = ( is_array( $galleries ) && count( $galleries ) ) ? true : false;
69
- $return = '<select name="' . $id . '" id="su-generator-attr-' . $id . '" class="su-generator-attr" data-loading="' . __( 'Please wait', 'su' ) . '">';
70
  // Check that galleries is set
71
  if ( $created ) // Create options
72
  foreach ( $galleries as $g_id => $gallery ) {
73
  // Is this option selected
74
  $selected = ( $g_id == 0 ) ? ' selected="selected"' : '';
75
  // Prepare title
76
- $gallery['name'] = ( $gallery['name'] == '' ) ? __( 'Untitled gallery', 'su' ) : stripslashes( $gallery['name'] );
77
  // Create option
78
  $return .= '<option value="' . ( $g_id + 1 ) . '"' . $selected . '>' . $gallery['name'] . '</option>';
79
  }
80
  // Galleries not created
81
  else
82
- $return .= '<option value="0" selected>' . __( 'Galleries not found', 'su' ) . '</option>';
83
- $return .= '</select><small class="description"><a href="' . $shult->admin_url . '#tab-3" target="_blank">' . __( 'Manage galleries', 'su' ) . '</a>&nbsp;&nbsp;&nbsp;<a href="javascript:;" class="su-generator-reload-galleries">' . __( 'Reload galleries', 'su' ) . '</a></small>';
84
  return $return;
85
  }
86
 
@@ -96,7 +96,7 @@ class Su_Generator_Views {
96
 
97
  public static function shadow( $id, $field ) {
98
  $defaults = ( $field['default'] === 'none' ) ? array ( '0', '0', '0', '#000000' ) : explode( ' ', str_replace( 'px', '', $field['default'] ) );
99
- $return = '<div class="su-generator-shadow-picker"><span class="su-generator-shadow-picker-field"><input type="number" min="-1000" max="1000" step="1" value="' . $defaults[0] . '" class="su-generator-sp-hoff" /><small>' . __( 'Horizontal offset', 'su' ) . ' (px)</small></span><span class="su-generator-shadow-picker-field"><input type="number" min="-1000" max="1000" step="1" value="' . $defaults[1] . '" class="su-generator-sp-voff" /><small>' . __( 'Vertical offset', 'su' ) . ' (px)</small></span><span class="su-generator-shadow-picker-field"><input type="number" min="-1000" max="1000" step="1" value="' . $defaults[2] . '" class="su-generator-sp-blur" /><small>' . __( 'Blur', 'su' ) . ' (px)</small></span><span class="su-generator-shadow-picker-field su-generator-shadow-picker-color"><span class="su-generator-shadow-picker-color-wheel"></span><input type="text" value="' . $defaults[3] . '" class="su-generator-shadow-picker-color-value" /><small>' . __( 'Color', 'su' ) . '</small></span><input type="hidden" name="' . $id . '" value="' . esc_attr( $field['default'] ) . '" id="su-generator-attr-' . $id . '" class="su-generator-attr" /></div>';
100
  return $return;
101
  }
102
 
@@ -107,7 +107,7 @@ class Su_Generator_Views {
107
  'class' => 'su-generator-bp-style',
108
  'selected' => $defaults[1]
109
  ) );
110
- $return = '<div class="su-generator-border-picker"><span class="su-generator-border-picker-field"><input type="number" min="-1000" max="1000" step="1" value="' . $defaults[0] . '" class="su-generator-bp-width" /><small>' . __( 'Border width', 'su' ) . ' (px)</small></span><span class="su-generator-border-picker-field">' . $borders . '<small>' . __( 'Border style', 'su' ) . '</small></span><span class="su-generator-border-picker-field su-generator-border-picker-color"><span class="su-generator-border-picker-color-wheel"></span><input type="text" value="' . $defaults[2] . '" class="su-generator-border-picker-color-value" /><small>' . __( 'Border color', 'su' ) . '</small></span><input type="hidden" name="' . $id . '" value="' . esc_attr( $field['default'] ) . '" id="su-generator-attr-' . $id . '" class="su-generator-attr" /></div>';
111
  return $return;
112
  }
113
 
@@ -117,13 +117,13 @@ class Su_Generator_Views {
117
  ) );
118
  $sources = Su_Tools::select( array(
119
  'options' => array(
120
- 'media' => __( 'Media library', 'su' ),
121
- 'posts: recent' => __( 'Recent posts', 'su' ),
122
- 'category' => __( 'Category', 'su' ),
123
- 'taxonomy' => __( 'Taxonomy', 'su' )
124
  ),
125
  'selected' => '0',
126
- 'none' => __( 'Select images source', 'su' ) . '&hellip;',
127
  'class' => 'su-generator-isp-sources'
128
  ) );
129
  $categories = Su_Tools::select( array(
@@ -134,7 +134,7 @@ class Su_Generator_Views {
134
  ) );
135
  $taxonomies = Su_Tools::select( array(
136
  'options' => Su_Tools::get_taxonomies(),
137
- 'none' => __( 'Select taxonomy', 'su' ) . '&hellip;',
138
  'selected' => '0',
139
  'class' => 'su-generator-isp-taxonomies'
140
  ) );
@@ -145,7 +145,7 @@ class Su_Generator_Views {
145
  'disabled' => true,
146
  'style' => 'display:none'
147
  ) );
148
- $return = '<div class="su-generator-isp">' . $sources . '<div class="su-generator-isp-source su-generator-isp-source-media"><div class="su-generator-clearfix"><a href="javascript:;" class="button button-primary su-generator-isp-add-media"><i class="fa fa-plus"></i>&nbsp;&nbsp;' . __( 'Add images', 'su' ) . '</a></div><div class="su-generator-isp-images su-generator-clearfix"><em class="description">' . __( 'Click the button above and select images.<br>You can select multimple images with Ctrl (Cmd) key', 'su' ) . '</em></div></div><div class="su-generator-isp-source su-generator-isp-source-category"><em class="description">' . __( 'Select categories to retrieve posts from.<br>You can select multiple categories with Ctrl (Cmd) key', 'su' ) . '</em>' . $categories . '</div><div class="su-generator-isp-source su-generator-isp-source-taxonomy"><em class="description">' . __( 'Select taxonomy and it\'s terms.<br>You can select multiple terms with Ctrl (Cmd) key', 'su' ) . '</em>' . $taxonomies . $terms . '</div><input type="hidden" name="' . $id . '" value="' . $field['default'] . '" id="su-generator-attr-' . $id . '" class="su-generator-attr" /></div>';
149
  return $return;
150
  }
151
 
42
  }
43
 
44
  public static function bool( $id, $field ) {
45
+ $return = '<span class="su-generator-switch su-generator-switch-' . $field['default'] . '"><span class="su-generator-yes">' . __( 'Yes', 'shortcodes-ultimate' ) . '</span><span class="su-generator-no">' . __( 'No', 'shortcodes-ultimate' ) . '</span></span><input type="hidden" name="' . $id . '" value="' . esc_attr( $field['default'] ) . '" id="su-generator-attr-' . $id . '" class="su-generator-attr su-generator-switch-value" />';
46
  return $return;
47
  }
48
 
49
  public static function upload( $id, $field ) {
50
+ $return = '<input type="text" name="' . $id . '" value="' . esc_attr( $field['default'] ) . '" id="su-generator-attr-' . $id . '" class="su-generator-attr su-generator-upload-value" /><div class="su-generator-field-actions"><a href="javascript:;" class="button su-generator-upload-button"><img src="' . admin_url( '/images/media-button.png' ) . '" alt="' . __( 'Media manager', 'shortcodes-ultimate' ) . '" />' . __( 'Media manager', 'shortcodes-ultimate' ) . '</a></div>';
51
  return $return;
52
  }
53
 
54
  public static function icon( $id, $field ) {
55
+ $return = '<input type="text" name="' . $id . '" value="' . esc_attr( $field['default'] ) . '" id="su-generator-attr-' . $id . '" class="su-generator-attr su-generator-icon-picker-value" /><div class="su-generator-field-actions"><a href="javascript:;" class="button su-generator-upload-button su-generator-field-action"><img src="' . admin_url( '/images/media-button.png' ) . '" alt="' . __( 'Media manager', 'shortcodes-ultimate' ) . '" />' . __( 'Media manager', 'shortcodes-ultimate' ) . '</a> <a href="javascript:;" class="button su-generator-icon-picker-button su-generator-field-action"><img src="' . admin_url( '/images/media-button-other.gif' ) . '" alt="' . __( 'Icon picker', 'shortcodes-ultimate' ) . '" />' . __( 'Icon picker', 'shortcodes-ultimate' ) . '</a></div><div class="su-generator-icon-picker su-generator-clearfix"><input type="text" class="widefat" placeholder="' . __( 'Filter icons', 'shortcodes-ultimate' ) . '" /></div>';
56
  return $return;
57
  }
58
 
66
  // Prepare galleries list
67
  $galleries = $shult->get_option( 'galleries' );
68
  $created = ( is_array( $galleries ) && count( $galleries ) ) ? true : false;
69
+ $return = '<select name="' . $id . '" id="su-generator-attr-' . $id . '" class="su-generator-attr" data-loading="' . __( 'Please wait', 'shortcodes-ultimate' ) . '">';
70
  // Check that galleries is set
71
  if ( $created ) // Create options
72
  foreach ( $galleries as $g_id => $gallery ) {
73
  // Is this option selected
74
  $selected = ( $g_id == 0 ) ? ' selected="selected"' : '';
75
  // Prepare title
76
+ $gallery['name'] = ( $gallery['name'] == '' ) ? __( 'Untitled gallery', 'shortcodes-ultimate' ) : stripslashes( $gallery['name'] );
77
  // Create option
78
  $return .= '<option value="' . ( $g_id + 1 ) . '"' . $selected . '>' . $gallery['name'] . '</option>';
79
  }
80
  // Galleries not created
81
  else
82
+ $return .= '<option value="0" selected>' . __( 'Galleries not found', 'shortcodes-ultimate' ) . '</option>';
83
+ $return .= '</select><small class="description"><a href="' . $shult->admin_url . '#tab-3" target="_blank">' . __( 'Manage galleries', 'shortcodes-ultimate' ) . '</a>&nbsp;&nbsp;&nbsp;<a href="javascript:;" class="su-generator-reload-galleries">' . __( 'Reload galleries', 'shortcodes-ultimate' ) . '</a></small>';
84
  return $return;
85
  }
86
 
96
 
97
  public static function shadow( $id, $field ) {
98
  $defaults = ( $field['default'] === 'none' ) ? array ( '0', '0', '0', '#000000' ) : explode( ' ', str_replace( 'px', '', $field['default'] ) );
99
+ $return = '<div class="su-generator-shadow-picker"><span class="su-generator-shadow-picker-field"><input type="number" min="-1000" max="1000" step="1" value="' . $defaults[0] . '" class="su-generator-sp-hoff" /><small>' . __( 'Horizontal offset', 'shortcodes-ultimate' ) . ' (px)</small></span><span class="su-generator-shadow-picker-field"><input type="number" min="-1000" max="1000" step="1" value="' . $defaults[1] . '" class="su-generator-sp-voff" /><small>' . __( 'Vertical offset', 'shortcodes-ultimate' ) . ' (px)</small></span><span class="su-generator-shadow-picker-field"><input type="number" min="-1000" max="1000" step="1" value="' . $defaults[2] . '" class="su-generator-sp-blur" /><small>' . __( 'Blur', 'shortcodes-ultimate' ) . ' (px)</small></span><span class="su-generator-shadow-picker-field su-generator-shadow-picker-color"><span class="su-generator-shadow-picker-color-wheel"></span><input type="text" value="' . $defaults[3] . '" class="su-generator-shadow-picker-color-value" /><small>' . __( 'Color', 'shortcodes-ultimate' ) . '</small></span><input type="hidden" name="' . $id . '" value="' . esc_attr( $field['default'] ) . '" id="su-generator-attr-' . $id . '" class="su-generator-attr" /></div>';
100
  return $return;
101
  }
102
 
107
  'class' => 'su-generator-bp-style',
108
  'selected' => $defaults[1]
109
  ) );
110
+ $return = '<div class="su-generator-border-picker"><span class="su-generator-border-picker-field"><input type="number" min="-1000" max="1000" step="1" value="' . $defaults[0] . '" class="su-generator-bp-width" /><small>' . __( 'Border width', 'shortcodes-ultimate' ) . ' (px)</small></span><span class="su-generator-border-picker-field">' . $borders . '<small>' . __( 'Border style', 'shortcodes-ultimate' ) . '</small></span><span class="su-generator-border-picker-field su-generator-border-picker-color"><span class="su-generator-border-picker-color-wheel"></span><input type="text" value="' . $defaults[2] . '" class="su-generator-border-picker-color-value" /><small>' . __( 'Border color', 'shortcodes-ultimate' ) . '</small></span><input type="hidden" name="' . $id . '" value="' . esc_attr( $field['default'] ) . '" id="su-generator-attr-' . $id . '" class="su-generator-attr" /></div>';
111
  return $return;
112
  }
113
 
117
  ) );
118
  $sources = Su_Tools::select( array(
119
  'options' => array(
120
+ 'media' => __( 'Media library', 'shortcodes-ultimate' ),
121
+ 'posts: recent' => __( 'Recent posts', 'shortcodes-ultimate' ),
122
+ 'category' => __( 'Category', 'shortcodes-ultimate' ),
123
+ 'taxonomy' => __( 'Taxonomy', 'shortcodes-ultimate' )
124
  ),
125
  'selected' => '0',
126
+ 'none' => __( 'Select images source', 'shortcodes-ultimate' ) . '&hellip;',
127
  'class' => 'su-generator-isp-sources'
128
  ) );
129
  $categories = Su_Tools::select( array(
134
  ) );
135
  $taxonomies = Su_Tools::select( array(
136
  'options' => Su_Tools::get_taxonomies(),
137
+ 'none' => __( 'Select taxonomy', 'shortcodes-ultimate' ) . '&hellip;',
138
  'selected' => '0',
139
  'class' => 'su-generator-isp-taxonomies'
140
  ) );
145
  'disabled' => true,
146
  'style' => 'display:none'
147
  ) );
148
+ $return = '<div class="su-generator-isp">' . $sources . '<div class="su-generator-isp-source su-generator-isp-source-media"><div class="su-generator-clearfix"><a href="javascript:;" class="button button-primary su-generator-isp-add-media"><i class="fa fa-plus"></i>&nbsp;&nbsp;' . __( 'Add images', 'shortcodes-ultimate' ) . '</a></div><div class="su-generator-isp-images su-generator-clearfix"><em class="description">' . __( 'Click the button above and select images.<br>You can select multimple images with Ctrl (Cmd) key', 'shortcodes-ultimate' ) . '</em></div></div><div class="su-generator-isp-source su-generator-isp-source-category"><em class="description">' . __( 'Select categories to retrieve posts from.<br>You can select multiple categories with Ctrl (Cmd) key', 'shortcodes-ultimate' ) . '</em>' . $categories . '</div><div class="su-generator-isp-source su-generator-isp-source-taxonomy"><em class="description">' . __( 'Select taxonomy and it\'s terms.<br>You can select multiple terms with Ctrl (Cmd) key', 'shortcodes-ultimate' ) . '</em>' . $taxonomies . $terms . '</div><input type="hidden" name="' . $id . '" value="' . $field['default'] . '" id="su-generator-attr-' . $id . '" class="su-generator-attr" /></div>';
149
  return $return;
150
  }
151
 
inc/core/generator.php CHANGED
@@ -40,7 +40,7 @@ class Su_Generator {
40
  // Prepare args
41
  $args = wp_parse_args( $args, array(
42
  'target' => $target,
43
- 'text' => __( 'Insert shortcode', 'su' ),
44
  'class' => 'button',
45
  'icon' => plugins_url( 'assets/images/icon.png', SU_PLUGIN_FILE ),
46
  'echo' => true,
@@ -85,22 +85,22 @@ class Su_Generator {
85
  else {
86
  ob_start();
87
  $tools = apply_filters( 'su/generator/tools', array(
88
- '<a href="' . admin_url( 'admin.php?page=shortcodes-ultimate' ) . '#tab-1" target="_blank" title="' . __( 'Settings', 'su' ) . '">' . __( 'Plugin settings', 'su' ) . '</a>',
89
- '<a href="http://gndev.info/shortcodes-ultimate/" target="_blank" title="' . __( 'Plugin homepage', 'su' ) . '">' . __( 'Plugin homepage', 'su' ) . '</a>',
90
- '<a href="http://wordpress.org/support/plugin/shortcodes-ultimate/" target="_blank" title="' . __( 'Support forums', 'su' ) . '">' . __( 'Support forums', 'su' ) . '</a>'
91
  ) );
92
 
93
  // Add add-ons links
94
- if ( !su_addon_active( 'maker' ) || !su_addon_active( 'skins' ) || !su_addon_active( 'extra' ) ) $tools[] = '<a href="' . admin_url( 'admin.php?page=shortcodes-ultimate-addons' ) . '" target="_blank" title="' . __( 'Add-ons', 'su' ) . '" class="su-add-ons">' . __( 'Add-ons', 'su' ) . '</a>';
95
  ?>
96
  <div id="su-generator-wrap" style="display:none">
97
  <div id="su-generator">
98
  <div id="su-generator-header">
99
  <div id="su-generator-tools"><?php echo implode( ' <span></span> ', $tools ); ?></div>
100
- <input type="text" name="su_generator_search" id="su-generator-search" value="" placeholder="<?php _e( 'Search for shortcodes', 'su' ); ?>" />
101
- <p id="su-generator-search-pro-tip"><?php printf( '<strong>%s:</strong> %s', __( 'Pro Tip', 'su' ), __( 'Hit enter to select highlighted shortcode, while searching' ) ) ?></p>
102
  <div id="su-generator-filter">
103
- <strong><?php _e( 'Filter by type', 'su' ); ?></strong>
104
  <?php foreach ( (array) Su_Data::groups() as $group => $label ) echo '<a href="#" data-filter="' . $group . '">' . $label . '</a>'; ?>
105
  </div>
106
  <div id="su-generator-choices" class="su-generator-clearfix">
@@ -135,7 +135,7 @@ class Su_Generator {
135
  public static function settings() {
136
  self::access();
137
  // Param check
138
- if ( empty( $_REQUEST['shortcode'] ) ) wp_die( __( 'Shortcode not specified', 'su' ) );
139
  // Get cache
140
  $output = get_transient( 'su/generator/settings/' . sanitize_text_field( $_REQUEST['shortcode'] ) );
141
  if ( $output && SU_ENABLE_CACHE ) echo $output;
@@ -147,18 +147,18 @@ class Su_Generator {
147
  $skip = ( get_option( 'su_option_skip' ) === 'on' ) ? ' su-generator-skip' : '';
148
  // Prepare actions
149
  $actions = apply_filters( 'su/generator/actions', array(
150
- 'insert' => '<a href="javascript:void(0);" class="button button-primary button-large su-generator-insert"><i class="fa fa-check"></i> ' . __( 'Insert shortcode', 'su' ) . '</a>',
151
- 'preview' => '<a href="javascript:void(0);" class="button button-large su-generator-toggle-preview"><i class="fa fa-eye"></i> ' . __( 'Live preview', 'su' ) . '</a>'
152
  ) );
153
  // Shortcode header
154
  $return = '<div id="su-generator-breadcrumbs">';
155
- $return .= apply_filters( 'su/generator/breadcrumbs', '<a href="javascript:void(0);" class="su-generator-home" title="' . __( 'Click to return to the shortcodes list', 'su' ) . '">' . __( 'All shortcodes', 'su' ) . '</a> &rarr; <span>' . $shortcode['name'] . '</span> <small class="alignright">' . $shortcode['desc'] . '</small><div class="su-generator-clear"></div>' );
156
  $return .= '</div>';
157
  // Shortcode note
158
  if ( isset( $shortcode['note'] ) || isset( $shortcode['example'] ) ) {
159
  $return .= '<div class="su-generator-note"><i class="fa fa-info-circle"></i><div class="su-generator-note-content">';
160
  if ( isset( $shortcode['note'] ) ) $return .= wpautop( $shortcode['note'] );
161
- if ( isset( $shortcode['example'] ) ) $return .= wpautop( '<a href="' . admin_url( 'admin.php?page=shortcodes-ultimate-examples&example=' . $shortcode['example'] ) . '" target="_blank">' . __( 'Examples of use', 'su' ) . ' &rarr;</a>' );
162
  $return .= '</div></div>';
163
  }
164
  // Shortcode has atts
@@ -176,7 +176,7 @@ class Su_Generator {
176
  if ( is_callable( array( 'Su_Generator_Views', $attr_info['type'] ) ) ) $return .= call_user_func( array( 'Su_Generator_Views', $attr_info['type'] ), $attr_name, $attr_info );
177
  elseif ( isset( $attr_info['callback'] ) && is_callable( $attr_info['callback'] ) ) $return .= call_user_func( $attr_info['callback'], $attr_name, $attr_info );
178
  if ( isset( $attr_info['desc'] ) ) $attr_info['desc'] = str_replace( '%su_skins_link%', su_skins_link(), $attr_info['desc'] );
179
- if ( isset( $attr_info['desc'] ) ) $return .= '<div class="su-generator-attr-desc">' . str_replace( array( '<b%value>', '<b_>' ), '<b class="su-generator-set-value" title="' . __( 'Click to set this value', 'su' ) . '">', $attr_info['desc'] ) . '</div>';
180
  $return .= '</div>';
181
  }
182
  }
@@ -186,7 +186,7 @@ class Su_Generator {
186
  else {
187
  // Prepare shortcode content
188
  $shortcode['content'] = ( isset( $shortcode['content'] ) ) ? $shortcode['content'] : '';
189
- $return .= '<div class="su-generator-attr-container"><h5>' . __( 'Content', 'su' ) . '</h5><textarea name="su-generator-content" id="su-generator-content" rows="5">' . esc_attr( str_replace( array( '%prefix_', '__' ), su_cmpt(), $shortcode['content'] ) ) . '</textarea></div>';
190
  }
191
  $return .= '<div id="su-generator-preview"></div>';
192
  $return .= '<div class="su-generator-actions su-generator-clearfix">' . implode( ' ', array_values( $actions ) ) . '</div>';
@@ -204,7 +204,7 @@ class Su_Generator {
204
  self::access();
205
  // Output results
206
  do_action( 'su/generator/preview/before' );
207
- echo '<h5>' . __( 'Preview', 'su' ) . '</h5>';
208
  // echo '<hr />' . stripslashes( $_POST['shortcode'] ) . '<hr />'; // Uncomment for debug
209
  echo do_shortcode( str_replace( '\"', '"', $_POST['shortcode'] ) );
210
  echo '<div style="clear:both"></div>';
@@ -213,7 +213,7 @@ class Su_Generator {
213
  }
214
 
215
  public static function access() {
216
- if ( !self::access_check() ) wp_die( __( 'Access denied', 'su' ) );
217
  }
218
 
219
  public static function access_check() {
@@ -248,10 +248,10 @@ class Su_Generator {
248
  ob_start();
249
  ?>
250
  <div class="su-generator-presets alignright" data-shortcode="<?php echo sanitize_key( $_REQUEST['shortcode'] ); ?>">
251
- <a href="javascript:void(0);" class="button button-large su-gp-button"><i class="fa fa-bars"></i> <?php _e( 'Presets', 'su' ); ?></a>
252
  <div class="su-gp-popup">
253
  <div class="su-gp-head">
254
- <a href="javascript:void(0);" class="button button-small button-primary su-gp-new"><?php _e( 'Save current settings as preset', 'su' ); ?></a>
255
  </div>
256
  <div class="su-gp-list">
257
  <?php self::presets_list(); ?>
@@ -280,10 +280,10 @@ class Su_Generator {
280
  echo '<span data-id="' . $preset['id'] . '"><em>' . stripslashes( $preset['name'] ) . '</em> <i class="fa fa-times"></i></span>';
281
  }
282
  // Hide default text
283
- echo sprintf( '<b style="display:none">%s</b>', __( 'Presets not found', 'su' ) );
284
  }
285
  // Presets doesn't found
286
- else echo sprintf( '<b>%s</b>', __( 'Presets not found', 'su' ) );
287
  }
288
 
289
  public static function ajax_add_preset() {
40
  // Prepare args
41
  $args = wp_parse_args( $args, array(
42
  'target' => $target,
43
+ 'text' => __( 'Insert shortcode', 'shortcodes-ultimate' ),
44
  'class' => 'button',
45
  'icon' => plugins_url( 'assets/images/icon.png', SU_PLUGIN_FILE ),
46
  'echo' => true,
85
  else {
86
  ob_start();
87
  $tools = apply_filters( 'su/generator/tools', array(
88
+ '<a href="' . admin_url( 'admin.php?page=shortcodes-ultimate' ) . '#tab-1" target="_blank" title="' . __( 'Settings', 'shortcodes-ultimate' ) . '">' . __( 'Plugin settings', 'shortcodes-ultimate' ) . '</a>',
89
+ '<a href="http://gndev.info/shortcodes-ultimate/" target="_blank" title="' . __( 'Plugin homepage', 'shortcodes-ultimate' ) . '">' . __( 'Plugin homepage', 'shortcodes-ultimate' ) . '</a>',
90
+ '<a href="http://wordpress.org/support/plugin/shortcodes-ultimate/" target="_blank" title="' . __( 'Support forums', 'shortcodes-ultimate' ) . '">' . __( 'Support forums', 'shortcodes-ultimate' ) . '</a>'
91
  ) );
92
 
93
  // Add add-ons links
94
+ if ( !su_addon_active( 'maker' ) || !su_addon_active( 'skins' ) || !su_addon_active( 'extra' ) ) $tools[] = '<a href="' . admin_url( 'admin.php?page=shortcodes-ultimate-addons' ) . '" target="_blank" title="' . __( 'Add-ons', 'shortcodes-ultimate' ) . '" class="su-add-ons">' . __( 'Add-ons', 'shortcodes-ultimate' ) . '</a>';
95
  ?>
96
  <div id="su-generator-wrap" style="display:none">
97
  <div id="su-generator">
98
  <div id="su-generator-header">
99
  <div id="su-generator-tools"><?php echo implode( ' <span></span> ', $tools ); ?></div>
100
+ <input type="text" name="su_generator_search" id="su-generator-search" value="" placeholder="<?php _e( 'Search for shortcodes', 'shortcodes-ultimate' ); ?>" />
101
+ <p id="su-generator-search-pro-tip"><?php printf( '<strong>%s:</strong> %s', __( 'Pro Tip', 'shortcodes-ultimate' ), __( 'Hit enter to select highlighted shortcode, while searching' ) ) ?></p>
102
  <div id="su-generator-filter">
103
+ <strong><?php _e( 'Filter by type', 'shortcodes-ultimate' ); ?></strong>
104
  <?php foreach ( (array) Su_Data::groups() as $group => $label ) echo '<a href="#" data-filter="' . $group . '">' . $label . '</a>'; ?>
105
  </div>
106
  <div id="su-generator-choices" class="su-generator-clearfix">
135
  public static function settings() {
136
  self::access();
137
  // Param check
138
+ if ( empty( $_REQUEST['shortcode'] ) ) wp_die( __( 'Shortcode not specified', 'shortcodes-ultimate' ) );
139
  // Get cache
140
  $output = get_transient( 'su/generator/settings/' . sanitize_text_field( $_REQUEST['shortcode'] ) );
141
  if ( $output && SU_ENABLE_CACHE ) echo $output;
147
  $skip = ( get_option( 'su_option_skip' ) === 'on' ) ? ' su-generator-skip' : '';
148
  // Prepare actions
149
  $actions = apply_filters( 'su/generator/actions', array(
150
+ 'insert' => '<a href="javascript:void(0);" class="button button-primary button-large su-generator-insert"><i class="fa fa-check"></i> ' . __( 'Insert shortcode', 'shortcodes-ultimate' ) . '</a>',
151
+ 'preview' => '<a href="javascript:void(0);" class="button button-large su-generator-toggle-preview"><i class="fa fa-eye"></i> ' . __( 'Live preview', 'shortcodes-ultimate' ) . '</a>'
152
  ) );
153
  // Shortcode header
154
  $return = '<div id="su-generator-breadcrumbs">';
155
+ $return .= apply_filters( 'su/generator/breadcrumbs', '<a href="javascript:void(0);" class="su-generator-home" title="' . __( 'Click to return to the shortcodes list', 'shortcodes-ultimate' ) . '">' . __( 'All shortcodes', 'shortcodes-ultimate' ) . '</a> &rarr; <span>' . $shortcode['name'] . '</span> <small class="alignright">' . $shortcode['desc'] . '</small><div class="su-generator-clear"></div>' );
156
  $return .= '</div>';
157
  // Shortcode note
158
  if ( isset( $shortcode['note'] ) || isset( $shortcode['example'] ) ) {
159
  $return .= '<div class="su-generator-note"><i class="fa fa-info-circle"></i><div class="su-generator-note-content">';
160
  if ( isset( $shortcode['note'] ) ) $return .= wpautop( $shortcode['note'] );
161
+ if ( isset( $shortcode['example'] ) ) $return .= wpautop( '<a href="' . admin_url( 'admin.php?page=shortcodes-ultimate-examples&example=' . $shortcode['example'] ) . '" target="_blank">' . __( 'Examples of use', 'shortcodes-ultimate' ) . ' &rarr;</a>' );
162
  $return .= '</div></div>';
163
  }
164
  // Shortcode has atts
176
  if ( is_callable( array( 'Su_Generator_Views', $attr_info['type'] ) ) ) $return .= call_user_func( array( 'Su_Generator_Views', $attr_info['type'] ), $attr_name, $attr_info );
177
  elseif ( isset( $attr_info['callback'] ) && is_callable( $attr_info['callback'] ) ) $return .= call_user_func( $attr_info['callback'], $attr_name, $attr_info );
178
  if ( isset( $attr_info['desc'] ) ) $attr_info['desc'] = str_replace( '%su_skins_link%', su_skins_link(), $attr_info['desc'] );
179
+ if ( isset( $attr_info['desc'] ) ) $return .= '<div class="su-generator-attr-desc">' . str_replace( array( '<b%value>', '<b_>' ), '<b class="su-generator-set-value" title="' . __( 'Click to set this value', 'shortcodes-ultimate' ) . '">', $attr_info['desc'] ) . '</div>';
180
  $return .= '</div>';
181
  }
182
  }
186
  else {
187
  // Prepare shortcode content
188
  $shortcode['content'] = ( isset( $shortcode['content'] ) ) ? $shortcode['content'] : '';
189
+ $return .= '<div class="su-generator-attr-container"><h5>' . __( 'Content', 'shortcodes-ultimate' ) . '</h5><textarea name="su-generator-content" id="su-generator-content" rows="5">' . esc_attr( str_replace( array( '%prefix_', '__' ), su_cmpt(), $shortcode['content'] ) ) . '</textarea></div>';
190
  }
191
  $return .= '<div id="su-generator-preview"></div>';
192
  $return .= '<div class="su-generator-actions su-generator-clearfix">' . implode( ' ', array_values( $actions ) ) . '</div>';
204
  self::access();
205
  // Output results
206
  do_action( 'su/generator/preview/before' );
207
+ echo '<h5>' . __( 'Preview', 'shortcodes-ultimate' ) . '</h5>';
208
  // echo '<hr />' . stripslashes( $_POST['shortcode'] ) . '<hr />'; // Uncomment for debug
209
  echo do_shortcode( str_replace( '\"', '"', $_POST['shortcode'] ) );
210
  echo '<div style="clear:both"></div>';
213
  }
214
 
215
  public static function access() {
216
+ if ( !self::access_check() ) wp_die( __( 'Access denied', 'shortcodes-ultimate' ) );
217
  }
218
 
219
  public static function access_check() {
248
  ob_start();
249
  ?>
250
  <div class="su-generator-presets alignright" data-shortcode="<?php echo sanitize_key( $_REQUEST['shortcode'] ); ?>">
251
+ <a href="javascript:void(0);" class="button button-large su-gp-button"><i class="fa fa-bars"></i> <?php _e( 'Presets', 'shortcodes-ultimate' ); ?></a>
252
  <div class="su-gp-popup">
253
  <div class="su-gp-head">
254
+ <a href="javascript:void(0);" class="button button-small button-primary su-gp-new"><?php _e( 'Save current settings as preset', 'shortcodes-ultimate' ); ?></a>
255
  </div>
256
  <div class="su-gp-list">
257
  <?php self::presets_list(); ?>
280
  echo '<span data-id="' . $preset['id'] . '"><em>' . stripslashes( $preset['name'] ) . '</em> <i class="fa fa-times"></i></span>';
281
  }
282
  // Hide default text
283
+ echo sprintf( '<b style="display:none">%s</b>', __( 'Presets not found', 'shortcodes-ultimate' ) );
284
  }
285
  // Presets doesn't found
286
+ else echo sprintf( '<b>%s</b>', __( 'Presets not found', 'shortcodes-ultimate' ) );
287
  }
288
 
289
  public static function ajax_add_preset() {
inc/core/load.php CHANGED
@@ -17,7 +17,7 @@ class Shortcodes_Ultimate {
17
  */
18
  public static function init() {
19
  // Make plugin available for translation
20
- load_plugin_textdomain( 'su', false, dirname( plugin_basename( SU_PLUGIN_FILE ) ) . '/languages/' );
21
  // Setup admin class
22
  $admin = new Sunrise4( array(
23
  'file' => SU_PLUGIN_FILE,
@@ -27,8 +27,8 @@ class Shortcodes_Ultimate {
27
  ) );
28
  // Top-level menu
29
  $admin->add_menu( array(
30
- 'page_title' => __( 'Settings', 'su' ) . ' &lsaquo; ' . __( 'Shortcodes Ultimate', 'su' ),
31
- 'menu_title' => apply_filters( 'su/menu/shortcodes', __( 'Shortcodes', 'su' ) ),
32
  'capability' => 'manage_options',
33
  'slug' => 'shortcodes-ultimate',
34
  'icon_url' => 'dashicons-editor-code',
@@ -36,7 +36,7 @@ class Shortcodes_Ultimate {
36
  'options' => array(
37
  array(
38
  'type' => 'opentab',
39
- 'name' => __( 'About', 'su' )
40
  ),
41
  array(
42
  'type' => 'about',
@@ -48,43 +48,43 @@ class Shortcodes_Ultimate {
48
  ),
49
  array(
50
  'type' => 'opentab',
51
- 'name' => __( 'Settings', 'su' )
52
  ),
53
  array(
54
  'type' => 'checkbox',
55
  'id' => 'custom-formatting',
56
- 'name' => __( 'Custom formatting', 'su' ),
57
- 'desc' => __( 'Disable this option if you have some problems with other plugins or content formatting', 'su' ) . '<br /><a href="http://gndev.info/kb/custom-formatting/" target="_blank">' . __( 'Documentation article', 'su' ) . '</a>',
58
  'default' => 'on',
59
- 'label' => __( 'Enabled', 'su' )
60
  ),
61
  array(
62
  'type' => 'checkbox',
63
  'id' => 'skip',
64
- 'name' => __( 'Skip default values', 'su' ),
65
- 'desc' => __( 'Enable this option and the generator will insert a shortcode without default attribute values that you have not changed. As a result, the generated code will be shorter.', 'su' ),
66
  'default' => 'on',
67
- 'label' => __( 'Enabled', 'su' )
68
  ),
69
  array(
70
  'type' => 'text',
71
  'id' => 'prefix',
72
- 'name' => __( 'Shortcodes prefix', 'su' ),
73
- 'desc' => sprintf( __( 'This prefix will be added to all shortcodes by this plugin. For example, type here %s and you\'ll get shortcodes like %s and %s. Please keep in mind: this option is not affects your already inserted shortcodes and if you\'ll change this value your old shortcodes will be broken', 'su' ), '<code>su_</code>', '<code>[su_button]</code>', '<code>[su_column]</code>' ),
74
  'default' => 'su_'
75
  ),
76
  array(
77
  'type' => 'text',
78
  'id' => 'hotkey',
79
- 'name' => __( 'Insert shortcode Hotkey', 'su' ),
80
- 'desc' => sprintf( '%s<br><a href="https://rawgit.com/jeresig/jquery.hotkeys/master/test-static-01.html" target="_blank">%s</a> | <a href="https://github.com/jeresig/jquery.hotkeys#notes" target="_blank">%s</a>', __( 'Here you can define custom hotkey for the Insert shortcode popup window. Leave this field empty to disable hotkey', 'su' ), __( 'Hotkey examples', 'su' ), __( 'Additional notes', 'su' ) ),
81
  'default' => 'alt+i'
82
  ),
83
  array(
84
  'type' => 'hidden',
85
  'id' => 'skin',
86
- 'name' => __( 'Skin', 'su' ),
87
- 'desc' => __( 'Choose global skin for shortcodes', 'su' ),
88
  'default' => 'default'
89
  ),
90
  array(
@@ -92,7 +92,7 @@ class Shortcodes_Ultimate {
92
  ),
93
  array(
94
  'type' => 'opentab',
95
- 'name' => __( 'Custom CSS', 'su' )
96
  ),
97
  array(
98
  'type' => 'custom_css',
@@ -108,8 +108,8 @@ class Shortcodes_Ultimate {
108
  // Settings submenu
109
  $admin->add_submenu( array(
110
  'parent_slug' => 'shortcodes-ultimate',
111
- 'page_title' => __( 'Settings', 'su' ) . ' &lsaquo; ' . __( 'Shortcodes Ultimate', 'su' ),
112
- 'menu_title' => apply_filters( 'su/menu/settings', __( 'Settings', 'su' ) ),
113
  'capability' => 'manage_options',
114
  'slug' => 'shortcodes-ultimate',
115
  'options' => array()
@@ -117,8 +117,8 @@ class Shortcodes_Ultimate {
117
  // Examples submenu
118
  $admin->add_submenu( array(
119
  'parent_slug' => 'shortcodes-ultimate',
120
- 'page_title' => __( 'Examples', 'su' ) . ' &lsaquo; ' . __( 'Shortcodes Ultimate', 'su' ),
121
- 'menu_title' => apply_filters( 'su/menu/examples', __( 'Examples', 'su' ) ),
122
  'capability' => 'edit_others_posts',
123
  'slug' => 'shortcodes-ultimate-examples',
124
  'options' => array(
@@ -131,8 +131,8 @@ class Shortcodes_Ultimate {
131
  // Cheatsheet submenu
132
  $admin->add_submenu( array(
133
  'parent_slug' => 'shortcodes-ultimate',
134
- 'page_title' => __( 'Cheatsheet', 'su' ) . ' &lsaquo; ' . __( 'Shortcodes Ultimate', 'su' ),
135
- 'menu_title' => apply_filters( 'su/menu/examples', __( 'Cheatsheet', 'su' ) ),
136
  'capability' => 'edit_others_posts',
137
  'slug' => 'shortcodes-ultimate-cheatsheet',
138
  'options' => array(
@@ -145,8 +145,8 @@ class Shortcodes_Ultimate {
145
  // Add-ons submenu
146
  $admin->add_submenu( array(
147
  'parent_slug' => 'shortcodes-ultimate',
148
- 'page_title' => __( 'Add-ons', 'su' ) . ' &lsaquo; ' . __( 'Shortcodes Ultimate', 'su' ),
149
- 'menu_title' => apply_filters( 'su/menu/addons', __( 'Add-ons', 'su' ) ),
150
  'capability' => 'edit_others_posts',
151
  'slug' => 'shortcodes-ultimate-addons',
152
  'options' => array(
@@ -157,9 +157,9 @@ class Shortcodes_Ultimate {
157
  )
158
  ) );
159
  // Translate plugin meta
160
- __( 'Shortcodes Ultimate', 'su' );
161
- __( 'Vladimir Anokhin', 'su' );
162
- __( 'Supercharge your WordPress theme with mega pack of shortcodes', 'su' );
163
  // Add plugin actions links
164
  add_filter( 'plugin_action_links_' . plugin_basename( SU_PLUGIN_FILE ), array( __CLASS__, 'actions_links' ), -10 );
165
  // Add plugin meta links
@@ -225,8 +225,8 @@ class Shortcodes_Ultimate {
225
  * Add plugin actions links
226
  */
227
  public static function actions_links( $links ) {
228
- $links[] = '<a href="' . admin_url( 'admin.php?page=shortcodes-ultimate-examples' ) . '">' . __( 'Examples', 'su' ) . '</a>';
229
- $links[] = '<a href="' . admin_url( 'admin.php?page=shortcodes-ultimate' ) . '#tab-0">' . __( 'Where to start?', 'su' ) . '</a>';
230
  return $links;
231
  }
232
 
@@ -237,9 +237,9 @@ class Shortcodes_Ultimate {
237
  // Check plugin
238
  if ( $file === plugin_basename( SU_PLUGIN_FILE ) ) {
239
  unset( $links[2] );
240
- $links[] = '<a href="http://gndev.info/shortcodes-ultimate/" target="_blank">' . __( 'Project homepage', 'su' ) . '</a>';
241
- $links[] = '<a href="http://wordpress.org/support/plugin/shortcodes-ultimate/" target="_blank">' . __( 'Support forum', 'su' ) . '</a>';
242
- $links[] = '<a href="http://wordpress.org/extend/plugins/shortcodes-ultimate/changelog/" target="_blank">' . __( 'Changelog', 'su' ) . '</a>';
243
  }
244
  return $links;
245
  }
17
  */
18
  public static function init() {
19
  // Make plugin available for translation
20
+ load_plugin_textdomain( 'shortcodes-ultimate', false, dirname( plugin_basename( SU_PLUGIN_FILE ) ) . '/languages/' );
21
  // Setup admin class
22
  $admin = new Sunrise4( array(
23
  'file' => SU_PLUGIN_FILE,
27
  ) );
28
  // Top-level menu
29
  $admin->add_menu( array(
30
+ 'page_title' => __( 'Settings', 'shortcodes-ultimate' ) . ' &lsaquo; ' . __( 'Shortcodes Ultimate', 'shortcodes-ultimate' ),
31
+ 'menu_title' => apply_filters( 'su/menu/shortcodes', __( 'Shortcodes', 'shortcodes-ultimate' ) ),
32
  'capability' => 'manage_options',
33
  'slug' => 'shortcodes-ultimate',
34
  'icon_url' => 'dashicons-editor-code',
36
  'options' => array(
37
  array(
38
  'type' => 'opentab',
39
+ 'name' => __( 'About', 'shortcodes-ultimate' )
40
  ),
41
  array(
42
  'type' => 'about',
48
  ),
49
  array(
50
  'type' => 'opentab',
51
+ 'name' => __( 'Settings', 'shortcodes-ultimate' )
52
  ),
53
  array(
54
  'type' => 'checkbox',
55
  'id' => 'custom-formatting',
56
+ 'name' => __( 'Custom formatting', 'shortcodes-ultimate' ),
57
+ 'desc' => __( 'Disable this option if you have some problems with other plugins or content formatting', 'shortcodes-ultimate' ) . '<br /><a href="http://gndev.info/kb/custom-formatting/" target="_blank">' . __( 'Documentation article', 'shortcodes-ultimate' ) . '</a>',
58
  'default' => 'on',
59
+ 'label' => __( 'Enabled', 'shortcodes-ultimate' )
60
  ),
61
  array(
62
  'type' => 'checkbox',
63
  'id' => 'skip',
64
+ 'name' => __( 'Skip default values', 'shortcodes-ultimate' ),
65
+ 'desc' => __( 'Enable this option and the generator will insert a shortcode without default attribute values that you have not changed. As a result, the generated code will be shorter.', 'shortcodes-ultimate' ),
66
  'default' => 'on',
67
+ 'label' => __( 'Enabled', 'shortcodes-ultimate' )
68
  ),
69
  array(
70
  'type' => 'text',
71
  'id' => 'prefix',
72
+ 'name' => __( 'Shortcodes prefix', 'shortcodes-ultimate' ),
73
+ 'desc' => sprintf( __( 'This prefix will be added to all shortcodes by this plugin. For example, type here %s and you\'ll get shortcodes like %s and %s. Please keep in mind: this option is not affects your already inserted shortcodes and if you\'ll change this value your old shortcodes will be broken', 'shortcodes-ultimate' ), '<code>su_</code>', '<code>[su_button]</code>', '<code>[su_column]</code>' ),
74
  'default' => 'su_'
75
  ),
76
  array(
77
  'type' => 'text',
78
  'id' => 'hotkey',
79
+ 'name' => __( 'Insert shortcode Hotkey', 'shortcodes-ultimate' ),
80
+ 'desc' => sprintf( '%s<br><a href="https://rawgit.com/jeresig/jquery.hotkeys/master/test-static-01.html" target="_blank">%s</a> | <a href="https://github.com/jeresig/jquery.hotkeys#notes" target="_blank">%s</a>', __( 'Here you can define custom hotkey for the Insert shortcode popup window. Leave this field empty to disable hotkey', 'shortcodes-ultimate' ), __( 'Hotkey examples', 'shortcodes-ultimate' ), __( 'Additional notes', 'shortcodes-ultimate' ) ),
81
  'default' => 'alt+i'
82
  ),
83
  array(
84
  'type' => 'hidden',
85
  'id' => 'skin',
86
+ 'name' => __( 'Skin', 'shortcodes-ultimate' ),
87
+ 'desc' => __( 'Choose global skin for shortcodes', 'shortcodes-ultimate' ),
88
  'default' => 'default'
89
  ),
90
  array(
92
  ),
93
  array(
94
  'type' => 'opentab',
95
+ 'name' => __( 'Custom CSS', 'shortcodes-ultimate' )
96
  ),
97
  array(
98
  'type' => 'custom_css',
108
  // Settings submenu
109
  $admin->add_submenu( array(
110
  'parent_slug' => 'shortcodes-ultimate',
111
+ 'page_title' => __( 'Settings', 'shortcodes-ultimate' ) . ' &lsaquo; ' . __( 'Shortcodes Ultimate', 'shortcodes-ultimate' ),
112
+ 'menu_title' => apply_filters( 'su/menu/settings', __( 'Settings', 'shortcodes-ultimate' ) ),
113
  'capability' => 'manage_options',
114
  'slug' => 'shortcodes-ultimate',
115
  'options' => array()
117
  // Examples submenu
118
  $admin->add_submenu( array(
119
  'parent_slug' => 'shortcodes-ultimate',
120
+ 'page_title' => __( 'Examples', 'shortcodes-ultimate' ) . ' &lsaquo; ' . __( 'Shortcodes Ultimate', 'shortcodes-ultimate' ),
121
+ 'menu_title' => apply_filters( 'su/menu/examples', __( 'Examples', 'shortcodes-ultimate' ) ),
122
  'capability' => 'edit_others_posts',
123
  'slug' => 'shortcodes-ultimate-examples',
124
  'options' => array(
131
  // Cheatsheet submenu
132
  $admin->add_submenu( array(
133
  'parent_slug' => 'shortcodes-ultimate',
134
+ 'page_title' => __( 'Cheatsheet', 'shortcodes-ultimate' ) . ' &lsaquo; ' . __( 'Shortcodes Ultimate', 'shortcodes-ultimate' ),
135
+ 'menu_title' => apply_filters( 'su/menu/examples', __( 'Cheatsheet', 'shortcodes-ultimate' ) ),
136
  'capability' => 'edit_others_posts',
137
  'slug' => 'shortcodes-ultimate-cheatsheet',
138
  'options' => array(
145
  // Add-ons submenu
146
  $admin->add_submenu( array(
147
  'parent_slug' => 'shortcodes-ultimate',
148
+ 'page_title' => __( 'Add-ons', 'shortcodes-ultimate' ) . ' &lsaquo; ' . __( 'Shortcodes Ultimate', 'shortcodes-ultimate' ),
149
+ 'menu_title' => apply_filters( 'su/menu/addons', __( 'Add-ons', 'shortcodes-ultimate' ) ),
150
  'capability' => 'edit_others_posts',
151
  'slug' => 'shortcodes-ultimate-addons',
152
  'options' => array(
157
  )
158
  ) );
159
  // Translate plugin meta
160
+ __( 'Shortcodes Ultimate', 'shortcodes-ultimate' );
161
+ __( 'Vladimir Anokhin', 'shortcodes-ultimate' );
162
+ __( 'Supercharge your WordPress theme with mega pack of shortcodes', 'shortcodes-ultimate' );
163
  // Add plugin actions links
164
  add_filter( 'plugin_action_links_' . plugin_basename( SU_PLUGIN_FILE ), array( __CLASS__, 'actions_links' ), -10 );
165
  // Add plugin meta links
225
  * Add plugin actions links
226
  */
227
  public static function actions_links( $links ) {
228
+ $links[] = '<a href="' . admin_url( 'admin.php?page=shortcodes-ultimate-examples' ) . '">' . __( 'Examples', 'shortcodes-ultimate' ) . '</a>';
229
+ $links[] = '<a href="' . admin_url( 'admin.php?page=shortcodes-ultimate' ) . '#tab-0">' . __( 'Where to start?', 'shortcodes-ultimate' ) . '</a>';
230
  return $links;
231
  }
232
 
237
  // Check plugin
238
  if ( $file === plugin_basename( SU_PLUGIN_FILE ) ) {
239
  unset( $links[2] );
240
+ $links[] = '<a href="http://gndev.info/shortcodes-ultimate/" target="_blank">' . __( 'Project homepage', 'shortcodes-ultimate' ) . '</a>';
241
+ $links[] = '<a href="http://wordpress.org/support/plugin/shortcodes-ultimate/" target="_blank">' . __( 'Support forum', 'shortcodes-ultimate' ) . '</a>';
242
+ $links[] = '<a href="http://wordpress.org/extend/plugins/shortcodes-ultimate/changelog/" target="_blank">' . __( 'Changelog', 'shortcodes-ultimate' ) . '</a>';
243
  }
244
  return $links;
245
  }
inc/core/requirements.php CHANGED
@@ -20,7 +20,7 @@ class Su_Requirements {
20
  public static function php() {
21
  $php = phpversion();
22
  load_plugin_textdomain( 'su', false, dirname( plugin_basename( SU_PLUGIN_FILE ) ), '/languages/' );
23
- $msg = sprintf( __( '<h1>Oops! Plugin not activated&hellip;</h1> <p>Shortcodes Ultimate is not fully compatible with your PHP version (%s).<br />Reccomended PHP version &ndash; %s (or higher).</p><a href="%s">&larr; Return to the plugins screen</a> <a href="%s"%s>Continue and activate anyway &rarr;</a>', 'su' ), $php, self::$config['php'], network_admin_url( 'plugins.php?deactivate=true' ), $_SERVER['REQUEST_URI'] . '&continue=true', ' style="float:right;font-weight:bold"' );
24
  // Check Forced activation
25
  if ( isset( $_GET['continue'] ) ) return;
26
  // PHP version is too low
@@ -36,7 +36,7 @@ class Su_Requirements {
36
  public static function wp() {
37
  $wp = get_bloginfo( 'version' );
38
  load_plugin_textdomain( 'su', false, dirname( plugin_basename( SU_PLUGIN_FILE ) ), '/languages/' );
39
- $msg = sprintf( __( '<h1>Oops! Plugin not activated&hellip;</h1> <p>Shortcodes Ultimate is not fully compatible with your version of WordPress (%s).<br />Reccomended WordPress version &ndash; %s (or higher).</p><a href="%s">&larr; Return to the plugins screen</a> <a href="%s"%s>Continue and activate anyway &rarr;</a>', 'su' ), $wp, self::$config['wp'], network_admin_url( 'plugins.php?deactivate=true' ), $_SERVER['REQUEST_URI'] . '&continue=true', ' style="float:right;font-weight:bold"' );
40
  // Check Forced activation
41
  if ( isset( $_GET['continue'] ) ) return;
42
  // PHP version is too low
20
  public static function php() {
21
  $php = phpversion();
22
  load_plugin_textdomain( 'su', false, dirname( plugin_basename( SU_PLUGIN_FILE ) ), '/languages/' );
23
+ $msg = sprintf( __( '<h1>Oops! Plugin not activated&hellip;</h1> <p>Shortcodes Ultimate is not fully compatible with your PHP version (%s).<br />Reccomended PHP version &ndash; %s (or higher).</p><a href="%s">&larr; Return to the plugins screen</a> <a href="%s"%s>Continue and activate anyway &rarr;</a>', 'shortcodes-ultimate' ), $php, self::$config['php'], network_admin_url( 'plugins.php?deactivate=true' ), $_SERVER['REQUEST_URI'] . '&continue=true', ' style="float:right;font-weight:bold"' );
24
  // Check Forced activation
25
  if ( isset( $_GET['continue'] ) ) return;
26
  // PHP version is too low
36
  public static function wp() {
37
  $wp = get_bloginfo( 'version' );
38
  load_plugin_textdomain( 'su', false, dirname( plugin_basename( SU_PLUGIN_FILE ) ), '/languages/' );
39
+ $msg = sprintf( __( '<h1>Oops! Plugin not activated&hellip;</h1> <p>Shortcodes Ultimate is not fully compatible with your version of WordPress (%s).<br />Reccomended WordPress version &ndash; %s (or higher).</p><a href="%s">&larr; Return to the plugins screen</a> <a href="%s"%s>Continue and activate anyway &rarr;</a>', 'shortcodes-ultimate' ), $wp, self::$config['wp'], network_admin_url( 'plugins.php?deactivate=true' ), $_SERVER['REQUEST_URI'] . '&continue=true', ' style="float:right;font-weight:bold"' );
40
  // Check Forced activation
41
  if ( isset( $_GET['continue'] ) ) return;
42
  // PHP version is too low
inc/core/shortcodes.php CHANGED
@@ -50,7 +50,7 @@ class Su_Shortcodes {
50
 
51
  public static function tab( $atts = null, $content = null ) {
52
  $atts = shortcode_atts( array(
53
- 'title' => __( 'Tab title', 'su' ),
54
  'disabled' => 'no',
55
  'anchor' => '',
56
  'url' => '',
@@ -73,7 +73,7 @@ class Su_Shortcodes {
73
 
74
  public static function spoiler( $atts = null, $content = null ) {
75
  $atts = shortcode_atts( array(
76
- 'title' => __( 'Spoiler title', 'su' ),
77
  'open' => 'no',
78
  'style' => 'default',
79
  'icon' => 'plus',
@@ -100,7 +100,7 @@ class Su_Shortcodes {
100
  public static function divider( $atts = null, $content = null ) {
101
  $atts = shortcode_atts( array(
102
  'top' => 'yes',
103
- 'text' => __( 'Go to top', 'su' ),
104
  'style' => 'default',
105
  'divider_color' => '#999999',
106
  'link_color' => '#999999',
@@ -443,7 +443,7 @@ class Su_Shortcodes {
443
 
444
  public static function service( $atts = null, $content = null ) {
445
  $atts = shortcode_atts( array(
446
- 'title' => __( 'Service title', 'su' ),
447
  'icon' => plugins_url( 'assets/images/service.png', SU_PLUGIN_FILE ),
448
  'icon_color' => '#333',
449
  'size' => 32,
@@ -466,7 +466,7 @@ class Su_Shortcodes {
466
 
467
  public static function box( $atts = null, $content = null ) {
468
  $atts = shortcode_atts( array(
469
- 'title' => __( 'This is box title', 'su' ),
470
  'style' => 'default',
471
  'box_color' => '#333333',
472
  'title_color' => '#FFFFFF',
@@ -503,8 +503,8 @@ class Su_Shortcodes {
503
 
504
  public static function expand( $atts = null, $content = null ) {
505
  $atts = shortcode_atts( array(
506
- 'more_text' => __( 'Show more', 'su' ),
507
- 'less_text' => __( 'Show less', 'su' ),
508
  'height' => '100',
509
  'hide_less' => 'no',
510
  'text_color' => '#333333',
@@ -532,7 +532,7 @@ class Su_Shortcodes {
532
  'type' => 'iframe',
533
  'class' => ''
534
  ), $atts, 'lightbox' );
535
- if ( !$atts['src'] ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct source', 'su' ) );
536
  su_query_asset( 'css', 'magnific-popup' );
537
  su_query_asset( 'js', 'jquery' );
538
  su_query_asset( 'js', 'magnific-popup' );
@@ -553,7 +553,7 @@ class Su_Shortcodes {
553
  'class' => ''
554
  ), $atts, 'lightbox_content' );
555
  su_query_asset( 'css', 'su-box-shortcodes' );
556
- if ( !$atts['id'] ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct ID for this block. You should use same ID as in the Content source field (when inserting lightbox shortcode)', 'su' ) );
557
  $return = '<div class="su-lightbox-content ' . su_ecssc( $atts ) . '" id="' . trim( $atts['id'], '#' ) . '" style="display:none;width:' . $atts['width'] . ';margin-top:' . $atts['margin'] . 'px;margin-bottom:' . $atts['margin'] . 'px;padding:' . $atts['padding'] . 'px;background-color:' . $atts['background'] . ';color:' . $atts['color'] . ';box-shadow:' . $atts['shadow'] . ';text-align:' . $atts['text_align'] . '">' . do_shortcode( $content ) . '</div>';
558
  if ( did_action( 'su/generator/preview/before' ) ) return '<div class="su-lightbox-content-preview">' . $return . '</div>';
559
  else return $return;
@@ -567,7 +567,7 @@ class Su_Shortcodes {
567
  'rounded' => 'no',
568
  'size' => 'default',
569
  'title' => '',
570
- 'content' => __( 'Tooltip text', 'su' ),
571
  'behavior' => 'hover',
572
  'close' => 'no',
573
  'class' => ''
@@ -620,11 +620,11 @@ class Su_Shortcodes {
620
  'responsive' => 'yes',
621
  'class' => ''
622
  ), $atts, 'youtube' );
623
- if ( !$atts['url'] ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'su' ) );
624
  $atts['url'] = su_scattr( $atts['url'] );
625
  $id = ( preg_match( '%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $atts['url'], $match ) ) ? $match[1] : false;
626
  // Check that url is specified
627
- if ( !$id ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'su' ) );
628
  // Prepare autoplay
629
  $autoplay = ( $atts['autoplay'] === 'yes' ) ? '?autoplay=1' : '';
630
  // Create player
@@ -659,11 +659,11 @@ class Su_Shortcodes {
659
  'wmode' => '',
660
  'class' => ''
661
  ), $atts, 'youtube_advanced' );
662
- if ( !$atts['url'] ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'su' ) );
663
  $atts['url'] = su_scattr( $atts['url'] );
664
  $id = ( preg_match( '%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $atts['url'], $match ) ) ? $match[1] : false;
665
  // Check that url is specified
666
- if ( !$id ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'su' ) );
667
  // Prepare params
668
  foreach ( array( 'autohide', 'autoplay', 'controls', 'fs', 'loop', 'modestbranding', 'playlist', 'rel', 'showinfo', 'theme', 'wmode' ) as $param ) $params[$param] = str_replace( array( 'no', 'yes', 'alt' ), array( '0', '1', '2' ), $atts[$param] );
669
  // Correct loop
@@ -692,11 +692,11 @@ class Su_Shortcodes {
692
  'responsive' => 'yes',
693
  'class' => ''
694
  ), $atts, 'vimeo' );
695
- if ( !$atts['url'] ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'su' ) );
696
  $atts['url'] = su_scattr( $atts['url'] );
697
  $id = ( preg_match( '~(?:<iframe [^>]*src=")?(?:https?:\/\/(?:[\w]+\.)*vimeo\.com(?:[\/\w]*\/videos?)?\/([0-9]+)[^\s]*)"?(?:[^>]*></iframe>)?(?:<p>.*</p>)?~ix', $atts['url'], $match ) ) ? $match[1] : false;
698
  // Check that url is specified
699
- if ( !$id ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'su' ) );
700
  // Prepare autoplay
701
  $autoplay = ( $atts['autoplay'] === 'yes' ) ? '&amp;autoplay=1' : '';
702
  // Create player
@@ -718,11 +718,11 @@ class Su_Shortcodes {
718
  'responsive' => 'yes',
719
  'class' => ''
720
  ), $atts, 'screenr' );
721
- if ( !$atts['url'] ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'su' ) );
722
  $atts['url'] = su_scattr( $atts['url'] );
723
  $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;
724
  // Check that url is specified
725
- if ( !$id ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'su' ) );
726
  // Create player
727
  $return[] = '<div class="su-screenr su-responsive-media-' . $atts['responsive'] . su_ecssc( $atts ) . '">';
728
  $return[] = '<iframe width="' . $atts['width'] . '" height="' . $atts['height'] . '" src="http://screenr.com/embed/' . $id . '" frameborder="0" allowfullscreen="true"></iframe>';
@@ -750,11 +750,11 @@ class Su_Shortcodes {
750
  'info' => 'yes',
751
  'class' => ''
752
  ), $atts, 'dailymotion' );
753
- if ( !$atts['url'] ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'su' ) );
754
  $atts['url'] = su_scattr( $atts['url'] );
755
  $id = strtok( basename( $atts['url'] ), '_' );
756
  // Check that url is specified
757
- if ( !$id ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'su' ) );
758
  // Prepare params
759
  $params = array();
760
  foreach ( array( 'autoplay', 'background', 'foreground', 'highlight', 'logo', 'quality', 'related', 'info' ) as $param )
@@ -777,14 +777,14 @@ class Su_Shortcodes {
777
  'loop' => 'no',
778
  'class' => ''
779
  ), $atts, 'audio' );
780
- if ( !$atts['url'] ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'su' ) );
781
  $atts['url'] = su_scattr( $atts['url'] );
782
  // Generate unique ID
783
  $id = uniqid( 'su_audio_player_' );
784
  // Prepare width
785
  $width = ( $atts['width'] !== 'auto' ) ? 'max-width:' . $atts['width'] : '';
786
  // Check that url is specified
787
- if ( !$atts['url'] ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'su' ) );
788
  su_query_asset( 'css', 'su-players-shortcodes' );
789
  su_query_asset( 'js', 'jquery' );
790
  su_query_asset( 'js', 'jplayer' );
@@ -806,12 +806,12 @@ class Su_Shortcodes {
806
  'loop' => 'no',
807
  'class' => ''
808
  ), $atts, 'video' );
809
- if ( !$atts['url'] ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'su' ) );
810
  $atts['url'] = su_scattr( $atts['url'] );
811
  // Generate unique ID
812
  $id = uniqid( 'su_video_player_' );
813
  // Check that url is specified
814
- if ( !$atts['url'] ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'su' ) );
815
  // Prepare title
816
  $title = ( $atts['title'] ) ? '<div class="jp-title">' . $atts['title'] . '</div>' : '';
817
  su_query_asset( 'css', 'su-players-shortcodes' );
@@ -852,10 +852,10 @@ class Su_Shortcodes {
852
 
853
  public static function members( $atts = null, $content = null ) {
854
  $atts = shortcode_atts( array(
855
- 'message' => __( 'This content is for registered users only. Please %login%.', 'su' ),
856
  'color' => '#ffcc00',
857
  'style' => null, // 3.x
858
- 'login_text' => __( 'login', 'su' ),
859
  'login_url' => wp_login_url(),
860
  'login' => null, // 3.x
861
  'class' => ''
@@ -945,7 +945,7 @@ class Su_Shortcodes {
945
  }
946
 
947
  public static function menu_fb() {
948
- return __( 'This menu doesn\'t exists, or has no elements', 'su' );
949
  }
950
 
951
  public static function document( $atts = null, $content = null ) {
@@ -1021,7 +1021,7 @@ class Su_Shortcodes {
1021
  // Open slide
1022
  $return .= '<div class="su-slider-slide">';
1023
  // Slide content with link
1024
- if ( $slide['link'] ) $return .= '<a href="' . $slide['link'] . '"' . $target . '><img src="' . $image['url'] . '" alt="' . esc_attr( $slide['title'] ) . '" />' . $title . '</a>';
1025
  // Slide content without link
1026
  else $return .= '<a><img src="' . $image['url'] . '" alt="' . esc_attr( $slide['title'] ) . '" />' . $title . '</a>';
1027
  // Close slide
@@ -1050,7 +1050,7 @@ class Su_Shortcodes {
1050
  su_query_asset( 'js', 'su-galleries-shortcodes' );
1051
  }
1052
  // Slides not found
1053
- else $return = Su_Tools::error( __FUNCTION__, __( 'images not found', 'su' ) );
1054
  return $return;
1055
  }
1056
 
@@ -1103,7 +1103,7 @@ class Su_Shortcodes {
1103
  // Open slide
1104
  $return .= '<div class="su-carousel-slide">';
1105
  // Slide content with link
1106
- if ( $slide['link'] ) $return .= '<a href="' . $slide['link'] . '"' . $target . '><img src="' . $image['url'] . '" alt="' . esc_attr( $slide['title'] ) . '" />' . $title . '</a>';
1107
  // Slide content without link
1108
  else $return .= '<a><img src="' . $image['url'] . '" alt="' . esc_attr( $slide['title'] ) . '" />' . $title . '</a>';
1109
  // Close slide
@@ -1133,7 +1133,7 @@ class Su_Shortcodes {
1133
  su_query_asset( 'js', 'su-galleries-shortcodes' );
1134
  }
1135
  // Slides not found
1136
- else $return = Su_Tools::error( __FUNCTION__, __( 'images not found', 'su' ) );
1137
  return $return;
1138
  }
1139
 
@@ -1168,7 +1168,7 @@ class Su_Shortcodes {
1168
  // Open slide
1169
  $return .= '<div class="su-custom-gallery-slide">';
1170
  // Slide content with link
1171
- if ( $slide['link'] ) $return .= '<a href="' . $slide['link'] . '"' . $atts['target'] . '><img src="' . $image['url'] . '" alt="' . esc_attr( $slide['title'] ) . '" width="' . $atts['width'] . '" height="' . $atts['height'] . '" />' . $title . '</a>';
1172
  // Slide content without link
1173
  else $return .= '<a><img src="' . $image['url'] . '" alt="' . esc_attr( $slide['title'] ) . '" width="' . $atts['width'] . '" height="' . $atts['height'] . '" />' . $title . '</a>';
1174
  // Close slide
@@ -1188,7 +1188,7 @@ class Su_Shortcodes {
1188
  su_query_asset( 'css', 'su-galleries-shortcodes' );
1189
  }
1190
  // Slides not found
1191
- else $return = Su_Tools::error( __FUNCTION__, __( 'images not found', 'su' ) );
1192
  return $return;
1193
  }
1194
 
@@ -1324,7 +1324,7 @@ class Su_Shortcodes {
1324
  // Search for template in plugin directory
1325
  elseif ( path_join( dirname( SU_PLUGIN_FILE ), $atts['template'] ) ) load_template( path_join( dirname( SU_PLUGIN_FILE ), $atts['template'] ), false );
1326
  // Template not found
1327
- else echo Su_Tools::error( __FUNCTION__, __( 'template not found', 'su' ) );
1328
  $output = ob_get_contents();
1329
  ob_end_clean();
1330
  // Return original posts
@@ -1362,7 +1362,7 @@ class Su_Shortcodes {
1362
  ), $atts, 'dummy_image' );
1363
  $url = 'http://lorempixel.com/' . $atts['width'] . '/' . $atts['height'] . '/';
1364
  if ( $atts['theme'] !== 'any' ) $url .= $atts['theme'] . '/' . rand( 0, 10 ) . '/';
1365
- return '<img src="' . $url . '" alt="' . __( 'Dummy image', 'su' ) . '" width="' . $atts['width'] . '" height="' . $atts['height'] . '" class="su-dummy-image' . su_ecssc( $atts ) . '" />';
1366
  }
1367
 
1368
  public static function animate( $atts = null, $content = null ) {
@@ -1395,9 +1395,9 @@ class Su_Shortcodes {
1395
  // Define current post ID
1396
  if ( !$atts['post_id'] ) $atts['post_id'] = get_the_ID();
1397
  // Check post ID
1398
- if ( !is_numeric( $atts['post_id'] ) || $atts['post_id'] < 1 ) return sprintf( '<p class="su-error">Meta: %s</p>', __( 'post ID is incorrect', 'su' ) );
1399
  // Check key name
1400
- if ( !$atts['key'] ) return sprintf( '<p class="su-error">Meta: %s</p>', __( 'please specify meta key name', 'su' ) );
1401
  // Get the meta
1402
  $meta = get_post_meta( $atts['post_id'], $atts['key'], true );
1403
  // Set default value if meta is empty
@@ -1418,11 +1418,11 @@ class Su_Shortcodes {
1418
  'filter' => ''
1419
  ), $atts, 'user' );
1420
  // Check for password requests
1421
- if ( $atts['field'] === 'user_pass' ) return sprintf( '<p class="su-error">User: %s</p>', __( 'password field is not allowed', 'su' ) );
1422
  // Define current user ID
1423
  if ( !$atts['user_id'] ) $atts['user_id'] = get_current_user_id();
1424
  // Check user ID
1425
- if ( !is_numeric( $atts['user_id'] ) || $atts['user_id'] < 1 ) return sprintf( '<p class="su-error">User: %s</p>', __( 'user ID is incorrect', 'su' ) );
1426
  // Get user data
1427
  $user = get_user_by( 'id', $atts['user_id'] );
1428
  // Get user data if user was found
@@ -1445,7 +1445,7 @@ class Su_Shortcodes {
1445
  // Define current post ID
1446
  if ( !$atts['post_id'] ) $atts['post_id'] = get_the_ID();
1447
  // Check post ID
1448
- if ( !is_numeric( $atts['post_id'] ) || $atts['post_id'] < 1 ) return sprintf( '<p class="su-error">Post: %s</p>', __( 'post ID is incorrect', 'su' ) );
1449
  // Get the post
1450
  $post = get_post( $atts['post_id'] );
1451
  // Set default value if meta is empty
@@ -1467,7 +1467,7 @@ class Su_Shortcodes {
1467
  // // Define current post ID
1468
  // if ( !$atts['post_id'] ) $atts['post_id'] = get_the_ID();
1469
  // // Check post ID
1470
- // if ( !is_numeric( $atts['post_id'] ) || $atts['post_id'] < 1 ) return sprintf( '<p class="su-error">Post terms: %s</p>', __( 'post ID is incorrect', 'su' ) );
1471
  // }
1472
 
1473
  public static function template( $atts = null, $content = null ) {
@@ -1475,7 +1475,7 @@ class Su_Shortcodes {
1475
  'name' => ''
1476
  ), $atts, 'template' );
1477
  // Check template name
1478
- if ( !$atts['name'] ) return sprintf( '<p class="su-error">Template: %s</p>', __( 'please specify template name', 'su' ) );
1479
  // Get template output
1480
  ob_start();
1481
  get_template_part( str_replace( '.php', '', $atts['name'] ) );
@@ -1499,7 +1499,7 @@ class Su_Shortcodes {
1499
  'class' => ''
1500
  ), $atts, 'qrcode' );
1501
  // Check the data
1502
- if ( !$atts['data'] ) return 'QR code: ' . __( 'please specify the data', 'su' );
1503
  // Prepare link
1504
  $href = ( $atts['link'] ) ? ' href="' . $atts['link'] . '"' : '';
1505
  // Prepare clickable class
@@ -1530,7 +1530,7 @@ class Su_Shortcodes {
1530
  // Loop time ranges
1531
  foreach( explode( ',', $atts['time'] ) as $range ) {
1532
  // Check for range symbol
1533
- if ( strpos( $range, '-' ) === false ) return Su_Tools::error( __FUNCTION__, sprintf( __( 'Incorrect time range (%s). Please use - (minus) symbol to specify time range. Example: 14:00 - 18:00', 'su' ), $range ) );
1534
  // Split begin/end time
1535
  $time = explode( '-', $range );
1536
  // Add minutes
50
 
51
  public static function tab( $atts = null, $content = null ) {
52
  $atts = shortcode_atts( array(
53
+ 'title' => __( 'Tab title', 'shortcodes-ultimate' ),
54
  'disabled' => 'no',
55
  'anchor' => '',
56
  'url' => '',
73
 
74
  public static function spoiler( $atts = null, $content = null ) {
75
  $atts = shortcode_atts( array(
76
+ 'title' => __( 'Spoiler title', 'shortcodes-ultimate' ),
77
  'open' => 'no',
78
  'style' => 'default',
79
  'icon' => 'plus',
100
  public static function divider( $atts = null, $content = null ) {
101
  $atts = shortcode_atts( array(
102
  'top' => 'yes',
103
+ 'text' => __( 'Go to top', 'shortcodes-ultimate' ),
104
  'style' => 'default',
105
  'divider_color' => '#999999',
106
  'link_color' => '#999999',
443
 
444
  public static function service( $atts = null, $content = null ) {
445
  $atts = shortcode_atts( array(
446
+ 'title' => __( 'Service title', 'shortcodes-ultimate' ),
447
  'icon' => plugins_url( 'assets/images/service.png', SU_PLUGIN_FILE ),
448
  'icon_color' => '#333',
449
  'size' => 32,
466
 
467
  public static function box( $atts = null, $content = null ) {
468
  $atts = shortcode_atts( array(
469
+ 'title' => __( 'This is box title', 'shortcodes-ultimate' ),
470
  'style' => 'default',
471
  'box_color' => '#333333',
472
  'title_color' => '#FFFFFF',
503
 
504
  public static function expand( $atts = null, $content = null ) {
505
  $atts = shortcode_atts( array(
506
+ 'more_text' => __( 'Show more', 'shortcodes-ultimate' ),
507
+ 'less_text' => __( 'Show less', 'shortcodes-ultimate' ),
508
  'height' => '100',
509
  'hide_less' => 'no',
510
  'text_color' => '#333333',
532
  'type' => 'iframe',
533
  'class' => ''
534
  ), $atts, 'lightbox' );
535
+ if ( !$atts['src'] ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct source', 'shortcodes-ultimate' ) );
536
  su_query_asset( 'css', 'magnific-popup' );
537
  su_query_asset( 'js', 'jquery' );
538
  su_query_asset( 'js', 'magnific-popup' );
553
  'class' => ''
554
  ), $atts, 'lightbox_content' );
555
  su_query_asset( 'css', 'su-box-shortcodes' );
556
+ if ( !$atts['id'] ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct ID for this block. You should use same ID as in the Content source field (when inserting lightbox shortcode)', 'shortcodes-ultimate' ) );
557
  $return = '<div class="su-lightbox-content ' . su_ecssc( $atts ) . '" id="' . trim( $atts['id'], '#' ) . '" style="display:none;width:' . $atts['width'] . ';margin-top:' . $atts['margin'] . 'px;margin-bottom:' . $atts['margin'] . 'px;padding:' . $atts['padding'] . 'px;background-color:' . $atts['background'] . ';color:' . $atts['color'] . ';box-shadow:' . $atts['shadow'] . ';text-align:' . $atts['text_align'] . '">' . do_shortcode( $content ) . '</div>';
558
  if ( did_action( 'su/generator/preview/before' ) ) return '<div class="su-lightbox-content-preview">' . $return . '</div>';
559
  else return $return;
567
  'rounded' => 'no',
568
  'size' => 'default',
569
  'title' => '',
570
+ 'content' => __( 'Tooltip text', 'shortcodes-ultimate' ),
571
  'behavior' => 'hover',
572
  'close' => 'no',
573
  'class' => ''
620
  'responsive' => 'yes',
621
  'class' => ''
622
  ), $atts, 'youtube' );
623
+ if ( !$atts['url'] ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'shortcodes-ultimate' ) );
624
  $atts['url'] = su_scattr( $atts['url'] );
625
  $id = ( preg_match( '%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $atts['url'], $match ) ) ? $match[1] : false;
626
  // Check that url is specified
627
+ if ( !$id ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'shortcodes-ultimate' ) );
628
  // Prepare autoplay
629
  $autoplay = ( $atts['autoplay'] === 'yes' ) ? '?autoplay=1' : '';
630
  // Create player
659
  'wmode' => '',
660
  'class' => ''
661
  ), $atts, 'youtube_advanced' );
662
+ if ( !$atts['url'] ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'shortcodes-ultimate' ) );
663
  $atts['url'] = su_scattr( $atts['url'] );
664
  $id = ( preg_match( '%(?:youtube(?:-nocookie)?\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $atts['url'], $match ) ) ? $match[1] : false;
665
  // Check that url is specified
666
+ if ( !$id ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'shortcodes-ultimate' ) );
667
  // Prepare params
668
  foreach ( array( 'autohide', 'autoplay', 'controls', 'fs', 'loop', 'modestbranding', 'playlist', 'rel', 'showinfo', 'theme', 'wmode' ) as $param ) $params[$param] = str_replace( array( 'no', 'yes', 'alt' ), array( '0', '1', '2' ), $atts[$param] );
669
  // Correct loop
692
  'responsive' => 'yes',
693
  'class' => ''
694
  ), $atts, 'vimeo' );
695
+ if ( !$atts['url'] ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'shortcodes-ultimate' ) );
696
  $atts['url'] = su_scattr( $atts['url'] );
697
  $id = ( preg_match( '~(?:<iframe [^>]*src=")?(?:https?:\/\/(?:[\w]+\.)*vimeo\.com(?:[\/\w]*\/videos?)?\/([0-9]+)[^\s]*)"?(?:[^>]*></iframe>)?(?:<p>.*</p>)?~ix', $atts['url'], $match ) ) ? $match[1] : false;
698
  // Check that url is specified
699
+ if ( !$id ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'shortcodes-ultimate' ) );
700
  // Prepare autoplay
701
  $autoplay = ( $atts['autoplay'] === 'yes' ) ? '&amp;autoplay=1' : '';
702
  // Create player
718
  'responsive' => 'yes',
719
  'class' => ''
720
  ), $atts, 'screenr' );
721
+ if ( !$atts['url'] ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'shortcodes-ultimate' ) );
722
  $atts['url'] = su_scattr( $atts['url'] );
723
  $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;
724
  // Check that url is specified
725
+ if ( !$id ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'shortcodes-ultimate' ) );
726
  // Create player
727
  $return[] = '<div class="su-screenr su-responsive-media-' . $atts['responsive'] . su_ecssc( $atts ) . '">';
728
  $return[] = '<iframe width="' . $atts['width'] . '" height="' . $atts['height'] . '" src="http://screenr.com/embed/' . $id . '" frameborder="0" allowfullscreen="true"></iframe>';
750
  'info' => 'yes',
751
  'class' => ''
752
  ), $atts, 'dailymotion' );
753
+ if ( !$atts['url'] ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'shortcodes-ultimate' ) );
754
  $atts['url'] = su_scattr( $atts['url'] );
755
  $id = strtok( basename( $atts['url'] ), '_' );
756
  // Check that url is specified
757
+ if ( !$id ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'shortcodes-ultimate' ) );
758
  // Prepare params
759
  $params = array();
760
  foreach ( array( 'autoplay', 'background', 'foreground', 'highlight', 'logo', 'quality', 'related', 'info' ) as $param )
777
  'loop' => 'no',
778
  'class' => ''
779
  ), $atts, 'audio' );
780
+ if ( !$atts['url'] ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'shortcodes-ultimate' ) );
781
  $atts['url'] = su_scattr( $atts['url'] );
782
  // Generate unique ID
783
  $id = uniqid( 'su_audio_player_' );
784
  // Prepare width
785
  $width = ( $atts['width'] !== 'auto' ) ? 'max-width:' . $atts['width'] : '';
786
  // Check that url is specified
787
+ if ( !$atts['url'] ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'shortcodes-ultimate' ) );
788
  su_query_asset( 'css', 'su-players-shortcodes' );
789
  su_query_asset( 'js', 'jquery' );
790
  su_query_asset( 'js', 'jplayer' );
806
  'loop' => 'no',
807
  'class' => ''
808
  ), $atts, 'video' );
809
+ if ( !$atts['url'] ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'shortcodes-ultimate' ) );
810
  $atts['url'] = su_scattr( $atts['url'] );
811
  // Generate unique ID
812
  $id = uniqid( 'su_video_player_' );
813
  // Check that url is specified
814
+ if ( !$atts['url'] ) return Su_Tools::error( __FUNCTION__, __( 'please specify correct url', 'shortcodes-ultimate' ) );
815
  // Prepare title
816
  $title = ( $atts['title'] ) ? '<div class="jp-title">' . $atts['title'] . '</div>' : '';
817
  su_query_asset( 'css', 'su-players-shortcodes' );
852
 
853
  public static function members( $atts = null, $content = null ) {
854
  $atts = shortcode_atts( array(
855
+ 'message' => __( 'This content is for registered users only. Please %login%.', 'shortcodes-ultimate' ),
856
  'color' => '#ffcc00',
857
  'style' => null, // 3.x
858
+ 'login_text' => __( 'login', 'shortcodes-ultimate' ),
859
  'login_url' => wp_login_url(),
860
  'login' => null, // 3.x
861
  'class' => ''
945
  }
946
 
947
  public static function menu_fb() {
948
+ return __( 'This menu doesn\'t exists, or has no elements', 'shortcodes-ultimate' );
949
  }
950
 
951
  public static function document( $atts = null, $content = null ) {
1021
  // Open slide
1022
  $return .= '<div class="su-slider-slide">';
1023
  // Slide content with link
1024
+ 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>';
1025
  // Slide content without link
1026
  else $return .= '<a><img src="' . $image['url'] . '" alt="' . esc_attr( $slide['title'] ) . '" />' . $title . '</a>';
1027
  // Close slide
1050
  su_query_asset( 'js', 'su-galleries-shortcodes' );
1051
  }
1052
  // Slides not found
1053
+ else $return = Su_Tools::error( __FUNCTION__, __( 'images not found', 'shortcodes-ultimate' ) );
1054
  return $return;
1055
  }
1056
 
1103
  // Open slide
1104
  $return .= '<div class="su-carousel-slide">';
1105
  // Slide content with link
1106
+ 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>';
1107
  // Slide content without link
1108
  else $return .= '<a><img src="' . $image['url'] . '" alt="' . esc_attr( $slide['title'] ) . '" />' . $title . '</a>';
1109
  // Close slide
1133
  su_query_asset( 'js', 'su-galleries-shortcodes' );
1134
  }
1135
  // Slides not found
1136
+ else $return = Su_Tools::error( __FUNCTION__, __( 'images not found', 'shortcodes-ultimate' ) );
1137
  return $return;
1138
  }
1139
 
1168
  // Open slide
1169
  $return .= '<div class="su-custom-gallery-slide">';
1170
  // Slide content with link
1171
+ if ( $slide['link'] ) $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>';
1172
  // Slide content without link
1173
  else $return .= '<a><img src="' . $image['url'] . '" alt="' . esc_attr( $slide['title'] ) . '" width="' . $atts['width'] . '" height="' . $atts['height'] . '" />' . $title . '</a>';
1174
  // Close slide
1188
  su_query_asset( 'css', 'su-galleries-shortcodes' );
1189
  }
1190
  // Slides not found
1191
+ else $return = Su_Tools::error( __FUNCTION__, __( 'images not found', 'shortcodes-ultimate' ) );
1192
  return $return;
1193
  }
1194
 
1324
  // Search for template in plugin directory
1325
  elseif ( path_join( dirname( SU_PLUGIN_FILE ), $atts['template'] ) ) load_template( path_join( dirname( SU_PLUGIN_FILE ), $atts['template'] ), false );
1326
  // Template not found
1327
+ else echo Su_Tools::error( __FUNCTION__, __( 'template not found', 'shortcodes-ultimate' ) );
1328
  $output = ob_get_contents();
1329
  ob_end_clean();
1330
  // Return original posts
1362
  ), $atts, 'dummy_image' );
1363
  $url = 'http://lorempixel.com/' . $atts['width'] . '/' . $atts['height'] . '/';
1364
  if ( $atts['theme'] !== 'any' ) $url .= $atts['theme'] . '/' . rand( 0, 10 ) . '/';
1365
+ return '<img src="' . $url . '" alt="' . __( 'Dummy image', 'shortcodes-ultimate' ) . '" width="' . $atts['width'] . '" height="' . $atts['height'] . '" class="su-dummy-image' . su_ecssc( $atts ) . '" />';
1366
  }
1367
 
1368
  public static function animate( $atts = null, $content = null ) {
1395
  // Define current post ID
1396
  if ( !$atts['post_id'] ) $atts['post_id'] = get_the_ID();
1397
  // Check post ID
1398
+ 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' ) );
1399
  // Check key name
1400
+ if ( !$atts['key'] ) return sprintf( '<p class="su-error">Meta: %s</p>', __( 'please specify meta key name', 'shortcodes-ultimate' ) );
1401
  // Get the meta
1402
  $meta = get_post_meta( $atts['post_id'], $atts['key'], true );
1403
  // Set default value if meta is empty
1418
  'filter' => ''
1419
  ), $atts, 'user' );
1420
  // Check for password requests
1421
+ if ( $atts['field'] === 'user_pass' ) return sprintf( '<p class="su-error">User: %s</p>', __( 'password field is not allowed', 'shortcodes-ultimate' ) );
1422
  // Define current user ID
1423
  if ( !$atts['user_id'] ) $atts['user_id'] = get_current_user_id();
1424
  // Check user ID
1425
+ if ( !is_numeric( $atts['user_id'] ) || $atts['user_id'] < 1 ) return sprintf( '<p class="su-error">User: %s</p>', __( 'user ID is incorrect', 'shortcodes-ultimate' ) );
1426
  // Get user data
1427
  $user = get_user_by( 'id', $atts['user_id'] );
1428
  // Get user data if user was found
1445
  // Define current post ID
1446
  if ( !$atts['post_id'] ) $atts['post_id'] = get_the_ID();
1447
  // Check post ID
1448
+ if ( !is_numeric( $atts['post_id'] ) || $atts['post_id'] < 1 ) return sprintf( '<p class="su-error">Post: %s</p>', __( 'post ID is incorrect', 'shortcodes-ultimate' ) );
1449
  // Get the post
1450
  $post = get_post( $atts['post_id'] );
1451
  // Set default value if meta is empty
1467
  // // Define current post ID
1468
  // if ( !$atts['post_id'] ) $atts['post_id'] = get_the_ID();
1469
  // // Check post ID
1470
+ // if ( !is_numeric( $atts['post_id'] ) || $atts['post_id'] < 1 ) return sprintf( '<p class="su-error">Post terms: %s</p>', __( 'post ID is incorrect', 'shortcodes-ultimate' ) );
1471
  // }
1472
 
1473
  public static function template( $atts = null, $content = null ) {
1475
  'name' => ''
1476
  ), $atts, 'template' );
1477
  // Check template name
1478
+ if ( !$atts['name'] ) return sprintf( '<p class="su-error">Template: %s</p>', __( 'please specify template name', 'shortcodes-ultimate' ) );
1479
  // Get template output
1480
  ob_start();
1481
  get_template_part( str_replace( '.php', '', $atts['name'] ) );
1499
  'class' => ''
1500
  ), $atts, 'qrcode' );
1501
  // Check the data
1502
+ if ( !$atts['data'] ) return 'QR code: ' . __( 'please specify the data', 'shortcodes-ultimate' );
1503
  // Prepare link
1504
  $href = ( $atts['link'] ) ? ' href="' . $atts['link'] . '"' : '';
1505
  // Prepare clickable class
1530
  // Loop time ranges
1531
  foreach( explode( ',', $atts['time'] ) as $range ) {
1532
  // Check for range symbol
1533
+ if ( strpos( $range, '-' ) === false ) return Su_Tools::error( __FUNCTION__, sprintf( __( 'Incorrect time range (%s). Please use - (minus) symbol to specify time range. Example: 14:00 - 18:00', 'shortcodes-ultimate' ), $range ) );
1534
  // Split begin/end time
1535
  $time = explode( '-', $range );
1536
  // Add minutes
inc/core/tools.php CHANGED
@@ -255,8 +255,8 @@ function su_addon_active( $addons ) {
255
  }
256
 
257
  function su_skins_link() {
258
- if ( su_addon_active( 'skins' ) ) return sprintf( '<br><strong>%s</strong><br><strong>%s</strong>', __( 'Additional skins successfully installed', 'su' ), __( 'Open dropdown to choose one of new styles', 'su' ) );
259
- else return sprintf( '<br><a href="http://gndev.info/sus" target="_blank">%s &rarr;</a>', __( 'Get more styles', 'su' ) );
260
  }
261
 
262
  /**
@@ -771,7 +771,7 @@ class Su_Tools {
771
  // Prepare data
772
  $code = file_get_contents( sanitize_text_field( $_REQUEST['code'] ) );
773
  // Check for code
774
- if ( !$code ) die( '<p class="su-examples-error">' . __( 'Example code does not found, please check it later', 'su' ) . '</p>' );
775
  // Clean-up the code
776
  $code = str_replace( array( "\t", '%su_' ), array( ' ', su_cmpt() ), $code );
777
  // Split code
@@ -787,7 +787,7 @@ class Su_Tools {
787
  $rows = ( $rows > 20 ) ? '20' : (string) ( $rows + 1 );
788
  echo wpautop( do_shortcode( $chunk ) );
789
  echo '<div style="clear:both"></div>';
790
- echo '<div class="su-examples-code"><span class="su-examples-get-code button"><i class="fa fa-code"></i>&nbsp;&nbsp;' . __( 'Get the code', 'su' ) . '</span><textarea rows="' . $rows . '">' . esc_textarea( $chunk ) . '</textarea></div>';
791
  }
792
  do_action( 'su/examples/preview/after' );
793
  $output = ob_get_contents();
@@ -852,7 +852,7 @@ class Su_Tools {
852
  }
853
 
854
  public static function access() {
855
- if ( !self::access_check() ) wp_die( __( 'Access denied', 'su' ) );
856
  }
857
 
858
  public static function access_check() {
@@ -861,10 +861,10 @@ class Su_Tools {
861
 
862
  public static function slide_link_input( $form_fields, $post ) {
863
  $form_fields['su_slide_link'] = array(
864
- 'label' => __( 'Slide link', 'su' ),
865
  'input' => 'text',
866
  'value' => get_post_meta( $post->ID, 'su_slide_link', true ),
867
- 'helps' => sprintf( '<strong>%s</strong><br>%s', __( 'Shortcodes Ultimate', 'su' ), __( 'Use this field to add custom links to slides used with Slider, Carousel and Custom Gallery shortcodes', 'su' ) )
868
  );
869
  return $form_fields;
870
  }
255
  }
256
 
257
  function su_skins_link() {
258
+ if ( su_addon_active( 'skins' ) ) return sprintf( '<br><strong>%s</strong><br><strong>%s</strong>', __( 'Additional skins successfully installed', 'shortcodes-ultimate' ), __( 'Open dropdown to choose one of new styles', 'shortcodes-ultimate' ) );
259
+ else return sprintf( '<br><a href="http://gndev.info/sus" target="_blank">%s &rarr;</a>', __( 'Get more styles', 'shortcodes-ultimate' ) );
260
  }
261
 
262
  /**
771
  // Prepare data
772
  $code = file_get_contents( sanitize_text_field( $_REQUEST['code'] ) );
773
  // Check for code
774
+ if ( !$code ) die( '<p class="su-examples-error">' . __( 'Example code does not found, please check it later', 'shortcodes-ultimate' ) . '</p>' );
775
  // Clean-up the code
776
  $code = str_replace( array( "\t", '%su_' ), array( ' ', su_cmpt() ), $code );
777
  // Split code
787
  $rows = ( $rows > 20 ) ? '20' : (string) ( $rows + 1 );
788
  echo wpautop( do_shortcode( $chunk ) );
789
  echo '<div style="clear:both"></div>';
790
+ echo '<div class="su-examples-code"><span class="su-examples-get-code button"><i class="fa fa-code"></i>&nbsp;&nbsp;' . __( 'Get the code', 'shortcodes-ultimate' ) . '</span><textarea rows="' . $rows . '">' . esc_textarea( $chunk ) . '</textarea></div>';
791
  }
792
  do_action( 'su/examples/preview/after' );
793
  $output = ob_get_contents();
852
  }
853
 
854
  public static function access() {
855
+ if ( !self::access_check() ) wp_die( __( 'Access denied', 'shortcodes-ultimate' ) );
856
  }
857
 
858
  public static function access_check() {
861
 
862
  public static function slide_link_input( $form_fields, $post ) {
863
  $form_fields['su_slide_link'] = array(
864
+ 'label' => __( 'Slide link', 'shortcodes-ultimate' ),
865
  'input' => 'text',
866
  'value' => get_post_meta( $post->ID, 'su_slide_link', true ),
867
+ 'helps' => sprintf( '<strong>%s</strong><br>%s', __( 'Shortcodes Ultimate', 'shortcodes-ultimate' ), __( 'Use this field to add custom links to slides used with Slider, Carousel and Custom Gallery shortcodes', 'shortcodes-ultimate' ) )
868
  );
869
  return $form_fields;
870
  }
inc/core/vote.php CHANGED
@@ -39,15 +39,15 @@ class Su_Vote {
39
  ?>
40
  <div class="su-vote" style="display:none">
41
  <div class="su-vote-wrap">
42
- <div class="su-vote-gravatar"><a href="http://profiles.wordpress.org/gn_themes" target="_blank"><img src="http://www.gravatar.com/avatar/54fda46c150e45d18d105b9185017aea.png" alt="<?php _e( 'Vladimir Anokhin', 'su' ); ?>" width="50" height="50"></a></div>
43
  <div class="su-vote-message">
44
- <p><?php _e( 'Hello, my name is Vladimir Anokhin, and I am developer of plugin <b>Shortcodes Ultimate</b>.<br>If you like this plugin, please write a few words about it at the wordpress.org or twitter. It will help other people find this useful plugin more quickly.<br><b>Thank you!</b>', 'su' ); ?></p>
45
  <p>
46
- <a href="<?php echo admin_url( 'admin-ajax.php' ); ?>?action=su_vote&amp;vote=yes" class="su-vote-action button button-small button-primary" data-action="http://wordpress.org/support/view/plugin-reviews/shortcodes-ultimate?rate=5#postform"><?php _e( 'Rate plugin', 'su' ); ?></a>
47
- <a href="<?php echo admin_url( 'admin-ajax.php' ); ?>?action=su_vote&amp;vote=tweet" class="su-vote-action button button-small" data-action="http://twitter.com/share?url=http://bit.ly/1blZb7u&amp;text=<?php echo urlencode( __( 'Shortcodes Ultimate - must have WordPress plugin #shortcodesultimate', 'su' ) ); ?>"><?php _e( 'Tweet', 'su' ); ?></a>
48
- <a href="<?php echo admin_url( 'admin-ajax.php' ); ?>?action=su_vote&amp;vote=no" class="su-vote-action button button-small"><?php _e( 'No, thanks', 'su' ); ?></a>
49
- <span><?php _e( 'or', 'su' ); ?></span>
50
- <a href="<?php echo admin_url( 'admin-ajax.php' ); ?>?action=su_vote&amp;vote=later" class="su-vote-action button button-small"><?php _e( 'Remind me later', 'su' ); ?></a>
51
  </p>
52
  </div>
53
  <div class="su-vote-clear"></div>
39
  ?>
40
  <div class="su-vote" style="display:none">
41
  <div class="su-vote-wrap">
42
+ <div class="su-vote-gravatar"><a href="http://profiles.wordpress.org/gn_themes" target="_blank"><img src="http://www.gravatar.com/avatar/54fda46c150e45d18d105b9185017aea.png" alt="<?php _e( 'Vladimir Anokhin', 'shortcodes-ultimate' ); ?>" width="50" height="50"></a></div>
43
  <div class="su-vote-message">
44
+ <p><?php _e( 'Hello, my name is Vladimir Anokhin, and I am developer of plugin <b>Shortcodes Ultimate</b>.<br>If you like this plugin, please write a few words about it at the wordpress.org or twitter. It will help other people find this useful plugin more quickly.<br><b>Thank you!</b>', 'shortcodes-ultimate' ); ?></p>
45
  <p>
46
+ <a href="<?php echo admin_url( 'admin-ajax.php' ); ?>?action=su_vote&amp;vote=yes" class="su-vote-action button button-small button-primary" data-action="http://wordpress.org/support/view/plugin-reviews/shortcodes-ultimate?rate=5#postform"><?php _e( 'Rate plugin', 'shortcodes-ultimate' ); ?></a>
47
+ <a href="<?php echo admin_url( 'admin-ajax.php' ); ?>?action=su_vote&amp;vote=tweet" class="su-vote-action button button-small" data-action="http://twitter.com/share?url=http://bit.ly/1blZb7u&amp;text=<?php echo urlencode( __( 'Shortcodes Ultimate - must have WordPress plugin #shortcodesultimate', 'shortcodes-ultimate' ) ); ?>"><?php _e( 'Tweet', 'shortcodes-ultimate' ); ?></a>
48
+ <a href="<?php echo admin_url( 'admin-ajax.php' ); ?>?action=su_vote&amp;vote=no" class="su-vote-action button button-small"><?php _e( 'No, thanks', 'shortcodes-ultimate' ); ?></a>
49
+ <span><?php _e( 'or', 'shortcodes-ultimate' ); ?></span>
50
+ <a href="<?php echo admin_url( 'admin-ajax.php' ); ?>?action=su_vote&amp;vote=later" class="su-vote-action button button-small"><?php _e( 'Remind me later', 'shortcodes-ultimate' ); ?></a>
51
  </p>
52
  </div>
53
  <div class="su-vote-clear"></div>
inc/core/widget.php CHANGED
@@ -4,14 +4,14 @@ class Su_Widget extends WP_Widget {
4
  function __construct() {
5
  $widget_ops = array(
6
  'classname' => 'shortcodes-ultimate',
7
- 'description' => __( 'Special Shortcodes Ultimate widget', 'su' )
8
  );
9
  $control_ops = array(
10
  'width' => 300,
11
  'height' => 350,
12
  'id_base' => 'shortcodes-ultimate'
13
  );
14
- $this->WP_Widget( 'shortcodes-ultimate', __( 'Shortcodes Ultimate', 'su' ), $widget_ops, $control_ops );
15
  }
16
 
17
  public static function register() {
@@ -37,13 +37,13 @@ class Su_Widget extends WP_Widget {
37
 
38
  function form( $instance ) {
39
  $defaults = array(
40
- 'title' => __( 'Shortcodes Ultimate', 'su' ),
41
  'content' => ''
42
  );
43
  $instance = wp_parse_args( ( array ) $instance, $defaults );
44
  ?>
45
  <p>
46
- <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', 'su' ); ?></label>
47
  <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" />
48
  </p>
49
  <p>
4
  function __construct() {
5
  $widget_ops = array(
6
  'classname' => 'shortcodes-ultimate',
7
+ 'description' => __( 'Shortcodes Ultimate widget', 'shortcodes-ultimate' )
8
  );
9
  $control_ops = array(
10
  'width' => 300,
11
  'height' => 350,
12
  'id_base' => 'shortcodes-ultimate'
13
  );
14
+ parent::__construct( 'shortcodes-ultimate', __( 'Shortcodes Ultimate', 'shortcodes-ultimate' ), $widget_ops, $control_ops );
15
  }
16
 
17
  public static function register() {
37
 
38
  function form( $instance ) {
39
  $defaults = array(
40
+ 'title' => __( 'Shortcodes Ultimate', 'shortcodes-ultimate' ),
41
  'content' => ''
42
  );
43
  $instance = wp_parse_args( ( array ) $instance, $defaults );
44
  ?>
45
  <p>
46
+ <label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:', 'shortcodes-ultimate' ); ?></label>
47
  <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" />
48
  </p>
49
  <p>
languages/{su-cs_CZ.mo → shortcodes-ultimate-cs_CZ.mo} RENAMED
File without changes
languages/{su-cs_CZ.po → shortcodes-ultimate-cs_CZ.po} RENAMED
File without changes
languages/{su-el_GR.mo → shortcodes-ultimate-el_GR.mo} RENAMED
File without changes
languages/{su-el_GR.po → shortcodes-ultimate-el_GR.po} RENAMED
File without changes
languages/{su-es_ES.mo → shortcodes-ultimate-es_ES.mo} RENAMED
File without changes
languages/{su-es_ES.po → shortcodes-ultimate-es_ES.po} RENAMED
File without changes
languages/{su-fr_FR.mo → shortcodes-ultimate-fr_FR.mo} RENAMED
File without changes
languages/{su-fr_FR.po → shortcodes-ultimate-fr_FR.po} RENAMED
File without changes
languages/{su-ja.mo → shortcodes-ultimate-ja.mo} RENAMED
File without changes
languages/{su-ja.po → shortcodes-ultimate-ja.po} RENAMED
File without changes
languages/{su-nl_NL.mo → shortcodes-ultimate-nl_NL.mo} RENAMED
File without changes
languages/{su-nl_NL.po → shortcodes-ultimate-nl_NL.po} RENAMED
File without changes
languages/{su-pl_PL.mo → shortcodes-ultimate-pl_PL.mo} RENAMED
File without changes
languages/{su-pl_PL.po → shortcodes-ultimate-pl_PL.po} RENAMED
File without changes
languages/{su-ru_RU.mo → shortcodes-ultimate-ru_RU.mo} RENAMED
File without changes
languages/{su-ru_RU.po → shortcodes-ultimate-ru_RU.po} RENAMED
File without changes
languages/{su-sk_SK.mo → shortcodes-ultimate-sk_SK.mo} RENAMED
File without changes
languages/{su-sk_SK.po → shortcodes-ultimate-sk_SK.po} RENAMED
File without changes
languages/{su-vi.mo → shortcodes-ultimate-vi.mo} RENAMED
File without changes
languages/{su-vi.po → shortcodes-ultimate-vi.po} RENAMED
File without changes
languages/{su-zh_CN.mo → shortcodes-ultimate-zh_CN.mo} RENAMED
File without changes
languages/{su-zh_CN.po → shortcodes-ultimate-zh_CN.po} RENAMED
File without changes
languages/{su.pot → shortcodes-ultimate.pot} RENAMED
File without changes
readme.txt CHANGED
@@ -4,7 +4,7 @@ License: GPL
4
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=MMA2VA7JDXWDY
5
  Tags: shortcode, shortcodes, short code, video, responsive, responsive video, youtube, vimeo, audio, mp3, tab, tabs, button, buttons, jquery, box, boxes, toggle, spoiler, column, columns, services, service, pullquote, list, lists, images, image, links, fancy, fancy link, fancy links, fancy buttons, jquery tabs, accordion, slider, plugin, admin, gallery, bloginfo, list pages, sub pages, navigation, siblings pages, children pages, permalink, permalinks, feed, document, member, members, guests, membership, documents, carousel, rss, touch, icon, icons, trl, right-to-left, multilingual, lang, international
6
  Requires at least: 3.5
7
- Tested up to: 5.0
8
  Stable tag: trunk
9
 
10
  Supercharge your WordPress theme with mega pack of shortcodes
@@ -110,6 +110,11 @@ Upgrade normally
110
 
111
  == Changelog ==
112
 
 
 
 
 
 
113
  = 4.9.8 =
114
  * Added: Spanish translation
115
  * Updated: Font Awesome updated to 4.4.0
4
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=MMA2VA7JDXWDY
5
  Tags: shortcode, shortcodes, short code, video, responsive, responsive video, youtube, vimeo, audio, mp3, tab, tabs, button, buttons, jquery, box, boxes, toggle, spoiler, column, columns, services, service, pullquote, list, lists, images, image, links, fancy, fancy link, fancy links, fancy buttons, jquery tabs, accordion, slider, plugin, admin, gallery, bloginfo, list pages, sub pages, navigation, siblings pages, children pages, permalink, permalinks, feed, document, member, members, guests, membership, documents, carousel, rss, touch, icon, icons, trl, right-to-left, multilingual, lang, international
6
  Requires at least: 3.5
7
+ Tested up to: 4.3
8
  Stable tag: trunk
9
 
10
  Supercharge your WordPress theme with mega pack of shortcodes
110
 
111
  == Changelog ==
112
 
113
+ = 4.9.8.1 =
114
+ * Fixed: compatibility with WordPress 4.3
115
+ * Added: lightbox captions for slider, carousel and custom_gallery. Commit by [Valentino Pistis](https://github.com/vpistis)
116
+ * Changed: text domain from 'su' to 'shortcodes-ultimate'
117
+
118
  = 4.9.8 =
119
  * Added: Spanish translation
120
  * Updated: Font Awesome updated to 4.4.0
shortcodes-ultimate.php CHANGED
@@ -2,18 +2,18 @@
2
  /*
3
  Plugin Name: Shortcodes Ultimate
4
  Plugin URI: http://gndev.info/shortcodes-ultimate/
5
- Version: 4.9.8
6
  Author: Vladimir Anokhin
7
  Author URI: http://gndev.info/
8
  Description: Supercharge your WordPress theme with mega pack of shortcodes
9
- Text Domain: su
10
  Domain Path: /languages
11
  License: GPL
12
  */
13
 
14
  // Define plugin constants
15
  define( 'SU_PLUGIN_FILE', __FILE__ );
16
- define( 'SU_PLUGIN_VERSION', '4.9.8' );
17
  define( 'SU_ENABLE_CACHE', true );
18
 
19
  // Includes
2
  /*
3
  Plugin Name: Shortcodes Ultimate
4
  Plugin URI: http://gndev.info/shortcodes-ultimate/
5
+ Version: 4.9.8.1
6
  Author: Vladimir Anokhin
7
  Author URI: http://gndev.info/
8
  Description: Supercharge your WordPress theme with mega pack of shortcodes
9
+ Text Domain: shortcodes-ultimate
10
  Domain Path: /languages
11
  License: GPL
12
  */
13
 
14
  // Define plugin constants
15
  define( 'SU_PLUGIN_FILE', __FILE__ );
16
+ define( 'SU_PLUGIN_VERSION', '4.9.8.1' );
17
  define( 'SU_ENABLE_CACHE', true );
18
 
19
  // Includes
templates/default-loop.php CHANGED
@@ -12,11 +12,11 @@
12
  <a class="su-post-thumbnail" href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a>
13
  <?php endif; ?>
14
  <h2 class="su-post-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
15
- <div class="su-post-meta"><?php _e( 'Posted', 'su' ); ?>: <?php the_time( get_option( 'date_format' ) ); ?></div>
16
  <div class="su-post-excerpt">
17
  <?php the_excerpt(); ?>
18
  </div>
19
- <a href="<?php comments_link(); ?>" class="su-post-comments-link"><?php comments_number( __( '0 comments', 'su' ), __( '1 comment', 'su' ), '% comments' ); ?></a>
20
  </div>
21
 
22
  <?php
@@ -24,7 +24,7 @@
24
  }
25
  // Posts not found
26
  else {
27
- echo '<h4>' . __( 'Posts not found', 'su' ) . '</h4>';
28
  }
29
  ?>
30
  </div>
12
  <a class="su-post-thumbnail" href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a>
13
  <?php endif; ?>
14
  <h2 class="su-post-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
15
+ <div class="su-post-meta"><?php _e( 'Posted', 'shortcodes-ultimate' ); ?>: <?php the_time( get_option( 'date_format' ) ); ?></div>
16
  <div class="su-post-excerpt">
17
  <?php the_excerpt(); ?>
18
  </div>
19
+ <a href="<?php comments_link(); ?>" class="su-post-comments-link"><?php comments_number( __( '0 comments', 'shortcodes-ultimate' ), __( '1 comment', 'shortcodes-ultimate' ), '% comments' ); ?></a>
20
  </div>
21
 
22
  <?php
24
  }
25
  // Posts not found
26
  else {
27
+ echo '<h4>' . __( 'Posts not found', 'shortcodes-ultimate' ) . '</h4>';
28
  }
29
  ?>
30
  </div>
templates/list-loop.php CHANGED
@@ -13,7 +13,7 @@ if ( $posts->have_posts() ) {
13
  // Posts not found
14
  else {
15
  ?>
16
- <li><?php _e( 'Posts not found', 'su' ) ?></li>
17
  <?php
18
  }
19
  ?>
13
  // Posts not found
14
  else {
15
  ?>
16
+ <li><?php _e( 'Posts not found', 'shortcodes-ultimate' ) ?></li>
17
  <?php
18
  }
19
  ?>
templates/single-post.php CHANGED
@@ -14,7 +14,7 @@
14
  ?>
15
  <div id="su-post-<?php the_ID(); ?>" class="su-post">
16
  <h1 class="su-post-title"><?php the_title(); ?></h1>
17
- <div class="su-post-meta"><?php _e( 'Posted', 'su' ); ?>: <?php the_time( get_option( 'date_format' ) ); ?> | <a href="<?php comments_link(); ?>" class="su-post-comments-link"><?php comments_number( __( '0 comments', 'su' ), __( '1 comment', 'su' ), __( '%n comments', 'su' ) ); ?></a></div>
18
  <div class="su-post-content">
19
  <?php the_content(); ?>
20
  </div>
@@ -25,7 +25,7 @@
25
  }
26
  // Posts not found
27
  else {
28
- echo '<h4>' . __( 'Posts not found', 'su' ) . '</h4>';
29
  }
30
  ?>
31
  </div>
14
  ?>
15
  <div id="su-post-<?php the_ID(); ?>" class="su-post">
16
  <h1 class="su-post-title"><?php the_title(); ?></h1>
17
+ <div class="su-post-meta"><?php _e( 'Posted', 'shortcodes-ultimate' ); ?>: <?php the_time( get_option( 'date_format' ) ); ?> | <a href="<?php comments_link(); ?>" class="su-post-comments-link"><?php comments_number( __( '0 comments', 'shortcodes-ultimate' ), __( '1 comment', 'shortcodes-ultimate' ), __( '%n comments', 'shortcodes-ultimate' ) ); ?></a></div>
18
  <div class="su-post-content">
19
  <?php the_content(); ?>
20
  </div>
25
  }
26
  // Posts not found
27
  else {
28
+ echo '<h4>' . __( 'Posts not found', 'shortcodes-ultimate' ) . '</h4>';
29
  }
30
  ?>
31
  </div>
templates/teaser-loop.php CHANGED
@@ -17,7 +17,7 @@
17
  }
18
  // Posts not found
19
  else {
20
- echo '<h4>' . __( 'Posts not found', 'su' ) . '</h4>';
21
  }
22
  ?>
23
  </div>
17
  }
18
  // Posts not found
19
  else {
20
+ echo '<h4>' . __( 'Posts not found', 'shortcodes-ultimate' ) . '</h4>';
21
  }
22
  ?>
23
  </div>