MetaSlider - Version 3.6.7

Version Description

  • 2017/Dec/15 =

  • FEATURE: Adds back in some instructions on how to display the slideshow

  • TWEAK: Add DocBlock checking with CI for PHP and JS files

  • FIX: Adds compatibility fixes for older WP versions.

Download this release

Release Info

Developer DavidAnderson
Plugin Icon 128x128 MetaSlider
Version 3.6.7
Comparing to
See all releases

Code changes from version 3.6.6 to 3.6.7

admin/Notices.php CHANGED
@@ -4,19 +4,28 @@ if (!defined('ABSPATH')) die('No direct access allowed');
4
 
5
  if (!class_exists('Updraft_Notices_1_0')) require_once(METASLIDER_PATH.'admin/lib/Updraft_Notices.php');
6
 
 
 
 
7
  class MetaSlider_Notices extends Updraft_Notices_1_0 {
8
 
9
  /**
10
- * @var object $ads - all ads
 
 
11
  */
12
  protected $ads;
13
 
14
  /**
 
 
15
  * @var object $notices_content
16
  */
17
  protected $notices_content;
18
 
19
  /**
 
 
20
  * @var object $plugin
21
  */
22
  protected $plugin;
@@ -24,6 +33,8 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
24
 
25
  /**
26
  * Populates ad content and loads assets
 
 
27
  */
28
  public function __construct($plugin) {
29
  $this->ads = $this->is_metasliderpro_installed() ? $this->pro_notices() : $this->lite_notices();
@@ -60,6 +71,7 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
60
  /**
61
  * Returns notices that free/lite users should see. dismiss_time should match the key
62
  * hide_time is in weeks. Use a string to hide for 9999 weeks.
 
63
  * @return array returns an array of notices
64
  */
65
  protected function lite_notices() {
@@ -162,6 +174,7 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
162
 
163
  /**
164
  * Premium user notices, if any.
 
165
  * @return string
166
  */
167
  protected function pro_notices() {
@@ -182,6 +195,7 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
182
  /**
183
  * Seasonal Notices. Note that if dismissed, they will stay dismissed for 9999 weeks
184
  * Each year the key and dismiss time should be updated
 
185
  * @return string
186
  */
187
  protected function seasonal_notices() {
@@ -256,6 +270,7 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
256
 
257
  /**
258
  * These appear inside a mega ad.
 
259
  * @return string
260
  */
261
  protected function mega_notice_parts() {
@@ -268,18 +283,18 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
268
  'button_meta' => 'ml-slider',
269
  ),
270
  // 'wpo_pro' => array(
271
- // 'title' => __('WP-Optimize Premium'),
272
- // 'text' => __('offers unparalleled choice and flexibility, allowing you to select one or a combination of over a dozen optimization options.', 'ml-slider'),
273
- // 'image' => '',
274
- // 'button_link' => 'https://getwpo.com?utm_source=metaslider-plugin-page&utm_medium=banner',
275
- // 'button_meta' => 'ml-slider',
276
  // ),
277
  // 'udp_pro' => array(
278
- // 'title' => __('UpdraftPlus Premium'),
279
- // 'text' => __('provides personal support, the ability to copy sites, more storage destinations, encrypted backups for security, multiple backup destinations, better reporting, no adverts and plenty more.', 'ml-slider'),
280
- // 'image' => '',
281
- // 'button_link' => 'https://updraftplus.com?utm_source=metaslider-plugin-page&utm_medium=banner',
282
- // 'button_meta' => 'ml-slider',
283
  // ),
284
  'udp' => array(
285
  'title' => __('UpdraftPlus'),
@@ -315,6 +330,7 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
315
  /**
316
  * Check to disable ads on the Pro version. The parent function returns
317
  * false if installed, so this is reversed and shouldn't be used for the validity function
 
318
  * @return bool
319
  */
320
  protected function is_metasliderpro_installed() {
@@ -323,6 +339,7 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
323
 
324
  /**
325
  * Check to see if UpdraftPlus is installed
 
326
  * @return bool
327
  */
328
  protected function is_updraftplus_installed() {
@@ -331,6 +348,7 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
331
 
332
  /**
333
  * Check to see if UpdraftPlus is installed
 
334
  * @return bool
335
  */
336
  protected function is_keyy_installed() {
@@ -339,6 +357,7 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
339
 
340
  /**
341
  * Check to see if UpdraftCentral is installed
 
342
  * @return bool
343
  */
344
  protected function is_updraftcentral_installed() {
@@ -347,8 +366,9 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
347
 
348
  /**
349
  * Checks if the user agent isn't set as en_GB or en_US, and if the language file doesn't exist
350
- * @param string $plugin_base_dir
351
- * @param string $product_name
 
352
  * @return bool
353
  */
354
  protected function translation_needed($plugin_base_dir = null, $product_name = null) {
@@ -357,6 +377,7 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
357
 
358
  /**
359
  * This method checks to see if the ad has been dismissed
 
360
  * @param string $ad_identifier - identifier for the ad
361
  * @return bool returns true when we dont want to show the ad
362
  */
@@ -366,6 +387,7 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
366
 
367
  /**
368
  * Returns all active seasonal ads
 
369
  * @return array
370
  */
371
  protected function valid_seasonal_notices() {
@@ -389,6 +411,8 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
389
  /**
390
  * The logic is handled elsewhere. This being true does not skip
391
  * the seasonal notices. Overrides parent function
 
 
392
  * @return array
393
  */
394
  protected function skip_seasonal_notices($notice_data) {
@@ -397,6 +421,7 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
397
 
398
  /**
399
  * Checks whether this is an ad page - hard-coded
 
400
  * @return bool
401
  */
402
  protected function is_page_with_ads() {
@@ -413,6 +438,7 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
413
  /**
414
  * This method checks to see if the ad waiting period is over (2 weeks)
415
  * If not, it will set a two week time
 
416
  * @return bool returns true when we dont want to show the ad
417
  */
418
  protected function ad_delay_has_finished() {
@@ -425,12 +451,9 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
425
 
426
  // Disable this for now so that after a dismiss, ads hide for 24 hours
427
  // if (get_option("ms_ads_first_seen_on")) {
428
-
429
- // // They have seen ads before which means the delay is over
430
- // return true;
431
  // }
432
-
433
-
434
  $delay = get_option("ms_hide_all_ads_until");
435
 
436
  // Only start the timer if they see a page that has ads
@@ -465,7 +488,7 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
465
  return false;
466
  }
467
 
468
- /*
469
  * Method to handle dashboard notices
470
  */
471
  public function show_dashboard_notices() {
@@ -474,8 +497,8 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
474
 
475
  // Override the delay to show the thankyou notice on activation
476
  // if (!empty($_GET['ms_activated'])) {
477
- // $lite_notices = $this->lite_notices();
478
- // $this->notices_content['thankyou'] = $lite_notices['thankyou'];
479
  // }
480
  echo $this->do_notice(false, 'dashboard', true);
481
  }
@@ -483,9 +506,10 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
483
 
484
  /**
485
  * Selects the template and returns or displays the notice
486
- * @param array $notice_information - variable names/values to pass through to the template
487
- * @param bool $return_instead_of_echo - whether to
488
- * @param string $position - where the notice is being displayed
 
489
  * @return null|string - depending on the value of $return_instead_of_echo
490
  */
491
  protected function render_specified_notice($notice_information, $return_instead_of_echo = false, $position = 'header') {
@@ -499,9 +523,10 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
499
 
500
  /**
501
  * Displays or returns the template
502
- * @param string $path file name of the template
503
- * @param bool $return_instead_of_echo
504
- * @param array $args
 
505
  * @return null|string
506
  */
507
  public function include_template($path, $return_instead_of_echo = false, $args = array()) {
@@ -518,6 +543,7 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
518
 
519
  /**
520
  * Builds a link based on the type of notice being requested
 
521
  * @param string $link - the URL to link to
522
  * @param string $type - which notice is being displayed
523
  * @return string - the resulting HTML
@@ -542,6 +568,7 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
542
 
543
  /**
544
  * Handles any notice related ajax calls
 
545
  * @return string - (JSON) Sends a success response unless an error is encountered
546
  */
547
  public function ajax_notice_handler() {
@@ -572,7 +599,9 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
572
 
573
  /**
574
  * Returns the available ads that havent been dismissed by the user
575
- * @param string|array the location for the ad
 
 
576
  * @return array the identifier for the ad
577
  */
578
  public function active_ads($location = 'header', $bypass_delay = false) {
@@ -604,7 +633,8 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
604
 
605
  /**
606
  * Returns all possible ads or the specified identifier
607
- * @param string $ad_identifier
 
608
  * @return string|null the data of the ad
609
  */
610
  public function get_ad($ad_identifier = null) {
@@ -614,7 +644,8 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
614
 
615
  /**
616
  * Checks if the ad identifier exists in any of the ads above
617
- * @param string $ad_identifier
 
618
  * @return bool the data of the ad
619
  */
620
  public function ad_exists($ad_identifier) {
@@ -624,8 +655,9 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
624
 
625
  /**
626
  * Updates the stored value for how long to hide the ads
627
- * @param string $ad_identifier
628
- * @param int|string time in weeks or a string to show
 
629
  * @return bool|WP_Error whether the update was a success
630
  */
631
  public function dismiss_ad($ad_identifier, $weeks) {
4
 
5
  if (!class_exists('Updraft_Notices_1_0')) require_once(METASLIDER_PATH.'admin/lib/Updraft_Notices.php');
6
 
7
+ /**
8
+ * Meta Slider notices
9
+ */
10
  class MetaSlider_Notices extends Updraft_Notices_1_0 {
11
 
12
  /**
13
+ * All Ads
14
+ *
15
+ * @var object $ads
16
  */
17
  protected $ads;
18
 
19
  /**
20
+ * Notices content
21
+ *
22
  * @var object $notices_content
23
  */
24
  protected $notices_content;
25
 
26
  /**
27
+ * Plugin details
28
+ *
29
  * @var object $plugin
30
  */
31
  protected $plugin;
33
 
34
  /**
35
  * Populates ad content and loads assets
36
+ *
37
+ * @param array $plugin Plugin details
38
  */
39
  public function __construct($plugin) {
40
  $this->ads = $this->is_metasliderpro_installed() ? $this->pro_notices() : $this->lite_notices();
71
  /**
72
  * Returns notices that free/lite users should see. dismiss_time should match the key
73
  * hide_time is in weeks. Use a string to hide for 9999 weeks.
74
+ *
75
  * @return array returns an array of notices
76
  */
77
  protected function lite_notices() {
174
 
175
  /**
176
  * Premium user notices, if any.
177
+ *
178
  * @return string
179
  */
180
  protected function pro_notices() {
195
  /**
196
  * Seasonal Notices. Note that if dismissed, they will stay dismissed for 9999 weeks
197
  * Each year the key and dismiss time should be updated
198
+ *
199
  * @return string
200
  */
201
  protected function seasonal_notices() {
270
 
271
  /**
272
  * These appear inside a mega ad.
273
+ *
274
  * @return string
275
  */
276
  protected function mega_notice_parts() {
283
  'button_meta' => 'ml-slider',
284
  ),
285
  // 'wpo_pro' => array(
286
+ // 'title' => __('WP-Optimize Premium'),
287
+ // 'text' => __('offers unparalleled choice and flexibility, allowing you to select one or a combination of over a dozen optimization options.', 'ml-slider'),
288
+ // 'image' => '',
289
+ // 'button_link' => 'https://getwpo.com?utm_source=metaslider-plugin-page&utm_medium=banner',
290
+ // 'button_meta' => 'ml-slider',
291
  // ),
292
  // 'udp_pro' => array(
293
+ // 'title' => __('UpdraftPlus Premium'),
294
+ // 'text' => __('provides personal support, the ability to copy sites, more storage destinations, encrypted backups for security, multiple backup destinations, better reporting, no adverts and plenty more.', 'ml-slider'),
295
+ // 'image' => '',
296
+ // 'button_link' => 'https://updraftplus.com?utm_source=metaslider-plugin-page&utm_medium=banner',
297
+ // 'button_meta' => 'ml-slider',
298
  // ),
299
  'udp' => array(
300
  'title' => __('UpdraftPlus'),
330
  /**
331
  * Check to disable ads on the Pro version. The parent function returns
332
  * false if installed, so this is reversed and shouldn't be used for the validity function
333
+ *
334
  * @return bool
335
  */
336
  protected function is_metasliderpro_installed() {
339
 
340
  /**
341
  * Check to see if UpdraftPlus is installed
342
+ *
343
  * @return bool
344
  */
345
  protected function is_updraftplus_installed() {
348
 
349
  /**
350
  * Check to see if UpdraftPlus is installed
351
+ *
352
  * @return bool
353
  */
354
  protected function is_keyy_installed() {
357
 
358
  /**
359
  * Check to see if UpdraftCentral is installed
360
+ *
361
  * @return bool
362
  */
363
  protected function is_updraftcentral_installed() {
366
 
367
  /**
368
  * Checks if the user agent isn't set as en_GB or en_US, and if the language file doesn't exist
369
+ *
370
+ * @param string $plugin_base_dir The plguin base directory
371
+ * @param string $product_name Product name
372
  * @return bool
373
  */
374
  protected function translation_needed($plugin_base_dir = null, $product_name = null) {
377
 
378
  /**
379
  * This method checks to see if the ad has been dismissed
380
+ *
381
  * @param string $ad_identifier - identifier for the ad
382
  * @return bool returns true when we dont want to show the ad
383
  */
387
 
388
  /**
389
  * Returns all active seasonal ads
390
+ *
391
  * @return array
392
  */
393
  protected function valid_seasonal_notices() {
411
  /**
412
  * The logic is handled elsewhere. This being true does not skip
413
  * the seasonal notices. Overrides parent function
414
+ *
415
+ * @param array $notice_data Notice data
416
  * @return array
417
  */
418
  protected function skip_seasonal_notices($notice_data) {
421
 
422
  /**
423
  * Checks whether this is an ad page - hard-coded
424
+ *
425
  * @return bool
426
  */
427
  protected function is_page_with_ads() {
438
  /**
439
  * This method checks to see if the ad waiting period is over (2 weeks)
440
  * If not, it will set a two week time
441
+ *
442
  * @return bool returns true when we dont want to show the ad
443
  */
444
  protected function ad_delay_has_finished() {
451
 
452
  // Disable this for now so that after a dismiss, ads hide for 24 hours
453
  // if (get_option("ms_ads_first_seen_on")) {
454
+ // They have seen ads before which means the delay is over
455
+ // return true;
 
456
  // }
 
 
457
  $delay = get_option("ms_hide_all_ads_until");
458
 
459
  // Only start the timer if they see a page that has ads
488
  return false;
489
  }
490
 
491
+ /**
492
  * Method to handle dashboard notices
493
  */
494
  public function show_dashboard_notices() {
497
 
498
  // Override the delay to show the thankyou notice on activation
499
  // if (!empty($_GET['ms_activated'])) {
500
+ // $lite_notices = $this->lite_notices();
501
+ // $this->notices_content['thankyou'] = $lite_notices['thankyou'];
502
  // }
503
  echo $this->do_notice(false, 'dashboard', true);
504
  }
506
 
507
  /**
508
  * Selects the template and returns or displays the notice
509
+ *
510
+ * @param array $notice_information - variable names/values to pass through to the template
511
+ * @param bool $return_instead_of_echo - whether to
512
+ * @param string $position - where the notice is being displayed
513
  * @return null|string - depending on the value of $return_instead_of_echo
514
  */
515
  protected function render_specified_notice($notice_information, $return_instead_of_echo = false, $position = 'header') {
523
 
524
  /**
525
  * Displays or returns the template
526
+ *
527
+ * @param string $path file name of the template
528
+ * @param bool $return_instead_of_echo Return the template instead of printing
529
+ * @param array $args template arguments
530
  * @return null|string
531
  */
532
  public function include_template($path, $return_instead_of_echo = false, $args = array()) {
543
 
544
  /**
545
  * Builds a link based on the type of notice being requested
546
+ *
547
  * @param string $link - the URL to link to
548
  * @param string $type - which notice is being displayed
549
  * @return string - the resulting HTML
568
 
569
  /**
570
  * Handles any notice related ajax calls
571
+ *
572
  * @return string - (JSON) Sends a success response unless an error is encountered
573
  */
574
  public function ajax_notice_handler() {
599
 
600
  /**
601
  * Returns the available ads that havent been dismissed by the user
602
+ *
603
+ * @param string|array $location the location for the ad
604
+ * @param boolean $bypass_delay Bypass the ad delay
605
  * @return array the identifier for the ad
606
  */
607
  public function active_ads($location = 'header', $bypass_delay = false) {
633
 
634
  /**
635
  * Returns all possible ads or the specified identifier
636
+ *
637
+ * @param string $ad_identifier Ad Identifier
638
  * @return string|null the data of the ad
639
  */
640
  public function get_ad($ad_identifier = null) {
644
 
645
  /**
646
  * Checks if the ad identifier exists in any of the ads above
647
+ *
648
+ * @param string $ad_identifier Ad Identifier
649
  * @return bool the data of the ad
650
  */
651
  public function ad_exists($ad_identifier) {
655
 
656
  /**
657
  * Updates the stored value for how long to hide the ads
658
+ *
659
+ * @param string $ad_identifier Ad Identifier
660
+ * @param int|string $weeks time in weeks or a string to show
661
  * @return bool|WP_Error whether the update was a success
662
  */
663
  public function dismiss_ad($ad_identifier, $weeks) {
admin/Pages.php CHANGED
@@ -1,29 +1,35 @@
1
  <?php
2
-
3
- /*
4
  * Entry point for building the wordpress admin pages.
5
  * Temporarily extends the MetaSlider Class until more refactoring can be done.
6
  */
7
-
8
  Class MetaSlider_Admin_Pages extends MetaSliderPlugin {
9
 
10
  /**
11
- * @property string $capability - The minimum capability to view the admin page
 
 
12
  */
13
  private $capability;
14
 
15
  /**
16
- * @property object $plugin - The MetaSlider plugin class
 
 
17
  */
18
  private $plugin;
19
 
20
- /*
21
- * @property string $current_page - The current admin page
 
 
22
  */
23
  private $current_page;
24
 
25
  /**
26
  * Sets up the notices, security and loads assets for the admin page
 
 
27
  */
28
  public function __construct($plugin) {
29
  $this->plugin = $plugin;
@@ -75,6 +81,8 @@ Class MetaSlider_Admin_Pages extends MetaSliderPlugin {
75
  'restore_language' => __("Undo", "ml-slider"),
76
  'restored_language' => __("Slide restored", "ml-slider"),
77
  'deleted_language' => __("Slide deleted", "ml-slider"),
 
 
78
  'click_to_undo_language' => __("Press to undo", "ml-slider"),
79
  'ajaxurl' => admin_url('admin-ajax.php'),
80
  'update_image' => __("Select replacement image", "ml-slider"),
@@ -124,8 +132,9 @@ Class MetaSlider_Admin_Pages extends MetaSliderPlugin {
124
 
125
  /**
126
  * Method to add pages
127
- * @param string $title - The title of the page
128
- * @param string $slug - The slug used for the page
 
129
  * @param string $parent - Setting a parent will make this page a submenu item
130
  */
131
  public function add_page($title, $slug = '', $parent = '') {
1
  <?php
2
+ /**
 
3
  * Entry point for building the wordpress admin pages.
4
  * Temporarily extends the MetaSlider Class until more refactoring can be done.
5
  */
 
6
  Class MetaSlider_Admin_Pages extends MetaSliderPlugin {
7
 
8
  /**
9
+ * The minimum capability to view the admin page
10
+ *
11
+ * @var string $capability
12
  */
13
  private $capability;
14
 
15
  /**
16
+ * The MetaSlider plugin class
17
+ *
18
+ * @var object $plugin
19
  */
20
  private $plugin;
21
 
22
+ /**
23
+ * The current admin page
24
+ *
25
+ * @var string $current_page
26
  */
27
  private $current_page;
28
 
29
  /**
30
  * Sets up the notices, security and loads assets for the admin page
31
+ *
32
+ * @param array $plugin Plugin details
33
  */
34
  public function __construct($plugin) {
35
  $this->plugin = $plugin;
81
  'restore_language' => __("Undo", "ml-slider"),
82
  'restored_language' => __("Slide restored", "ml-slider"),
83
  'deleted_language' => __("Slide deleted", "ml-slider"),
84
+ 'success_language' => __("Success", "ml-slider"),
85
+ 'copied_language' => __("Item was copied to your clipboard", "ml-slider"),
86
  'click_to_undo_language' => __("Press to undo", "ml-slider"),
87
  'ajaxurl' => admin_url('admin-ajax.php'),
88
  'update_image' => __("Select replacement image", "ml-slider"),
132
 
133
  /**
134
  * Method to add pages
135
+ *
136
+ * @param string $title - The title of the page
137
+ * @param string $slug - The slug used for the page
138
  * @param string $parent - Setting a parent will make this page a submenu item
139
  */
140
  public function add_page($title, $slug = '', $parent = '') {
admin/Tour.php CHANGED
@@ -1,20 +1,23 @@
1
  <?php
2
 
3
  if (!defined('ABSPATH')) die('No direct access allowed');
4
-
5
- /*
6
  * Class for guided tour
7
  */
8
-
9
  Class MetaSlider_Tour {
10
 
11
  /**
12
  * The plugin object
 
 
13
  */
14
  protected $plugin;
15
 
16
  /**
17
  * Sets up the notices, security and loads assets for the admin page
 
 
 
18
  */
19
  public function __construct($plugin, $page) {
20
  $this->plugin = $plugin;
@@ -100,6 +103,7 @@ Class MetaSlider_Tour {
100
 
101
  /**
102
  * Updates the stored value for which step the tour ended on
 
103
  * @param object $request - the http $_REQUEST obj
104
  * @return bool|WP_Error The Boolean should be true
105
  */
@@ -109,10 +113,10 @@ Class MetaSlider_Tour {
109
  }
110
 
111
  /**
112
- * Handles AJAX calls
113
- *
114
- * @return String - (JSON) Sends a success response unless an error is encountered
115
- */
116
  public function handle_ajax() {
117
  if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'metaslider_tour_nonce')) {
118
  return wp_send_json_error(array(
1
  <?php
2
 
3
  if (!defined('ABSPATH')) die('No direct access allowed');
4
+ /**
 
5
  * Class for guided tour
6
  */
 
7
  Class MetaSlider_Tour {
8
 
9
  /**
10
  * The plugin object
11
+ *
12
+ * @var array
13
  */
14
  protected $plugin;
15
 
16
  /**
17
  * Sets up the notices, security and loads assets for the admin page
18
+ *
19
+ * @param array $plugin Plugin details
20
+ * @param string $page Tour page
21
  */
22
  public function __construct($plugin, $page) {
23
  $this->plugin = $plugin;
103
 
104
  /**
105
  * Updates the stored value for which step the tour ended on
106
+ *
107
  * @param object $request - the http $_REQUEST obj
108
  * @return bool|WP_Error The Boolean should be true
109
  */
113
  }
114
 
115
  /**
116
+ * Handles AJAX calls
117
+ *
118
+ * @return String - (JSON) Sends a success response unless an error is encountered
119
+ */
120
  public function handle_ajax() {
121
  if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'metaslider_tour_nonce')) {
122
  return wp_send_json_error(array(
admin/assets/css/admin.css CHANGED
@@ -799,6 +799,7 @@ textarea:-ms-input-placeholder {
799
  margin: 0 auto;
800
  }
801
  .metaslider-ui .metaslider-inner {
 
802
  border: 1px solid #ccc;
803
  border-top: 0;
804
  box-sizing: border-box;
@@ -818,16 +819,7 @@ textarea:-ms-input-placeholder {
818
  font-weight: normal;
819
  margin: 0 0.5rem 0 0;
820
  }
821
- .metaslider-ui .slider-title .metaslider-shortcode {
822
- border: 0;
823
- white-space: nowrap;
824
- min-width: 250px;
825
- box-shadow: none;
826
- font-family: monospace;
827
- margin: 0;
828
- color: #de6826;
829
- cursor: pointer;
830
- }
831
  .metaslider-ui .slider-title .add-slide {
832
  padding-top: 1px !important;
833
  position: absolute !important;
@@ -835,6 +827,46 @@ textarea:-ms-input-placeholder {
835
  top: 12px;
836
  }
837
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
838
  /* Slide Listing */
839
  .metaslider-ui .metaslider-slides-container * {
840
  box-sizing: border-box;
@@ -977,6 +1009,14 @@ textarea:-ms-input-placeholder {
977
  }
978
 
979
  /* Navigation */
 
 
 
 
 
 
 
 
980
  .metaslider-ui .nav-tab * {
981
  box-sizing: border-box;
982
  }
@@ -988,8 +1028,9 @@ textarea:-ms-input-placeholder {
988
  padding: 0.5rem;
989
  max-width: 100px;
990
  text-overflow: ellipsis;
991
- overflow: hidden;
992
  outline: 0;
 
993
  }
994
 
995
  .metaslider-ui .nav-tab:active,
@@ -1203,6 +1244,10 @@ textarea:-ms-input-placeholder {
1203
  line-height: 1;
1204
  }
1205
 
 
 
 
 
1206
  .metaslider-ui .settings .disabled {
1207
  color:#bbb;
1208
  font-style: italic;
@@ -1212,6 +1257,12 @@ textarea:-ms-input-placeholder {
1212
  border-color: #bbb;
1213
  }
1214
 
 
 
 
 
 
 
1215
  /* Grid and add-on page */
1216
  .btn-cta-gradient {
1217
  background-image: -webkit-linear-gradient(to left, #00b1d5, #bf2fcb), -webkit-linear-gradient(to left, #00b1d5, #bf2fcb)!important;
@@ -1352,7 +1403,7 @@ textarea:-ms-input-placeholder {
1352
  .metaslider-ui .restore-slide-link:hover span {
1353
  color: #de6826;
1354
  }
1355
- .metaslider-ui .restore-slide-link svg {
1356
  position: relative;
1357
  top: 2px;
1358
  left: -2px;
799
  margin: 0 auto;
800
  }
801
  .metaslider-ui .metaslider-inner {
802
+ background: rgba(224, 224, 224, 0.25);
803
  border: 1px solid #ccc;
804
  border-top: 0;
805
  box-sizing: border-box;
819
  font-weight: normal;
820
  margin: 0 0.5rem 0 0;
821
  }
822
+
 
 
 
 
 
 
 
 
 
823
  .metaslider-ui .slider-title .add-slide {
824
  padding-top: 1px !important;
825
  position: absolute !important;
827
  top: 12px;
828
  }
829
 
830
+ /* Shortcode Instructions */
831
+ .metaslider-ui .metaslider-shortcode {
832
+ padding: 7px 7px 7px 12px;
833
+ line-height: 15px;
834
+ margin: 0;
835
+ color: #cccccc;
836
+ }
837
+ .metaslider-ui .metaslider-shortcode .ms-shortcode::-moz-selection,
838
+ .metaslider-ui .metaslider-shortcode pre::-moz-selection {
839
+ color: #444;
840
+ background: #acd8fc;
841
+ }
842
+ .metaslider-ui .metaslider-shortcode .ms-shortcode::selection,
843
+ .metaslider-ui .metaslider-shortcode pre::selection {
844
+ color: #444;
845
+ background: #acd8fc;
846
+ }
847
+ .metaslider-ui .metaslider-shortcode p {
848
+ margin-top:0;
849
+ color: #444;
850
+ }
851
+ .metaslider-ui .metaslider-shortcode .ms-shortcode {
852
+ color: #de6826;
853
+ cursor: pointer;
854
+ }
855
+ .metaslider-ui .metaslider-shortcode .ml-button.ms-copy-all {
856
+ position: relative;
857
+ color: #0073aa;
858
+ padding: 0;
859
+ float: right;
860
+ }
861
+ .metaslider-ui .metaslider-shortcode .ml-button.ms-copy-all:hover {
862
+ color: #de6826;
863
+ }
864
+ .metaslider-ui .metaslider-shortcode .ml-button.ms-copy-all i {
865
+ position: relative;
866
+ top: 2px;
867
+ left: -2px;
868
+ }
869
+
870
  /* Slide Listing */
871
  .metaslider-ui .metaslider-slides-container * {
872
  box-sizing: border-box;
1009
  }
1010
 
1011
  /* Navigation */
1012
+ .nav-tab-wrapper {
1013
+ border-bottom: 1px solid #ccc;
1014
+ margin: 0;
1015
+ padding-top: 9px;
1016
+ padding-bottom: 0;
1017
+ line-height: inherit;
1018
+ overflow: hidden;
1019
+ }
1020
  .metaslider-ui .nav-tab * {
1021
  box-sizing: border-box;
1022
  }
1028
  padding: 0.5rem;
1029
  max-width: 100px;
1030
  text-overflow: ellipsis;
1031
+ /* overflow: hidden; */
1032
  outline: 0;
1033
+ float: left;
1034
  }
1035
 
1036
  .metaslider-ui .nav-tab:active,
1244
  line-height: 1;
1245
  }
1246
 
1247
+ input[type="radio"] {
1248
+ margin-right: 4px;
1249
+ }
1250
+
1251
  .metaslider-ui .settings .disabled {
1252
  color:#bbb;
1253
  font-style: italic;
1257
  border-color: #bbb;
1258
  }
1259
 
1260
+ .wp-clearfix:after {
1261
+ content: "";
1262
+ display: table;
1263
+ clear: both;
1264
+ }
1265
+
1266
  /* Grid and add-on page */
1267
  .btn-cta-gradient {
1268
  background-image: -webkit-linear-gradient(to left, #00b1d5, #bf2fcb), -webkit-linear-gradient(to left, #00b1d5, #bf2fcb)!important;
1403
  .metaslider-ui .restore-slide-link:hover span {
1404
  color: #de6826;
1405
  }
1406
+ .metaslider-ui .restore-slide-link i {
1407
  position: relative;
1408
  top: 2px;
1409
  left: -2px;
admin/assets/css/icon.css CHANGED
@@ -9,10 +9,20 @@
9
  font-style: normal;
10
  }
11
 
 
 
 
 
 
 
 
 
12
  #adminmenu .toplevel_page_metaslider div.wp-menu-image:before,
13
  #adminmenu .toplevel_page_metaslider-pro div.wp-menu-image:before {
14
  content: "\e900" !important;
15
  font-family: "metaslider" !important;
16
  speak: none;
17
  font-size: 28px;
 
 
18
  }
9
  font-style: normal;
10
  }
11
 
12
+ #adminmenu .toplevel_page_metaslider div.wp-menu-image,
13
+ #adminmenu .toplevel_page_metaslider-pro div.wp-menu-image {
14
+ background: none;
15
+ width: 36px;
16
+ float: left;
17
+ text-align: center;
18
+ height: 100%;
19
+ }
20
  #adminmenu .toplevel_page_metaslider div.wp-menu-image:before,
21
  #adminmenu .toplevel_page_metaslider-pro div.wp-menu-image:before {
22
  content: "\e900" !important;
23
  font-family: "metaslider" !important;
24
  speak: none;
25
  font-size: 28px;
26
+ padding: 7px 0;
27
+ display: inline-block;
28
  }
admin/assets/js/admin.js CHANGED
@@ -1,6 +1,63 @@
1
  jQuery(function($) {
2
 
3
- /*
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  * UI for adding a slide. Managed through the WP media upload UI
5
  * Event managed here.
6
  */
@@ -29,7 +86,7 @@ jQuery(function($) {
29
  $.ajax({
30
  url: metaslider.ajaxurl,
31
  data: data,
32
- method: 'POST',
33
  beforeSend: function() { MetaSlider_Helpers.loading(true); },
34
  complete: function() {MetaSlider_Helpers.loading(false); },
35
  error: function(response) {
@@ -37,10 +94,10 @@ jQuery(function($) {
37
  },
38
  success: function(response) {
39
 
40
- /*
41
- * Echo Slide on success
42
- * TODO: instead have it return data and use JS to render it
43
- */
44
  $(".metaslider .left table").append(response);
45
  MetaSlider_Helpers.loading(false)
46
  $(".metaslider .left table").trigger('resizeSlides');
@@ -48,13 +105,13 @@ jQuery(function($) {
48
  });
49
  });
50
 
51
- /*
52
- * UI for changing slide image. Managed through the WP media upload UI
53
  * Initialized dynamically due to multiple slides.
54
  */
55
  var update_slide_frame;
56
 
57
- /*
58
  * Opens the UI for the slide selection.
59
  */
60
  $('.metaslider').on('click', '.add-slide', function(event){
@@ -72,8 +129,8 @@ jQuery(function($) {
72
  $('.metaslider').on('click', '.update-image', function(event) {
73
  event.preventDefault();
74
  var $this = $(this);
75
-
76
- /*
77
  * Opens up a media window showing images
78
  */
79
  update_slide_frame = wp.media.frames.file_frame = wp.media({
@@ -84,7 +141,7 @@ jQuery(function($) {
84
  }
85
  }).open();
86
 
87
- /*
88
  * Handles changing an image in DB and UI
89
  */
90
  update_slide_frame.on('select', function() {
@@ -108,7 +165,7 @@ jQuery(function($) {
108
  $.ajax({
109
  url: metaslider.ajaxurl,
110
  data: data,
111
- method: 'POST',
112
  beforeSend: function() { MetaSlider_Helpers.loading(true); },
113
  complete: function() {MetaSlider_Helpers.loading(false); },
114
  error: function(response) {
@@ -116,7 +173,7 @@ jQuery(function($) {
116
  },
117
  success: function(response) {
118
 
119
- /*
120
  * Updates the image on success
121
  */
122
  $('#slide-' + $this.data('slideId') + ' .thumb')
@@ -153,7 +210,7 @@ jQuery(function($) {
153
  $.ajax({
154
  url: metaslider.ajaxurl,
155
  data: data,
156
- method: 'POST',
157
  error: function(response) {
158
 
159
  // Delete failed. Remove delete state UI
@@ -233,7 +290,7 @@ jQuery(function($) {
233
  $.ajax({
234
  url: metaslider.ajaxurl,
235
  data: data,
236
- method: 'POST',
237
  error: function(response) {
238
 
239
  // Undelete failed. Remove delete state UI
@@ -556,7 +613,6 @@ jQuery(function($) {
556
  });
557
 
558
  // UI/Feedback
559
-
560
  // Events for the slideshow title
561
  $('.metaslider .nav-tab-active input[name="title"]').on('focusin', function() {
562
 
@@ -594,6 +650,9 @@ var MetaSlider_Helpers = {
594
 
595
  /**
596
  * Various helper functions to use throughout
 
 
 
597
  */
598
  capitalize: function(string) {
599
  return string.replace(/\b\w/g, function(l){ return l.toUpperCase(); });
@@ -601,9 +660,10 @@ var MetaSlider_Helpers = {
601
 
602
  /**
603
  * Sets some basic loading state UI elements of the app. Currently,
604
- * it only enables or disables the input and shows a loading spinner.
605
- * @property {boolean} state
606
- */
 
607
  loading: function(state) {
608
  if (state) {
609
  jQuery(".metaslider .spinner").show().css('visibility', 'visible');
@@ -656,7 +716,6 @@ var MS_Notification = function(message, submessage, image, _classname) {
656
  }
657
 
658
  // TODO add an option for svg
659
-
660
  // If an extra class is set, set it
661
  ('undefined' !== typeof _classname) && this.notice.addClass(_classname);
662
 
@@ -677,8 +736,9 @@ MS_Notification.prototype.hide = function() {
677
 
678
  /**
679
  * Launch a notification and add a click event
680
- * @param int delay the time in milliseconds
681
- * @param string callback a method on the object or anon function
 
682
  */
683
  MS_Notification.prototype.fire = function(delay, callback) {
684
  var _this = this;
1
  jQuery(function($) {
2
 
3
+ /**
4
+ * Allow the user to click on the element to select it.
5
+ *
6
+ * @param string elm Element The html element to be selected
7
+ */
8
+ var metaslider_select_text = function (elm) {
9
+ var range;
10
+ var selection;
11
+
12
+ // Most browsers will be able to select the text
13
+ if (window.getSelection) {
14
+ selection = window.getSelection();
15
+ range = document.createRange();
16
+ range.selectNodeContents(elm);
17
+ selection.removeAllRanges();
18
+ selection.addRange(range);
19
+ } else if (document.body.createTextRange) {
20
+ range = document.body.createTextRange();
21
+ range.moveToElementText(elm);
22
+ range.select();
23
+ }
24
+
25
+ // Some browsers will be able to copy the text too!
26
+ try {
27
+ if (document.execCommand('copy')) {
28
+ var notice = new MS_Notification(metaslider.success_language, metaslider.copied_language, undefined, 'is-success');
29
+ notice.fire(2000);
30
+ }
31
+ } catch (err) {
32
+ console.log('MetaSlider: Couldn\'t copy the text');
33
+ }
34
+ };
35
+
36
+ // Select the shortcode on click
37
+ $('.ms-shortcode').on('click', function () {
38
+ metaslider_select_text(this);
39
+ });
40
+
41
+ // Select the entire codeblock when the button is clicked
42
+ $('.ms-copy-all').on('click', function (event) {
43
+ event.preventDefault();
44
+ metaslider_select_text(document.getElementById('ms-entire-code'));
45
+ });
46
+
47
+ /**
48
+ * Filter out spaces when copying the shortcode.
49
+ */
50
+ document.getElementById('ms-entire-code')
51
+ .addEventListener('copy', function(event) {
52
+ var text = window.getSelection()
53
+ .toString().split("'").map(function(string, index) {
54
+ return (index === 1) ? string.replace(/\s/g, '').replace('ri', 'r i') : string;
55
+ }).join("'");
56
+ event.clipboardData.setData('text/plain', text);
57
+ event.preventDefault()
58
+ });
59
+
60
+ /**
61
  * UI for adding a slide. Managed through the WP media upload UI
62
  * Event managed here.
63
  */
86
  $.ajax({
87
  url: metaslider.ajaxurl,
88
  data: data,
89
+ type: 'POST',
90
  beforeSend: function() { MetaSlider_Helpers.loading(true); },
91
  complete: function() {MetaSlider_Helpers.loading(false); },
92
  error: function(response) {
94
  },
95
  success: function(response) {
96
 
97
+ /**
98
+ * Echo Slide on success
99
+ * TODO: instead have it return data and use JS to render it
100
+ */
101
  $(".metaslider .left table").append(response);
102
  MetaSlider_Helpers.loading(false)
103
  $(".metaslider .left table").trigger('resizeSlides');
105
  });
106
  });
107
 
108
+ /**
109
+ * I for changing slide image. Managed through the WP media upload UI
110
  * Initialized dynamically due to multiple slides.
111
  */
112
  var update_slide_frame;
113
 
114
+ /**
115
  * Opens the UI for the slide selection.
116
  */
117
  $('.metaslider').on('click', '.add-slide', function(event){
129
  $('.metaslider').on('click', '.update-image', function(event) {
130
  event.preventDefault();
131
  var $this = $(this);
132
+
133
+ /**
134
  * Opens up a media window showing images
135
  */
136
  update_slide_frame = wp.media.frames.file_frame = wp.media({
141
  }
142
  }).open();
143
 
144
+ /**
145
  * Handles changing an image in DB and UI
146
  */
147
  update_slide_frame.on('select', function() {
165
  $.ajax({
166
  url: metaslider.ajaxurl,
167
  data: data,
168
+ type: 'POST',
169
  beforeSend: function() { MetaSlider_Helpers.loading(true); },
170
  complete: function() {MetaSlider_Helpers.loading(false); },
171
  error: function(response) {
173
  },
174
  success: function(response) {
175
 
176
+ /**
177
  * Updates the image on success
178
  */
179
  $('#slide-' + $this.data('slideId') + ' .thumb')
210
  $.ajax({
211
  url: metaslider.ajaxurl,
212
  data: data,
213
+ type: 'POST',
214
  error: function(response) {
215
 
216
  // Delete failed. Remove delete state UI
290
  $.ajax({
291
  url: metaslider.ajaxurl,
292
  data: data,
293
+ type: 'POST',
294
  error: function(response) {
295
 
296
  // Undelete failed. Remove delete state UI
613
  });
614
 
615
  // UI/Feedback
 
616
  // Events for the slideshow title
617
  $('.metaslider .nav-tab-active input[name="title"]').on('focusin', function() {
618
 
650
 
651
  /**
652
  * Various helper functions to use throughout
653
+ *
654
+ * @param string string A string to capitalise
655
+ * @return string Returns capitalised string
656
  */
657
  capitalize: function(string) {
658
  return string.replace(/\b\w/g, function(l){ return l.toUpperCase(); });
660
 
661
  /**
662
  * Sets some basic loading state UI elements of the app. Currently,
663
+ * it only enables or disables the input and shows a loading spinner.#
664
+ *
665
+ * @param boolean state UI Elemetns
666
+ */
667
  loading: function(state) {
668
  if (state) {
669
  jQuery(".metaslider .spinner").show().css('visibility', 'visible');
716
  }
717
 
718
  // TODO add an option for svg
 
719
  // If an extra class is set, set it
720
  ('undefined' !== typeof _classname) && this.notice.addClass(_classname);
721
 
736
 
737
  /**
738
  * Launch a notification and add a click event
739
+ *
740
+ * @param int delay the time in milliseconds
741
+ * @param Function callback a method on the object or anon function
742
  */
743
  MS_Notification.prototype.fire = function(delay, callback) {
744
  var _this = this;
admin/assets/js/tour.js CHANGED
@@ -1,5 +1,8 @@
1
- // Not really a tour, but uses the same library to introduce the plugin.
2
- // This should always show when the user has no slideshows
 
 
 
3
  var no_slideshows = new Shepherd.Tour({
4
  defaults: {
5
  classes: 'shepherd-theme-arrows shepherd-no-slideshows'
@@ -166,7 +169,7 @@ main_tour.on('cancel', function() {
166
  jQuery.ajax({
167
  url: metaslider.ajaxurl,
168
  data: data,
169
- method: 'POST',
170
  error: function(response) {
171
 
172
  // Error to the console (useful if we get support feedback
1
+ /**
2
+ * Not really a tour, but uses the same library to introduce the plugin.
3
+ * This should always show when the user has no slideshows
4
+ */
5
+
6
  var no_slideshows = new Shepherd.Tour({
7
  defaults: {
8
  classes: 'shepherd-theme-arrows shepherd-no-slideshows'
169
  jQuery.ajax({
170
  url: metaslider.ajaxurl,
171
  data: data,
172
+ type: 'POST',
173
  error: function(response) {
174
 
175
  // Error to the console (useful if we get support feedback
admin/lib/Updraft_Notices.php CHANGED
@@ -100,7 +100,6 @@ abstract class Updraft_Notices_1_0 {
100
  * @param Boolean $html_allowed a boolean value to indicate if HTML can be used or not
101
  * @param String $url the url to use
102
  * @param Boolean $https a boolean value to indicate if https should be used or not
103
- * @param String $website_home a string to be displayed
104
  * @return String returns a string of the completed url
105
  */
106
  protected function url_end($html_allowed, $url, $https = false) {
100
  * @param Boolean $html_allowed a boolean value to indicate if HTML can be used or not
101
  * @param String $url the url to use
102
  * @param Boolean $https a boolean value to indicate if https should be used or not
 
103
  * @return String returns a string of the completed url
104
  */
105
  protected function url_end($html_allowed, $url, $https = false) {
admin/lib/helpers.php CHANGED
@@ -4,7 +4,8 @@ if (!defined('ABSPATH')) die('No direct access.');
4
 
5
  /**
6
  * Will be truthy if the plugin is installed
7
- * @param string name of the plugin 'ml-slider'
 
8
  * @return bool|string - will return path, ex. 'ml-slider/ml-slider.php'
9
  */
10
  function metaslider_is_plugin_installed($name) {
@@ -15,24 +16,25 @@ function metaslider_is_plugin_installed($name) {
15
  return false;
16
  }
17
  /**
18
- * checks if metaslider pro is installed
19
- *
20
- * @return bool
21
- */
22
  function metaslider_is_pro_installed() {
23
  return (bool) metaslider_is_plugin_installed('ml-slider-pro');
24
  }
25
 
26
  /**
27
- * Will be true if the plugin is active
28
- *
29
- * @return bool
30
- */
31
  function metaslider_is_pro_active() {
32
  return is_plugin_active(metaslider_is_plugin_installed('ml-slider-pro'));
33
  }
34
  /**
35
  * Returns true if the user does not have the pro version installed
 
36
  * @return bool
37
  */
38
  function metaslider_sees_upgrade_page() {
@@ -41,6 +43,7 @@ function metaslider_sees_upgrade_page() {
41
 
42
  /**
43
  * Returns true if the user does not have the pro version installed
 
44
  * @return bool
45
  */
46
  function metaslider_sees_call_to_action() {
@@ -48,11 +51,12 @@ function metaslider_sees_call_to_action() {
48
  }
49
 
50
  /**
51
- * Returns true if the user is ready to see notices. Exceptions include
52
- * when they have no slideshows (first start) and while on the initial tour.
53
- *
54
- * @return bool
55
- */
 
56
  function metaslider_sees_notices($plugin) {
57
 
58
  // If no slideshows, don't show an ad
@@ -66,20 +70,21 @@ function metaslider_sees_notices($plugin) {
66
  }
67
 
68
  /**
69
- * Returns true if the user is on the specified admin page
70
- *
71
- * @return bool
72
- */
 
73
  function metaslider_is_on_admin_page($page_name = 'admin.php') {
74
  global $pagenow;
75
  return ($pagenow == $page_name);
76
  }
77
 
78
  /**
79
- * Returns the upgrade link
80
- *
81
- * @return string
82
- */
83
  function metaslider_get_upgrade_link() {
84
  return apply_filters('metaslider_hoplink', esc_url(
85
  add_query_arg(array(
@@ -93,7 +98,8 @@ function metaslider_get_upgrade_link() {
93
 
94
  /**
95
  * Returns an array of the trashed slides
96
- * @param $slider
 
97
  * @return array
98
  */
99
  function metaslider_has_trashed_slides($slider_id) {
@@ -117,7 +123,8 @@ function metaslider_has_trashed_slides($slider_id) {
117
 
118
  /**
119
  * Returns whether we are looking at trashed slides
120
- * @param int $slider - the id
 
121
  * @return bool
122
  */
123
  function metaslider_viewing_trashed_slides($slider_id) {
@@ -133,6 +140,7 @@ function metaslider_viewing_trashed_slides($slider_id) {
133
 
134
  /**
135
  * Returns whether we are looking at a trashed slide
 
136
  * @param object $slide a slide object
137
  * @return bool
138
  */
4
 
5
  /**
6
  * Will be truthy if the plugin is installed
7
+ *
8
+ * @param string $name name of the plugin 'ml-slider'
9
  * @return bool|string - will return path, ex. 'ml-slider/ml-slider.php'
10
  */
11
  function metaslider_is_plugin_installed($name) {
16
  return false;
17
  }
18
  /**
19
+ * checks if metaslider pro is installed
20
+ *
21
+ * @return bool
22
+ */
23
  function metaslider_is_pro_installed() {
24
  return (bool) metaslider_is_plugin_installed('ml-slider-pro');
25
  }
26
 
27
  /**
28
+ * Will be true if the plugin is active
29
+ *
30
+ * @return bool
31
+ */
32
  function metaslider_is_pro_active() {
33
  return is_plugin_active(metaslider_is_plugin_installed('ml-slider-pro'));
34
  }
35
  /**
36
  * Returns true if the user does not have the pro version installed
37
+ *
38
  * @return bool
39
  */
40
  function metaslider_sees_upgrade_page() {
43
 
44
  /**
45
  * Returns true if the user does not have the pro version installed
46
+ *
47
  * @return bool
48
  */
49
  function metaslider_sees_call_to_action() {
51
  }
52
 
53
  /**
54
+ * Returns true if the user is ready to see notices. Exceptions include
55
+ * when they have no slideshows (first start) and while on the initial tour.
56
+ *
57
+ * @param array $plugin Plugin details
58
+ * @return boolean
59
+ */
60
  function metaslider_sees_notices($plugin) {
61
 
62
  // If no slideshows, don't show an ad
70
  }
71
 
72
  /**
73
+ * Returns true if the user is on the specified admin page
74
+ *
75
+ * @param string $page_name Admin page name
76
+ * @return boolean
77
+ */
78
  function metaslider_is_on_admin_page($page_name = 'admin.php') {
79
  global $pagenow;
80
  return ($pagenow == $page_name);
81
  }
82
 
83
  /**
84
+ * Returns the upgrade link
85
+ *
86
+ * @return string
87
+ */
88
  function metaslider_get_upgrade_link() {
89
  return apply_filters('metaslider_hoplink', esc_url(
90
  add_query_arg(array(
98
 
99
  /**
100
  * Returns an array of the trashed slides
101
+ *
102
+ * @param int $slider_id Slider ID
103
  * @return array
104
  */
105
  function metaslider_has_trashed_slides($slider_id) {
123
 
124
  /**
125
  * Returns whether we are looking at trashed slides
126
+ *
127
+ * @param int $slider_id - the id
128
  * @return bool
129
  */
130
  function metaslider_viewing_trashed_slides($slider_id) {
140
 
141
  /**
142
  * Returns whether we are looking at a trashed slide
143
+ *
144
  * @param object $slide a slide object
145
  * @return bool
146
  */
admin/views/pages/upgrade.php CHANGED
@@ -10,6 +10,7 @@ foreach ($our_plugins as $plugin) {
10
  // If they have any plugins missing, make room for ads
11
  $width = (in_array(false, $installed_plugins, true)) ? 'metaslider_half_width' : ''
12
  ?>
 
13
  <div class="metaslider_col <?php echo $width; ?>">
14
  <h2 class="ms-addon-headers">MetaSlider <?php _e("Comparison Chart", 'ml-slider');?></h2>
15
  <table class="metaslider_feat_table">
@@ -166,4 +167,5 @@ $width = (in_array(false, $installed_plugins, true)) ? 'metaslider_half_width' :
166
  </div>
167
  </div>
168
  <?php } ?>
 
169
  </div>
10
  // If they have any plugins missing, make room for ads
11
  $width = (in_array(false, $installed_plugins, true)) ? 'metaslider_half_width' : ''
12
  ?>
13
+ <div>
14
  <div class="metaslider_col <?php echo $width; ?>">
15
  <h2 class="ms-addon-headers">MetaSlider <?php _e("Comparison Chart", 'ml-slider');?></h2>
16
  <table class="metaslider_feat_table">
167
  </div>
168
  </div>
169
  <?php } ?>
170
+ </div>
171
  </div>
assets/metaslider/public.css CHANGED
@@ -122,7 +122,8 @@ body .metaslider .flexslider .flex-direction-nav li {
122
 
123
  .flex-control-nav {
124
  bottom: -30px;
125
- line-height: 11px;
 
126
  }
127
 
128
  /** move margin from list items to anchors */
@@ -204,6 +205,7 @@ body .metaslider .flexslider .flex-direction-nav li {
204
  margin: -20px 0 0;
205
  box-shadow: none!important;
206
  display: block;
 
207
  background-image: url('../sliders/flexslider/bg_direction_nav.png');
208
  background-repeat: no-repeat;
209
  position: absolute;
122
 
123
  .flex-control-nav {
124
  bottom: -30px;
125
+ line-height: 11px;
126
+ z-index: 2;
127
  }
128
 
129
  /** move margin from list items to anchors */
205
  margin: -20px 0 0;
206
  box-shadow: none!important;
207
  display: block;
208
+ background-color: transparent;
209
  background-image: url('../sliders/flexslider/bg_direction_nav.png');
210
  background-repeat: no-repeat;
211
  position: absolute;
inc/metaslider.imagehelper.class.php CHANGED
@@ -17,24 +17,28 @@ class MetaSliderImageHelper {
17
  private $use_image_editor;
18
 
19
  /**
20
- * @property integer $slide_id The ID of the image
21
- */
 
 
22
  private $slide_id;
23
 
24
  /**
25
- * @property integer $image_id The ID of the image
26
- */
 
 
27
  public $image_id;
28
 
29
  /**
30
  * Constructor
31
  *
32
- * @param integer $slide_id - The ID of the current slide
33
- * @param integer $width - Required width of image
34
- * @param integer $height - Required height of image
35
- * @param string $crop_type - The method used for cropping
36
  * @param bool $use_image_editor - Whether to use the image editor
37
- * @param integer $image_id - used when the slide in admin is a looped item (i.e. post type)
38
  */
39
  public function __construct($slide_id, $width, $height, $crop_type, $use_image_editor = true, $image_id = null) {
40
  // There's a chance that $slide_id might be an $image_id
@@ -61,7 +65,7 @@ class MetaSliderImageHelper {
61
  * Add in backwards compatibility for old versions of MS Pro
62
  * 'true' = smart, 'false' = standard, 'disabled' = disabled
63
  *
64
- * @param string $crop_type
65
  */
66
  private function set_crop_type( $crop_type ) {
67
 
@@ -87,13 +91,12 @@ class MetaSliderImageHelper {
87
 
88
  /**
89
  * Return the crop dimensions.
90
- *
91
  * Smart Crop: If the image is smaller than the container width or height, then return
92
  * dimensions that respect the container size ratio. This ensures image displays in a
93
  * sane manner in responsive sliders
94
  *
95
- * @param integer $image_width
96
- * @param integer $image_height
97
  * @return array image dimensions
98
  */
99
  private function get_crop_dimensions( $image_width, $image_height ) {
@@ -140,7 +143,6 @@ class MetaSliderImageHelper {
140
  if ( $image_width < $container_width && $image_height < $container_height ) {
141
  if ( $container_width > $container_height ) {
142
  // wide
143
-
144
  if ( $image_width > $image_height ) {
145
  // wide
146
  $new_slide_height = $image_height;
@@ -214,7 +216,7 @@ class MetaSliderImageHelper {
214
  /**
215
  * Return the image URL, crop the image to the correct dimensions if required
216
  *
217
- * @param bool $force_resize
218
  * @return string resized image URL
219
  */
220
  function get_image_url( $force_resize = false ) {
@@ -308,8 +310,9 @@ class MetaSliderImageHelper {
308
  /**
309
  * Use WP_Image_Editor to create a resized image and return the URL for that image
310
  *
311
- * @param array $orig_size
312
- * @param array $dest_size
 
313
  * @return string
314
  */
315
  private function resize_image($orig_size, $dest_size, $dest_file_name) {
17
  private $use_image_editor;
18
 
19
  /**
20
+ * The ID of the image
21
+ *
22
+ * @var integer
23
+ */
24
  private $slide_id;
25
 
26
  /**
27
+ * The ID of the image
28
+ *
29
+ * @var integer
30
+ */
31
  public $image_id;
32
 
33
  /**
34
  * Constructor
35
  *
36
+ * @param integer $slide_id - The ID of the current slide
37
+ * @param integer $width - Required width of image
38
+ * @param integer $height - Required height of image
39
+ * @param string $crop_type - The method used for cropping
40
  * @param bool $use_image_editor - Whether to use the image editor
41
+ * @param integer $image_id - used when the slide in admin is a looped item (i.e. post type)
42
  */
43
  public function __construct($slide_id, $width, $height, $crop_type, $use_image_editor = true, $image_id = null) {
44
  // There's a chance that $slide_id might be an $image_id
65
  * Add in backwards compatibility for old versions of MS Pro
66
  * 'true' = smart, 'false' = standard, 'disabled' = disabled
67
  *
68
+ * @param string $crop_type Crop type
69
  */
70
  private function set_crop_type( $crop_type ) {
71
 
91
 
92
  /**
93
  * Return the crop dimensions.
 
94
  * Smart Crop: If the image is smaller than the container width or height, then return
95
  * dimensions that respect the container size ratio. This ensures image displays in a
96
  * sane manner in responsive sliders
97
  *
98
+ * @param integer $image_width Image Width
99
+ * @param integer $image_height Image height
100
  * @return array image dimensions
101
  */
102
  private function get_crop_dimensions( $image_width, $image_height ) {
143
  if ( $image_width < $container_width && $image_height < $container_height ) {
144
  if ( $container_width > $container_height ) {
145
  // wide
 
146
  if ( $image_width > $image_height ) {
147
  // wide
148
  $new_slide_height = $image_height;
216
  /**
217
  * Return the image URL, crop the image to the correct dimensions if required
218
  *
219
+ * @param bool $force_resize Force resize of image
220
  * @return string resized image URL
221
  */
222
  function get_image_url( $force_resize = false ) {
310
  /**
311
  * Use WP_Image_Editor to create a resized image and return the URL for that image
312
  *
313
+ * @param array $orig_size Original image size
314
+ * @param array $dest_size Destination image size
315
+ * @param array $dest_file_name Destination file name
316
  * @return string
317
  */
318
  private function resize_image($orig_size, $dest_size, $dest_file_name) {
inc/metaslider.systemcheck.class.php CHANGED
@@ -26,7 +26,7 @@ class MetaSliderSystemCheck {
26
  $this->checkWordPressVersion();
27
  $this->checkImageLibrary();
28
  $this->checkRoleScoper();
29
- //$this->checkWpFooter();
30
  $this->updateSystemCheck();
31
  }
32
 
@@ -148,6 +148,9 @@ class MetaSliderSystemCheck {
148
 
149
  /**
150
  * Print a warning message to the screen
 
 
 
151
  */
152
  private function printMessage( $message, $key ) {
153
  $nonce = wp_create_nonce( "metaslider-dismiss-{$key}" );
26
  $this->checkWordPressVersion();
27
  $this->checkImageLibrary();
28
  $this->checkRoleScoper();
29
+ // $this->checkWpFooter();
30
  $this->updateSystemCheck();
31
  }
32
 
148
 
149
  /**
150
  * Print a warning message to the screen
151
+ *
152
+ * @param string $message Warning message to be shown
153
+ * @param string $key Message Key
154
  */
155
  private function printMessage( $message, $key ) {
156
  $nonce = wp_create_nonce( "metaslider-dismiss-{$key}" );
inc/metaslider.widget.class.php CHANGED
@@ -1,12 +1,11 @@
1
  <?php
2
- /**
3
- * Adds MetaSlider widget.
4
- */
5
-
6
  if ( ! defined( 'ABSPATH' ) ) {
7
  exit; // disable direct access
8
  }
9
 
 
 
 
10
  class MetaSlider_Widget extends WP_Widget {
11
 
12
  /**
@@ -25,8 +24,8 @@ class MetaSlider_Widget extends WP_Widget {
25
  *
26
  * @see WP_Widget::widget()
27
  *
28
- * @param array $args Widget arguments.
29
- * @param array $instance Saved values from database.
30
  */
31
  public function widget( $args, $instance ) {
32
  extract( $args );
@@ -50,8 +49,8 @@ class MetaSlider_Widget extends WP_Widget {
50
  *
51
  * @see WP_Widget::update()
52
  *
53
- * @param array $new_instance Values just sent to be saved.
54
- * @param array $old_instance Previously saved values from database.
55
  *
56
  * @return array Updated safe values to be saved.
57
  */
@@ -68,7 +67,7 @@ class MetaSlider_Widget extends WP_Widget {
68
  *
69
  * @see WP_Widget::form()
70
  *
71
- * @param array $instance Previously saved values from database.
72
  */
73
  public function form( $instance ) {
74
  $selected_slider = 0;
1
  <?php
 
 
 
 
2
  if ( ! defined( 'ABSPATH' ) ) {
3
  exit; // disable direct access
4
  }
5
 
6
+ /**
7
+ * Adds MetaSlider widget.
8
+ */
9
  class MetaSlider_Widget extends WP_Widget {
10
 
11
  /**
24
  *
25
  * @see WP_Widget::widget()
26
  *
27
+ * @param array $args Widget arguments.
28
+ * @param array $instance Saved values from database.
29
  */
30
  public function widget( $args, $instance ) {
31
  extract( $args );
49
  *
50
  * @see WP_Widget::update()
51
  *
52
+ * @param array $new_instance Values just sent to be saved.
53
+ * @param array $old_instance Previously saved values from database.
54
  *
55
  * @return array Updated safe values to be saved.
56
  */
67
  *
68
  * @see WP_Widget::form()
69
  *
70
+ * @param array $instance Previously saved values from database.
71
  */
72
  public function form( $instance ) {
73
  $selected_slider = 0;
inc/slide/metaslide.class.php CHANGED
@@ -26,14 +26,17 @@ class MetaSlide {
26
 
27
  /**
28
  * Set the slide
 
 
29
  */
30
  public function set_slide( $id ) {
31
  $this->slide = get_post( $id );
32
  }
33
 
34
-
35
  /**
36
  * Set the slide (that this slide belongs to)
 
 
37
  */
38
  public function set_slider( $id ) {
39
  $this->slider = get_post( $id );
@@ -44,6 +47,8 @@ class MetaSlide {
44
  /**
45
  * Return the HTML for the slide
46
  *
 
 
47
  * @return array complete array of slides
48
  */
49
  public function get_slide( $slide_id, $slider_id ) {
@@ -52,9 +57,12 @@ class MetaSlide {
52
  return $this->get_slide_html();
53
  }
54
 
55
-
56
  /**
57
  * Save the slide
 
 
 
 
58
  */
59
  public function save_slide( $slide_id, $slider_id, $fields ) {
60
  $this->set_slider( $slider_id );
@@ -72,7 +80,6 @@ class MetaSlide {
72
  * @return array|WP_error The status message and if success, the thumbnail link
73
  */
74
  protected function update_slide_image($slide_id, $image_id) {
75
-
76
  /*
77
  * Verifies that the $image_id is an actual image
78
  */
@@ -153,9 +160,12 @@ class MetaSlide {
153
 
154
  }
155
 
156
-
157
  /**
158
  * Check if a slide already exists in a slideshow
 
 
 
 
159
  */
160
  public function slide_exists_in_slideshow( $slider_id, $slide_id ) {
161
 
@@ -163,9 +173,12 @@ class MetaSlide {
163
 
164
  }
165
 
166
-
167
  /**
168
  * Check if a slide has already been assigned to a slideshow
 
 
 
 
169
  */
170
  public function slide_is_unassigned_or_image_slide( $slider_id, $slide_id ) {
171
 
@@ -179,7 +192,7 @@ class MetaSlide {
179
  /**
180
  * Build image HTML
181
  *
182
- * @param array $attributes
183
  * @return string image HTML
184
  */
185
  public function build_image_tag( $attributes ) {
@@ -204,7 +217,8 @@ class MetaSlide {
204
  /**
205
  * Build image HTML
206
  *
207
- * @param array $attributes
 
208
  * @return string image HTML
209
  */
210
  public function build_anchor_tag( $attributes, $content ) {
@@ -228,9 +242,9 @@ class MetaSlide {
228
  * Create a new post for a slide. Tag a featured image to it.
229
  *
230
  * @since 3.4
231
- * @param string $media_id - Media File ID to use for the slide
232
- * @param string $type - the slide type identifier
233
- * @param int $slider_id - the parent slideshow ID
234
  * @return int $slide_id - the ID of the newly created slide
235
  */
236
  public function insert_slide($media_id, $type, $slider_id) {
@@ -326,6 +340,7 @@ class MetaSlide {
326
 
327
  /**
328
  * Generate the HTML for the delete button
 
329
  * @return string
330
  */
331
  public function get_delete_button_html() {
@@ -334,6 +349,7 @@ class MetaSlide {
334
 
335
  /**
336
  * Generate the HTML for the undelete button
 
337
  * @return string
338
  */
339
  public function get_undelete_button_html() {
@@ -342,6 +358,7 @@ class MetaSlide {
342
 
343
  /**
344
  * Generate the HTML for the perminant button
 
345
  * @return string
346
  */
347
  public function get_perminant_delete_button_html() {
@@ -353,6 +370,7 @@ class MetaSlide {
353
 
354
  /**
355
  * Generates the HTML for the update slide image button
 
356
  * @return string The html for the edit button on a slide image
357
  */
358
  public function get_update_image_button_html() {
@@ -439,6 +457,10 @@ class MetaSlide {
439
  * If the meta doesn't exist, add it
440
  * If the meta exists, but the value is empty, delete it
441
  * If the meta exists, update it
 
 
 
 
442
  */
443
  public function add_or_update_or_delete_meta( $post_id, $name, $value ) {
444
 
@@ -462,7 +484,8 @@ class MetaSlide {
462
  /**
463
  * Detect a [metaslider] or [ml-slider] shortcode in the slide caption, which has an ID that matches the current slideshow ID
464
  *
465
- * @param $content string
 
466
  */
467
  protected function detect_self_metaslider_shortcode( $content ) {
468
  $pattern = get_shortcode_regex();
26
 
27
  /**
28
  * Set the slide
29
+ *
30
+ * @param int $id ID
31
  */
32
  public function set_slide( $id ) {
33
  $this->slide = get_post( $id );
34
  }
35
 
 
36
  /**
37
  * Set the slide (that this slide belongs to)
38
+ *
39
+ * @param int $id ID
40
  */
41
  public function set_slider( $id ) {
42
  $this->slider = get_post( $id );
47
  /**
48
  * Return the HTML for the slide
49
  *
50
+ * @param int $slide_id Slide ID
51
+ * @param int $slider_id Slider ID
52
  * @return array complete array of slides
53
  */
54
  public function get_slide( $slide_id, $slider_id ) {
57
  return $this->get_slide_html();
58
  }
59
 
 
60
  /**
61
  * Save the slide
62
+ *
63
+ * @param int $slide_id Slide ID
64
+ * @param int $slider_id Slider ID
65
+ * @param string $fields SLider fields
66
  */
67
  public function save_slide( $slide_id, $slider_id, $fields ) {
68
  $this->set_slider( $slider_id );
80
  * @return array|WP_error The status message and if success, the thumbnail link
81
  */
82
  protected function update_slide_image($slide_id, $image_id) {
 
83
  /*
84
  * Verifies that the $image_id is an actual image
85
  */
160
 
161
  }
162
 
 
163
  /**
164
  * Check if a slide already exists in a slideshow
165
+ *
166
+ * @param string $slider_id Slider ID
167
+ * @param string $slide_id SLide ID
168
+ * @return string
169
  */
170
  public function slide_exists_in_slideshow( $slider_id, $slide_id ) {
171
 
173
 
174
  }
175
 
 
176
  /**
177
  * Check if a slide has already been assigned to a slideshow
178
+ *
179
+ * @param string $slider_id Slider ID
180
+ * @param string $slide_id SLide ID
181
+ * @return string
182
  */
183
  public function slide_is_unassigned_or_image_slide( $slider_id, $slide_id ) {
184
 
192
  /**
193
  * Build image HTML
194
  *
195
+ * @param array $attributes Anchor attributes
196
  * @return string image HTML
197
  */
198
  public function build_image_tag( $attributes ) {
217
  /**
218
  * Build image HTML
219
  *
220
+ * @param array $attributes Anchor attributes
221
+ * @param string $content Anchor contents
222
  * @return string image HTML
223
  */
224
  public function build_anchor_tag( $attributes, $content ) {
242
  * Create a new post for a slide. Tag a featured image to it.
243
  *
244
  * @since 3.4
245
+ * @param string $media_id - Media File ID to use for the slide
246
+ * @param string $type - the slide type identifier
247
+ * @param int $slider_id - the parent slideshow ID
248
  * @return int $slide_id - the ID of the newly created slide
249
  */
250
  public function insert_slide($media_id, $type, $slider_id) {
340
 
341
  /**
342
  * Generate the HTML for the delete button
343
+ *
344
  * @return string
345
  */
346
  public function get_delete_button_html() {
349
 
350
  /**
351
  * Generate the HTML for the undelete button
352
+ *
353
  * @return string
354
  */
355
  public function get_undelete_button_html() {
358
 
359
  /**
360
  * Generate the HTML for the perminant button
361
+ *
362
  * @return string
363
  */
364
  public function get_perminant_delete_button_html() {
370
 
371
  /**
372
  * Generates the HTML for the update slide image button
373
+ *
374
  * @return string The html for the edit button on a slide image
375
  */
376
  public function get_update_image_button_html() {
457
  * If the meta doesn't exist, add it
458
  * If the meta exists, but the value is empty, delete it
459
  * If the meta exists, update it
460
+ *
461
+ * @param int $post_id Post ID
462
+ * @param string $name SLider Name
463
+ * @param int $value Slaider Value
464
  */
465
  public function add_or_update_or_delete_meta( $post_id, $name, $value ) {
466
 
484
  /**
485
  * Detect a [metaslider] or [ml-slider] shortcode in the slide caption, which has an ID that matches the current slideshow ID
486
  *
487
+ * @param string $content Content for shortcode
488
+ * @return boolean
489
  */
490
  protected function detect_self_metaslider_shortcode( $content ) {
491
  $pattern = get_shortcode_regex();
inc/slide/metaslide.image.class.php CHANGED
@@ -25,8 +25,8 @@ class MetaImageSlide extends MetaSlide {
25
  * Currently this is used via an ajax call, but plans to keep this only called
26
  * by PHP methods, such as in an import situation.
27
  *
28
- * @param int $slider_id The id of the slider
29
- * @param array $data The data information for the new slide
30
  *
31
  * @return int | WP_error The status message and if success, the count
32
  */
@@ -59,8 +59,8 @@ class MetaImageSlide extends MetaSlide {
59
  * Adds a single slide.
60
  * TODO refactor and put this in a Slider class
61
  *
62
- * @param int $slider_id The id of the slider
63
- * @param array $data The data information for the new slide
64
  *
65
  * @return string | WP_error The status message and if success, echo string for now
66
  */
@@ -108,7 +108,12 @@ class MetaImageSlide extends MetaSlide {
108
  ), 401);
109
  }
110
 
111
- // TODO create a slide object class with data requirements and types
 
 
 
 
 
112
  function make_image_slide_data($image_id) {
113
  return array(
114
  'type' => 'image',
@@ -122,13 +127,11 @@ class MetaImageSlide extends MetaSlide {
122
 
123
  // TODO for now leave these out since it "echos" the slide...
124
  // if (is_wp_error($result)) {
125
- // return wp_send_json_error(array(
126
- // 'messages' => $result->get_error_messages()
127
- // ), 409);
128
  // }
129
-
130
  // return wp_send_json_success($result, 200);
131
-
132
  }
133
 
134
 
@@ -389,6 +392,7 @@ class MetaImageSlide extends MetaSlide {
389
  /**
390
  * Generate nivo slider markup
391
  *
 
392
  * @return string slide html
393
  */
394
  private function get_nivo_slider_markup( $slide ) {
@@ -423,6 +427,7 @@ class MetaImageSlide extends MetaSlide {
423
  /**
424
  * Generate flex slider markup
425
  *
 
426
  * @return string slide html
427
  */
428
  private function get_flex_slider_markup( $slide ) {
@@ -487,6 +492,10 @@ class MetaImageSlide extends MetaSlide {
487
  /**
488
  * Calculate the correct width (for vertical alignment) or top margin (for horizontal alignment)
489
  * so that images are never stretched above the height set in the slideshow settings
 
 
 
 
490
  */
491
  private function flex_smart_pad( $atts, $slide ) {
492
 
@@ -525,6 +534,7 @@ class MetaImageSlide extends MetaSlide {
525
  /**
526
  * Generate coin slider markup
527
  *
 
528
  * @return string slide html
529
  */
530
  private function get_coin_slider_markup( $slide ) {
@@ -559,6 +569,7 @@ class MetaImageSlide extends MetaSlide {
559
  /**
560
  * Generate responsive slides markup
561
  *
 
562
  * @return string slide html
563
  */
564
  private function get_responsive_slides_markup( $slide ) {
@@ -594,6 +605,8 @@ class MetaImageSlide extends MetaSlide {
594
 
595
  /**
596
  * Save
 
 
597
  */
598
  protected function save( $fields ) {
599
 
25
  * Currently this is used via an ajax call, but plans to keep this only called
26
  * by PHP methods, such as in an import situation.
27
  *
28
+ * @param int $slider_id The id of the slider
29
+ * @param array $data The data information for the new slide
30
  *
31
  * @return int | WP_error The status message and if success, the count
32
  */
59
  * Adds a single slide.
60
  * TODO refactor and put this in a Slider class
61
  *
62
+ * @param int $slider_id The id of the slider
63
+ * @param array $data The data information for the new slide
64
  *
65
  * @return string | WP_error The status message and if success, echo string for now
66
  */
108
  ), 401);
109
  }
110
 
111
+ /**
112
+ * TODO create a slide object class with data requirements and types
113
+ *
114
+ * @param int $image_id Image ID
115
+ * @return array
116
+ */
117
  function make_image_slide_data($image_id) {
118
  return array(
119
  'type' => 'image',
127
 
128
  // TODO for now leave these out since it "echos" the slide...
129
  // if (is_wp_error($result)) {
130
+ // return wp_send_json_error(array(
131
+ // 'messages' => $result->get_error_messages()
132
+ // ), 409);
133
  // }
 
134
  // return wp_send_json_success($result, 200);
 
135
  }
136
 
137
 
392
  /**
393
  * Generate nivo slider markup
394
  *
395
+ * @param string $slide html
396
  * @return string slide html
397
  */
398
  private function get_nivo_slider_markup( $slide ) {
427
  /**
428
  * Generate flex slider markup
429
  *
430
+ * @param string $slide html
431
  * @return string slide html
432
  */
433
  private function get_flex_slider_markup( $slide ) {
492
  /**
493
  * Calculate the correct width (for vertical alignment) or top margin (for horizontal alignment)
494
  * so that images are never stretched above the height set in the slideshow settings
495
+ *
496
+ * @param array $atts Attributes
497
+ * @param array $slide Slide details
498
+ * @return string
499
  */
500
  private function flex_smart_pad( $atts, $slide ) {
501
 
534
  /**
535
  * Generate coin slider markup
536
  *
537
+ * @param string $slide html
538
  * @return string slide html
539
  */
540
  private function get_coin_slider_markup( $slide ) {
569
  /**
570
  * Generate responsive slides markup
571
  *
572
+ * @param string $slide html
573
  * @return string slide html
574
  */
575
  private function get_responsive_slides_markup( $slide ) {
605
 
606
  /**
607
  * Save
608
+ *
609
+ * @param array $fields Fields to save
610
  */
611
  protected function save( $fields ) {
612
 
inc/slider/metaslider.class.php CHANGED
@@ -14,11 +14,14 @@ class MetaSlider {
14
 
15
  public $id = 0; // slider ID
16
  public $identifier = 0; // unique identifier
17
- public $slides = array(); //slides belonging to this slider
18
  public $settings = array(); // slider settings
19
 
20
  /**
21
  * Constructor
 
 
 
22
  */
23
  public function __construct( $id, $shortcode_settings ) {
24
  $this->id = $id;
@@ -56,7 +59,7 @@ class MetaSlider {
56
  /**
57
  * Return an individual setting
58
  *
59
- * @param string $name Name of the setting
60
  * @return string setting value or 'false'
61
  */
62
  public function get_setting( $name ) {
@@ -128,6 +131,7 @@ class MetaSlider {
128
 
129
  /**
130
  * The main query for extracting the slides for the slideshow
 
131
  * @return WP_Query
132
  */
133
  public function get_slides() {
@@ -248,7 +252,7 @@ class MetaSlider {
248
  */
249
  private function get_container_class() {
250
 
251
- //Add the version to the class name (if possible)
252
  $version_string = str_replace('.', '-', urlencode(METASLIDER_VERSION));
253
  $version_string .= defined('METASLIDERPRO_VERSION') ? ' ml-slider-pro-' . str_replace('.', '-', urlencode(METASLIDERPRO_VERSION)) : '';
254
  $class = "ml-slider-{$version_string} metaslider metaslider-{$this->get_setting('type')} metaslider-{$this->id} ml-slider";
@@ -321,15 +325,6 @@ class MetaSlider {
321
  $timer .= "\n };";
322
  $timer .= "\n timer_" . $identifier . "();";
323
 
324
- /*$timer = "\n var timer_{$this->identifier} = function() {
325
- if ( typeof window.jQuery === 'undefined' ) {
326
- window.setTimeout(timer_metaslider_{$this->identifier}, 100);
327
- } else {
328
- window.jQuery(function() { {$this->identifier}(window.jQuery) });
329
- }
330
- };
331
- timer_{$this->identifier}();";*/
332
-
333
  $init = apply_filters("metaslider_timer", $timer, $this->identifier);
334
 
335
  return $script . $init;
@@ -446,16 +441,24 @@ class MetaSlider {
446
 
447
  /**
448
  * Polyfill to handle the wp_add_inline_script() function.
 
 
 
 
 
449
  */
450
  public function wp_add_inline_script($handle, $data, $position = 'after') {
451
  if (function_exists('wp_add_inline_script')) return wp_add_inline_script($handle, $data, $position);
452
  global $wp_scripts;
453
  if (!$data) return false;
454
- if ('after' !== $position) $position = 'before';
455
 
456
- $script = (array) $wp_scripts->get_data($handle, $position);
457
- $script[] = $data;
458
- return $wp_scripts->add_data($handle, $position, $script);
 
 
 
 
459
  }
460
 
461
  /**
14
 
15
  public $id = 0; // slider ID
16
  public $identifier = 0; // unique identifier
17
+ public $slides = array(); // slides belonging to this slider
18
  public $settings = array(); // slider settings
19
 
20
  /**
21
  * Constructor
22
+ *
23
+ * @param int $id Slider ID
24
+ * @param array $shortcode_settings Short code settings
25
  */
26
  public function __construct( $id, $shortcode_settings ) {
27
  $this->id = $id;
59
  /**
60
  * Return an individual setting
61
  *
62
+ * @param string $name Name of the setting
63
  * @return string setting value or 'false'
64
  */
65
  public function get_setting( $name ) {
131
 
132
  /**
133
  * The main query for extracting the slides for the slideshow
134
+ *
135
  * @return WP_Query
136
  */
137
  public function get_slides() {
252
  */
253
  private function get_container_class() {
254
 
255
+ // Add the version to the class name (if possible)
256
  $version_string = str_replace('.', '-', urlencode(METASLIDER_VERSION));
257
  $version_string .= defined('METASLIDERPRO_VERSION') ? ' ml-slider-pro-' . str_replace('.', '-', urlencode(METASLIDERPRO_VERSION)) : '';
258
  $class = "ml-slider-{$version_string} metaslider metaslider-{$this->get_setting('type')} metaslider-{$this->id} ml-slider";
325
  $timer .= "\n };";
326
  $timer .= "\n timer_" . $identifier . "();";
327
 
 
 
 
 
 
 
 
 
 
328
  $init = apply_filters("metaslider_timer", $timer, $this->identifier);
329
 
330
  return $script . $init;
441
 
442
  /**
443
  * Polyfill to handle the wp_add_inline_script() function.
444
+ *
445
+ * @param string $handle [description]
446
+ * @param array $data [description]
447
+ * @param string $position [description]
448
+ * @return array
449
  */
450
  public function wp_add_inline_script($handle, $data, $position = 'after') {
451
  if (function_exists('wp_add_inline_script')) return wp_add_inline_script($handle, $data, $position);
452
  global $wp_scripts;
453
  if (!$data) return false;
 
454
 
455
+ // First fetch any existing scripts
456
+ $script = $wp_scripts->get_data($handle, 'data');
457
+
458
+ // Append to the end
459
+ $script .= $data;
460
+
461
+ return $wp_scripts->add_data($handle, 'data', $script);
462
  }
463
 
464
  /**
inc/slider/metaslider.coin.class.php CHANGED
@@ -17,7 +17,8 @@ class MetaCoinSlider extends MetaSlider {
17
  /**
18
  * Enable the parameters that are accepted by the slider
19
  *
20
- * @return array enabled parameters
 
21
  */
22
  protected function get_param( $param ) {
23
  $params = array(
17
  /**
18
  * Enable the parameters that are accepted by the slider
19
  *
20
+ * @param array $param Parameters
21
+ * @return boolean
22
  */
23
  protected function get_param( $param ) {
24
  $params = array(
inc/slider/metaslider.flex.class.php CHANGED
@@ -18,6 +18,12 @@ class MetaFlexSlider extends MetaSlider {
18
  *
19
  * @param integer $id slideshow ID
20
  */
 
 
 
 
 
 
21
  public function __construct( $id, $shortcode_settings ) {
22
  parent::__construct( $id, $shortcode_settings );
23
 
@@ -30,8 +36,8 @@ class MetaFlexSlider extends MetaSlider {
30
  /**
31
  * Adjust the slider parameters so they're comparible with the carousel mode
32
  *
33
- * @param array $options
34
- * @param integer $slider_id
35
  * @return array $options
36
  */
37
  public function enable_carousel_mode( $options, $slider_id ) {
@@ -56,8 +62,8 @@ class MetaFlexSlider extends MetaSlider {
56
  /**
57
  * Ensure CSS transitions are disabled when easing is enabled.
58
  *
59
- * @param array $options
60
- * @param integer $slider_id
61
  * @return array $options
62
  */
63
  public function manage_easing( $options, $slider_id ) {
@@ -78,12 +84,12 @@ class MetaFlexSlider extends MetaSlider {
78
  }
79
 
80
  /**
81
- * Add a 'nav-hidden' class to slideshows where the navigation is hidden.
82
  *
83
- * @param string $css
84
- * @param array $settings
85
- * @param integer $slider_id
86
- * @return string $css
87
  */
88
  public function remove_bottom_margin( $class, $id, $settings ) {
89
  if ( isset( $settings["navigation"] ) && $settings['navigation'] == 'false' ) {
@@ -99,9 +105,9 @@ class MetaFlexSlider extends MetaSlider {
99
  /**
100
  * Return css to ensure our slides are rendered correctly in the carousel
101
  *
102
- * @param string $css
103
- * @param array $settings
104
- * @param integer $slider_id
105
  * @return string $css
106
  */
107
  public function get_carousel_css( $css, $settings, $slider_id ) {
@@ -119,7 +125,7 @@ class MetaFlexSlider extends MetaSlider {
119
  /**
120
  * Enable the parameters that are accepted by the slider
121
  *
122
- * @param string $param
123
  * @return array|boolean enabled parameters (false if parameter doesn't exist)
124
  */
125
  protected function get_param( $param ) {
18
  *
19
  * @param integer $id slideshow ID
20
  */
21
+ /**
22
+ * Constructor
23
+ *
24
+ * @param int $id ID
25
+ * @param array $shortcode_settings Short code settings
26
+ */
27
  public function __construct( $id, $shortcode_settings ) {
28
  parent::__construct( $id, $shortcode_settings );
29
 
36
  /**
37
  * Adjust the slider parameters so they're comparible with the carousel mode
38
  *
39
+ * @param array $options Slider options
40
+ * @param integer $slider_id Slider ID
41
  * @return array $options
42
  */
43
  public function enable_carousel_mode( $options, $slider_id ) {
62
  /**
63
  * Ensure CSS transitions are disabled when easing is enabled.
64
  *
65
+ * @param array $options Slider options
66
+ * @param integer $slider_id Slider ID
67
  * @return array $options
68
  */
69
  public function manage_easing( $options, $slider_id ) {
84
  }
85
 
86
  /**
87
+ * Add a 'nav-hidden' class to slideshows where the navigation is hidde
88
  *
89
+ * @param string $class Slider class
90
+ * @param int $id Slider ID
91
+ * @param array $settings Slider Settings
92
+ * @return string
93
  */
94
  public function remove_bottom_margin( $class, $id, $settings ) {
95
  if ( isset( $settings["navigation"] ) && $settings['navigation'] == 'false' ) {
105
  /**
106
  * Return css to ensure our slides are rendered correctly in the carousel
107
  *
108
+ * @param string $css Css
109
+ * @param array $settings Css settings
110
+ * @param integer $slider_id SliderID
111
  * @return string $css
112
  */
113
  public function get_carousel_css( $css, $settings, $slider_id ) {
125
  /**
126
  * Enable the parameters that are accepted by the slider
127
  *
128
+ * @param string $param Parameters
129
  * @return array|boolean enabled parameters (false if parameter doesn't exist)
130
  */
131
  protected function get_param( $param ) {
inc/slider/metaslider.nivo.class.php CHANGED
@@ -15,6 +15,9 @@ class MetaNivoSlider extends MetaSlider {
15
 
16
  /**
17
  * Constructor
 
 
 
18
  */
19
  public function __construct( $id, $shortcode_settings ) {
20
  parent::__construct( $id, $shortcode_settings );
@@ -26,6 +29,10 @@ class MetaNivoSlider extends MetaSlider {
26
  * Other slides use "AutoPlay = true" (true autoplays the slideshow)
27
  * Nivo slider uses "ManualAvance = false" (ie, false autoplays the slideshow)
28
  * Take care of the manualAdvance parameter here.
 
 
 
 
29
  */
30
  public function set_autoplay_parameter( $options, $slider_id, $settings ) {
31
  global $wp_filter;
@@ -48,6 +55,7 @@ class MetaNivoSlider extends MetaSlider {
48
  * Detect whether thie slide supports the requested setting,
49
  * and if so, the name to use for the setting in the Javascript parameters
50
  *
 
51
  * @return false (parameter not supported) or parameter name (parameter supported)
52
  */
53
  protected function get_param( $param ) {
@@ -74,7 +82,7 @@ class MetaNivoSlider extends MetaSlider {
74
  }
75
 
76
  /**
77
- *
78
  */
79
  public function enqueue_scripts() {
80
  parent::enqueue_scripts();
@@ -86,7 +94,9 @@ class MetaNivoSlider extends MetaSlider {
86
  }
87
 
88
  /**
 
89
  *
 
90
  */
91
  private function get_theme() {
92
  $theme = $this->get_setting( 'theme' );
15
 
16
  /**
17
  * Constructor
18
+ *
19
+ * @param int $id ID
20
+ * @param array $shortcode_settings Short Settings
21
  */
22
  public function __construct( $id, $shortcode_settings ) {
23
  parent::__construct( $id, $shortcode_settings );
29
  * Other slides use "AutoPlay = true" (true autoplays the slideshow)
30
  * Nivo slider uses "ManualAvance = false" (ie, false autoplays the slideshow)
31
  * Take care of the manualAdvance parameter here.
32
+ *
33
+ * @param array $options Options for autoplay
34
+ * @param array $slider_id Slider ID
35
+ * @param array $settings Settings
36
  */
37
  public function set_autoplay_parameter( $options, $slider_id, $settings ) {
38
  global $wp_filter;
55
  * Detect whether thie slide supports the requested setting,
56
  * and if so, the name to use for the setting in the Javascript parameters
57
  *
58
+ * @param array $param Parameters
59
  * @return false (parameter not supported) or parameter name (parameter supported)
60
  */
61
  protected function get_param( $param ) {
82
  }
83
 
84
  /**
85
+ * enqueue scripts
86
  */
87
  public function enqueue_scripts() {
88
  parent::enqueue_scripts();
94
  }
95
 
96
  /**
97
+ * Get the theme
98
  *
99
+ * @return string
100
  */
101
  private function get_theme() {
102
  $theme = $this->get_setting( 'theme' );
inc/slider/metaslider.responsive.class.php CHANGED
@@ -17,6 +17,7 @@ class MetaResponsiveSlider extends MetaSlider {
17
  * Detect whether thie slide supports the requested setting,
18
  * and if so, the name to use for the setting in the Javascript parameters
19
  *
 
20
  * @return false (parameter not supported) or parameter name (parameter supported)
21
  */
22
  protected function get_param( $param ) {
17
  * Detect whether thie slide supports the requested setting,
18
  * and if so, the name to use for the setting in the Javascript parameters
19
  *
20
+ * @param array $param Parameters
21
  * @return false (parameter not supported) or parameter name (parameter supported)
22
  */
23
  protected function get_param( $param ) {
languages/ml-slider.pot CHANGED
@@ -17,327 +17,335 @@ msgstr ""
17
  "X-Poedit-SearchPathExcluded-0: *.js\n"
18
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
 
20
- #: src/admin/Notices.php:68
21
  msgid "Always backup WordPress to avoid losing your site!"
22
  msgstr ""
23
 
24
- #: src/admin/Notices.php:69
25
  msgid "UpdraftPlus is the world's #1 backup plugin from the makers of MetaSlider. Backup to the cloud, on a schedule and restore with 1 click!"
26
  msgstr ""
27
 
28
- #: src/admin/Notices.php:79
29
  msgid "Keyy: Instant and secure logon with a wave of your phone"
30
  msgstr ""
31
 
32
- #: src/admin/Notices.php:80
33
  msgid "No more forgotten passwords. Find out more about our revolutionary new WordPress plugin"
34
  msgstr ""
35
 
36
- #: src/admin/Notices.php:90
37
  msgid "Save Time and Money. Manage multiple WordPress sites from one location."
38
  msgstr ""
39
 
40
- #: src/admin/Notices.php:91
41
  msgid "UpdraftCentral is a highly efficient way to take backup, update and manage multiple WP sites from one location"
42
  msgstr ""
43
 
44
- #: src/admin/Notices.php:101
45
  msgid "Like MetaSlider and have a minute to spare?"
46
  msgstr ""
47
 
48
- #: src/admin/Notices.php:102
49
  msgid "Please help MetaSlider by giving a positive review at wordpress.org."
50
  msgstr ""
51
 
52
- #: src/admin/Notices.php:111
53
  msgid "Help us to get even better MetaSlider"
54
  msgstr ""
55
 
56
- #: src/admin/Notices.php:112
57
  msgid "Let us know how you use MetaSlider by answering 4 simple questions. We will make MetaSlider to suit you better."
58
  msgstr ""
59
 
60
- #: src/admin/Notices.php:121
61
  msgid "Spice up your site with animated layers and video slides"
62
  msgstr ""
63
 
64
- #: src/admin/Notices.php:122
65
  msgid "With the MetaSlider Add-on pack you can give your slideshows a professional look!"
66
  msgstr ""
67
 
68
- #: src/admin/Notices.php:131
69
  msgid "Increase your revenue and conversion with video slides and many more features"
70
  msgstr ""
71
 
72
- #: src/admin/Notices.php:132
73
  msgid "Upgrade today to benefit from many more premium features. Find out more."
74
  msgstr ""
75
 
76
- #: src/admin/Notices.php:141
77
  msgid "Can you translate? Want to improve MetaSlider for speakers of your language?"
78
  msgstr ""
79
 
80
- #: src/admin/Notices.php:142
81
  msgid "Please go here for instructions - it is easy."
82
  msgstr ""
83
 
84
- #: src/admin/Notices.php:152
85
  msgid "Thank you for installing MetaSlider"
86
  msgstr ""
87
 
88
- #: src/admin/Notices.php:153
89
  msgid "Supercharge & secure your WordPress site with our other top plugins:"
90
  msgstr ""
91
 
92
- #: src/admin/Notices.php:170
93
  msgid "We’re making changes and need your help."
94
  msgstr ""
95
 
96
- #: src/admin/Notices.php:171
97
  msgid "If you could spare a minute, we would like to ask you 4 easy questions about how you use MetaSlider. Your voice is important to us!"
98
  msgstr ""
99
 
100
- #: src/admin/Notices.php:176
101
  msgid "forever"
102
  msgstr ""
103
 
104
- #: src/admin/Notices.php:190
105
  msgid "Black Friday - 50% off the MetaSlider Add-on Pack until November 30th"
106
  msgstr ""
107
 
108
- #: src/admin/Notices.php:191, src/admin/Notices.php:204, src/admin/Notices.php:217, src/admin/Notices.php:230, src/admin/Notices.php:243
109
  msgid "To benefit, use this discount code:"
110
  msgstr ""
111
 
112
- #: src/admin/Notices.php:199, src/admin/Notices.php:212, src/admin/Notices.php:225, src/admin/Notices.php:238, src/admin/Notices.php:251
113
  msgid "until next year"
114
  msgstr ""
115
 
116
- #: src/admin/Notices.php:203
117
  msgid "Christmas sale - 50% off the MetaSlider Add-on Pack until December 25th"
118
  msgstr ""
119
 
120
- #: src/admin/Notices.php:216
121
  msgid "Happy New Year - 50% off the MetaSlider Add-on Pack until January 1st"
122
  msgstr ""
123
 
124
- #: src/admin/Notices.php:229
125
  msgid "Spring sale - 50% off the MetaSlider Add-on Pack until April 31st"
126
  msgstr ""
127
 
128
- #: src/admin/Notices.php:242
129
  msgid "Summer sale - 50% off the MetaSlider Add-on Pack until July 31st"
130
  msgstr ""
131
 
132
- #: src/admin/Notices.php:265
133
  msgid "Increase your conversion rate with video slides and many more options."
134
  msgstr ""
135
 
136
- #: src/admin/Notices.php:272
137
  msgid "offers unparalleled choice and flexibility, allowing you to select one or a combination of over a dozen optimization options."
138
  msgstr ""
139
 
140
- #: src/admin/Notices.php:279
141
  msgid "provides personal support, the ability to copy sites, more storage destinations, encrypted backups for security, multiple backup destinations, better reporting, no adverts and plenty more."
142
  msgstr ""
143
 
144
- #: src/admin/Notices.php:286
145
  msgid "simplifies backups and restoration. It is the world's highest ranking and most popular scheduled backup plugin, with over a million currently-active installs."
146
  msgstr ""
147
 
148
- #: src/admin/Notices.php:293
149
  msgid "auto-clean your WordPress database so that it runs at maximum efficiency."
150
  msgstr ""
151
 
152
- #: src/admin/Notices.php:300
153
  msgid "Simple & secure login with a wave of your phone."
154
  msgstr ""
155
 
156
- #: src/admin/Notices.php:307
157
  msgid "is a highly efficient way to manage, update and backup multiple websites from one place."
158
  msgstr ""
159
 
160
- #: src/admin/Notices.php:512
161
  msgid "weeks"
162
  msgstr ""
163
 
164
- #: src/admin/Notices.php:527
165
  msgid "Get UpdraftPlus"
166
  msgstr ""
167
 
168
- #: src/admin/Notices.php:528
169
  msgid "Get Keyy"
170
  msgstr ""
171
 
172
- #: src/admin/Notices.php:529
173
  msgid "Optimize today"
174
  msgstr ""
175
 
176
- #: src/admin/Notices.php:530
177
  msgid "Get UpdraftCentral"
178
  msgstr ""
179
 
180
- #: src/admin/Notices.php:531
181
  msgid "Let's Start"
182
  msgstr ""
183
 
184
- #: src/admin/Notices.php:532
185
  msgid "Review MetaSlider"
186
  msgstr ""
187
 
188
- #: src/admin/Notices.php:533
189
  msgid "Find out more"
190
  msgstr ""
191
 
192
- #: src/admin/Notices.php:534
193
  msgid "Sign up"
194
  msgstr ""
195
 
196
- #: src/admin/Notices.php:535
197
  msgid "Go there"
198
  msgstr ""
199
 
200
- #: src/admin/Notices.php:537
201
  msgid "Read more"
202
  msgstr ""
203
 
204
- #: src/admin/Notices.php:550, src/admin/Tour.php:119, src/inc/slide/metaslide.class.php:113, src/inc/slide/metaslide.image.class.php:107, src/ml-slider.php:615, src/ml-slider.php:661
205
  msgid "The security check failed. Please refresh the page and try again."
206
  msgstr ""
207
 
208
- #: src/admin/Notices.php:556
209
  msgid "This item does not exist. Please refresh the page and try again."
210
  msgstr ""
211
 
212
- #: src/admin/Notices.php:569
213
  msgid "The option was successfully updated"
214
  msgstr ""
215
 
216
- #: src/admin/Notices.php:622
217
  msgid "The requested data does not exist."
218
  msgstr ""
219
 
220
- #: src/admin/Notices.php:640
221
  msgid "The attempt to update the option failed."
222
  msgstr ""
223
 
224
- #: src/admin/Pages.php:71, src/inc/slide/metaslide.image.class.php:229
225
  msgid "URL"
226
  msgstr ""
227
 
228
- #: src/admin/Pages.php:72, src/inc/slide/metaslide.image.class.php:228
229
  msgid "Caption"
230
  msgstr ""
231
 
232
- #: src/admin/Pages.php:73, src/inc/slide/metaslide.image.class.php:231
233
  msgid "New Window"
234
  msgstr ""
235
 
236
- #: src/admin/Pages.php:74
237
  msgid "Are you sure?"
238
  msgstr ""
239
 
240
- #: src/admin/Pages.php:75
241
  msgid "Undo"
242
  msgstr ""
243
 
244
- #: src/admin/Pages.php:76
245
  msgid "Slide restored"
246
  msgstr ""
247
 
248
- #: src/admin/Pages.php:77
249
  msgid "Slide deleted"
250
  msgstr ""
251
 
252
- #: src/admin/Pages.php:78
 
 
 
 
 
 
 
 
253
  msgid "Press to undo"
254
  msgstr ""
255
 
256
- #: src/admin/Pages.php:80
257
  msgid "Select replacement image"
258
  msgstr ""
259
 
260
- #: src/admin/Pages.php:88
261
  msgid "Caution: This setting is for advanced developers only. If you're unsure, leave it checked."
262
  msgstr ""
263
 
264
- #: src/admin/Tour.php:38
265
  msgid "Welcome"
266
  msgstr ""
267
 
268
- #: src/admin/Tour.php:39
269
  msgid "Thanks for using the MetaSlider WordPress plugin. It looks like you don’t have any slideshows yet! To get started, click above to add your first one."
270
  msgstr ""
271
 
272
- #: src/admin/Tour.php:45, src/ml-slider.php:1010
273
  msgid "Learn More"
274
  msgstr ""
275
 
276
- #: src/admin/Tour.php:46, src/inc/slider/metaslider.class.php:109
277
  msgid "Next"
278
  msgstr ""
279
 
280
- #: src/admin/Tour.php:47
281
  msgid "Skip this step"
282
  msgstr ""
283
 
284
- #: src/admin/Tour.php:51
285
  msgid "Add A Slide"
286
  msgstr ""
287
 
288
- #: src/admin/Tour.php:52
289
  msgid "Congratulations! Now that you've created a slideshow, click here to add a slide."
290
  msgstr ""
291
 
292
- #: src/admin/Tour.php:55
293
  msgid "Select Slide Type"
294
  msgstr ""
295
 
296
- #: src/admin/Tour.php:56
297
  msgid "Premium users that have the Add-on Pack activated can access additional slide types!"
298
  msgstr ""
299
 
300
- #: src/admin/Tour.php:59
301
  msgid "Select Media"
302
  msgstr ""
303
 
304
- #: src/admin/Tour.php:60
305
  msgid "After you have selected your media from the left, click below to continue."
306
  msgstr ""
307
 
308
- #: src/admin/Tour.php:63, src/ml-slider.php:1338
309
  msgid "Preview Slideshow"
310
  msgstr ""
311
 
312
- #: src/admin/Tour.php:64
313
  msgid "Now that you have some slides set, you can preview your slideshow by clicking here."
314
  msgstr ""
315
 
316
- #: src/admin/Tour.php:67
317
  msgid "Adjust Settings"
318
  msgstr ""
319
 
320
- #: src/admin/Tour.php:68
321
  msgid "If you need to adjust the settings for this slideshow, you may do so here."
322
  msgstr ""
323
 
324
- #: src/admin/Tour.php:71
325
  msgid "Shortcode Usage"
326
  msgstr ""
327
 
328
- #: src/admin/Tour.php:72
329
  msgid "You are all set! If you want to add the slideshow to a post, you may use this shortcode."
330
  msgstr ""
331
 
332
- #: src/admin/Tour.php:76
333
  msgid "Congratulations!"
334
  msgstr ""
335
 
336
- #: src/admin/Tour.php:77
337
  msgid "You've completed the tour and are ready to add great slideshows to your website. Don't forget, if you want your slideshows to really stand out, pick up the add-on pack today. "
338
  msgstr ""
339
 
340
- #: src/admin/Tour.php:126
341
  msgid "This method does not exist. Please refresh the page and try again."
342
  msgstr ""
343
 
@@ -349,251 +357,251 @@ msgstr ""
349
  msgid "Logo"
350
  msgstr ""
351
 
352
- #: src/admin/views/pages/upgrade.php:14
353
  msgid "Comparison Chart"
354
  msgstr ""
355
 
356
- #: src/admin/views/pages/upgrade.php:19, src/admin/views/pages/upgrade.php:20
357
  msgid "logo"
358
  msgstr ""
359
 
360
- #: src/admin/views/pages/upgrade.php:19
361
  msgid "free"
362
  msgstr ""
363
 
364
- #: src/admin/views/pages/upgrade.php:20, src/ml-slider.php:310, src/ml-slider.php:1901
365
  msgid "Add-ons"
366
  msgstr ""
367
 
368
- #: src/admin/views/pages/upgrade.php:20
369
  msgid "pro"
370
  msgstr ""
371
 
372
- #: src/admin/views/pages/upgrade.php:26, src/admin/views/pages/upgrade.php:103
373
  msgid "Installed"
374
  msgstr ""
375
 
376
- #: src/admin/views/pages/upgrade.php:27, src/admin/views/pages/upgrade.php:104
377
  msgid "Upgrade now"
378
  msgstr ""
379
 
380
- #: src/admin/views/pages/upgrade.php:31
381
  msgid "Create unlimited slideshows"
382
  msgstr ""
383
 
384
- #: src/admin/views/pages/upgrade.php:32
385
  msgid "Create and manage as many slideshows as you need."
386
  msgstr ""
387
 
388
- #: src/admin/views/pages/upgrade.php:33, src/admin/views/pages/upgrade.php:34, src/admin/views/pages/upgrade.php:40, src/admin/views/pages/upgrade.php:41, src/admin/views/pages/upgrade.php:47, src/admin/views/pages/upgrade.php:48, src/admin/views/pages/upgrade.php:54, src/admin/views/pages/upgrade.php:55, src/admin/views/pages/upgrade.php:62, src/admin/views/pages/upgrade.php:69, src/admin/views/pages/upgrade.php:76, src/admin/views/pages/upgrade.php:83, src/admin/views/pages/upgrade.php:90, src/admin/views/pages/upgrade.php:97
389
  msgid "Yes"
390
  msgstr ""
391
 
392
- #: src/admin/views/pages/upgrade.php:38
393
  msgid "Multiple slideshow types"
394
  msgstr ""
395
 
396
- #: src/admin/views/pages/upgrade.php:39
397
  msgid "Including %s, %s and we will soon be adding more."
398
  msgstr ""
399
 
400
- #: src/admin/views/pages/upgrade.php:45
401
  msgid "Regular updates"
402
  msgstr ""
403
 
404
- #: src/admin/views/pages/upgrade.php:46
405
  msgid "Our word to keep %s compatible with the latest versions of %s."
406
  msgstr ""
407
 
408
- #: src/admin/views/pages/upgrade.php:52
409
  msgid "Intelligent image cropping"
410
  msgstr ""
411
 
412
- #: src/admin/views/pages/upgrade.php:53
413
  msgid "Unique %s functionality ensures your slides are perfectly resized."
414
  msgstr ""
415
 
416
- #: src/admin/views/pages/upgrade.php:59
417
  msgid "Thumbnail navigation"
418
  msgstr ""
419
 
420
- #: src/admin/views/pages/upgrade.php:60
421
  msgid "Easily allow users to navigate your slideshows by thumbnails."
422
  msgstr ""
423
 
424
- #: src/admin/views/pages/upgrade.php:61, src/admin/views/pages/upgrade.php:68, src/admin/views/pages/upgrade.php:75, src/admin/views/pages/upgrade.php:82, src/admin/views/pages/upgrade.php:89, src/admin/views/pages/upgrade.php:96
425
  msgid "No"
426
  msgstr ""
427
 
428
- #: src/admin/views/pages/upgrade.php:66
429
  msgid "Add video slides"
430
  msgstr ""
431
 
432
- #: src/admin/views/pages/upgrade.php:67
433
  msgid "Easily include responsive high definition %s and %s videos."
434
  msgstr ""
435
 
436
- #: src/admin/views/pages/upgrade.php:73
437
  msgid "%s overlay slides"
438
  msgstr ""
439
 
440
- #: src/admin/views/pages/upgrade.php:74
441
  msgid "Create completely customized %s slides using the inline editor."
442
  msgstr ""
443
 
444
- #: src/admin/views/pages/upgrade.php:80
445
  msgid "Add slide layers"
446
  msgstr ""
447
 
448
- #: src/admin/views/pages/upgrade.php:81
449
  msgid "Add layers to your slides with over 50 available transition effects."
450
  msgstr ""
451
 
452
- #: src/admin/views/pages/upgrade.php:87
453
  msgid "Post feed slides"
454
  msgstr ""
455
 
456
- #: src/admin/views/pages/upgrade.php:88
457
  msgid "Easily build slides based on your %s posts."
458
  msgstr ""
459
 
460
- #: src/admin/views/pages/upgrade.php:94
461
  msgid "Premium support"
462
  msgstr ""
463
 
464
- #: src/admin/views/pages/upgrade.php:95
465
  msgid "Have your specific queries addressed directly by our experts"
466
  msgstr ""
467
 
468
- #: src/admin/views/pages/upgrade.php:114
469
  msgid "More Professional-Quality Plugins for your Website"
470
  msgstr ""
471
 
472
- #: src/admin/views/pages/upgrade.php:122
473
  msgid "%s – the ultimate protection for your site, hard work and business"
474
  msgstr ""
475
 
476
- #: src/admin/views/pages/upgrade.php:124
477
  msgid "If you’ve got a %s website, you need a backup."
478
  msgstr ""
479
 
480
- #: src/admin/views/pages/upgrade.php:125
481
  msgid "Hacking, server crashes, dodgy updates or simple user error can ruin everything."
482
  msgstr ""
483
 
484
- #: src/admin/views/pages/upgrade.php:126
485
  msgid "With %s, you can rest assured that if the worst does happen, it's no big deal. rather than losing everything, you can simply restore the backup and be up and running again in no time at all."
486
  msgstr ""
487
 
488
- #: src/admin/views/pages/upgrade.php:127
489
  msgid "You can also migrate your website with few clicks without hassle."
490
  msgstr ""
491
 
492
- #: src/admin/views/pages/upgrade.php:128
493
  msgid "With a long-standing reputation for excellence and outstanding reviews, it’s no wonder that %s is the world’s most popular %s backup plugin."
494
  msgstr ""
495
 
496
- #: src/admin/views/pages/upgrade.php:129, src/admin/views/pages/upgrade.php:141, src/admin/views/pages/upgrade.php:153, src/admin/views/pages/upgrade.php:165
497
  msgid "Try for free"
498
  msgstr ""
499
 
500
- #: src/admin/views/pages/upgrade.php:136
501
  msgid "%s Dashboard"
502
  msgstr ""
503
 
504
- #: src/admin/views/pages/upgrade.php:137
505
  msgid "%s – save hours managing multiple WP sites from one place"
506
  msgstr ""
507
 
508
- #: src/admin/views/pages/upgrade.php:138
509
  msgid "If you manage a few %s sites, you need UpdraftCentral."
510
  msgstr ""
511
 
512
- #: src/admin/views/pages/upgrade.php:139
513
  msgid "%s is a powerful tool that allows you to efficiently manage, update, backup and even restore multiple websites from just one location. You can also manage users and comments on all the sites at once, and through its central login feature, you can access each WP-dashboard with a single click."
514
  msgstr ""
515
 
516
- #: src/admin/views/pages/upgrade.php:140
517
  msgid "With a wide range of useful features, including automated backup schedules and sophisticated one click updates, UpdraftCentral is sure to boost to your productivity and save you time."
518
  msgstr ""
519
 
520
- #: src/admin/views/pages/upgrade.php:149
521
  msgid "%s – faster, fitter, cleaner WP sites for optimal performance."
522
  msgstr ""
523
 
524
- #: src/admin/views/pages/upgrade.php:150
525
  msgid "%s, the #1 optimization plugin, keeps your %s site at prime speed by cleaning the database without the need for %s."
526
  msgstr ""
527
 
528
- #: src/admin/views/pages/upgrade.php:151
529
  msgid "Incredibly simple to use, %s clears out old webpage revisions, spam, trash and unapproved comments, all of which take up megabytes of valuable space and leave your database sluggish and ultimately unfit for purpose."
530
  msgstr ""
531
 
532
- #: src/admin/views/pages/upgrade.php:152
533
  msgid "%s has a load of valuable features, including automated weekly clean up scheduling, the retention of a set number of weeks’ data, a display of how much space can be cleared, the enabling / disabling of trackbacks and comments for all published posts, and an ‘administrators only’ security feature."
534
  msgstr ""
535
 
536
- #: src/admin/views/pages/upgrade.php:160
537
  msgid "%s Two-Factor Authentication"
538
  msgstr ""
539
 
540
- #: src/admin/views/pages/upgrade.php:161
541
  msgid "%s – instant &amp; secure logins with a wave of your phone"
542
  msgstr ""
543
 
544
- #: src/admin/views/pages/upgrade.php:162
545
  msgid "%s is a unique 2-factor authentication plugin that allows you to log in to your website with just a wave of your smartphone. It represents the ultimate UX, doing away with the need for usernames, passwords and other 2FA tokens."
546
  msgstr ""
547
 
548
- #: src/admin/views/pages/upgrade.php:163
549
  msgid "Using innovative RSA public-key cryptography, %s is highly secure and prevents password-based hacking risks such as brute-forcing, key-logging, shoulder-surfing and connection sniffing."
550
  msgstr ""
551
 
552
- #: src/admin/views/pages/upgrade.php:164
553
  msgid "Logging in with %s is simple. Once users have installed the app onto their smartphone and secured it using a fingerprint or 4-number pin, they just open the app, point it at the moving on-screen barcode and voila!"
554
  msgstr ""
555
 
556
- #: src/inc/metaslider.widget.class.php:19
557
  msgid "MetaSlider"
558
  msgstr ""
559
 
560
- #: src/inc/metaslider.widget.class.php:109
561
  msgid "Title:"
562
  msgstr ""
563
 
564
- #: src/inc/metaslider.widget.class.php:112
565
  msgid "Select Slider:"
566
  msgstr ""
567
 
568
- #: src/inc/metaslider.widget.class.php:122, src/ml-slider.php:1847
569
  msgid "No slideshows found"
570
  msgstr ""
571
 
572
- #: src/inc/slide/metaslide.class.php:80
573
  msgid "The requested image does not exist. Please try again."
574
  msgstr ""
575
 
576
- #: src/inc/slide/metaslide.class.php:87
577
  msgid "The requested slide does not exist or something is wrong with the current image. Please try again or remove this slide."
578
  msgstr ""
579
 
580
- #: src/inc/slide/metaslide.class.php:96
581
  msgid "The image was successfully updated."
582
  msgstr ""
583
 
584
- #: src/inc/slide/metaslide.class.php:101
585
  msgid "There was an error updating the image. Please try again"
586
  msgstr ""
587
 
588
- #: src/inc/slide/metaslide.class.php:249
589
  msgid "There was an error while updating the database. Please try again."
590
  msgstr ""
591
 
592
- #: src/inc/slide/metaslide.class.php:332
593
  msgid "Delete Slide"
594
  msgstr ""
595
 
596
- #: src/inc/slide/metaslide.class.php:359, src/inc/slide/metaslide.class.php:359, src/inc/slide/metaslide.image.class.php:197, src/inc/slide/metaslide.image.class.php:197
597
  msgid "Update slide image"
598
  msgstr ""
599
 
@@ -605,606 +613,630 @@ msgstr ""
605
  msgid "This isn't an accepted image. Please try again."
606
  msgstr ""
607
 
608
- #: src/inc/slide/metaslide.image.class.php:178
609
  msgid "Image Slide"
610
  msgstr ""
611
 
612
- #: src/inc/slide/metaslide.image.class.php:235
613
  msgid "Warning: Image data does not exist. Please re-upload the image."
614
  msgstr ""
615
 
616
- #: src/inc/slide/metaslide.image.class.php:240
617
  msgid "Image Title Text"
618
  msgstr ""
619
 
620
- #: src/inc/slide/metaslide.image.class.php:240
621
  msgid "Image Alt Text"
622
  msgstr ""
623
 
624
- #: src/inc/slide/metaslide.image.class.php:244
625
  msgid "General"
626
  msgstr ""
627
 
628
- #: src/inc/slide/metaslide.image.class.php:248
629
  msgid "SEO"
630
  msgstr ""
631
 
632
- #: src/inc/slide/metaslide.image.class.php:261
633
  msgid "Crop Position"
634
  msgstr ""
635
 
636
- #: src/inc/slide/metaslide.image.class.php:264
637
  msgid "Top Left"
638
  msgstr ""
639
 
640
- #: src/inc/slide/metaslide.image.class.php:265
641
  msgid "Top Center"
642
  msgstr ""
643
 
644
- #: src/inc/slide/metaslide.image.class.php:266
645
  msgid "Top Right"
646
  msgstr ""
647
 
648
- #: src/inc/slide/metaslide.image.class.php:267
649
  msgid "Center Left"
650
  msgstr ""
651
 
652
- #: src/inc/slide/metaslide.image.class.php:268
653
  msgid "Center Center"
654
  msgstr ""
655
 
656
- #: src/inc/slide/metaslide.image.class.php:269
657
  msgid "Center Right"
658
  msgstr ""
659
 
660
- #: src/inc/slide/metaslide.image.class.php:270
661
  msgid "Bottom Left"
662
  msgstr ""
663
 
664
- #: src/inc/slide/metaslide.image.class.php:271
665
  msgid "Bottom Center"
666
  msgstr ""
667
 
668
- #: src/inc/slide/metaslide.image.class.php:272
669
  msgid "Bottom Right"
670
  msgstr ""
671
 
672
- #: src/inc/slide/metaslide.image.class.php:277
673
  msgid "Crop"
674
  msgstr ""
675
 
676
- #: src/inc/slider/metaslider.class.php:108
677
  msgid "Previous"
678
  msgstr ""
679
 
680
- #: src/ml-slider.php:433
681
  msgid "Image"
682
  msgstr ""
683
 
684
- #: src/ml-slider.php:434
685
  msgid "Add to slideshow"
686
  msgstr ""
687
 
688
- #: src/ml-slider.php:628
689
  msgid "The slide was successfully restored"
690
  msgstr ""
691
 
692
- #: src/ml-slider.php:643
693
  msgid "The attempt to restore the slide failed."
694
  msgstr ""
695
 
696
- #: src/ml-slider.php:674
697
  msgid "The slide was successfully trashed"
698
  msgstr ""
699
 
700
- #: src/ml-slider.php:851, src/ml-slider.php:1183
701
  msgid "New Slideshow"
702
  msgstr ""
703
 
704
- #: src/ml-slider.php:1010
705
  msgid "Get the add-on pack today!"
706
  msgstr ""
707
 
708
- #: src/ml-slider.php:1163
709
  msgid "Select Slideshow"
710
  msgstr ""
711
 
712
- #: src/ml-slider.php:1175
713
  msgid "or"
714
  msgstr ""
715
 
716
- #: src/ml-slider.php:1176
717
  msgid "Create a New Slideshow"
718
  msgstr ""
719
 
720
- #: src/ml-slider.php:1195, src/ml-slider.php:1197
721
  msgid "Add a New Slideshow"
722
  msgstr ""
723
 
724
- #: src/ml-slider.php:1290
725
  msgid "Trashed Slides"
726
  msgstr ""
727
 
728
- #: src/ml-slider.php:1291
729
  msgid "<a href=\"%s\">view active</a>"
730
  msgstr ""
731
 
732
- #: src/ml-slider.php:1300
733
  msgid "Add a New Slide"
734
  msgstr ""
735
 
736
- #: src/ml-slider.php:1302
737
  msgid "Add Slide"
738
  msgstr ""
739
 
740
- #: src/ml-slider.php:1329
741
  msgid "You are viewing slides that have been trashed, which will be automatically deleted in %s days. Click <a href=\"%s\">here</a> to view active slides."
742
  msgstr ""
743
 
744
- #: src/ml-slider.php:1340
745
  msgid "Preview"
746
  msgstr ""
747
 
748
- #: src/ml-slider.php:1343
749
  msgid "Save"
750
  msgstr ""
751
 
752
- #: src/ml-slider.php:1371, src/ml-slider.php:1629
753
  msgid "Width"
754
  msgstr ""
755
 
756
- #: src/ml-slider.php:1373
757
  msgid "Slideshow width"
758
  msgstr ""
759
 
760
- #: src/ml-slider.php:1374, src/ml-slider.php:1387, src/ml-slider.php:1556
761
  msgid "px"
762
  msgstr ""
763
 
764
- #: src/ml-slider.php:1384, src/ml-slider.php:1642
765
  msgid "Height"
766
  msgstr ""
767
 
768
- #: src/ml-slider.php:1386
769
  msgid "Slideshow height"
770
  msgstr ""
771
 
772
- #: src/ml-slider.php:1393
773
  msgid "Effect"
774
  msgstr ""
775
 
776
- #: src/ml-slider.php:1395
777
  msgid "Slide transition effect"
778
  msgstr ""
779
 
780
- #: src/ml-slider.php:1397, src/ml-slider.php:1561
781
  msgid "Random"
782
  msgstr ""
783
 
784
- #: src/ml-slider.php:1398
785
  msgid "Swirl"
786
  msgstr ""
787
 
788
- #: src/ml-slider.php:1399
789
  msgid "Rain"
790
  msgstr ""
791
 
792
- #: src/ml-slider.php:1400
793
  msgid "Straight"
794
  msgstr ""
795
 
796
- #: src/ml-slider.php:1401
797
  msgid "Slide Down"
798
  msgstr ""
799
 
800
- #: src/ml-slider.php:1402
801
  msgid "Slice Up"
802
  msgstr ""
803
 
804
- #: src/ml-slider.php:1403
805
  msgid "Slide Up Left"
806
  msgstr ""
807
 
808
- #: src/ml-slider.php:1404
809
  msgid "Slice Up Down"
810
  msgstr ""
811
 
812
- #: src/ml-slider.php:1405
813
  msgid "Slide Up Down Left"
814
  msgstr ""
815
 
816
- #: src/ml-slider.php:1406
817
  msgid "Fold"
818
  msgstr ""
819
 
820
- #: src/ml-slider.php:1407
821
  msgid "Fade"
822
  msgstr ""
823
 
824
- #: src/ml-slider.php:1408
825
  msgid "Slide In Right"
826
  msgstr ""
827
 
828
- #: src/ml-slider.php:1409
829
  msgid "Slide In Left"
830
  msgstr ""
831
 
832
- #: src/ml-slider.php:1410
833
  msgid "Box Random"
834
  msgstr ""
835
 
836
- #: src/ml-slider.php:1411
837
  msgid "Box Rain"
838
  msgstr ""
839
 
840
- #: src/ml-slider.php:1412
841
  msgid "Box Rain Reverse"
842
  msgstr ""
843
 
844
- #: src/ml-slider.php:1413
845
  msgid "Box Rain Grow Reverse"
846
  msgstr ""
847
 
848
- #: src/ml-slider.php:1414
849
  msgid "Slide"
850
  msgstr ""
851
 
852
- #: src/ml-slider.php:1421
853
  msgid "Theme"
854
  msgstr ""
855
 
856
- #: src/ml-slider.php:1423
857
  msgid "Slideshow theme"
858
  msgstr ""
859
 
860
- #: src/ml-slider.php:1425
861
  msgid "Default"
862
  msgstr ""
863
 
864
- #: src/ml-slider.php:1426
865
  msgid "Dark (Nivo)"
866
  msgstr ""
867
 
868
- #: src/ml-slider.php:1427
869
  msgid "Light (Nivo)"
870
  msgstr ""
871
 
872
- #: src/ml-slider.php:1428
873
  msgid "Bar (Nivo)"
874
  msgstr ""
875
 
876
- #: src/ml-slider.php:1434
877
  msgid "Arrows"
878
  msgstr ""
879
 
880
- #: src/ml-slider.php:1437
881
  msgid "Show the previous/next arrows"
882
  msgstr ""
883
 
884
- #: src/ml-slider.php:1442
885
  msgid "Navigation"
886
  msgstr ""
887
 
888
- #: src/ml-slider.php:1445
889
  msgid "Show the slide navigation bullets"
890
  msgstr ""
891
 
892
- #: src/ml-slider.php:1447
893
  msgid "Hidden"
894
  msgstr ""
895
 
896
- #: src/ml-slider.php:1448
897
  msgid "Dots"
898
  msgstr ""
899
 
900
- #: src/ml-slider.php:1450
901
  msgid "Thumbnail"
902
  msgstr ""
903
 
904
- #: src/ml-slider.php:1454
905
  msgid "Filmstrip"
906
  msgstr ""
907
 
908
- #: src/ml-slider.php:1467
909
  msgid "Title"
910
  msgstr ""
911
 
912
- #: src/ml-slider.php:1468
913
  msgid "Slideshow title"
914
  msgstr ""
915
 
916
- #: src/ml-slider.php:1485
917
  msgid "View trashed slides"
918
  msgstr ""
919
 
920
- #: src/ml-slider.php:1486
921
  msgid "Trash"
922
  msgstr ""
923
 
924
- #: src/ml-slider.php:1493
 
 
 
 
 
 
 
 
925
  msgid "Advanced Settings"
926
  msgstr ""
927
 
928
- #: src/ml-slider.php:1502
929
  msgid "Stretch"
930
  msgstr ""
931
 
932
- #: src/ml-slider.php:1504
933
  msgid "100% wide output"
934
  msgstr ""
935
 
936
- #: src/ml-slider.php:1506
937
  msgid "Stretch the slideshow output to fill it's parent container"
938
  msgstr ""
939
 
940
- #: src/ml-slider.php:1511
941
  msgid "Center align"
942
  msgstr ""
943
 
944
- #: src/ml-slider.php:1514
945
  msgid "Center align the slideshow"
946
  msgstr ""
947
 
948
- #: src/ml-slider.php:1519
949
  msgid "Auto play"
950
  msgstr ""
951
 
952
- #: src/ml-slider.php:1522
953
  msgid "Transition between slides automatically"
954
  msgstr ""
955
 
956
- #: src/ml-slider.php:1527
957
  msgid "Image Crop"
958
  msgstr ""
959
 
960
- #: src/ml-slider.php:1531
961
  msgid "Smart Crop"
962
  msgstr ""
963
 
964
- #: src/ml-slider.php:1532
965
  msgid "Standard"
966
  msgstr ""
967
 
968
- #: src/ml-slider.php:1533
969
  msgid "Disabled"
970
  msgstr ""
971
 
972
- #: src/ml-slider.php:1534
973
  msgid "Disabled (Smart Pad)"
974
  msgstr ""
975
 
976
- #: src/ml-slider.php:1536
977
  msgid "Smart Crop ensures your responsive slides are cropped to a ratio that results in a consistent slideshow size"
978
  msgstr ""
979
 
980
- #: src/ml-slider.php:1541
981
  msgid "Carousel mode"
982
  msgstr ""
983
 
984
- #: src/ml-slider.php:1544
985
  msgid "Display multiple slides at once. Slideshow output will be 100% wide."
986
  msgstr ""
987
 
988
- #: src/ml-slider.php:1552
989
  msgid "Carousel margin"
990
  msgstr ""
991
 
992
- #: src/ml-slider.php:1555
993
  msgid "Pixel margin between slides in carousel."
994
  msgstr ""
995
 
996
- #: src/ml-slider.php:1564
997
  msgid "Randomise the order of the slides"
998
  msgstr ""
999
 
1000
- #: src/ml-slider.php:1569
1001
  msgid "Hover pause"
1002
  msgstr ""
1003
 
1004
- #: src/ml-slider.php:1572
1005
  msgid "Pause the slideshow when hovering over slider, then resume when no longer hovering."
1006
  msgstr ""
1007
 
1008
- #: src/ml-slider.php:1577
1009
  msgid "Reverse"
1010
  msgstr ""
1011
 
1012
- #: src/ml-slider.php:1580
1013
  msgid "Reverse the animation direction"
1014
  msgstr ""
1015
 
1016
- #: src/ml-slider.php:1590
1017
  msgid "Slide delay"
1018
  msgstr ""
1019
 
1020
- #: src/ml-slider.php:1592
1021
  msgid "How long to display each slide, in milliseconds"
1022
  msgstr ""
1023
 
1024
- #: src/ml-slider.php:1593, src/ml-slider.php:1606, src/ml-slider.php:1619, src/ml-slider.php:1695, src/ml-slider.php:1721
1025
  msgid "ms"
1026
  msgstr ""
1027
 
1028
- #: src/ml-slider.php:1603
1029
  msgid "Animation speed"
1030
  msgstr ""
1031
 
1032
- #: src/ml-slider.php:1605
1033
  msgid "Set the speed of animations, in milliseconds"
1034
  msgstr ""
1035
 
1036
- #: src/ml-slider.php:1616, src/ml-slider.php:1618
1037
  msgid "Number of slices"
1038
  msgstr ""
1039
 
1040
- #: src/ml-slider.php:1629, src/ml-slider.php:1631, src/ml-slider.php:1642, src/ml-slider.php:1644
1041
  msgid "Number of squares"
1042
  msgstr ""
1043
 
1044
- #: src/ml-slider.php:1650
1045
  msgid "Slide direction"
1046
  msgstr ""
1047
 
1048
- #: src/ml-slider.php:1652
1049
  msgid "Select the sliding direction"
1050
  msgstr ""
1051
 
1052
- #: src/ml-slider.php:1655
1053
  msgid "Horizontal"
1054
  msgstr ""
1055
 
1056
- #: src/ml-slider.php:1656
1057
  msgid "Vertical"
1058
  msgstr ""
1059
 
1060
- #: src/ml-slider.php:1662
1061
  msgid "Easing"
1062
  msgstr ""
1063
 
1064
- #: src/ml-slider.php:1664
1065
  msgid "Animation easing effect"
1066
  msgstr ""
1067
 
1068
- #: src/ml-slider.php:1671
1069
  msgid "Previous text"
1070
  msgstr ""
1071
 
1072
- #: src/ml-slider.php:1673
1073
  msgid "Set the text for the 'previous' direction item"
1074
  msgstr ""
1075
 
1076
- #: src/ml-slider.php:1679
1077
  msgid "Next text"
1078
  msgstr ""
1079
 
1080
- #: src/ml-slider.php:1681
1081
  msgid "Set the text for the 'next' direction item"
1082
  msgstr ""
1083
 
1084
- #: src/ml-slider.php:1692
1085
  msgid "Square delay"
1086
  msgstr ""
1087
 
1088
- #: src/ml-slider.php:1694
1089
  msgid "Delay between squares in ms"
1090
  msgstr ""
1091
 
1092
- #: src/ml-slider.php:1705
1093
  msgid "Opacity"
1094
  msgstr ""
1095
 
1096
- #: src/ml-slider.php:1707
1097
  msgid "Opacity of title and navigation"
1098
  msgstr ""
1099
 
1100
- #: src/ml-slider.php:1718
1101
  msgid "Caption speed"
1102
  msgstr ""
1103
 
1104
- #: src/ml-slider.php:1720
1105
  msgid "Set the fade in speed of the caption"
1106
  msgstr ""
1107
 
1108
- #: src/ml-slider.php:1727
1109
  msgid "Developer options"
1110
  msgstr ""
1111
 
1112
- #: src/ml-slider.php:1732
1113
  msgid "CSS classes"
1114
  msgstr ""
1115
 
1116
- #: src/ml-slider.php:1734
1117
  msgid "Specify any custom CSS Classes you would like to be added to the slider wrapper"
1118
  msgstr ""
1119
 
1120
- #: src/ml-slider.php:1740
1121
  msgid "Print CSS"
1122
  msgstr ""
1123
 
1124
- #: src/ml-slider.php:1743
1125
  msgid "Uncheck this is you would like to include your own CSS"
1126
  msgstr ""
1127
 
1128
- #: src/ml-slider.php:1748
1129
  msgid "Print JS"
1130
  msgstr ""
1131
 
1132
- #: src/ml-slider.php:1751
1133
  msgid "Uncheck this is you would like to include your own Javascript"
1134
  msgstr ""
1135
 
1136
- #: src/ml-slider.php:1756
1137
  msgid "No conflict mode"
1138
  msgstr ""
1139
 
1140
- #: src/ml-slider.php:1759
1141
  msgid "Delay adding the flexslider class to the slideshow"
1142
  msgstr ""
1143
 
1144
- #: src/ml-slider.php:1774
1145
  msgid "Delete Slideshow"
1146
  msgstr ""
1147
 
1148
- #: src/ml-slider.php:1801
1149
  msgid "Select slideshow to insert into post"
1150
  msgstr ""
1151
 
1152
- #: src/ml-slider.php:1804
1153
  msgid "Add slider"
1154
  msgstr ""
1155
 
1156
- #: src/ml-slider.php:1838
1157
  msgid "Insert MetaSlider"
1158
  msgstr ""
1159
 
1160
- #: src/ml-slider.php:1840
1161
  msgid "Choose slideshow"
1162
  msgstr ""
1163
 
1164
- #: src/ml-slider.php:1845
1165
  msgid "Insert slideshow"
1166
  msgstr ""
1167
 
1168
- #: src/ml-slider.php:1898
 
 
 
 
 
 
 
 
1169
  msgid "Take a tour"
1170
  msgstr ""
1171
 
1172
- #: src/ml-slider.php:1902
1173
  msgid "Support"
1174
  msgstr ""
1175
 
1176
- #: src/ml-slider.php:1904
1177
  msgid "Premium Support"
1178
  msgstr ""
1179
 
1180
- #: src/ml-slider.php:1906, src/ml-slider.php:1969
1181
  msgid "Documentation"
1182
  msgstr ""
1183
 
1184
- #: src/ml-slider.php:1907
1185
  msgid "Leave a review"
1186
  msgstr ""
1187
 
1188
- #: src/ml-slider.php:1941
1189
  msgid "Upgrade Now"
1190
  msgstr ""
1191
 
1192
- #: src/ml-slider.php:1943
1193
  msgid "Get The Pro Pack Today!"
1194
  msgstr ""
1195
 
1196
- #: src/ml-slider.php:1960
1197
  msgid "Switch to Dropdown view"
1198
  msgstr ""
1199
 
1200
- #: src/ml-slider.php:1960
1201
  msgid "Switch to Tab view"
1202
  msgstr ""
1203
 
1204
- #: src/ml-slider.php:1962
1205
  msgid "Layout"
1206
  msgstr ""
1207
 
1208
- #: src/ml-slider.php:1969
 
 
 
 
 
 
 
 
1209
  msgid "View The Documentation"
1210
  msgstr ""
17
  "X-Poedit-SearchPathExcluded-0: *.js\n"
18
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
 
20
+ #: src/admin/Notices.php:80
21
  msgid "Always backup WordPress to avoid losing your site!"
22
  msgstr ""
23
 
24
+ #: src/admin/Notices.php:81
25
  msgid "UpdraftPlus is the world's #1 backup plugin from the makers of MetaSlider. Backup to the cloud, on a schedule and restore with 1 click!"
26
  msgstr ""
27
 
28
+ #: src/admin/Notices.php:91
29
  msgid "Keyy: Instant and secure logon with a wave of your phone"
30
  msgstr ""
31
 
32
+ #: src/admin/Notices.php:92
33
  msgid "No more forgotten passwords. Find out more about our revolutionary new WordPress plugin"
34
  msgstr ""
35
 
36
+ #: src/admin/Notices.php:102
37
  msgid "Save Time and Money. Manage multiple WordPress sites from one location."
38
  msgstr ""
39
 
40
+ #: src/admin/Notices.php:103
41
  msgid "UpdraftCentral is a highly efficient way to take backup, update and manage multiple WP sites from one location"
42
  msgstr ""
43
 
44
+ #: src/admin/Notices.php:113
45
  msgid "Like MetaSlider and have a minute to spare?"
46
  msgstr ""
47
 
48
+ #: src/admin/Notices.php:114
49
  msgid "Please help MetaSlider by giving a positive review at wordpress.org."
50
  msgstr ""
51
 
52
+ #: src/admin/Notices.php:123
53
  msgid "Help us to get even better MetaSlider"
54
  msgstr ""
55
 
56
+ #: src/admin/Notices.php:124
57
  msgid "Let us know how you use MetaSlider by answering 4 simple questions. We will make MetaSlider to suit you better."
58
  msgstr ""
59
 
60
+ #: src/admin/Notices.php:133
61
  msgid "Spice up your site with animated layers and video slides"
62
  msgstr ""
63
 
64
+ #: src/admin/Notices.php:134
65
  msgid "With the MetaSlider Add-on pack you can give your slideshows a professional look!"
66
  msgstr ""
67
 
68
+ #: src/admin/Notices.php:143
69
  msgid "Increase your revenue and conversion with video slides and many more features"
70
  msgstr ""
71
 
72
+ #: src/admin/Notices.php:144
73
  msgid "Upgrade today to benefit from many more premium features. Find out more."
74
  msgstr ""
75
 
76
+ #: src/admin/Notices.php:153
77
  msgid "Can you translate? Want to improve MetaSlider for speakers of your language?"
78
  msgstr ""
79
 
80
+ #: src/admin/Notices.php:154
81
  msgid "Please go here for instructions - it is easy."
82
  msgstr ""
83
 
84
+ #: src/admin/Notices.php:164
85
  msgid "Thank you for installing MetaSlider"
86
  msgstr ""
87
 
88
+ #: src/admin/Notices.php:165
89
  msgid "Supercharge & secure your WordPress site with our other top plugins:"
90
  msgstr ""
91
 
92
+ #: src/admin/Notices.php:183
93
  msgid "We’re making changes and need your help."
94
  msgstr ""
95
 
96
+ #: src/admin/Notices.php:184
97
  msgid "If you could spare a minute, we would like to ask you 4 easy questions about how you use MetaSlider. Your voice is important to us!"
98
  msgstr ""
99
 
100
+ #: src/admin/Notices.php:189
101
  msgid "forever"
102
  msgstr ""
103
 
104
+ #: src/admin/Notices.php:204
105
  msgid "Black Friday - 50% off the MetaSlider Add-on Pack until November 30th"
106
  msgstr ""
107
 
108
+ #: src/admin/Notices.php:205, src/admin/Notices.php:218, src/admin/Notices.php:231, src/admin/Notices.php:244, src/admin/Notices.php:257
109
  msgid "To benefit, use this discount code:"
110
  msgstr ""
111
 
112
+ #: src/admin/Notices.php:213, src/admin/Notices.php:226, src/admin/Notices.php:239, src/admin/Notices.php:252, src/admin/Notices.php:265
113
  msgid "until next year"
114
  msgstr ""
115
 
116
+ #: src/admin/Notices.php:217
117
  msgid "Christmas sale - 50% off the MetaSlider Add-on Pack until December 25th"
118
  msgstr ""
119
 
120
+ #: src/admin/Notices.php:230
121
  msgid "Happy New Year - 50% off the MetaSlider Add-on Pack until January 1st"
122
  msgstr ""
123
 
124
+ #: src/admin/Notices.php:243
125
  msgid "Spring sale - 50% off the MetaSlider Add-on Pack until April 31st"
126
  msgstr ""
127
 
128
+ #: src/admin/Notices.php:256
129
  msgid "Summer sale - 50% off the MetaSlider Add-on Pack until July 31st"
130
  msgstr ""
131
 
132
+ #: src/admin/Notices.php:280
133
  msgid "Increase your conversion rate with video slides and many more options."
134
  msgstr ""
135
 
136
+ #: src/admin/Notices.php:287
137
  msgid "offers unparalleled choice and flexibility, allowing you to select one or a combination of over a dozen optimization options."
138
  msgstr ""
139
 
140
+ #: src/admin/Notices.php:294
141
  msgid "provides personal support, the ability to copy sites, more storage destinations, encrypted backups for security, multiple backup destinations, better reporting, no adverts and plenty more."
142
  msgstr ""
143
 
144
+ #: src/admin/Notices.php:301
145
  msgid "simplifies backups and restoration. It is the world's highest ranking and most popular scheduled backup plugin, with over a million currently-active installs."
146
  msgstr ""
147
 
148
+ #: src/admin/Notices.php:308
149
  msgid "auto-clean your WordPress database so that it runs at maximum efficiency."
150
  msgstr ""
151
 
152
+ #: src/admin/Notices.php:315
153
  msgid "Simple & secure login with a wave of your phone."
154
  msgstr ""
155
 
156
+ #: src/admin/Notices.php:322
157
  msgid "is a highly efficient way to manage, update and backup multiple websites from one place."
158
  msgstr ""
159
 
160
+ #: src/admin/Notices.php:537
161
  msgid "weeks"
162
  msgstr ""
163
 
164
+ #: src/admin/Notices.php:553
165
  msgid "Get UpdraftPlus"
166
  msgstr ""
167
 
168
+ #: src/admin/Notices.php:554
169
  msgid "Get Keyy"
170
  msgstr ""
171
 
172
+ #: src/admin/Notices.php:555
173
  msgid "Optimize today"
174
  msgstr ""
175
 
176
+ #: src/admin/Notices.php:556
177
  msgid "Get UpdraftCentral"
178
  msgstr ""
179
 
180
+ #: src/admin/Notices.php:557
181
  msgid "Let's Start"
182
  msgstr ""
183
 
184
+ #: src/admin/Notices.php:558
185
  msgid "Review MetaSlider"
186
  msgstr ""
187
 
188
+ #: src/admin/Notices.php:559
189
  msgid "Find out more"
190
  msgstr ""
191
 
192
+ #: src/admin/Notices.php:560
193
  msgid "Sign up"
194
  msgstr ""
195
 
196
+ #: src/admin/Notices.php:561
197
  msgid "Go there"
198
  msgstr ""
199
 
200
+ #: src/admin/Notices.php:563
201
  msgid "Read more"
202
  msgstr ""
203
 
204
+ #: src/admin/Notices.php:577, src/admin/Tour.php:123, src/inc/slide/metaslide.class.php:120, src/inc/slide/metaslide.image.class.php:107, src/ml-slider.php:638, src/ml-slider.php:687
205
  msgid "The security check failed. Please refresh the page and try again."
206
  msgstr ""
207
 
208
+ #: src/admin/Notices.php:583
209
  msgid "This item does not exist. Please refresh the page and try again."
210
  msgstr ""
211
 
212
+ #: src/admin/Notices.php:596
213
  msgid "The option was successfully updated"
214
  msgstr ""
215
 
216
+ #: src/admin/Notices.php:653
217
  msgid "The requested data does not exist."
218
  msgstr ""
219
 
220
+ #: src/admin/Notices.php:672
221
  msgid "The attempt to update the option failed."
222
  msgstr ""
223
 
224
+ #: src/admin/Pages.php:77, src/inc/slide/metaslide.image.class.php:232
225
  msgid "URL"
226
  msgstr ""
227
 
228
+ #: src/admin/Pages.php:78, src/inc/slide/metaslide.image.class.php:231
229
  msgid "Caption"
230
  msgstr ""
231
 
232
+ #: src/admin/Pages.php:79, src/inc/slide/metaslide.image.class.php:234
233
  msgid "New Window"
234
  msgstr ""
235
 
236
+ #: src/admin/Pages.php:80
237
  msgid "Are you sure?"
238
  msgstr ""
239
 
240
+ #: src/admin/Pages.php:81
241
  msgid "Undo"
242
  msgstr ""
243
 
244
+ #: src/admin/Pages.php:82
245
  msgid "Slide restored"
246
  msgstr ""
247
 
248
+ #: src/admin/Pages.php:83
249
  msgid "Slide deleted"
250
  msgstr ""
251
 
252
+ #: src/admin/Pages.php:84
253
+ msgid "Success"
254
+ msgstr ""
255
+
256
+ #: src/admin/Pages.php:85
257
+ msgid "Item was copied to your clipboard"
258
+ msgstr ""
259
+
260
+ #: src/admin/Pages.php:86
261
  msgid "Press to undo"
262
  msgstr ""
263
 
264
+ #: src/admin/Pages.php:88
265
  msgid "Select replacement image"
266
  msgstr ""
267
 
268
+ #: src/admin/Pages.php:96
269
  msgid "Caution: This setting is for advanced developers only. If you're unsure, leave it checked."
270
  msgstr ""
271
 
272
+ #: src/admin/Tour.php:41
273
  msgid "Welcome"
274
  msgstr ""
275
 
276
+ #: src/admin/Tour.php:42
277
  msgid "Thanks for using the MetaSlider WordPress plugin. It looks like you don’t have any slideshows yet! To get started, click above to add your first one."
278
  msgstr ""
279
 
280
+ #: src/admin/Tour.php:48, src/ml-slider.php:1042
281
  msgid "Learn More"
282
  msgstr ""
283
 
284
+ #: src/admin/Tour.php:49, src/inc/slider/metaslider.class.php:112
285
  msgid "Next"
286
  msgstr ""
287
 
288
+ #: src/admin/Tour.php:50
289
  msgid "Skip this step"
290
  msgstr ""
291
 
292
+ #: src/admin/Tour.php:54
293
  msgid "Add A Slide"
294
  msgstr ""
295
 
296
+ #: src/admin/Tour.php:55
297
  msgid "Congratulations! Now that you've created a slideshow, click here to add a slide."
298
  msgstr ""
299
 
300
+ #: src/admin/Tour.php:58
301
  msgid "Select Slide Type"
302
  msgstr ""
303
 
304
+ #: src/admin/Tour.php:59
305
  msgid "Premium users that have the Add-on Pack activated can access additional slide types!"
306
  msgstr ""
307
 
308
+ #: src/admin/Tour.php:62
309
  msgid "Select Media"
310
  msgstr ""
311
 
312
+ #: src/admin/Tour.php:63
313
  msgid "After you have selected your media from the left, click below to continue."
314
  msgstr ""
315
 
316
+ #: src/admin/Tour.php:66, src/ml-slider.php:1375
317
  msgid "Preview Slideshow"
318
  msgstr ""
319
 
320
+ #: src/admin/Tour.php:67
321
  msgid "Now that you have some slides set, you can preview your slideshow by clicking here."
322
  msgstr ""
323
 
324
+ #: src/admin/Tour.php:70
325
  msgid "Adjust Settings"
326
  msgstr ""
327
 
328
+ #: src/admin/Tour.php:71
329
  msgid "If you need to adjust the settings for this slideshow, you may do so here."
330
  msgstr ""
331
 
332
+ #: src/admin/Tour.php:74
333
  msgid "Shortcode Usage"
334
  msgstr ""
335
 
336
+ #: src/admin/Tour.php:75
337
  msgid "You are all set! If you want to add the slideshow to a post, you may use this shortcode."
338
  msgstr ""
339
 
340
+ #: src/admin/Tour.php:79
341
  msgid "Congratulations!"
342
  msgstr ""
343
 
344
+ #: src/admin/Tour.php:80
345
  msgid "You've completed the tour and are ready to add great slideshows to your website. Don't forget, if you want your slideshows to really stand out, pick up the add-on pack today. "
346
  msgstr ""
347
 
348
+ #: src/admin/Tour.php:130
349
  msgid "This method does not exist. Please refresh the page and try again."
350
  msgstr ""
351
 
357
  msgid "Logo"
358
  msgstr ""
359
 
360
+ #: src/admin/views/pages/upgrade.php:15
361
  msgid "Comparison Chart"
362
  msgstr ""
363
 
364
+ #: src/admin/views/pages/upgrade.php:20, src/admin/views/pages/upgrade.php:21
365
  msgid "logo"
366
  msgstr ""
367
 
368
+ #: src/admin/views/pages/upgrade.php:20
369
  msgid "free"
370
  msgstr ""
371
 
372
+ #: src/admin/views/pages/upgrade.php:21, src/ml-slider.php:319, src/ml-slider.php:1959
373
  msgid "Add-ons"
374
  msgstr ""
375
 
376
+ #: src/admin/views/pages/upgrade.php:21
377
  msgid "pro"
378
  msgstr ""
379
 
380
+ #: src/admin/views/pages/upgrade.php:27, src/admin/views/pages/upgrade.php:104
381
  msgid "Installed"
382
  msgstr ""
383
 
384
+ #: src/admin/views/pages/upgrade.php:28, src/admin/views/pages/upgrade.php:105
385
  msgid "Upgrade now"
386
  msgstr ""
387
 
388
+ #: src/admin/views/pages/upgrade.php:32
389
  msgid "Create unlimited slideshows"
390
  msgstr ""
391
 
392
+ #: src/admin/views/pages/upgrade.php:33
393
  msgid "Create and manage as many slideshows as you need."
394
  msgstr ""
395
 
396
+ #: src/admin/views/pages/upgrade.php:34, src/admin/views/pages/upgrade.php:35, src/admin/views/pages/upgrade.php:41, src/admin/views/pages/upgrade.php:42, src/admin/views/pages/upgrade.php:48, src/admin/views/pages/upgrade.php:49, src/admin/views/pages/upgrade.php:55, src/admin/views/pages/upgrade.php:56, src/admin/views/pages/upgrade.php:63, src/admin/views/pages/upgrade.php:70, src/admin/views/pages/upgrade.php:77, src/admin/views/pages/upgrade.php:84, src/admin/views/pages/upgrade.php:91, src/admin/views/pages/upgrade.php:98
397
  msgid "Yes"
398
  msgstr ""
399
 
400
+ #: src/admin/views/pages/upgrade.php:39
401
  msgid "Multiple slideshow types"
402
  msgstr ""
403
 
404
+ #: src/admin/views/pages/upgrade.php:40
405
  msgid "Including %s, %s and we will soon be adding more."
406
  msgstr ""
407
 
408
+ #: src/admin/views/pages/upgrade.php:46
409
  msgid "Regular updates"
410
  msgstr ""
411
 
412
+ #: src/admin/views/pages/upgrade.php:47
413
  msgid "Our word to keep %s compatible with the latest versions of %s."
414
  msgstr ""
415
 
416
+ #: src/admin/views/pages/upgrade.php:53
417
  msgid "Intelligent image cropping"
418
  msgstr ""
419
 
420
+ #: src/admin/views/pages/upgrade.php:54
421
  msgid "Unique %s functionality ensures your slides are perfectly resized."
422
  msgstr ""
423
 
424
+ #: src/admin/views/pages/upgrade.php:60
425
  msgid "Thumbnail navigation"
426
  msgstr ""
427
 
428
+ #: src/admin/views/pages/upgrade.php:61
429
  msgid "Easily allow users to navigate your slideshows by thumbnails."
430
  msgstr ""
431
 
432
+ #: src/admin/views/pages/upgrade.php:62, src/admin/views/pages/upgrade.php:69, src/admin/views/pages/upgrade.php:76, src/admin/views/pages/upgrade.php:83, src/admin/views/pages/upgrade.php:90, src/admin/views/pages/upgrade.php:97
433
  msgid "No"
434
  msgstr ""
435
 
436
+ #: src/admin/views/pages/upgrade.php:67
437
  msgid "Add video slides"
438
  msgstr ""
439
 
440
+ #: src/admin/views/pages/upgrade.php:68
441
  msgid "Easily include responsive high definition %s and %s videos."
442
  msgstr ""
443
 
444
+ #: src/admin/views/pages/upgrade.php:74
445
  msgid "%s overlay slides"
446
  msgstr ""
447
 
448
+ #: src/admin/views/pages/upgrade.php:75
449
  msgid "Create completely customized %s slides using the inline editor."
450
  msgstr ""
451
 
452
+ #: src/admin/views/pages/upgrade.php:81
453
  msgid "Add slide layers"
454
  msgstr ""
455
 
456
+ #: src/admin/views/pages/upgrade.php:82
457
  msgid "Add layers to your slides with over 50 available transition effects."
458
  msgstr ""
459
 
460
+ #: src/admin/views/pages/upgrade.php:88
461
  msgid "Post feed slides"
462
  msgstr ""
463
 
464
+ #: src/admin/views/pages/upgrade.php:89
465
  msgid "Easily build slides based on your %s posts."
466
  msgstr ""
467
 
468
+ #: src/admin/views/pages/upgrade.php:95
469
  msgid "Premium support"
470
  msgstr ""
471
 
472
+ #: src/admin/views/pages/upgrade.php:96
473
  msgid "Have your specific queries addressed directly by our experts"
474
  msgstr ""
475
 
476
+ #: src/admin/views/pages/upgrade.php:115
477
  msgid "More Professional-Quality Plugins for your Website"
478
  msgstr ""
479
 
480
+ #: src/admin/views/pages/upgrade.php:123
481
  msgid "%s – the ultimate protection for your site, hard work and business"
482
  msgstr ""
483
 
484
+ #: src/admin/views/pages/upgrade.php:125
485
  msgid "If you’ve got a %s website, you need a backup."
486
  msgstr ""
487
 
488
+ #: src/admin/views/pages/upgrade.php:126
489
  msgid "Hacking, server crashes, dodgy updates or simple user error can ruin everything."
490
  msgstr ""
491
 
492
+ #: src/admin/views/pages/upgrade.php:127
493
  msgid "With %s, you can rest assured that if the worst does happen, it's no big deal. rather than losing everything, you can simply restore the backup and be up and running again in no time at all."
494
  msgstr ""
495
 
496
+ #: src/admin/views/pages/upgrade.php:128
497
  msgid "You can also migrate your website with few clicks without hassle."
498
  msgstr ""
499
 
500
+ #: src/admin/views/pages/upgrade.php:129
501
  msgid "With a long-standing reputation for excellence and outstanding reviews, it’s no wonder that %s is the world’s most popular %s backup plugin."
502
  msgstr ""
503
 
504
+ #: src/admin/views/pages/upgrade.php:130, src/admin/views/pages/upgrade.php:142, src/admin/views/pages/upgrade.php:154, src/admin/views/pages/upgrade.php:166
505
  msgid "Try for free"
506
  msgstr ""
507
 
508
+ #: src/admin/views/pages/upgrade.php:137
509
  msgid "%s Dashboard"
510
  msgstr ""
511
 
512
+ #: src/admin/views/pages/upgrade.php:138
513
  msgid "%s – save hours managing multiple WP sites from one place"
514
  msgstr ""
515
 
516
+ #: src/admin/views/pages/upgrade.php:139
517
  msgid "If you manage a few %s sites, you need UpdraftCentral."
518
  msgstr ""
519
 
520
+ #: src/admin/views/pages/upgrade.php:140
521
  msgid "%s is a powerful tool that allows you to efficiently manage, update, backup and even restore multiple websites from just one location. You can also manage users and comments on all the sites at once, and through its central login feature, you can access each WP-dashboard with a single click."
522
  msgstr ""
523
 
524
+ #: src/admin/views/pages/upgrade.php:141
525
  msgid "With a wide range of useful features, including automated backup schedules and sophisticated one click updates, UpdraftCentral is sure to boost to your productivity and save you time."
526
  msgstr ""
527
 
528
+ #: src/admin/views/pages/upgrade.php:150
529
  msgid "%s – faster, fitter, cleaner WP sites for optimal performance."
530
  msgstr ""
531
 
532
+ #: src/admin/views/pages/upgrade.php:151
533
  msgid "%s, the #1 optimization plugin, keeps your %s site at prime speed by cleaning the database without the need for %s."
534
  msgstr ""
535
 
536
+ #: src/admin/views/pages/upgrade.php:152
537
  msgid "Incredibly simple to use, %s clears out old webpage revisions, spam, trash and unapproved comments, all of which take up megabytes of valuable space and leave your database sluggish and ultimately unfit for purpose."
538
  msgstr ""
539
 
540
+ #: src/admin/views/pages/upgrade.php:153
541
  msgid "%s has a load of valuable features, including automated weekly clean up scheduling, the retention of a set number of weeks’ data, a display of how much space can be cleared, the enabling / disabling of trackbacks and comments for all published posts, and an ‘administrators only’ security feature."
542
  msgstr ""
543
 
544
+ #: src/admin/views/pages/upgrade.php:161
545
  msgid "%s Two-Factor Authentication"
546
  msgstr ""
547
 
548
+ #: src/admin/views/pages/upgrade.php:162
549
  msgid "%s – instant &amp; secure logins with a wave of your phone"
550
  msgstr ""
551
 
552
+ #: src/admin/views/pages/upgrade.php:163
553
  msgid "%s is a unique 2-factor authentication plugin that allows you to log in to your website with just a wave of your smartphone. It represents the ultimate UX, doing away with the need for usernames, passwords and other 2FA tokens."
554
  msgstr ""
555
 
556
+ #: src/admin/views/pages/upgrade.php:164
557
  msgid "Using innovative RSA public-key cryptography, %s is highly secure and prevents password-based hacking risks such as brute-forcing, key-logging, shoulder-surfing and connection sniffing."
558
  msgstr ""
559
 
560
+ #: src/admin/views/pages/upgrade.php:165
561
  msgid "Logging in with %s is simple. Once users have installed the app onto their smartphone and secured it using a fingerprint or 4-number pin, they just open the app, point it at the moving on-screen barcode and voila!"
562
  msgstr ""
563
 
564
+ #: src/inc/metaslider.widget.class.php:18
565
  msgid "MetaSlider"
566
  msgstr ""
567
 
568
+ #: src/inc/metaslider.widget.class.php:108
569
  msgid "Title:"
570
  msgstr ""
571
 
572
+ #: src/inc/metaslider.widget.class.php:111
573
  msgid "Select Slider:"
574
  msgstr ""
575
 
576
+ #: src/inc/metaslider.widget.class.php:121, src/ml-slider.php:1891
577
  msgid "No slideshows found"
578
  msgstr ""
579
 
580
+ #: src/inc/slide/metaslide.class.php:87
581
  msgid "The requested image does not exist. Please try again."
582
  msgstr ""
583
 
584
+ #: src/inc/slide/metaslide.class.php:94
585
  msgid "The requested slide does not exist or something is wrong with the current image. Please try again or remove this slide."
586
  msgstr ""
587
 
588
+ #: src/inc/slide/metaslide.class.php:103
589
  msgid "The image was successfully updated."
590
  msgstr ""
591
 
592
+ #: src/inc/slide/metaslide.class.php:108
593
  msgid "There was an error updating the image. Please try again"
594
  msgstr ""
595
 
596
+ #: src/inc/slide/metaslide.class.php:263
597
  msgid "There was an error while updating the database. Please try again."
598
  msgstr ""
599
 
600
+ #: src/inc/slide/metaslide.class.php:347
601
  msgid "Delete Slide"
602
  msgstr ""
603
 
604
+ #: src/inc/slide/metaslide.class.php:377, src/inc/slide/metaslide.class.php:377, src/inc/slide/metaslide.image.class.php:200, src/inc/slide/metaslide.image.class.php:200
605
  msgid "Update slide image"
606
  msgstr ""
607
 
613
  msgid "This isn't an accepted image. Please try again."
614
  msgstr ""
615
 
616
+ #: src/inc/slide/metaslide.image.class.php:181
617
  msgid "Image Slide"
618
  msgstr ""
619
 
620
+ #: src/inc/slide/metaslide.image.class.php:238
621
  msgid "Warning: Image data does not exist. Please re-upload the image."
622
  msgstr ""
623
 
624
+ #: src/inc/slide/metaslide.image.class.php:243
625
  msgid "Image Title Text"
626
  msgstr ""
627
 
628
+ #: src/inc/slide/metaslide.image.class.php:243
629
  msgid "Image Alt Text"
630
  msgstr ""
631
 
632
+ #: src/inc/slide/metaslide.image.class.php:247
633
  msgid "General"
634
  msgstr ""
635
 
636
+ #: src/inc/slide/metaslide.image.class.php:251
637
  msgid "SEO"
638
  msgstr ""
639
 
640
+ #: src/inc/slide/metaslide.image.class.php:264
641
  msgid "Crop Position"
642
  msgstr ""
643
 
644
+ #: src/inc/slide/metaslide.image.class.php:267
645
  msgid "Top Left"
646
  msgstr ""
647
 
648
+ #: src/inc/slide/metaslide.image.class.php:268
649
  msgid "Top Center"
650
  msgstr ""
651
 
652
+ #: src/inc/slide/metaslide.image.class.php:269
653
  msgid "Top Right"
654
  msgstr ""
655
 
656
+ #: src/inc/slide/metaslide.image.class.php:270
657
  msgid "Center Left"
658
  msgstr ""
659
 
660
+ #: src/inc/slide/metaslide.image.class.php:271
661
  msgid "Center Center"
662
  msgstr ""
663
 
664
+ #: src/inc/slide/metaslide.image.class.php:272
665
  msgid "Center Right"
666
  msgstr ""
667
 
668
+ #: src/inc/slide/metaslide.image.class.php:273
669
  msgid "Bottom Left"
670
  msgstr ""
671
 
672
+ #: src/inc/slide/metaslide.image.class.php:274
673
  msgid "Bottom Center"
674
  msgstr ""
675
 
676
+ #: src/inc/slide/metaslide.image.class.php:275
677
  msgid "Bottom Right"
678
  msgstr ""
679
 
680
+ #: src/inc/slide/metaslide.image.class.php:280
681
  msgid "Crop"
682
  msgstr ""
683
 
684
+ #: src/inc/slider/metaslider.class.php:111
685
  msgid "Previous"
686
  msgstr ""
687
 
688
+ #: src/ml-slider.php:446
689
  msgid "Image"
690
  msgstr ""
691
 
692
+ #: src/ml-slider.php:447
693
  msgid "Add to slideshow"
694
  msgstr ""
695
 
696
+ #: src/ml-slider.php:651
697
  msgid "The slide was successfully restored"
698
  msgstr ""
699
 
700
+ #: src/ml-slider.php:667
701
  msgid "The attempt to restore the slide failed."
702
  msgstr ""
703
 
704
+ #: src/ml-slider.php:700
705
  msgid "The slide was successfully trashed"
706
  msgstr ""
707
 
708
+ #: src/ml-slider.php:882, src/ml-slider.php:1215
709
  msgid "New Slideshow"
710
  msgstr ""
711
 
712
+ #: src/ml-slider.php:1042
713
  msgid "Get the add-on pack today!"
714
  msgstr ""
715
 
716
+ #: src/ml-slider.php:1195
717
  msgid "Select Slideshow"
718
  msgstr ""
719
 
720
+ #: src/ml-slider.php:1207
721
  msgid "or"
722
  msgstr ""
723
 
724
+ #: src/ml-slider.php:1208
725
  msgid "Create a New Slideshow"
726
  msgstr ""
727
 
728
+ #: src/ml-slider.php:1231, src/ml-slider.php:1233
729
  msgid "Add a New Slideshow"
730
  msgstr ""
731
 
732
+ #: src/ml-slider.php:1327
733
  msgid "Trashed Slides"
734
  msgstr ""
735
 
736
+ #: src/ml-slider.php:1328
737
  msgid "<a href=\"%s\">view active</a>"
738
  msgstr ""
739
 
740
+ #: src/ml-slider.php:1336
741
  msgid "Add a New Slide"
742
  msgstr ""
743
 
744
+ #: src/ml-slider.php:1338
745
  msgid "Add Slide"
746
  msgstr ""
747
 
748
+ #: src/ml-slider.php:1365
749
  msgid "You are viewing slides that have been trashed, which will be automatically deleted in %s days. Click <a href=\"%s\">here</a> to view active slides."
750
  msgstr ""
751
 
752
+ #: src/ml-slider.php:1377
753
  msgid "Preview"
754
  msgstr ""
755
 
756
+ #: src/ml-slider.php:1380
757
  msgid "Save"
758
  msgstr ""
759
 
760
+ #: src/ml-slider.php:1408, src/ml-slider.php:1671
761
  msgid "Width"
762
  msgstr ""
763
 
764
+ #: src/ml-slider.php:1410
765
  msgid "Slideshow width"
766
  msgstr ""
767
 
768
+ #: src/ml-slider.php:1411, src/ml-slider.php:1424, src/ml-slider.php:1598
769
  msgid "px"
770
  msgstr ""
771
 
772
+ #: src/ml-slider.php:1421, src/ml-slider.php:1684
773
  msgid "Height"
774
  msgstr ""
775
 
776
+ #: src/ml-slider.php:1423
777
  msgid "Slideshow height"
778
  msgstr ""
779
 
780
+ #: src/ml-slider.php:1430
781
  msgid "Effect"
782
  msgstr ""
783
 
784
+ #: src/ml-slider.php:1432
785
  msgid "Slide transition effect"
786
  msgstr ""
787
 
788
+ #: src/ml-slider.php:1434, src/ml-slider.php:1603
789
  msgid "Random"
790
  msgstr ""
791
 
792
+ #: src/ml-slider.php:1435
793
  msgid "Swirl"
794
  msgstr ""
795
 
796
+ #: src/ml-slider.php:1436
797
  msgid "Rain"
798
  msgstr ""
799
 
800
+ #: src/ml-slider.php:1437
801
  msgid "Straight"
802
  msgstr ""
803
 
804
+ #: src/ml-slider.php:1438
805
  msgid "Slide Down"
806
  msgstr ""
807
 
808
+ #: src/ml-slider.php:1439
809
  msgid "Slice Up"
810
  msgstr ""
811
 
812
+ #: src/ml-slider.php:1440
813
  msgid "Slide Up Left"
814
  msgstr ""
815
 
816
+ #: src/ml-slider.php:1441
817
  msgid "Slice Up Down"
818
  msgstr ""
819
 
820
+ #: src/ml-slider.php:1442
821
  msgid "Slide Up Down Left"
822
  msgstr ""
823
 
824
+ #: src/ml-slider.php:1443
825
  msgid "Fold"
826
  msgstr ""
827
 
828
+ #: src/ml-slider.php:1444
829
  msgid "Fade"
830
  msgstr ""
831
 
832
+ #: src/ml-slider.php:1445
833
  msgid "Slide In Right"
834
  msgstr ""
835
 
836
+ #: src/ml-slider.php:1446
837
  msgid "Slide In Left"
838
  msgstr ""
839
 
840
+ #: src/ml-slider.php:1447
841
  msgid "Box Random"
842
  msgstr ""
843
 
844
+ #: src/ml-slider.php:1448
845
  msgid "Box Rain"
846
  msgstr ""
847
 
848
+ #: src/ml-slider.php:1449
849
  msgid "Box Rain Reverse"
850
  msgstr ""
851
 
852
+ #: src/ml-slider.php:1450
853
  msgid "Box Rain Grow Reverse"
854
  msgstr ""
855
 
856
+ #: src/ml-slider.php:1451
857
  msgid "Slide"
858
  msgstr ""
859
 
860
+ #: src/ml-slider.php:1458
861
  msgid "Theme"
862
  msgstr ""
863
 
864
+ #: src/ml-slider.php:1460
865
  msgid "Slideshow theme"
866
  msgstr ""
867
 
868
+ #: src/ml-slider.php:1462
869
  msgid "Default"
870
  msgstr ""
871
 
872
+ #: src/ml-slider.php:1463
873
  msgid "Dark (Nivo)"
874
  msgstr ""
875
 
876
+ #: src/ml-slider.php:1464
877
  msgid "Light (Nivo)"
878
  msgstr ""
879
 
880
+ #: src/ml-slider.php:1465
881
  msgid "Bar (Nivo)"
882
  msgstr ""
883
 
884
+ #: src/ml-slider.php:1471
885
  msgid "Arrows"
886
  msgstr ""
887
 
888
+ #: src/ml-slider.php:1474
889
  msgid "Show the previous/next arrows"
890
  msgstr ""
891
 
892
+ #: src/ml-slider.php:1479
893
  msgid "Navigation"
894
  msgstr ""
895
 
896
+ #: src/ml-slider.php:1482
897
  msgid "Show the slide navigation bullets"
898
  msgstr ""
899
 
900
+ #: src/ml-slider.php:1484
901
  msgid "Hidden"
902
  msgstr ""
903
 
904
+ #: src/ml-slider.php:1485
905
  msgid "Dots"
906
  msgstr ""
907
 
908
+ #: src/ml-slider.php:1487
909
  msgid "Thumbnail"
910
  msgstr ""
911
 
912
+ #: src/ml-slider.php:1491
913
  msgid "Filmstrip"
914
  msgstr ""
915
 
916
+ #: src/ml-slider.php:1504
917
  msgid "Title"
918
  msgstr ""
919
 
920
+ #: src/ml-slider.php:1505
921
  msgid "Slideshow title"
922
  msgstr ""
923
 
924
+ #: src/ml-slider.php:1523
925
  msgid "View trashed slides"
926
  msgstr ""
927
 
928
+ #: src/ml-slider.php:1524
929
  msgid "Trash"
930
  msgstr ""
931
 
932
+ #: src/ml-slider.php:1529
933
+ msgid "How to Use"
934
+ msgstr ""
935
+
936
+ #: src/ml-slider.php:1535
937
+ msgid "Click to toggle"
938
+ msgstr ""
939
+
940
+ #: src/ml-slider.php:1535
941
  msgid "Advanced Settings"
942
  msgstr ""
943
 
944
+ #: src/ml-slider.php:1544
945
  msgid "Stretch"
946
  msgstr ""
947
 
948
+ #: src/ml-slider.php:1546
949
  msgid "100% wide output"
950
  msgstr ""
951
 
952
+ #: src/ml-slider.php:1548
953
  msgid "Stretch the slideshow output to fill it's parent container"
954
  msgstr ""
955
 
956
+ #: src/ml-slider.php:1553
957
  msgid "Center align"
958
  msgstr ""
959
 
960
+ #: src/ml-slider.php:1556
961
  msgid "Center align the slideshow"
962
  msgstr ""
963
 
964
+ #: src/ml-slider.php:1561
965
  msgid "Auto play"
966
  msgstr ""
967
 
968
+ #: src/ml-slider.php:1564
969
  msgid "Transition between slides automatically"
970
  msgstr ""
971
 
972
+ #: src/ml-slider.php:1569
973
  msgid "Image Crop"
974
  msgstr ""
975
 
976
+ #: src/ml-slider.php:1573
977
  msgid "Smart Crop"
978
  msgstr ""
979
 
980
+ #: src/ml-slider.php:1574
981
  msgid "Standard"
982
  msgstr ""
983
 
984
+ #: src/ml-slider.php:1575
985
  msgid "Disabled"
986
  msgstr ""
987
 
988
+ #: src/ml-slider.php:1576
989
  msgid "Disabled (Smart Pad)"
990
  msgstr ""
991
 
992
+ #: src/ml-slider.php:1578
993
  msgid "Smart Crop ensures your responsive slides are cropped to a ratio that results in a consistent slideshow size"
994
  msgstr ""
995
 
996
+ #: src/ml-slider.php:1583
997
  msgid "Carousel mode"
998
  msgstr ""
999
 
1000
+ #: src/ml-slider.php:1586
1001
  msgid "Display multiple slides at once. Slideshow output will be 100% wide."
1002
  msgstr ""
1003
 
1004
+ #: src/ml-slider.php:1594
1005
  msgid "Carousel margin"
1006
  msgstr ""
1007
 
1008
+ #: src/ml-slider.php:1597
1009
  msgid "Pixel margin between slides in carousel."
1010
  msgstr ""
1011
 
1012
+ #: src/ml-slider.php:1606
1013
  msgid "Randomise the order of the slides"
1014
  msgstr ""
1015
 
1016
+ #: src/ml-slider.php:1611
1017
  msgid "Hover pause"
1018
  msgstr ""
1019
 
1020
+ #: src/ml-slider.php:1614
1021
  msgid "Pause the slideshow when hovering over slider, then resume when no longer hovering."
1022
  msgstr ""
1023
 
1024
+ #: src/ml-slider.php:1619
1025
  msgid "Reverse"
1026
  msgstr ""
1027
 
1028
+ #: src/ml-slider.php:1622
1029
  msgid "Reverse the animation direction"
1030
  msgstr ""
1031
 
1032
+ #: src/ml-slider.php:1632
1033
  msgid "Slide delay"
1034
  msgstr ""
1035
 
1036
+ #: src/ml-slider.php:1634
1037
  msgid "How long to display each slide, in milliseconds"
1038
  msgstr ""
1039
 
1040
+ #: src/ml-slider.php:1635, src/ml-slider.php:1648, src/ml-slider.php:1661, src/ml-slider.php:1737, src/ml-slider.php:1763
1041
  msgid "ms"
1042
  msgstr ""
1043
 
1044
+ #: src/ml-slider.php:1645
1045
  msgid "Animation speed"
1046
  msgstr ""
1047
 
1048
+ #: src/ml-slider.php:1647
1049
  msgid "Set the speed of animations, in milliseconds"
1050
  msgstr ""
1051
 
1052
+ #: src/ml-slider.php:1658, src/ml-slider.php:1660
1053
  msgid "Number of slices"
1054
  msgstr ""
1055
 
1056
+ #: src/ml-slider.php:1671, src/ml-slider.php:1673, src/ml-slider.php:1684, src/ml-slider.php:1686
1057
  msgid "Number of squares"
1058
  msgstr ""
1059
 
1060
+ #: src/ml-slider.php:1692
1061
  msgid "Slide direction"
1062
  msgstr ""
1063
 
1064
+ #: src/ml-slider.php:1694
1065
  msgid "Select the sliding direction"
1066
  msgstr ""
1067
 
1068
+ #: src/ml-slider.php:1697
1069
  msgid "Horizontal"
1070
  msgstr ""
1071
 
1072
+ #: src/ml-slider.php:1698
1073
  msgid "Vertical"
1074
  msgstr ""
1075
 
1076
+ #: src/ml-slider.php:1704
1077
  msgid "Easing"
1078
  msgstr ""
1079
 
1080
+ #: src/ml-slider.php:1706
1081
  msgid "Animation easing effect"
1082
  msgstr ""
1083
 
1084
+ #: src/ml-slider.php:1713
1085
  msgid "Previous text"
1086
  msgstr ""
1087
 
1088
+ #: src/ml-slider.php:1715
1089
  msgid "Set the text for the 'previous' direction item"
1090
  msgstr ""
1091
 
1092
+ #: src/ml-slider.php:1721
1093
  msgid "Next text"
1094
  msgstr ""
1095
 
1096
+ #: src/ml-slider.php:1723
1097
  msgid "Set the text for the 'next' direction item"
1098
  msgstr ""
1099
 
1100
+ #: src/ml-slider.php:1734
1101
  msgid "Square delay"
1102
  msgstr ""
1103
 
1104
+ #: src/ml-slider.php:1736
1105
  msgid "Delay between squares in ms"
1106
  msgstr ""
1107
 
1108
+ #: src/ml-slider.php:1747
1109
  msgid "Opacity"
1110
  msgstr ""
1111
 
1112
+ #: src/ml-slider.php:1749
1113
  msgid "Opacity of title and navigation"
1114
  msgstr ""
1115
 
1116
+ #: src/ml-slider.php:1760
1117
  msgid "Caption speed"
1118
  msgstr ""
1119
 
1120
+ #: src/ml-slider.php:1762
1121
  msgid "Set the fade in speed of the caption"
1122
  msgstr ""
1123
 
1124
+ #: src/ml-slider.php:1769
1125
  msgid "Developer options"
1126
  msgstr ""
1127
 
1128
+ #: src/ml-slider.php:1774
1129
  msgid "CSS classes"
1130
  msgstr ""
1131
 
1132
+ #: src/ml-slider.php:1776
1133
  msgid "Specify any custom CSS Classes you would like to be added to the slider wrapper"
1134
  msgstr ""
1135
 
1136
+ #: src/ml-slider.php:1782
1137
  msgid "Print CSS"
1138
  msgstr ""
1139
 
1140
+ #: src/ml-slider.php:1785
1141
  msgid "Uncheck this is you would like to include your own CSS"
1142
  msgstr ""
1143
 
1144
+ #: src/ml-slider.php:1790
1145
  msgid "Print JS"
1146
  msgstr ""
1147
 
1148
+ #: src/ml-slider.php:1793
1149
  msgid "Uncheck this is you would like to include your own Javascript"
1150
  msgstr ""
1151
 
1152
+ #: src/ml-slider.php:1798
1153
  msgid "No conflict mode"
1154
  msgstr ""
1155
 
1156
+ #: src/ml-slider.php:1801
1157
  msgid "Delay adding the flexslider class to the slideshow"
1158
  msgstr ""
1159
 
1160
+ #: src/ml-slider.php:1816
1161
  msgid "Delete Slideshow"
1162
  msgstr ""
1163
 
1164
+ #: src/ml-slider.php:1845
1165
  msgid "Select slideshow to insert into post"
1166
  msgstr ""
1167
 
1168
+ #: src/ml-slider.php:1848
1169
  msgid "Add slider"
1170
  msgstr ""
1171
 
1172
+ #: src/ml-slider.php:1882
1173
  msgid "Insert MetaSlider"
1174
  msgstr ""
1175
 
1176
+ #: src/ml-slider.php:1884
1177
  msgid "Choose slideshow"
1178
  msgstr ""
1179
 
1180
+ #: src/ml-slider.php:1889
1181
  msgid "Insert slideshow"
1182
  msgstr ""
1183
 
1184
+ #: src/ml-slider.php:1919
1185
+ msgid "To display your slideshow, add the following shortcode (in orange) to your page. If adding the slideshow to your theme files, additionally include the surrounding PHP function (in gray)."
1186
+ msgstr ""
1187
+
1188
+ #: src/ml-slider.php:1919
1189
+ msgid "copy all"
1190
+ msgstr ""
1191
+
1192
+ #: src/ml-slider.php:1956
1193
  msgid "Take a tour"
1194
  msgstr ""
1195
 
1196
+ #: src/ml-slider.php:1960
1197
  msgid "Support"
1198
  msgstr ""
1199
 
1200
+ #: src/ml-slider.php:1962
1201
  msgid "Premium Support"
1202
  msgstr ""
1203
 
1204
+ #: src/ml-slider.php:1964, src/ml-slider.php:2042
1205
  msgid "Documentation"
1206
  msgstr ""
1207
 
1208
+ #: src/ml-slider.php:1965
1209
  msgid "Leave a review"
1210
  msgstr ""
1211
 
1212
+ #: src/ml-slider.php:2001
1213
  msgid "Upgrade Now"
1214
  msgstr ""
1215
 
1216
+ #: src/ml-slider.php:2003
1217
  msgid "Get The Pro Pack Today!"
1218
  msgstr ""
1219
 
1220
+ #: src/ml-slider.php:2021
1221
  msgid "Switch to Dropdown view"
1222
  msgstr ""
1223
 
1224
+ #: src/ml-slider.php:2021
1225
  msgid "Switch to Tab view"
1226
  msgstr ""
1227
 
1228
+ #: src/ml-slider.php:2023
1229
  msgid "Layout"
1230
  msgstr ""
1231
 
1232
+ #: src/ml-slider.php:2033
1233
+ msgid "View Add-ons / Other Plugins"
1234
+ msgstr ""
1235
+
1236
+ #: src/ml-slider.php:2033
1237
+ msgid "Add-ons / Other Plugins"
1238
+ msgstr ""
1239
+
1240
+ #: src/ml-slider.php:2042
1241
  msgid "View The Documentation"
1242
  msgstr ""
ml-slider.php CHANGED
@@ -1,11 +1,12 @@
1
  <?php
 
2
  /*
3
  * MetaSlider. Slideshow plugin for WordPress.
4
  *
5
  * Plugin Name: MetaSlider
6
  * Plugin URI: https://www.metaslider.com
7
  * Description: Easy to use slideshow plugin. Create SEO optimised responsive slideshows with Nivo Slider, Flex Slider, Coin Slider and Responsive Slides.
8
- * Version: 3.6.6
9
  * Author: Team Updraft
10
  * Author URI: https://www.metaslider.com
11
  * License: GPL-2.0+
@@ -29,16 +30,22 @@ if ( ! class_exists( 'MetaSliderPlugin' ) ) :
29
  class MetaSliderPlugin {
30
 
31
  /**
 
 
32
  * @var string
33
  */
34
- public $version = '3.6.6';
35
 
36
  /**
37
- * @var string The lowest tier price for upgrades
 
 
38
  */
39
  public $pro_price = '39';
40
 
41
  /**
 
 
42
  * @var MetaSlider
43
  */
44
  public $slider = null;
@@ -135,6 +142,8 @@ class MetaSliderPlugin {
135
 
136
  /**
137
  * Autoload MetaSlider classes to reduce memory consumption
 
 
138
  */
139
  public function autoload( $class ) {
140
 
@@ -296,7 +305,7 @@ class MetaSliderPlugin {
296
 
297
  }
298
 
299
- /**
300
  * Add the menu pages
301
  */
302
  public function register_admin_pages() {
@@ -314,6 +323,7 @@ class MetaSliderPlugin {
314
  /**
315
  * Shortcode used to display slideshow
316
  *
 
317
  * @return string HTML output of the shortcode
318
  */
319
  public function register_shortcode( $atts ) {
@@ -425,15 +435,18 @@ class MetaSliderPlugin {
425
 
426
  /**
427
  * Update the tab options in the media manager
 
 
 
428
  */
429
  public function custom_media_uploader_tabs( $strings ) {
430
 
431
- //update strings
432
  if ( ( isset( $_GET['page'] ) && $_GET['page'] == 'metaslider' ) ) {
433
  $strings['insertMediaTitle'] = __( "Image", "ml-slider" );
434
  $strings['insertIntoPost'] = __( "Add to slideshow", "ml-slider" );
435
- // remove options
436
 
 
437
  $strings_to_remove = array(
438
  'createVideoPlaylistTitle',
439
  'createGalleryTitle',
@@ -456,7 +469,8 @@ class MetaSliderPlugin {
456
  /**
457
  * Add extra tabs to the default wordpress Media Manager iframe
458
  *
459
- * @var array existing media manager tabs
 
460
  */
461
  public function custom_media_upload_tab_name( $tabs ) {
462
 
@@ -492,9 +506,11 @@ class MetaSliderPlugin {
492
 
493
  }
494
 
495
-
496
  /**
497
  * Set the current slider
 
 
 
498
  */
499
  public function set_slider( $id, $shortcode_settings = array() ) {
500
 
@@ -519,6 +535,11 @@ class MetaSliderPlugin {
519
 
520
  /**
521
  * Create a new slider based on the sliders type setting
 
 
 
 
 
522
  */
523
  private function load_slider( $type, $id, $shortcode_settings ) {
524
 
@@ -537,9 +558,10 @@ class MetaSliderPlugin {
537
  }
538
  }
539
 
540
-
541
  /**
 
542
  *
 
543
  */
544
  public function update_slider() {
545
 
@@ -607,6 +629,7 @@ class MetaSliderPlugin {
607
 
608
  /**
609
  * Delete a slide via ajax.
 
610
  * @return string Returns the status of the request
611
  */
612
  public function ajax_undelete_slide() {
@@ -631,7 +654,8 @@ class MetaSliderPlugin {
631
 
632
  /**
633
  * Undeletes a slide.
634
- * @param int $slide_id The ID of the slide
 
635
  * @param int $slider_id The ID of the slider (for legacy purposes)
636
  * @return mixed
637
  */
@@ -643,9 +667,11 @@ class MetaSliderPlugin {
643
  ), new WP_Error('update_failed', __('The attempt to restore the slide failed.', 'ml-slider'), array('status' => 409)));
644
  }
645
 
646
- // Legacy: This removes the relationship between the slider and slide
647
- // This restores the relationship between a slide and slider.
648
- // If using a newer version, this relationship is never lost on delete.
 
 
649
 
650
  // Get the slider's term and apply it to the slide.
651
  $term = get_term_by('name', $slider_id, 'ml-slider');
@@ -678,8 +704,9 @@ class MetaSliderPlugin {
678
  /**
679
  * Delete a slide by either trashing it or for
680
  * legacy reasons removing the taxonomy relationship.
681
- * @param int $slide_id
682
- * @param int $slider_id
 
683
  * @return mixed Will return the terms or WP_Error
684
  */
685
  public function delete_slide($slide_id, $slider_id) {
@@ -690,10 +717,12 @@ class MetaSliderPlugin {
690
  ), new WP_Error('update_failed', 'The attempt to delete the slide failed.', array('status' => 409)));
691
  }
692
 
693
- // Legacy: This removes the relationship between the slider and slide
694
- /* A slider with ID 216 might have a term_id of 7
 
695
  * A slide with ID 217 could have a term_taxonomy_id of 7
696
- * Multiple slides would have this term_taxonomy_id of 7 */
 
697
 
698
  // This returns the term_taxonomy_id (7 from example)
699
  $current_terms = wp_get_object_terms($slide_id, 'ml-slider', array('fields' => 'ids'));
@@ -760,7 +789,7 @@ class MetaSliderPlugin {
760
  /**
761
  * Trashes all new format slides for a given slideshow ID
762
  *
763
- * @param int $slider_id
764
  * @return int - The ID of the slideshow from which the slides were removed
765
  */
766
  private function delete_all_slides_from_slider($slider_id) {
@@ -801,7 +830,9 @@ class MetaSliderPlugin {
801
 
802
 
803
  /**
 
804
  *
 
805
  */
806
  public function switch_view() {
807
  global $user_ID;
@@ -876,7 +907,7 @@ class MetaSliderPlugin {
876
  * Find a single slider ID. For example, last edited, or first published.
877
  *
878
  * @param string $orderby field to order.
879
- * @param string $order direction (ASC or DESC).
880
  * @return int slider ID.
881
  */
882
  private function find_slider( $orderby, $order ) {
@@ -909,7 +940,7 @@ class MetaSliderPlugin {
909
  * Get sliders. Returns a nicely formatted array of currently
910
  * published sliders.
911
  *
912
- * @param string $sort_key
913
  * @return array all published sliders
914
  */
915
  public function all_meta_sliders( $sort_key = 'date' ) {
@@ -952,8 +983,8 @@ class MetaSliderPlugin {
952
  /**
953
  * Compare array values
954
  *
955
- * @param array $elem1
956
- * @param array $elem2
957
  * @return bool
958
  */
959
  private function compare_elems( $elem1, $elem2 ) {
@@ -964,8 +995,9 @@ class MetaSliderPlugin {
964
 
965
 
966
  /**
 
967
  *
968
- * @param array $aFields - array of field to render
969
  * @return string
970
  */
971
  public function build_settings_rows( $aFields ) {
@@ -1188,6 +1220,10 @@ class MetaSliderPlugin {
1188
 
1189
  /**
1190
  * Return a button to sadd a new slideshow.
 
 
 
 
1191
  */
1192
  protected function get_add_slideshow_button($text = '', $classes = '') {
1193
  $add_url = wp_nonce_url(admin_url("admin-post.php?action=metaslider_create_slider"), "metaslider_create_slider");
@@ -1238,6 +1274,7 @@ class MetaSliderPlugin {
1238
  echo $this->toggle_layout_button();
1239
 
1240
  if (metaslider_sees_call_to_action()) {
 
1241
  echo $this->upgrade_to_pro_top_button();
1242
  }
1243
  echo "</div>";
@@ -1293,7 +1330,6 @@ class MetaSliderPlugin {
1293
  <?php } else { ?>
1294
  <th class="slider-title" colspan="2">
1295
  <h3 class="alignleft"><?php echo get_the_title($this->slider->id) ?></h3>
1296
- <input class="metaslider-shortcode" readonly='readonly' onclick="this.select()" type='text' value='[metaslider id=<?php echo $this->slider->id ?>]'>
1297
  <?php if (!metaslider_viewing_trashed_slides($this->slider->id)) {
1298
 
1299
  // Remove the actions on trashed view?>
@@ -1328,7 +1364,8 @@ class MetaSliderPlugin {
1328
  <div class="ms-postbox trashed-notice">
1329
  <div class="notice-info"><?php printf(__('You are viewing slides that have been trashed, which will be automatically deleted in %s days. Click <a href="%s">here</a> to view active slides.', 'ml-slider'), EMPTY_TRASH_DAYS, admin_url("?page=metaslider&id={$this->slider->id}")); ?></div>
1330
 
1331
- <?php // TODO this is a temp fix to avoid a compatability check in pro
 
1332
  echo "<input type='checkbox' style='display:none;' checked class='select-slider' rel='flex'></inpu>";
1333
  ?>
1334
  </div>
@@ -1477,7 +1514,8 @@ class MetaSliderPlugin {
1477
  </table>
1478
 
1479
 
1480
- <?php // Show the restore button if there are trashed posts
 
1481
  // Also, render but hide the link in case we want to show
1482
  // it when the user deletes their first slide
1483
  $count = count(metaslider_has_trashed_slides($this->slider->id));
@@ -1488,9 +1526,13 @@ class MetaSliderPlugin {
1488
  <?php } ?>
1489
  </div>
1490
  </div>
1491
-
 
 
 
 
1492
  <div class="ms-postbox ms-toggle closed" id="metaslider_advanced_settings">
1493
- <div class="handlediv" title="Click to toggle"><br></div><h3 class="hndle"><span><?php _e( "Advanced Settings", "ml-slider" ) ?></span></h3>
1494
  <div class="inside">
1495
  <table>
1496
  <tbody>
@@ -1782,11 +1824,13 @@ class MetaSliderPlugin {
1782
  <?php
1783
  }
1784
 
1785
-
1786
  /**
1787
  * Append the 'Add Slider' button to selected admin pages
 
 
 
1788
  */
1789
- public function insert_metaslider_button( $context ) {
1790
 
1791
  $capability = apply_filters( 'metaslider_capability', 'edit_others_posts' );
1792
 
@@ -1866,6 +1910,14 @@ class MetaSliderPlugin {
1866
 
1867
  }
1868
 
 
 
 
 
 
 
 
 
1869
 
1870
  /**
1871
  * Media Manager iframe HTML
@@ -1890,6 +1942,12 @@ class MetaSliderPlugin {
1890
 
1891
  /**
1892
  * Adds extra links to the plugin activation page
 
 
 
 
 
 
1893
  */
1894
  public function get_extra_meta_links($meta, $file, $data, $status) {
1895
 
@@ -1909,7 +1967,7 @@ class MetaSliderPlugin {
1909
  return $meta;
1910
  }
1911
 
1912
- /**
1913
  * Adds styles to admin head to allow for stars animation and coloring
1914
  */
1915
  public function add_star_styles() {
@@ -1923,8 +1981,8 @@ class MetaSliderPlugin {
1923
  <?php }
1924
  }
1925
 
1926
- /**
1927
- * Add nonce to activation page
1928
  */
1929
  public function add_tour_nonce_to_activation_page() {
1930
  if (metaslider_is_on_admin_page('plugins.php')) {?>
@@ -1935,7 +1993,9 @@ class MetaSliderPlugin {
1935
  }
1936
 
1937
  /**
1938
- * Upgrade To Pro Button.
 
 
1939
  */
1940
  public function upgrade_to_pro_top_button() {
1941
  $text = __('Upgrade Now', "ml-slider");
@@ -1946,7 +2006,8 @@ class MetaSliderPlugin {
1946
 
1947
  /**
1948
  * Toggle Layout Buttons.
1949
- * TODO: Re work this to allow for a third view style
 
1950
  */
1951
  public function toggle_layout_button() {
1952
 
@@ -1962,8 +2023,20 @@ class MetaSliderPlugin {
1962
  href='" . admin_url( "admin-post.php?action=metaslider_switch_view&view=".$view_opposite) . "'><i><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-shuffle\"><polyline points=\"16 3 21 3 21 8\"/><line x1=\"4\" y1=\"20\" x2=\"21\" y2=\"3\"/><polyline points=\"21 16 21 21 16 21\"/><line x1=\"15\" y1=\"15\" x2=\"21\" y2=\"21\"/><line x1=\"4\" y1=\"4\" x2=\"9\" y2=\"9\"/></svg></i><span>" . __("Layout", "ml-slider") . "</span></a>";
1963
  }
1964
 
 
 
 
 
 
 
 
 
 
 
1965
  /**
1966
  * Support and Docs Button
 
 
1967
  */
1968
  public function documentation_button() {
1969
  return "<a class='ml-has-icon ml-hanging-button' target='_blank' title='" . __('View The Documentation', 'ml-slider') . "' href='https://www.metaslider.com/documentation/'><i><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-book\"><path d=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"/><path d=\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"/></svg></i><span>" . __("Documentation", "ml-slider") . "</span></a>";
@@ -1973,8 +2046,9 @@ class MetaSliderPlugin {
1973
  * Add a 'property=stylesheet' attribute to the MetaSlider CSS links for HTML5 validation
1974
  *
1975
  * @since 3.3.4
1976
- * @param string $tag
1977
- * @param string $handle
 
1978
  */
1979
  public function add_property_attribute_to_stylesheet_links( $tag, $handle ) {
1980
 
1
  <?php
2
+ // @codingStandardsIgnoreLine
3
  /*
4
  * MetaSlider. Slideshow plugin for WordPress.
5
  *
6
  * Plugin Name: MetaSlider
7
  * Plugin URI: https://www.metaslider.com
8
  * Description: Easy to use slideshow plugin. Create SEO optimised responsive slideshows with Nivo Slider, Flex Slider, Coin Slider and Responsive Slides.
9
+ * Version: 3.6.7
10
  * Author: Team Updraft
11
  * Author URI: https://www.metaslider.com
12
  * License: GPL-2.0+
30
  class MetaSliderPlugin {
31
 
32
  /**
33
+ * Meta slider version number
34
+ *
35
  * @var string
36
  */
37
+ public $version = '3.6.7';
38
 
39
  /**
40
+ * The lowest tier price for upgrades
41
+ *
42
+ * @var string
43
  */
44
  public $pro_price = '39';
45
 
46
  /**
47
+ * Specific SLider
48
+ *
49
  * @var MetaSlider
50
  */
51
  public $slider = null;
142
 
143
  /**
144
  * Autoload MetaSlider classes to reduce memory consumption
145
+ *
146
+ * @param string $class Class name
147
  */
148
  public function autoload( $class ) {
149
 
305
 
306
  }
307
 
308
+ /**
309
  * Add the menu pages
310
  */
311
  public function register_admin_pages() {
323
  /**
324
  * Shortcode used to display slideshow
325
  *
326
+ * @param string $atts attributes for short code
327
  * @return string HTML output of the shortcode
328
  */
329
  public function register_shortcode( $atts ) {
435
 
436
  /**
437
  * Update the tab options in the media manager
438
+ *
439
+ * @param array $strings Array of settings for custom media tabs
440
+ * @return array
441
  */
442
  public function custom_media_uploader_tabs( $strings ) {
443
 
444
+ // update strings
445
  if ( ( isset( $_GET['page'] ) && $_GET['page'] == 'metaslider' ) ) {
446
  $strings['insertMediaTitle'] = __( "Image", "ml-slider" );
447
  $strings['insertIntoPost'] = __( "Add to slideshow", "ml-slider" );
 
448
 
449
+ // remove options
450
  $strings_to_remove = array(
451
  'createVideoPlaylistTitle',
452
  'createGalleryTitle',
469
  /**
470
  * Add extra tabs to the default wordpress Media Manager iframe
471
  *
472
+ * @param array $tabs existing media manager tabs]
473
+ * @return array
474
  */
475
  public function custom_media_upload_tab_name( $tabs ) {
476
 
506
 
507
  }
508
 
 
509
  /**
510
  * Set the current slider
511
+ *
512
+ * @param int $id ID for slider
513
+ * @param array $shortcode_settings Settings for slider
514
  */
515
  public function set_slider( $id, $shortcode_settings = array() ) {
516
 
535
 
536
  /**
537
  * Create a new slider based on the sliders type setting
538
+ *
539
+ * @param string $type Type of slide
540
+ * @param int $id ID of slide
541
+ * @param string $shortcode_settings Shortcode settings
542
+ * @return array
543
  */
544
  private function load_slider( $type, $id, $shortcode_settings ) {
545
 
558
  }
559
  }
560
 
 
561
  /**
562
+ * Update the slider
563
  *
564
+ * @return null
565
  */
566
  public function update_slider() {
567
 
629
 
630
  /**
631
  * Delete a slide via ajax.
632
+ *
633
  * @return string Returns the status of the request
634
  */
635
  public function ajax_undelete_slide() {
654
 
655
  /**
656
  * Undeletes a slide.
657
+ *
658
+ * @param int $slide_id The ID of the slide
659
  * @param int $slider_id The ID of the slider (for legacy purposes)
660
  * @return mixed
661
  */
667
  ), new WP_Error('update_failed', __('The attempt to restore the slide failed.', 'ml-slider'), array('status' => 409)));
668
  }
669
 
670
+ /*
671
+ * Legacy: This removes the relationship between the slider and slide
672
+ * This restores the relationship between a slide and slider.
673
+ * If using a newer version, this relationship is never lost on delete.
674
+ */
675
 
676
  // Get the slider's term and apply it to the slide.
677
  $term = get_term_by('name', $slider_id, 'ml-slider');
704
  /**
705
  * Delete a slide by either trashing it or for
706
  * legacy reasons removing the taxonomy relationship.
707
+ *
708
+ * @param int $slide_id The ID of the slide
709
+ * @param int $slider_id The ID of the slider
710
  * @return mixed Will return the terms or WP_Error
711
  */
712
  public function delete_slide($slide_id, $slider_id) {
717
  ), new WP_Error('update_failed', 'The attempt to delete the slide failed.', array('status' => 409)));
718
  }
719
 
720
+ /*
721
+ * Legacy: This removes the relationship between the slider and slide
722
+ * A slider with ID 216 might have a term_id of 7
723
  * A slide with ID 217 could have a term_taxonomy_id of 7
724
+ * Multiple slides would have this term_taxonomy_id of 7
725
+ */
726
 
727
  // This returns the term_taxonomy_id (7 from example)
728
  $current_terms = wp_get_object_terms($slide_id, 'ml-slider', array('fields' => 'ids'));
789
  /**
790
  * Trashes all new format slides for a given slideshow ID
791
  *
792
+ * @param int $slider_id Specified Slider ID
793
  * @return int - The ID of the slideshow from which the slides were removed
794
  */
795
  private function delete_all_slides_from_slider($slider_id) {
830
 
831
 
832
  /**
833
+ * Switch view
834
  *
835
+ * @return null
836
  */
837
  public function switch_view() {
838
  global $user_ID;
907
  * Find a single slider ID. For example, last edited, or first published.
908
  *
909
  * @param string $orderby field to order.
910
+ * @param string $order direction (ASC or DESC).
911
  * @return int slider ID.
912
  */
913
  private function find_slider( $orderby, $order ) {
940
  * Get sliders. Returns a nicely formatted array of currently
941
  * published sliders.
942
  *
943
+ * @param string $sort_key Specified sort key
944
  * @return array all published sliders
945
  */
946
  public function all_meta_sliders( $sort_key = 'date' ) {
983
  /**
984
  * Compare array values
985
  *
986
+ * @param array $elem1 The first element to comapre
987
+ * @param array $elem2 The second element to comapr
988
  * @return bool
989
  */
990
  private function compare_elems( $elem1, $elem2 ) {
995
 
996
 
997
  /**
998
+ * Building setting rows
999
  *
1000
+ * @param array $aFields array of field to render
1001
  * @return string
1002
  */
1003
  public function build_settings_rows( $aFields ) {
1220
 
1221
  /**
1222
  * Return a button to sadd a new slideshow.
1223
+ *
1224
+ * @param string $text text for the button
1225
+ * @param string $classes Specify calsses for the button
1226
+ * @return sring HTMl Button
1227
  */
1228
  protected function get_add_slideshow_button($text = '', $classes = '') {
1229
  $add_url = wp_nonce_url(admin_url("admin-post.php?action=metaslider_create_slider"), "metaslider_create_slider");
1274
  echo $this->toggle_layout_button();
1275
 
1276
  if (metaslider_sees_call_to_action()) {
1277
+ echo $this->addons_page_button();
1278
  echo $this->upgrade_to_pro_top_button();
1279
  }
1280
  echo "</div>";
1330
  <?php } else { ?>
1331
  <th class="slider-title" colspan="2">
1332
  <h3 class="alignleft"><?php echo get_the_title($this->slider->id) ?></h3>
 
1333
  <?php if (!metaslider_viewing_trashed_slides($this->slider->id)) {
1334
 
1335
  // Remove the actions on trashed view?>
1364
  <div class="ms-postbox trashed-notice">
1365
  <div class="notice-info"><?php printf(__('You are viewing slides that have been trashed, which will be automatically deleted in %s days. Click <a href="%s">here</a> to view active slides.', 'ml-slider'), EMPTY_TRASH_DAYS, admin_url("?page=metaslider&id={$this->slider->id}")); ?></div>
1366
 
1367
+ <?php
1368
+ // TODO this is a temp fix to avoid a compatability check in pro
1369
  echo "<input type='checkbox' style='display:none;' checked class='select-slider' rel='flex'></inpu>";
1370
  ?>
1371
  </div>
1514
  </table>
1515
 
1516
 
1517
+ <?php
1518
+ // Show the restore button if there are trashed posts
1519
  // Also, render but hide the link in case we want to show
1520
  // it when the user deletes their first slide
1521
  $count = count(metaslider_has_trashed_slides($this->slider->id));
1526
  <?php } ?>
1527
  </div>
1528
  </div>
1529
+ <div class="ms-postbox"><h3 class="hndle"><span><?php _e("How to Use", "ml-slider" ) ?></span></h3>
1530
+ <div class="inside wp-clearfix metaslider-shortcode">
1531
+ <?php echo $this->shortcode_tip(); ?>
1532
+ </div>
1533
+ </div>
1534
  <div class="ms-postbox ms-toggle closed" id="metaslider_advanced_settings">
1535
+ <div class="handlediv" title="<?php esc_attr_e('Click to toggle', 'ml-slider'); ?>"></div><h3 class="hndle"><span><?php _e("Advanced Settings", "ml-slider") ?></span></h3>
1536
  <div class="inside">
1537
  <table>
1538
  <tbody>
1824
  <?php
1825
  }
1826
 
 
1827
  /**
1828
  * Append the 'Add Slider' button to selected admin pages
1829
+ *
1830
+ * @param string $context HTML being passed to amend HTML button
1831
+ * @return string HTML button
1832
  */
1833
+ public function insert_metaslider_button($context) {
1834
 
1835
  $capability = apply_filters( 'metaslider_capability', 'edit_others_posts' );
1836
 
1910
 
1911
  }
1912
 
1913
+ /**
1914
+ * Provide a tip so the user can add the slideshow to thier site
1915
+ *
1916
+ * @return string the tip
1917
+ */
1918
+ public function shortcode_tip() {
1919
+ return "<p>" . __("To display your slideshow, add the following shortcode (in orange) to your page. If adding the slideshow to your theme files, additionally include the surrounding PHP function (in gray).", "ml-slider") . "</p><pre id=\"ms-entire-code\">&lt;?php echo do_shortcode('<br>&emsp;&emsp;<span class=\"ms-shortcode\">[metaslider id=\"" . $this->slider->id . "\"]</span><br>'); ?&gt;</pre><button class=\"ms-copy-all ml-button ml-skinless-button\"><i><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-copy\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"/><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"/></svg></i>" . __('copy all', 'ml-slider') . "</button>";
1920
+ }
1921
 
1922
  /**
1923
  * Media Manager iframe HTML
1942
 
1943
  /**
1944
  * Adds extra links to the plugin activation page
1945
+ *
1946
+ * @param array $meta Extra meta links
1947
+ * @param string $file Specific file to compare against the base plugin
1948
+ * @param string $data Data for the meat links
1949
+ * @param string $status Staus of the meta links
1950
+ * @return array Return the meta links array
1951
  */
1952
  public function get_extra_meta_links($meta, $file, $data, $status) {
1953
 
1967
  return $meta;
1968
  }
1969
 
1970
+ /**
1971
  * Adds styles to admin head to allow for stars animation and coloring
1972
  */
1973
  public function add_star_styles() {
1981
  <?php }
1982
  }
1983
 
1984
+ /**
1985
+ * Add nonce to activation pa
1986
  */
1987
  public function add_tour_nonce_to_activation_page() {
1988
  if (metaslider_is_on_admin_page('plugins.php')) {?>
1993
  }
1994
 
1995
  /**
1996
+ * Upgrade To Pro Button.
1997
+ *
1998
+ * @return string Returns a HTMl button
1999
  */
2000
  public function upgrade_to_pro_top_button() {
2001
  $text = __('Upgrade Now', "ml-slider");
2006
 
2007
  /**
2008
  * Toggle Layout Buttons.
2009
+ *
2010
+ * @return string returns html button
2011
  */
2012
  public function toggle_layout_button() {
2013
 
2023
  href='" . admin_url( "admin-post.php?action=metaslider_switch_view&view=".$view_opposite) . "'><i><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-shuffle\"><polyline points=\"16 3 21 3 21 8\"/><line x1=\"4\" y1=\"20\" x2=\"21\" y2=\"3\"/><polyline points=\"21 16 21 21 16 21\"/><line x1=\"15\" y1=\"15\" x2=\"21\" y2=\"21\"/><line x1=\"4\" y1=\"4\" x2=\"9\" y2=\"9\"/></svg></i><span>" . __("Layout", "ml-slider") . "</span></a>";
2024
  }
2025
 
2026
+ /**
2027
+ * Link to the comparison page button
2028
+ *
2029
+ * @return string returns html button
2030
+ */
2031
+ public function addons_page_button() {
2032
+ $link = admin_url('admin.php?page=upgrade');
2033
+ return "<a class='ml-has-icon ml-hanging-button' title='" . __('View Add-ons / Other Plugins', 'ml-slider') . "' href='{$link}'><i><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-clipboard\"><path d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"/><rect x=\"8\" y=\"2\" width=\"8\" height=\"4\" rx=\"1\" ry=\"1\"/></svg></i><span>" . __("Add-ons / Other Plugins", "ml-slider") . "</span></a>";
2034
+ }
2035
+
2036
  /**
2037
  * Support and Docs Button
2038
+ *
2039
+ * @return string returns html button
2040
  */
2041
  public function documentation_button() {
2042
  return "<a class='ml-has-icon ml-hanging-button' target='_blank' title='" . __('View The Documentation', 'ml-slider') . "' href='https://www.metaslider.com/documentation/'><i><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-book\"><path d=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"/><path d=\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"/></svg></i><span>" . __("Documentation", "ml-slider") . "</span></a>";
2046
  * Add a 'property=stylesheet' attribute to the MetaSlider CSS links for HTML5 validation
2047
  *
2048
  * @since 3.3.4
2049
+ * @param string $tag Specifies tag
2050
+ * @param string $handle Checks for the handle to add property to
2051
+ * @return string
2052
  */
2053
  public function add_property_attribute_to_stylesheet_links( $tag, $handle ) {
2054
 
readme.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: matchalabs, DavidAnderson, dnutbourne, kbat82
3
  Tags: wordpress slideshow,seo,slideshow,slider,widget,wordpress slider,image slider,flexslider,flex slider,nivoslider,nivo slider,responsive,responsive slides,coinslider,coin slider,slideshow,carousel,responsive slider,vertical slides
4
  Donate link: https://david.dw-perspective.org.uk/donate
5
  Requires at least: 3.5
6
- Stable tag: 3.6.6
7
  Tested up to: 4.9
8
  License: GPLv2 or later
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
@@ -151,6 +151,12 @@ See https://www.metaslider.com/documentation/image-cropping/
151
 
152
  == Changelog ==
153
 
 
 
 
 
 
 
154
  = 3.6.6 - 2017/Nov/23 =
155
 
156
  * FIX: Fixes FlexSlider bug when resizing slider.
@@ -615,4 +621,4 @@ More info/Comments: http://www.metaslider.com/coming-soon-meta-slider-2-6-free/
615
  * Initial version
616
 
617
  == Upgrade Notice ==
618
- * 3.6.6 : 3.6 series has three new features, three fixes, various smaller tweaks. A recommended update for all. If you have the paid add-on pack, update that to version 2.7.1 or later at the same time.
3
  Tags: wordpress slideshow,seo,slideshow,slider,widget,wordpress slider,image slider,flexslider,flex slider,nivoslider,nivo slider,responsive,responsive slides,coinslider,coin slider,slideshow,carousel,responsive slider,vertical slides
4
  Donate link: https://david.dw-perspective.org.uk/donate
5
  Requires at least: 3.5
6
+ Stable tag: 3.6.7
7
  Tested up to: 4.9
8
  License: GPLv2 or later
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
151
 
152
  == Changelog ==
153
 
154
+ = 3.6.7 - 2017/Dec/15 =
155
+
156
+ * FEATURE: Adds back in some instructions on how to display the slideshow
157
+ * TWEAK: Add DocBlock checking with CI for PHP and JS files
158
+ * FIX: Adds compatibility fixes for older WP versions.
159
+
160
  = 3.6.6 - 2017/Nov/23 =
161
 
162
  * FIX: Fixes FlexSlider bug when resizing slider.
621
  * Initial version
622
 
623
  == Upgrade Notice ==
624
+ * 3.6.7 : Adds back shortcode advice, and compatibility for old WP versions. 3.6 series has three new features, three fixes, various smaller tweaks. A recommended update for all. If you have the paid add-on pack, update that to version 2.7.1 or later at the same time.