MetaSlider - Version 3.4

Version Description

[04/01/17] =

This is the first in a series of small updates which will eventually allow us to remove restrictions in the plugin which prevent us from implementing certain functionality, including:

  • Changing a slide image
  • Using unique captions when the same slide has been added to more than one slideshow
  • Adding the same slide to a slideshow multiple times
  • Duplicating slides and sliders
  • Drafting slides
  • Scheduling slides

We are releasing this update in a number of small stages due to the number of users Meta Slider has. We are being overly cautious to ensure it's a smooth transition. This update does not make any major changes to the current plugin functionality, but it does put in place the "scaffolding" code which we will rely on to implement further updates.

Download this release

Release Info

Developer matchalabs
Plugin Icon 128x128 MetaSlider
Version 3.4
Comparing to
See all releases

Code changes from version 3.3.7 to 3.4

assets/fonts/metaslider.eot ADDED
Binary file
assets/fonts/metaslider.svg ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>Generated by IcoMoon</metadata>
5
+ <defs>
6
+ <font id="metaslider" horiz-adv-x="1024">
7
+ <font-face units-per-em="1024" ascent="960" descent="-64" />
8
+ <missing-glyph horiz-adv-x="1024" />
9
+ <glyph unicode="&#x20;" horiz-adv-x="512" d="" />
10
+ <glyph unicode="&#xe900;" d="M330.957 749.355c-9.462-12.198-18.678-23.927-20.48-26.063-1.802-2.138-4.751-5.898-6.554-8.36-3.811-5.204-21.987-28.43-24.969-31.91-1.118-1.303-8.362-10.48-16.095-20.392-7.735-9.912-16.404-20.906-19.268-24.433-2.863-3.525-9.998-12.741-15.858-20.48-5.859-7.737-11.885-15.544-13.39-17.347-7.361-8.819-54.843-69.474-57.975-74.060-1.97-2.888-6.21-8.417-9.421-12.288-10.041-12.114-55.867-70.654-60.017-76.673-2.175-3.154-5.114-6.9-6.531-8.325s-4.42-5.063-6.672-8.079c-2.253-3.019-9.062-11.807-15.131-19.528-12.804-16.29-12.72-16.042-5.759-17.342 10.484-1.96 98.388-0.139 99.117 2.052 0.371 1.116 12.229 16.599 26.352 34.406 14.123 17.809 27.017 34.458 28.654 36.995 1.634 2.54 4.241 5.884 5.79 7.432s5.001 5.728 7.672 9.29c4.088 5.446 38.154 49.048 61.417 78.606 14.674 18.645 56.775 72.399 59.791 76.341 5.868 7.67 36.782 46.397 42.195 52.859 2.912 3.475 5.962 7.53 6.779 9.011 0.815 1.481 3.617 5.425 6.226 8.765 5.755 7.371 7.049 4.825-20.224 39.801-18.85 24.175-25.561 31.971-27.478 31.924-0.532-0.012-8.71-10.004-18.172-22.204zM473.698 769.233c-1.978-1.057-8.178-7.893-13.777-15.188-12.366-16.114-13.744-17.879-44.587-57.123-13.517-17.197-26.051-33.329-27.853-35.848s-4.426-5.779-5.833-7.246c-1.405-1.466-7.268-8.933-13.029-16.593-9.327-12.399-40.663-52.283-54.591-69.489-2.855-3.525-9.984-12.741-15.843-20.48-5.859-7.737-11.891-15.544-13.4-17.347-6.031-7.197-53.5-67.758-59.841-76.345-3.723-5.044-7.752-10.205-8.952-11.469s-4.36-5.247-7.023-8.851c-2.662-3.604-11.766-15.237-20.228-25.85-20.767-26.042-23.593-24.121 35.492-24.121h49.029l7.438 8.602c4.092 4.731 14.639 17.818 23.441 29.082 8.8 11.264 21.789 27.853 28.86 36.864s15.43 19.702 18.571 23.757c12.648 16.323 20.302 26.11 32.035 40.96 14.682 18.586 44.616 56.828 48.087 61.44 29.215 38.793 43.889 55.239 46.61 52.236 2.288-2.521 27.001-34.275 30.417-39.082 1.802-2.535 6.070-8.006 9.482-12.159 8.020-9.753 50.444-63.857 59.171-75.457 3.693-4.909 9.105-11.545 12.030-14.746s5.321-6.279 5.325-6.84c0.012-1.528 16.435-21.832 18.168-22.465 0.825-0.299 1.501-1.245 1.501-2.099 0-0.856 7.721-11.301 17.158-23.212s21.049-26.571 25.805-32.578c4.755-6.009 10.49-13.517 12.743-16.687 5.493-7.729 4.303-7.569 56.621-7.594 58.511-0.029 55.931-1.745 35.701 23.734-8.585 10.813-19.72 25.19-24.744 31.949-5.022 6.758-10.301 13.543-11.731 15.077-4.583 4.917-7.311 8.317-17.443 21.74-12.253 16.232-48.728 62.822-52.488 67.043-1.52 1.702-9.107 11.399-16.867 21.545-7.758 10.148-24.795 31.967-37.861 48.488s-27.075 34.542-31.13 40.047c-4.055 5.503-10.097 13.257-13.427 17.228s-16.411 20.49-29.069 36.71c-12.657 16.22-24.31 31.056-25.893 32.969-1.585 1.911-3.987 5.167-5.339 7.231-1.352 2.066-3.768 5.132-5.37 6.81-1.604 1.679-5.358 6.255-8.344 10.166-4.899 6.418-5.782 6.926-9.023 5.19zM468.531 604.058c-6.787-6.986-35.977-43.971-41.394-52.445-3.559-5.573-1.679-9.525 12.773-26.851 1.851-2.222 9.302-11.721 24.218-30.886 5.612-7.209 20.969-26.747 34.13-43.418s27.558-35.103 31.996-40.96c9.974-13.167 13.509-17.535 18.127-22.405l3.611-3.809h47.454c26.1 0 48.622 0.449 50.047 0.995 2.72 1.044 3.545 4.897 1.247 5.831-0.737 0.301-6.427 7.182-12.642 15.292s-18.328 23.622-26.919 34.47-17.095 21.819-18.897 24.379c-1.802 2.56-4.751 6.322-6.554 8.362-3.871 4.379-8.503 10.258-21.514 27.31-5.288 6.928-21.426 27.572-35.86 45.875-14.434 18.301-29.28 37.329-32.993 42.285-3.711 4.956-9.042 11.54-11.848 14.631-2.804 3.090-5.1 6.224-5.1 6.963 0 2.961-3.453 0.997-9.882-5.62z" />
11
+ <glyph unicode="&#xe901;" d="M0 550.4v-409.6h819.2v819.2h-819.2v-409.6zM353.772 767.898c4.432-4.448 40.808-50.96 44.9-57.414 2.863-4.512 2.839-4.657-1.841-10.65-2.609-3.34-5.411-7.285-6.226-8.765-0.817-1.481-3.867-5.536-6.779-9.011-5.413-6.461-36.327-45.189-42.195-52.859-3.017-3.942-45.117-57.696-59.791-76.341-23.263-29.559-57.33-73.161-61.417-78.606-2.671-3.561-6.124-7.741-7.672-9.29s-4.155-4.893-5.79-7.432c-1.636-2.537-14.531-19.186-28.654-36.995-14.123-17.807-25.981-33.29-26.352-34.406-0.729-2.191-88.633-4.012-99.117-2.052-6.961 1.3-7.045 1.053 5.759 17.342 6.068 7.721 12.878 16.509 15.131 19.528 2.253 3.017 5.255 6.654 6.672 8.079s4.356 5.171 6.531 8.325c4.149 6.019 49.975 64.559 60.017 76.673 3.211 3.871 7.451 9.4 9.421 12.288 3.131 4.585 50.614 65.241 57.975 74.060 1.505 1.802 7.53 9.609 13.39 17.347 5.859 7.739 12.995 16.955 15.858 20.48 2.863 3.527 11.532 14.52 19.268 24.433 7.733 9.912 14.977 19.089 16.095 20.392 2.982 3.48 21.158 26.706 24.969 31.91 1.802 2.462 4.751 6.222 6.554 8.36 1.802 2.136 11.018 13.865 20.48 26.063 19.157 24.699 17.789 23.587 22.815 18.543zM491.065 753.877c1.602-1.677 4.018-4.743 5.37-6.81 1.352-2.064 3.754-5.321 5.339-7.231 1.583-1.913 13.236-16.749 25.893-32.969 12.659-16.22 25.739-32.739 29.069-36.71s9.372-11.725 13.427-17.228c4.055-5.505 18.063-23.525 31.13-40.047s30.104-38.341 37.861-48.488c7.76-10.146 15.348-19.843 16.867-21.545 3.76-4.221 40.235-50.811 52.488-67.043 10.131-13.423 12.859-16.822 17.443-21.74 1.43-1.534 6.709-8.319 11.731-15.077 5.024-6.758 16.159-21.135 24.744-31.949 20.23-25.479 22.811-23.763-35.701-23.734-52.318 0.025-51.128-0.135-56.621 7.594-2.253 3.17-7.987 10.678-12.743 16.687-4.755 6.007-16.368 20.666-25.805 32.578s-17.158 22.356-17.158 23.212c0 0.854-0.676 1.8-1.501 2.099-1.733 0.633-18.156 20.937-18.168 22.465-0.004 0.561-2.4 3.639-5.325 6.84s-8.337 9.837-12.030 14.746c-8.727 11.6-51.151 65.704-59.171 75.457-3.412 4.153-7.68 9.624-9.482 12.159-3.416 4.807-28.129 36.561-30.417 39.082-2.722 3.002-17.396-13.443-46.61-52.236-3.471-4.612-33.405-42.854-48.087-61.44-11.733-14.85-19.386-24.637-32.035-40.96-3.142-4.055-11.5-14.746-18.571-23.757s-20.060-25.6-28.86-36.864c-8.802-11.264-19.35-24.351-23.441-29.082l-7.438-8.602h-49.029c-59.085 0-56.259-1.921-35.492 24.121 8.462 10.613 17.566 22.245 20.228 25.85s5.822 7.588 7.023 8.851c1.2 1.264 5.229 6.425 8.952 11.469 6.341 8.587 53.809 69.149 59.841 76.345 1.509 1.802 7.541 9.609 13.4 17.347s12.988 16.955 15.843 20.48c13.928 17.205 45.265 57.090 54.591 69.489 5.761 7.66 11.624 15.127 13.029 16.593 1.407 1.466 4.030 4.727 5.833 7.246s14.336 18.651 27.853 35.848c30.843 39.244 32.221 41.009 44.587 57.123 13.969 18.201 15.895 19.046 22.8 9.998 2.986-3.912 6.74-8.487 8.344-10.166zM478.413 609.677c0-0.739 2.296-3.873 5.1-6.963 2.806-3.090 8.137-9.675 11.848-14.631 3.713-4.956 18.559-23.984 32.993-42.285 14.434-18.303 30.573-38.947 35.86-45.875 13.011-17.052 17.644-22.931 21.514-27.31 1.802-2.040 4.751-5.802 6.554-8.362s10.306-13.531 18.897-24.379c8.591-10.848 20.705-26.36 26.919-34.47 6.216-8.11 11.905-14.991 12.642-15.292 2.298-0.934 1.473-4.786-1.247-5.831-1.425-0.547-23.947-0.995-50.047-0.995h-47.454l-3.611 3.809c-4.618 4.87-8.153 9.239-18.127 22.405-4.438 5.857-18.835 24.289-31.996 40.96s-28.518 36.209-34.13 43.418c-14.916 19.165-22.366 28.664-24.218 30.886-19.075 22.864-19.53 18.924 5.986 51.853 21.176 27.329 32.516 38.859 32.516 33.063z" />
12
+ </font></defs></svg>
assets/fonts/metaslider.ttf ADDED
Binary file
assets/fonts/metaslider.woff ADDED
Binary file
assets/metaslider/admin.css CHANGED
@@ -888,4 +888,61 @@ textarea:-ms-input-placeholder {
888
 
889
  #adminmenu .toplevel_page_metaslider .wp-menu-image img {
890
  opacity: 1;
891
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
888
 
889
  #adminmenu .toplevel_page_metaslider .wp-menu-image img {
890
  opacity: 1;
891
+ }
892
+
893
+
894
+ .metaslider_pro {
895
+ margin-top: 50px;
896
+ }
897
+ .metaslider_pro p {
898
+ text-align: center;
899
+ font-size: 1.2em;
900
+ }
901
+
902
+ .metaslider_pro .probutton,
903
+ .metaslider_pro .probutton:hover {
904
+ width: 36%;
905
+ margin: 20px 32% 10px 32%;
906
+ float: left;
907
+ font-size: 1.4em;
908
+ padding: 15px 0;
909
+ border-color: #3793B7;
910
+ background-color: #41add7;
911
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #41add7), color-stop(100%, #218cb7));
912
+ background-image: -webkit-linear-gradient(top, #41add7, #218cb7);
913
+ background-image: -moz-linear-gradient(top, #41add7, #218cb7);
914
+ background-image: -o-linear-gradient(top, #41add7, #218cb7);
915
+ background-image: linear-gradient(top, #41add7, #218cb7);
916
+ -webkit-box-shadow: inset 0 1px rgba(255, 255, 255, 0.2), 0 1px 3px rgba(0, 0, 0, 0.2);
917
+ -moz-box-shadow: inset 0 1px rgba(255, 255, 255, 0.2), 0 1px 3px rgba(0, 0, 0, 0.2);
918
+ box-shadow: inset 0 1px rgba(255, 255, 255, 0.2), 0 1px 3px rgba(0, 0, 0, 0.2);
919
+ border-radius: 4px;
920
+ -webkit-box-shadow: inset 0 0 2px 0 rgba(57, 140, 255, 0.8);
921
+ box-shadow: inset 0 0 2px 0 rgba(57, 140, 255, 0.8);
922
+ color: #fff;
923
+ font-family: 'PT Sans', helvetica, arial, sans-serif;
924
+ text-shadow: 0 -1px 1px #1a5ad9;
925
+ color: white;
926
+ text-align: center;
927
+ text-decoration: none;
928
+ border-radius: 5px;
929
+ line-height: 2em;
930
+ }
931
+
932
+ .metaslider_pro .super {
933
+ text-transform: uppercase;
934
+ font-size: 0.7em;
935
+ vertical-align: top;
936
+ line-height: 2em;
937
+ }
938
+
939
+ .metaslider_pro .subtext {
940
+ float: left;
941
+ width: 100%;
942
+ text-align: center;
943
+ font-style: italic;
944
+ }
945
+
946
+ .metaslider_pro .logo {
947
+ text-transform: uppercase
948
+ }
assets/metaslider/global.css ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @font-face {
2
+ font-family: 'metaslider';
3
+ src: url('../fonts/metaslider.eot?rmrdbf');
4
+ src: url('../fonts/metaslider.eot?rmrdbf#iefix') format('embedded-opentype'),
5
+ url('../fonts/metaslider.ttf?rmrdbf') format('truetype'),
6
+ url('../fonts/metaslider.woff?rmrdbf') format('woff'),
7
+ url('../fonts/metaslider.svg?rmrdbf#metaslider') format('svg');
8
+ font-weight: normal;
9
+ font-style: normal;
10
+ }
11
+
12
+ #adminmenu .toplevel_page_metaslider div.wp-menu-image:before {
13
+ content: "\e900" !important;
14
+ font-family: "metaslider" !important;
15
+ speak: none;
16
+ font-size: 28px;
17
+ }
inc/metaslider.imagehelper.class.php CHANGED
@@ -29,9 +29,14 @@ class MetaSliderImageHelper {
29
 
30
  $upload_dir = wp_upload_dir();
31
 
32
- $this->id = $slide_id;
33
- $this->url = apply_filters("metaslider_attachment_url", $upload_dir['baseurl'] . "/" . get_post_meta( $slide_id, '_wp_attached_file', true ), $slide_id);
34
- $this->path = get_attached_file( $slide_id );
 
 
 
 
 
35
  $this->container_width = $width;
36
  $this->container_height = $height;
37
  $this->use_image_editor = $use_image_editor;
@@ -303,15 +308,6 @@ class MetaSliderImageHelper {
303
 
304
  // editor will return an error if the path is invalid
305
  if ( is_wp_error( $image ) ) {
306
-
307
- $capability = apply_filters( 'metaslider_capability', 'edit_others_posts' );
308
-
309
- if ( is_admin() && current_user_can( $capability ) ) {
310
- echo '<div id="message" class="error">';
311
- echo "<p><strong>ERROR</strong> Slide ID: {$this->id} - <i>" . $image->get_error_message() . "</i></p>";
312
- echo "</div>";
313
- }
314
-
315
  return $this->url;
316
  }
317
 
29
 
30
  $upload_dir = wp_upload_dir();
31
 
32
+ if ( get_post_type( $slide_id ) === 'attachment' ) {
33
+ $this->id = $slide_id;
34
+ } else {
35
+ $this->id = get_post_thumbnail_id( $slide_id );
36
+ }
37
+
38
+ $this->url = apply_filters("metaslider_attachment_url", $upload_dir['baseurl'] . "/" . get_post_meta( $this->id, '_wp_attached_file', true ), $this->id);
39
+ $this->path = get_attached_file( $this->id );
40
  $this->container_width = $width;
41
  $this->container_height = $height;
42
  $this->use_image_editor = $use_image_editor;
308
 
309
  // editor will return an error if the path is invalid
310
  if ( is_wp_error( $image ) ) {
 
 
 
 
 
 
 
 
 
311
  return $this->url;
312
  }
313
 
inc/slide/metaslide.class.php CHANGED
@@ -221,6 +221,34 @@ class MetaSlide {
221
  }
222
 
223
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
224
  /**
225
  * Tag the slide attachment to the slider tax category
226
  */
@@ -337,8 +365,8 @@ class MetaSlide {
337
  'force_no_custom_order' => true,
338
  'orderby' => 'menu_order',
339
  'order' => 'DESC',
340
- 'post_type' => 'attachment',
341
- 'post_status' => 'inherit',
342
  'lang' => '', // polylang, ingore language filter
343
  'suppress_filters' => 1, // wpml, ignore language filter
344
  'posts_per_page' => 1,
221
  }
222
 
223
 
224
+ /**
225
+ * Create a new post for a slide. Tag a featured image to it.
226
+ *
227
+ * @since 3.4
228
+ * @param string $attachment_id - Media File ID to use for the slide
229
+ * @param string $type - the slide type identifier
230
+ * @param int $slider_id - the parent slideshow ID
231
+ * @return int $id - the ID of the newly created slide
232
+ */
233
+ /*public function insert_slide($attachment_id, $type, $slider_id) {
234
+
235
+ $id = wp_insert_post( array(
236
+ 'post_title' => __( "Slider {$slider_id} - {$type}", "ml-slider" ),
237
+ 'post_status' => 'publish',
238
+ 'post_type' => 'ml-slide'
239
+ )
240
+ );
241
+
242
+ if ( $attachment_id ) {
243
+ set_post_thumbnail( $id, $attachment_id );
244
+ }
245
+
246
+ $this->add_or_update_or_delete_meta( $id, 'type', $type );
247
+
248
+ return $id;
249
+
250
+ }*/
251
+
252
  /**
253
  * Tag the slide attachment to the slider tax category
254
  */
365
  'force_no_custom_order' => true,
366
  'orderby' => 'menu_order',
367
  'order' => 'DESC',
368
+ 'post_type' => array('attachment', 'ml-slide'),
369
+ 'post_status' => array('inherit', 'publish'),
370
  'lang' => '', // polylang, ingore language filter
371
  'suppress_filters' => 1, // wpml, ignore language filter
372
  'posts_per_page' => 1,
inc/slide/metaslide.image.class.php CHANGED
@@ -23,6 +23,7 @@ class MetaImageSlide extends MetaSlide {
23
 
24
  }
25
 
 
26
  /**
27
  * Create a new slide and echo the admin HTML
28
  */
@@ -57,6 +58,7 @@ class MetaImageSlide extends MetaSlide {
57
 
58
  } else {
59
 
 
60
  $this->tag_slide_to_slider();
61
  $this->add_or_update_or_delete_meta( $slide_id, 'type', 'image' );
62
 
@@ -224,7 +226,13 @@ class MetaImageSlide extends MetaSlide {
224
  */
225
  public function is_valid_image() {
226
 
227
- $meta = wp_get_attachment_metadata( $this->slide->ID );
 
 
 
 
 
 
228
 
229
  $is_valid = isset( $meta['width'], $meta['height'] );
230
 
@@ -414,7 +422,13 @@ class MetaImageSlide extends MetaSlide {
414
  */
415
  private function flex_smart_pad( $atts, $slide ) {
416
 
417
- $meta = wp_get_attachment_metadata( $slide['id'] );
 
 
 
 
 
 
418
 
419
  if ( isset( $meta['width'], $meta['height'] ) ) {
420
 
@@ -426,17 +440,11 @@ class MetaImageSlide extends MetaSlide {
426
  $new_image_height = $image_height * ( $container_width / $image_width );
427
 
428
  if ( $new_image_height < $container_height ) {
429
-
430
  $margin_top_in_px = ( $container_height - $new_image_height ) / 2;
431
-
432
  $margin_top_in_percent = ( $margin_top_in_px / $container_width ) * 100;
433
-
434
  return 'margin-top: ' . $margin_top_in_percent . '%';
435
-
436
  } else {
437
-
438
  return 'margin: 0 auto; width: ' . ( $container_height / $new_image_height ) * 100 . '%';
439
-
440
  }
441
 
442
  }
23
 
24
  }
25
 
26
+
27
  /**
28
  * Create a new slide and echo the admin HTML
29
  */
58
 
59
  } else {
60
 
61
+ //$new_slide_id = $this->insert_slide( $attachment_id, 'image', $slider_id );
62
  $this->tag_slide_to_slider();
63
  $this->add_or_update_or_delete_meta( $slide_id, 'type', 'image' );
64
 
226
  */
227
  public function is_valid_image() {
228
 
229
+ if ( get_post_type( $this->slide->ID ) === 'attachment' ) {
230
+ $image_id = $this->slide->ID;
231
+ } else {
232
+ $image_id = get_post_thumbnail_id( $this->slide->ID );
233
+ }
234
+
235
+ $meta = wp_get_attachment_metadata( $image_id );
236
 
237
  $is_valid = isset( $meta['width'], $meta['height'] );
238
 
422
  */
423
  private function flex_smart_pad( $atts, $slide ) {
424
 
425
+ if ( get_post_type( $slide['id'] ) === 'attachment' ) {
426
+ $slide_id = $slide['id'];
427
+ } else {
428
+ $slide_id = get_post_thumbnail_id( $slide['id'] );
429
+ }
430
+
431
+ $meta = wp_get_attachment_metadata( $slide_id );
432
 
433
  if ( isset( $meta['width'], $meta['height'] ) ) {
434
 
440
  $new_image_height = $image_height * ( $container_width / $image_width );
441
 
442
  if ( $new_image_height < $container_height ) {
 
443
  $margin_top_in_px = ( $container_height - $new_image_height ) / 2;
 
444
  $margin_top_in_percent = ( $margin_top_in_px / $container_width ) * 100;
 
445
  return 'margin-top: ' . $margin_top_in_percent . '%';
 
446
  } else {
 
447
  return 'margin: 0 auto; width: ' . ( $container_height / $new_image_height ) * 100 . '%';
 
448
  }
449
 
450
  }
inc/slider/metaslider.class.php CHANGED
@@ -134,8 +134,8 @@ class MetaSlider {
134
  'force_no_custom_order' => true,
135
  'orderby' => 'menu_order',
136
  'order' => 'ASC',
137
- 'post_type' => 'attachment',
138
- 'post_status' => 'inherit',
139
  'lang' => '', // polylang, ingore language filter
140
  'suppress_filters' => 1, // wpml, ignore language filter
141
  'posts_per_page' => -1,
@@ -186,7 +186,7 @@ class MetaSlider {
186
  if ( $this->get_setting( 'random' ) == 'true' && !is_admin() ) {
187
  shuffle( $slides );
188
  }
189
-
190
  $this->slides = $slides;
191
 
192
  return $this->slides;
@@ -305,14 +305,26 @@ class MetaSlider {
305
  $script .= "\n });";
306
  $script .= $custom_js_after;
307
  $script .= "\n };";
308
- $script .= "\n var timer_" . $identifier . " = function() {";
 
309
  // this would be the sensible way to do it, but WordPress sometimes converts && to &#038;&
310
  // window.jQuery && jQuery.isReady ? {$identifier}(window.jQuery) : window.setTimeout(timer_{$identifier}, 1);";
311
- $script .= "\n var slider = !window.jQuery ? window.setTimeout(timer_{$this->identifier}, 100) : !jQuery.isReady ? window.setTimeout(timer_{$this->identifier}, 1) : {$this->identifier}(window.jQuery);";
312
- $script .= "\n };";
313
- $script .= "\n timer_" . $identifier . "();";
 
 
 
 
 
 
 
 
 
 
 
314
 
315
- return $script;
316
  }
317
 
318
  /**
134
  'force_no_custom_order' => true,
135
  'orderby' => 'menu_order',
136
  'order' => 'ASC',
137
+ 'post_type' => array('attachment', 'ml-slide'),
138
+ 'post_status' => array('inherit', 'publish'),
139
  'lang' => '', // polylang, ingore language filter
140
  'suppress_filters' => 1, // wpml, ignore language filter
141
  'posts_per_page' => -1,
186
  if ( $this->get_setting( 'random' ) == 'true' && !is_admin() ) {
187
  shuffle( $slides );
188
  }
189
+
190
  $this->slides = $slides;
191
 
192
  return $this->slides;
305
  $script .= "\n });";
306
  $script .= $custom_js_after;
307
  $script .= "\n };";
308
+
309
+ $timer = "\n var timer_" . $identifier . " = function() {";
310
  // this would be the sensible way to do it, but WordPress sometimes converts && to &#038;&
311
  // window.jQuery && jQuery.isReady ? {$identifier}(window.jQuery) : window.setTimeout(timer_{$identifier}, 1);";
312
+ $timer .= "\n var slider = !window.jQuery ? window.setTimeout(timer_{$this->identifier}, 100) : !jQuery.isReady ? window.setTimeout(timer_{$this->identifier}, 1) : {$this->identifier}(window.jQuery);";
313
+ $timer .= "\n };";
314
+ $timer .= "\n timer_" . $identifier . "();";
315
+
316
+ /*$timer = "\n var timer_{$this->identifier} = function() {
317
+ if ( typeof window.jQuery === 'undefined' ) {
318
+ window.setTimeout(timer_metaslider_{$this->identifier}, 100);
319
+ } else {
320
+ window.jQuery(function() { {$this->identifier}(window.jQuery) });
321
+ }
322
+ };
323
+ timer_{$this->identifier}();";*/
324
+
325
+ $init = apply_filters("metaslider_timer", $timer, $this->identifier);
326
 
327
+ return $script . $init;
328
  }
329
 
330
  /**
ml-slider.php CHANGED
@@ -5,11 +5,11 @@
5
  * Plugin Name: Meta Slider
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.3.7
9
  * Author: Matcha Labs
10
  * Author URI: https://www.metaslider.com
11
  * License: GPL-2.0+
12
- * Copyright: 2014 Matcha Labs LTD
13
  *
14
  * Text Domain: ml-slider
15
  * Domain Path: /languages
@@ -31,7 +31,7 @@ class MetaSliderPlugin {
31
  /**
32
  * @var string
33
  */
34
- public $version = '3.3.7';
35
 
36
 
37
  /**
@@ -163,11 +163,13 @@ class MetaSliderPlugin {
163
  private function setup_actions() {
164
 
165
  add_action( 'admin_menu', array( $this, 'register_admin_menu' ), 9553 );
166
- add_action( 'init', array( $this, 'register_post_type' ) );
167
  add_action( 'init', array( $this, 'register_taxonomy' ) );
168
  add_action( 'init', array( $this, 'load_plugin_textdomain' ) );
169
  add_action( 'admin_footer', array( $this, 'admin_footer' ), 11 );
170
  add_action( 'widgets_init', array( $this, 'register_metaslider_widget' ) );
 
 
171
 
172
  add_action( 'admin_post_metaslider_preview', array( $this, 'do_preview' ) );
173
  add_action( 'admin_post_metaslider_hide_go_pro_page', array( $this, 'hide_go_pro_page' ) );
@@ -177,6 +179,11 @@ class MetaSliderPlugin {
177
  add_action( 'admin_post_metaslider_create_slider', array( $this, 'create_slider' ) );
178
  add_action( 'admin_post_metaslider_update_slider', array( $this, 'update_slider' ) );
179
 
 
 
 
 
 
180
  }
181
 
182
 
@@ -213,22 +220,45 @@ class MetaSliderPlugin {
213
  /**
214
  * Register ML Slider post type
215
  */
216
- public function register_post_type() {
 
 
 
 
 
 
 
 
217
 
218
  register_post_type( 'ml-slider', array(
219
  'query_var' => false,
220
  'rewrite' => false,
221
- 'public' => true,
222
  'exclude_from_search' => true,
223
  'publicly_queryable' => false,
224
  'show_in_nav_menus' => false,
225
- 'show_ui' => false,
226
  'labels' => array(
227
  'name' => 'Meta Slider'
228
  )
229
  )
230
  );
231
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
232
  }
233
 
234
 
@@ -237,11 +267,21 @@ class MetaSliderPlugin {
237
  */
238
  public function register_taxonomy() {
239
 
240
- register_taxonomy( 'ml-slider', 'attachment', array(
 
 
 
 
 
 
 
 
241
  'hierarchical' => true,
242
  'public' => false,
243
  'query_var' => false,
244
- 'rewrite' => false
 
 
245
  )
246
  );
247
 
@@ -270,7 +310,7 @@ class MetaSliderPlugin {
270
 
271
  $page = add_menu_page( $title, $title, $capability, 'metaslider', array(
272
  $this, 'render_admin_page'
273
- ), METASLIDER_ASSETS_URL . 'metaslider/matchalabs.png', 9501 );
274
 
275
  // ensure our JavaScript is only loaded on the Meta Slider admin page
276
  add_action( 'admin_print_scripts-' . $page, array( $this, 'register_admin_scripts' ) );
@@ -294,6 +334,16 @@ class MetaSliderPlugin {
294
 
295
  }
296
 
 
 
 
 
 
 
 
 
 
 
297
  /**
298
  * Go Pro page content
299
  */
@@ -304,14 +354,14 @@ class MetaSliderPlugin {
304
  'utm_source' => 'lite',
305
  'utm_medium' => 'nag',
306
  'utm_campaign' => 'pro'
307
- ), 'http://www.metaslider.com/upgrade/' ) );
308
 
309
  $link = apply_filters( 'metaslider_hoplink', $upgrade_link );
310
 
311
  $hide_link = '<a href="' . admin_url( "admin-post.php?action=metaslider_hide_go_pro_page" ) . '">Hide this page</a>';
312
  $gopro_link = "<a class='button button-primary' href='{$link}' target='_blank'>Find out more</a>";
313
  $support_link = '<a href="https://wordpress.org/support/plugin/ml-slider">Support</a>';
314
- $documentation_link = '<a href="http://www.metaslider.com/documentation/">Documentation</a>';
315
 
316
  ?>
317
  <h2>Supercharge Your Sliders with Meta Slider Pro!</h2>
@@ -416,7 +466,7 @@ class MetaSliderPlugin {
416
  $screen->add_help_tab( array(
417
  'id' => 'documentation',
418
  'title' => __( 'Documentation', 'ml-slider' ),
419
- 'content' => "<p><a href='http://www.metaslider.com/documentation/' target='blank'>Meta Slider Documentation</a></p>",
420
  )
421
  );
422
 
@@ -571,17 +621,36 @@ class MetaSliderPlugin {
571
  */
572
  public function custom_media_upload_tab_name( $tabs ) {
573
 
 
 
574
  // restrict our tab changes to the meta slider plugin page
575
- if ( isset( $_GET['page'] ) && $_GET['page'] == 'metaslider' ) {
 
 
 
 
 
 
 
 
 
 
576
 
577
- if ( isset( $tabs['nextgen'] ) ) {
578
  unset( $tabs['nextgen'] );
579
- }
580
 
 
 
 
 
 
 
 
581
  }
582
 
583
  return $tabs;
584
 
 
585
  }
586
 
587
 
@@ -727,8 +796,18 @@ class MetaSliderPlugin {
727
  }
728
  }
729
 
 
730
  wp_set_object_terms( $slide_id, $new_terms, 'ml-slider' );
731
 
 
 
 
 
 
 
 
 
 
732
  wp_redirect( admin_url( "admin.php?page=metaslider&id={$slider_id}" ) );
733
 
734
  }
@@ -750,6 +829,11 @@ class MetaSliderPlugin {
750
 
751
  $slider_id = absint( $_GET['slider_id'] );
752
 
 
 
 
 
 
753
  // send the post to trash
754
  $id = wp_update_post( array(
755
  'ID' => $slider_id,
@@ -757,6 +841,8 @@ class MetaSliderPlugin {
757
  )
758
  );
759
 
 
 
760
  $slider_id = $this->find_slider( 'modified', 'DESC' );
761
 
762
  wp_redirect( admin_url( "admin.php?page=metaslider&id={$slider_id}" ) );
@@ -764,6 +850,49 @@ class MetaSliderPlugin {
764
  }
765
 
766
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
767
  /**
768
  *
769
  */
@@ -1694,11 +1823,11 @@ class MetaSliderPlugin {
1694
  <div class="inside">
1695
  <ul class='info'>
1696
  <li style='width: 33%;'>
1697
- <a href="https://twitter.com/share" class="twitter-share-button" data-url="http://www.metaslider.com" data-text="Check out Meta Slider, an easy to use slideshow plugin for WordPress" data-hashtags="metaslider, wordpress, slideshow">Tweet</a>
1698
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
1699
  </li>
1700
  <li style='width: 34%;'>
1701
- <div class="g-plusone" data-size="medium" data-href="http://www.metaslider.com"></div>
1702
  <script type="text/javascript">
1703
  (function() {
1704
  var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
@@ -1801,13 +1930,46 @@ class MetaSliderPlugin {
1801
  }
1802
 
1803
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1804
  /**
1805
  * Add settings link on plugin page
1806
  */
1807
  public function upgrade_to_pro_link( $links ) {
1808
 
1809
  if ( function_exists( 'is_plugin_active' ) && ! is_plugin_active( 'ml-slider-pro/ml-slider-pro.php' ) ) {
1810
- $links[] = '<a href="http://www.metaslider.com/upgrade" target="_blank">' . __( "Go Pro", "ml-slider" ) . '</a>';
1811
  }
1812
 
1813
  return $links;
@@ -1827,7 +1989,7 @@ class MetaSliderPlugin {
1827
  'utm_source' => 'lite',
1828
  'utm_medium' => 'nag',
1829
  'utm_campaign' => 'pro'
1830
- ), 'http://www.metaslider.com/upgrade/' ) );
1831
 
1832
  $link = apply_filters( 'metaslider_hoplink', $upgrade_link );
1833
 
5
  * Plugin Name: Meta Slider
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.4
9
  * Author: Matcha Labs
10
  * Author URI: https://www.metaslider.com
11
  * License: GPL-2.0+
12
+ * Copyright: 2017 Matcha Labs LTD
13
  *
14
  * Text Domain: ml-slider
15
  * Domain Path: /languages
31
  /**
32
  * @var string
33
  */
34
+ public $version = '3.4';
35
 
36
 
37
  /**
163
  private function setup_actions() {
164
 
165
  add_action( 'admin_menu', array( $this, 'register_admin_menu' ), 9553 );
166
+ add_action( 'init', array( $this, 'register_post_types' ) );
167
  add_action( 'init', array( $this, 'register_taxonomy' ) );
168
  add_action( 'init', array( $this, 'load_plugin_textdomain' ) );
169
  add_action( 'admin_footer', array( $this, 'admin_footer' ), 11 );
170
  add_action( 'widgets_init', array( $this, 'register_metaslider_widget' ) );
171
+ add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_global_styles'), 11 );
172
+
173
 
174
  add_action( 'admin_post_metaslider_preview', array( $this, 'do_preview' ) );
175
  add_action( 'admin_post_metaslider_hide_go_pro_page', array( $this, 'hide_go_pro_page' ) );
179
  add_action( 'admin_post_metaslider_create_slider', array( $this, 'create_slider' ) );
180
  add_action( 'admin_post_metaslider_update_slider', array( $this, 'update_slider' ) );
181
 
182
+ add_action( 'media_upload_vimeo', array( $this, 'upgrade_to_pro_tab' ) );
183
+ add_action( 'media_upload_youtube', array( $this, 'upgrade_to_pro_tab' ) );
184
+ add_action( 'media_upload_post_feed', array( $this, 'upgrade_to_pro_tab' ) );
185
+ add_action( 'media_upload_layer', array( $this, 'upgrade_to_pro_tab' ) );
186
+
187
  }
188
 
189
 
220
  /**
221
  * Register ML Slider post type
222
  */
223
+ public function register_post_types() {
224
+
225
+ $show_ui = false;
226
+
227
+ $capability = apply_filters( 'metaslider_capability', 'edit_others_posts' );
228
+
229
+ if ( is_admin() && current_user_can( $capability ) && ( isset($_GET['show_ui']) || defined("METASLIDER_DEBUG") && METASLIDER_DEBUG ) ) {
230
+ $show_ui = true;
231
+ }
232
 
233
  register_post_type( 'ml-slider', array(
234
  'query_var' => false,
235
  'rewrite' => false,
236
+ 'public' => false,
237
  'exclude_from_search' => true,
238
  'publicly_queryable' => false,
239
  'show_in_nav_menus' => false,
240
+ 'show_ui' => $show_ui,
241
  'labels' => array(
242
  'name' => 'Meta Slider'
243
  )
244
  )
245
  );
246
 
247
+ register_post_type( 'ml-slide', array(
248
+ 'query_var' => false,
249
+ 'rewrite' => false,
250
+ 'public' => false,
251
+ 'exclude_from_search' => true,
252
+ 'publicly_queryable' => false,
253
+ 'show_in_nav_menus' => false,
254
+ 'show_ui' => $show_ui,
255
+ 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments'),
256
+ 'labels' => array(
257
+ 'name' => 'Meta Slides'
258
+ )
259
+ )
260
+ );
261
+
262
  }
263
 
264
 
267
  */
268
  public function register_taxonomy() {
269
 
270
+ $show_ui = false;
271
+
272
+ $capability = apply_filters( 'metaslider_capability', 'edit_others_posts' );
273
+
274
+ if (is_admin() && current_user_can( $capability ) && ( isset($_GET['show_ui']) || defined("METASLIDER_DEBUG") && METASLIDER_DEBUG ) ) {
275
+ $show_ui = true;
276
+ }
277
+
278
+ register_taxonomy( 'ml-slider', array('attachment', 'ml-slide'), array(
279
  'hierarchical' => true,
280
  'public' => false,
281
  'query_var' => false,
282
+ 'rewrite' => false,
283
+ 'show_ui' => $show_ui,
284
+ 'label' => "Slider"
285
  )
286
  );
287
 
310
 
311
  $page = add_menu_page( $title, $title, $capability, 'metaslider', array(
312
  $this, 'render_admin_page'
313
+ ), "", 9501 );
314
 
315
  // ensure our JavaScript is only loaded on the Meta Slider admin page
316
  add_action( 'admin_print_scripts-' . $page, array( $this, 'register_admin_scripts' ) );
334
 
335
  }
336
 
337
+ /**
338
+ * Enqueue CSS for admin menu item font icon
339
+ *
340
+ * @since 3.4
341
+ */
342
+ public function admin_enqueue_global_styles() {
343
+ wp_enqueue_style( 'metaslider-global', METASLIDER_ASSETS_URL . 'metaslider/global.css', array(), METASLIDER_VERSION );
344
+ }
345
+
346
+
347
  /**
348
  * Go Pro page content
349
  */
354
  'utm_source' => 'lite',
355
  'utm_medium' => 'nag',
356
  'utm_campaign' => 'pro'
357
+ ), 'https://www.metaslider.com/upgrade/' ) );
358
 
359
  $link = apply_filters( 'metaslider_hoplink', $upgrade_link );
360
 
361
  $hide_link = '<a href="' . admin_url( "admin-post.php?action=metaslider_hide_go_pro_page" ) . '">Hide this page</a>';
362
  $gopro_link = "<a class='button button-primary' href='{$link}' target='_blank'>Find out more</a>";
363
  $support_link = '<a href="https://wordpress.org/support/plugin/ml-slider">Support</a>';
364
+ $documentation_link = '<a href="https://www.metaslider.com/documentation/">Documentation</a>';
365
 
366
  ?>
367
  <h2>Supercharge Your Sliders with Meta Slider Pro!</h2>
466
  $screen->add_help_tab( array(
467
  'id' => 'documentation',
468
  'title' => __( 'Documentation', 'ml-slider' ),
469
+ 'content' => "<p><a href='https://www.metaslider.com/documentation/' target='blank'>Meta Slider Documentation</a></p>",
470
  )
471
  );
472
 
621
  */
622
  public function custom_media_upload_tab_name( $tabs ) {
623
 
624
+ $metaslider_tabs = array( 'post_feed', 'layer', 'youtube', 'vimeo' );
625
+
626
  // restrict our tab changes to the meta slider plugin page
627
+ if ( ( isset( $_GET['page'] ) && $_GET['page'] == 'metaslider' ) || ( isset( $_GET['tab'] ) && in_array( $_GET['tab'], $metaslider_tabs ) ) ) {
628
+ $newtabs = array();
629
+
630
+ if ( function_exists( 'is_plugin_active' ) && ! is_plugin_active( 'ml-slider-pro/ml-slider-pro.php' ) ) {
631
+ $newtabs = array(
632
+ 'post_feed' => __( "Post Feed", "metaslider" ),
633
+ 'vimeo' => __( "Vimeo", "metaslider" ),
634
+ 'youtube' => __( "YouTube", "metaslider" ),
635
+ 'layer' => __( "Layer Slide", "metaslider" )
636
+ );
637
+ }
638
 
639
+ if ( isset( $tabs['nextgen'] ) )
640
  unset( $tabs['nextgen'] );
 
641
 
642
+
643
+ if ( is_array( $tabs ) ) {
644
+ return array_merge( $tabs, $newtabs );
645
+ } else {
646
+ return $newtabs;
647
+ }
648
+
649
  }
650
 
651
  return $tabs;
652
 
653
+
654
  }
655
 
656
 
796
  }
797
  }
798
 
799
+ // untag slide from slider
800
  wp_set_object_terms( $slide_id, $new_terms, 'ml-slider' );
801
 
802
+ // For new format slides - also trash the slide
803
+ if ( get_post_type( $slide_id ) === 'ml-slide' ) {
804
+ $id = wp_update_post( array(
805
+ 'ID' => $slide_id,
806
+ 'post_status' => 'trash'
807
+ )
808
+ );
809
+ }
810
+
811
  wp_redirect( admin_url( "admin.php?page=metaslider&id={$slider_id}" ) );
812
 
813
  }
829
 
830
  $slider_id = absint( $_GET['slider_id'] );
831
 
832
+ if ( get_post_type( $slider_id ) != 'ml-slider' ) {
833
+ wp_redirect( admin_url( "admin.php?page=metaslider" ) );
834
+ wp_die();
835
+ }
836
+
837
  // send the post to trash
838
  $id = wp_update_post( array(
839
  'ID' => $slider_id,
841
  )
842
  );
843
 
844
+ $this->delete_all_slides_from_slider($slider_id);
845
+
846
  $slider_id = $this->find_slider( 'modified', 'DESC' );
847
 
848
  wp_redirect( admin_url( "admin.php?page=metaslider&id={$slider_id}" ) );
850
  }
851
 
852
 
853
+ /**
854
+ * Trashes all new format slides for a given slideshow ID
855
+ *
856
+ * @param int $slider_id
857
+ * @return int - The ID of the slideshow from which the slides were removed
858
+ */
859
+ private function delete_all_slides_from_slider($slider_id) {
860
+ // find slides and trash them
861
+ $args = array(
862
+ 'force_no_custom_order' => true,
863
+ 'orderby' => 'menu_order',
864
+ 'order' => 'ASC',
865
+ 'post_type' => array('ml-slide'),
866
+ 'post_status' => array('publish'),
867
+ 'lang' => '', // polylang, ingore language filter
868
+ 'suppress_filters' => 1, // wpml, ignore language filter
869
+ 'posts_per_page' => -1,
870
+ 'tax_query' => array(
871
+ array(
872
+ 'taxonomy' => 'ml-slider',
873
+ 'field' => 'slug',
874
+ 'terms' => $slider_id
875
+ )
876
+ )
877
+ );
878
+
879
+ $query = new WP_Query( $args );
880
+
881
+ while ( $query->have_posts() ) {
882
+ $query->next_post();
883
+ $id = $query->post->ID;
884
+
885
+ $id = wp_update_post( array(
886
+ 'ID' => $id,
887
+ 'post_status' => 'trash'
888
+ )
889
+ );
890
+ }
891
+
892
+ return $slider_id;
893
+ }
894
+
895
+
896
  /**
897
  *
898
  */
1823
  <div class="inside">
1824
  <ul class='info'>
1825
  <li style='width: 33%;'>
1826
+ <a href="https://twitter.com/share" class="twitter-share-button" data-url="https://www.metaslider.com" data-text="Check out Meta Slider, an easy to use slideshow plugin for WordPress" data-hashtags="metaslider, wordpress, slideshow">Tweet</a>
1827
  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
1828
  </li>
1829
  <li style='width: 34%;'>
1830
+ <div class="g-plusone" data-size="medium" data-href="https://www.metaslider.com"></div>
1831
  <script type="text/javascript">
1832
  (function() {
1833
  var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
1930
  }
1931
 
1932
 
1933
+ /**
1934
+ * Return the meta slider pro upgrade iFrame
1935
+ */
1936
+ public function upgrade_to_pro_tab() {
1937
+
1938
+ if ( function_exists( 'is_plugin_active' ) && ! is_plugin_active( 'ml-slider-pro/ml-slider-pro.php' ) ) {
1939
+ return wp_iframe( array( $this, 'upgrade_to_pro_iframe' ) );
1940
+ }
1941
+
1942
+ }
1943
+
1944
+
1945
+ /**
1946
+ * Media Manager iframe HTML
1947
+ */
1948
+ public function upgrade_to_pro_iframe() {
1949
+
1950
+ wp_enqueue_style( 'metaslider-admin-styles', METASLIDER_ASSETS_URL . 'metaslider/admin.css', false, METASLIDER_VERSION );
1951
+ wp_enqueue_script( 'google-font-api', 'http://fonts.googleapis.com/css?family=PT+Sans:400,700' );
1952
+
1953
+ $link = apply_filters( 'metaslider_hoplink', 'https://www.metaslider.com/upgrade/' );
1954
+ $link .= '?utm_source=lite&amp;utm_medium=more-slide-types&amp;utm_campaign=pro';
1955
+
1956
+ echo implode("", array(
1957
+ "<div class='metaslider_pro'>",
1958
+ "<p>Get the Pro Addon pack to add support for: <b>Post Feed</b> Slides, <b>YouTube</b> Slides, <b>HTML</b> Slides & <b>Vimeo</b> Slides</p>",
1959
+ "<a class='probutton' href='{$link}' target='_blank'>Get <span class='logo'><strong>Meta</strong>Slider</span><span class='super'>Pro</span></a>",
1960
+ "<span class='subtext'>Opens in a new window</span>",
1961
+ "</div>"
1962
+ ));
1963
+
1964
+ }
1965
+
1966
  /**
1967
  * Add settings link on plugin page
1968
  */
1969
  public function upgrade_to_pro_link( $links ) {
1970
 
1971
  if ( function_exists( 'is_plugin_active' ) && ! is_plugin_active( 'ml-slider-pro/ml-slider-pro.php' ) ) {
1972
+ $links[] = '<a href="https://www.metaslider.com/upgrade/" target="_blank">' . __( "Go Pro", "ml-slider" ) . '</a>';
1973
  }
1974
 
1975
  return $links;
1989
  'utm_source' => 'lite',
1990
  'utm_medium' => 'nag',
1991
  'utm_campaign' => 'pro'
1992
+ ), 'https://www.metaslider.com/upgrade/' ) );
1993
 
1994
  $link = apply_filters( 'metaslider_hoplink', $upgrade_link );
1995
 
readme.txt CHANGED
@@ -1,65 +1,69 @@
1
  === Plugin Name ===
2
  Contributors: matchalabs
3
- Tags: slider,meta slider,wordpress slider,slideshow,image slider,flex slider,nivo slider,responsive slides,coin slider,carousel,responsive slider
 
4
  Requires at least: 3.5
5
  Tested up to: 4.7
6
  Stable tag: 3.3.7
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
10
- Easy to use WordPress Slider plugin. Create responsive slideshows with Nivo Slider, Flex Slider, Coin Slider and Responsive Slides.
11
 
12
  == Description ==
13
 
14
  http://www.youtube.com/watch?v=o0f3uAvL6Ic
15
 
16
- The most popular WordPress slider plugin. Creating slideshows with [Meta Slider](http://www.metaslider.com/) is fast and easy. Simply select images from your WordPress Media Library, drag and drop them into place, set slide captions, links and SEO fields all from one page. You can choose from 4 different slider types (Flex Slider, Nivo Slider, Responsive Slides & Coin Slider) and use the provided shortcode or template include to easily embed slideshows in your blog.
17
 
18
  **Includes**
19
 
20
  * **Flex Slider 2** - Responsive, 2 transition effects, carousel mode
21
  * **Nivo Slider** - Responsive, 16 transition effects, 4 themes
22
- * **Responsive Slides** - Responsive & light weight
23
  * **Coin Slider** - 4 transition effects
24
 
25
  **Features**
26
 
27
- * Simple, easy to use interface
28
  * Create Responsive, SEO optimised slideshows in seconds
29
- * Unrestricted support for Image Slides (supports caption, link, title text, alt text)
30
- * Full Width sliders
31
  * Drag and drop slide reordering
32
  * Admin preview
33
  * Intelligent image cropping
 
34
  * Built in Widget and Shortcode
35
- * Loads of slider configuration options - transition effect, speed etc (per slideshow)
36
  * Fully localised
37
- * Multi Site compatible
38
  * Compatible with translation plugins (WPML, PolyLang & qTranslate)
39
- * Extensive Developer API
40
  * Fast - only the minimum JavaScript/CSS is included on your page
41
- * Free basic support
42
  * Lightbox support with the [Meta Slider Lightbox](http://wordpress.org/plugins/ml-slider-lightbox/) addon
43
 
44
  Upgrade to [Meta Slider Pro](https://www.metaslider.com/upgrade) to add support for:
45
 
46
  * YouTube & Vimeo slides
47
- * HTML sliders
48
- * Layer sliders with CSS3 animations & HTML5 Video backgrounds
49
- * Dynamic Post Feed/Featured Image sliders (content slider)
50
- * Custom slider themes
51
  * Thumbnail Navigation
52
  * Premium Support
53
 
54
  Read more and thanks to:
55
 
56
  * [Flex Slider](http://flexslider.woothemes.com/)
57
- * [Responsive Slides](http://responsiveslides.com/)
58
  * [Coin Slider](http://workshop.rs/projects/coin-slider/)
59
- * [Nivo Slider](https://github.com/gilbitron/Nivo-Slider)
60
 
61
  Find out more at https://www.metaslider.com
62
 
 
 
63
  == Installation ==
64
 
65
  The easy way:
@@ -101,7 +105,7 @@ Add the 'restrict_to' parameter to the shortcode, eg:
101
 
102
  Theme specific instructions:
103
 
104
- httsp://www.metaslider.com/documentation/theme-integration/
105
 
106
  = It's not working - what can I do? =
107
 
@@ -124,7 +128,20 @@ See https://www.metaslider.com/documentation/image-cropping/
124
 
125
  == Changelog ==
126
 
127
- = 3.3.7 [06/05/15] =
 
 
 
 
 
 
 
 
 
 
 
 
 
128
 
129
  * Fix: "Maximum level reached" error when inserting the shortcode for a slideshow into it's own caption. Thanks to Zhouyuan @ Fortinet for reporting this.
130
 
@@ -170,4 +187,352 @@ http://codex.wordpress.org/Security_FAQ#Why_are_there_path_disclosures_when_dire
170
  * Fix: Return public slide when DOING_AJAX
171
  * Improvement: Use admin actions to save slideshow settings
172
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
173
  == Upgrade Notice ==
 
 
1
  === Plugin Name ===
2
  Contributors: matchalabs
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://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=CQ84KC4X8YKW8
5
  Requires at least: 3.5
6
  Tested up to: 4.7
7
  Stable tag: 3.3.7
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
+ Easy to use WordPress slider plugin. Create SEO optimised responsive slideshows with Nivo Slider, Flex Slider, Coin Slider and Responsive Slides.
12
 
13
  == Description ==
14
 
15
  http://www.youtube.com/watch?v=o0f3uAvL6Ic
16
 
17
+ The most popular WordPress slider plugin. Creating slideshows with [Meta Slider](http://www.metaslider.com/) is fast and easy. Simply select images from your WordPress Media Library, drag and drop them into place, set slide captions, links and SEO fields all from one page. You can choose from 4 different slideshow types (Flex Slider, Nivo Slider, Responsive Slides & Coin Slider) and use the provided shortcode or template include to easily embed slideshows in your blog.
18
 
19
  **Includes**
20
 
21
  * **Flex Slider 2** - Responsive, 2 transition effects, carousel mode
22
  * **Nivo Slider** - Responsive, 16 transition effects, 4 themes
23
+ * **Responsive Slides** - Responsive & incredibly light weight
24
  * **Coin Slider** - 4 transition effects
25
 
26
  **Features**
27
 
28
+ * Simple, easy to use interface - perfect for individual users, developers & clients!
29
  * Create Responsive, SEO optimised slideshows in seconds
30
+ * Unrestricted support for Image slides (supports caption, link, title text, alt text)
31
+ * Full width slideshow support
32
  * Drag and drop slide reordering
33
  * Admin preview
34
  * Intelligent image cropping
35
+ * Set image crop position
36
  * Built in Widget and Shortcode
37
+ * Loads of slideshow configuration options - transition effect, speed etc (per slideshow)
38
  * Fully localised
39
+ * WordPress Multi Site compatible
40
  * Compatible with translation plugins (WPML, PolyLang & qTranslate)
41
+ * Extensive Developer API (hooks & filters)
42
  * Fast - only the minimum JavaScript/CSS is included on your page
43
+ * Free basic support (covering installation issues and theme/plugin conflicts)
44
  * Lightbox support with the [Meta Slider Lightbox](http://wordpress.org/plugins/ml-slider-lightbox/) addon
45
 
46
  Upgrade to [Meta Slider Pro](https://www.metaslider.com/upgrade) to add support for:
47
 
48
  * YouTube & Vimeo slides
49
+ * HTML slides
50
+ * Layer slides with CSS3 animations & HTML5 Video backgrounds
51
+ * Dynamic Post Feed/Featured Image Slides (content slider)
52
+ * Custom Themes
53
  * Thumbnail Navigation
54
  * Premium Support
55
 
56
  Read more and thanks to:
57
 
58
  * [Flex Slider](http://flexslider.woothemes.com/)
59
+ * [Responsive Slides](http://responsive-slides.viljamis.com/)
60
  * [Coin Slider](http://workshop.rs/projects/coin-slider/)
61
+ * [Nivo Slider](http://dev7studios.com/nivo-slider/)
62
 
63
  Find out more at https://www.metaslider.com
64
 
65
+ Follow us on Twitter: [@wpmetaslider](https://twitter.com/wpmetaslider)
66
+
67
  == Installation ==
68
 
69
  The easy way:
105
 
106
  Theme specific instructions:
107
 
108
+ https://www.metaslider.com/documentation/theme-integration/
109
 
110
  = It's not working - what can I do? =
111
 
128
 
129
  == Changelog ==
130
 
131
+ = 3.4 [04/01/17] =
132
+
133
+ This is the first in a series of small updates which will eventually allow us to remove restrictions in the plugin which prevent us from implementing certain functionality, including:
134
+
135
+ - Changing a slide image
136
+ - Using unique captions when the same slide has been added to more than one slideshow
137
+ - Adding the same slide to a slideshow multiple times
138
+ - Duplicating slides and sliders
139
+ - Drafting slides
140
+ - Scheduling slides
141
+
142
+ We are releasing this update in a number of small stages due to the number of users Meta Slider has. We are being overly cautious to ensure it's a smooth transition. This update does not make any major changes to the current plugin functionality, but it does put in place the "scaffolding" code which we will rely on to implement further updates.
143
+
144
+ = 3.3.7 [06/05/16] =
145
 
146
  * Fix: "Maximum level reached" error when inserting the shortcode for a slideshow into it's own caption. Thanks to Zhouyuan @ Fortinet for reporting this.
147
 
187
  * Fix: Return public slide when DOING_AJAX
188
  * Improvement: Use admin actions to save slideshow settings
189
 
190
+ = 3.3 [17/02/15] =
191
+
192
+ * New feature: Smart pad option (for Image Slides & Flex Slider only)
193
+ * Portuguese language files added (thanks to mauro.mascarenhas)
194
+ * Russian language files updated (thanks to asidoryak)
195
+
196
+ = 3.2.1 [16/12/14] =
197
+
198
+ * Change: Change slide image functionality backed out
199
+ * Fix: Apply FireFox mobile fix to Flex Slider (github #1110)
200
+
201
+ = 3.2 [26/11/14] =
202
+
203
+ * New feature: Change slide image (click top right of slide thumbnail)
204
+ * Update: German language files (thanks to Ov3rfly!)
205
+
206
+ = 3.1.1 [21/10/14] =
207
+
208
+ * Fix: restrict_to shortcode parameter
209
+ * Change: Add metaslider_flex_slider_list_item_attributes filter
210
+
211
+ = 3.1 [14/10/14] =
212
+
213
+ * New feature: Ajax delete slide (to stop users from losing changes when deleting a slide)
214
+ * New feature: restrict_to shortcode parameter now accepts page IDs
215
+ * Update: Change icon
216
+ * Fix: Minor admin styling fix
217
+ * Fix: Hide share buttons for pro users
218
+ * Change: Remove upgrade nags from media library, add Go Pro page (with an option to hide the page)
219
+
220
+ = 3.0.1 [19/08/14] =
221
+
222
+ * Fix: Escape admin setting text fields
223
+ * Fix: Escape admin tab names (thanks to Dylan Irzi for spotting and reporting this!)
224
+ * Change: Allow shortcode parameters to be filtered
225
+
226
+ = 3.0 [30/07/14] =
227
+
228
+ **This is not a major update. We're just following the WordPress versioning conventions (3.0 comes after 2.9)**
229
+
230
+ * New feature: Set crop position for slides (requires WP 3.9+)
231
+ * New feature: Disable cropping setting
232
+ * Fix: Use get_posts instead of WP_Query to extract slideshows (fix conflicts with plugins using get_post_type in admin_footer hooks)
233
+ * Change: Add filter for capability required to use meta slider
234
+
235
+ = 2.9.1 [15/07/14] =
236
+
237
+ * New feature: Hungarian Language Pack added
238
+ * Fix: Escape attributes and JS in slideshow output (credit to jwenerd!)
239
+ * Fix: Escape attributes and text fields in admin
240
+ * New feature: Admin slide tabs can be modified with filters
241
+
242
+ = 2.9 [25/06/14] =
243
+
244
+ * New feature: Japanese Language Pack added
245
+ * New feature: Persian Language Pack added
246
+ * New feature: Switch between tab and list view
247
+ * New feature: Added ms-left and ms-right css classes to align slideshow to left or right
248
+ * Improvement: Flex Slider updated to 2.3.0-bleeding (fix initial image fade)
249
+ * Fix: reference to window.parent in media library
250
+ * Fix: Thumbnail outline in firefox
251
+
252
+ = 2.8.1 [28/04/14] =
253
+
254
+ * Fix: All in One Events Calendar conflict fix (Advanced Settings not toggling)
255
+ * Fix: CSS resets to avoid theme conflicts
256
+ * Fix: Autoload visibility conflict (http://wordpress.org/support/topic/autoload-visibillity-conflict)
257
+ * Fix: Layer Editor in IE11 - text fields not accessible in modal windows
258
+ * Fix: FlexSlider IE11 Fade transition
259
+
260
+ = 2.8 [28/04/14] =
261
+
262
+ * New feature: Russian Language Pack added
263
+ * Fix: Carousel image scaling in FireFox
264
+ * Fix: wpautop issue with double ampersand
265
+ * New feature: Shortcode parameter added to restrict slideshow to displaying on homepage only (see FAQ)
266
+ * Improvement: Save slideshow after reordering slides
267
+ * Fix: PHP Warning when no slideshows have been created
268
+
269
+ = 2.8-beta [16/04/14] =
270
+
271
+ * Improvement: Preview now uses admin-post action
272
+ * Improvement: Classes are now auto loaded to reduce memory footprint
273
+ (Thanks to Viktor Szépe for the above suggestions!)
274
+ * Improvement: Slideshow initilisation time reduced
275
+ * Improvement: HTML5 Compatibility: Alt tags always present on image tag - even if empty.
276
+ * Improvement: Flex Slider slideshows should now 'reserve' a space for themselves while they fully load
277
+ * Update: Flex Slider updated to v2.2.2
278
+ * New feature: Romanian Language Pack added (Thanks to Octav Madalin Stanoaia)
279
+ * New feature: Dutch Language Pack added
280
+ * New feature: WP Super Cache compatibility - cache is cleared when saving slideshow
281
+ * New feature: HTML5 Compatibility (Experimental). Set `define('METASLIDER_ENABLE_RESOURCE_MANAGER', true);` in wp-config.php to move Meta Slider link tags head of the page.
282
+
283
+ = 2.7.2 [25/03/14] =
284
+
285
+ * Fix: Only apply carousel margin to slides
286
+ * Fix: Enqueue Easing library when carousel mode is enabled, regardless of effect selection
287
+ * Fix: Thumbnail margin when theme has #content div
288
+
289
+ = 2.7.1 [19/03/14] =
290
+
291
+ * Fix: Remove easing parameter when effect is set to fade
292
+ * Fix: Navigation options greyed out in IE
293
+ * Fix: qTranslate captions not being processed (typo)
294
+
295
+ = 2.7 [18/03/14] =
296
+
297
+ * New feature: Crotatian Lang pack added
298
+ * New feature: Carousel margin option added
299
+ * New feature: Process shortcodes in captions
300
+ * Improvement: Tab rename UX
301
+ * Improvement: Admin save spinner functionality improved
302
+ * Improvement: CSS Resets updated
303
+ * Improvement: Use plugins_loaded action to initialise plugin
304
+ * Fix: PHP Warnings when one slideshow exists
305
+ * Fix: Smart Cropping sometimes not returning smart cropped image
306
+ * Fix: Add z-index to meta slider, attempted conflict fix for themes with drop down menus.
307
+ * Fix: Only include the easing library when transition effect is set to slide
308
+ * Fix: White Label Branding plugin compatibility.
309
+ * Change: "Responsive" option renamed to "R. Slides". The (old) "Responsive" option refers to the "Responsive Slides" jQuery library, but users were getting confused as the naming suggested it was the only responsive option. Flex Slider & Nivo Slider are also responsive.
310
+
311
+ = 2.6.3 [23/01/14] =
312
+
313
+ * Improvement: Various admin screen styling improvements
314
+ * Fix: Add 'ms-' prefix to Advanced settings toggle boxes and Preview button (avoid theme conflicts)
315
+ * Fix: RTL fixes
316
+ * Improvement: Filters added for complete slideshow output
317
+ * Improvement: Filter added for slide image label
318
+ * Improvement: 'No Conflict' mode refactored
319
+ * Improvement: 'slider' parameter added to flexslider before/start/after etc callbacks
320
+ * Change: Renamed in admin menu from "Meta Slider Lite" to "Meta Slider"
321
+
322
+ = 2.6.2 [02/01/14] =
323
+
324
+ * Fix: Vantage background image tiling
325
+
326
+ = 2.6.1 [31/12/13] =
327
+
328
+ * Fix: Advanced settings arrow toggle
329
+ * Fix: All in one SEO / Page builder / Meta Slider conflict
330
+ * Fix: NextGen "Insert Gallery" conflict
331
+ * New feature: Norwegian language pack added
332
+
333
+ = 2.6 [19/12/13] =
334
+
335
+ * Fix: Typo in metaslider_responsive_slide_image_attributes filter
336
+ * Fix: Caption not working in Nivo Slider
337
+ * Fix: Tab styling improved
338
+ * Fix: New window styling improved in WP3.7 and below
339
+
340
+ More info/Comments: http://www.metaslider.com/coming-soon-meta-slider-2-6-free/
341
+
342
+ = 2.6-beta [15/12/13] =
343
+
344
+ * New feature: Interface update for WordPress 3.8 admin redesign
345
+ * New feature: 'Stretch' setting for full width slideshows
346
+ * New feature: No conflict mode
347
+ * New feature: 'Add slider' button for posts and pages
348
+ * New feature: SEO options (add title & alt text to slides)
349
+ * Change: CSS is now enqueued using wp_enqueue_style (Use a minification plugin or caching plugin to move styles to the <head> if HTML5 validity is required - eg W3 Total Cache)
350
+
351
+ More info/Comments: http://www.metaslider.com/coming-soon-meta-slider-2-6-free/
352
+
353
+ = 2.5 [25/11/13] =
354
+ * Fix: JetPack Photon conflict
355
+ * Improvement: German Language pack added (thanks to gordon34)
356
+ * Improvement: Chinese language pack updated (thanks to 断青丝)
357
+ * Improvement: MP6 styling fixes
358
+
359
+ = 2.5-beta2 [14/11/13] =
360
+ * Fix: Vantage theme backwards compatibility
361
+ * Fix: Flexslider anchor attributes filter
362
+
363
+ = 2.5-beta1 [12/11/13] =
364
+ * Fix: Center align slideshow
365
+
366
+ = 2.5-beta [12/11/13] =
367
+ * New Feature: 'percentwidth' parameter added to shortcode to allow for 100% wide slideshows
368
+ * Improvement: Generate resized images through multiple Ajax requests on save (blank screen fix)
369
+ * Improvement: IE9 admin styling tidied up
370
+ * Improvement: Filters added to add/change attributes in <img> and <a> tags
371
+ * Improvement: Security - nonce checking added
372
+ * Change: Remove bottom margin from flex slider when navigation is hidden (add a CSS Class of 'add-margin' if you need the margin)
373
+ * Fix: Add slides to slideshow in the same order they're selected in the Media Library
374
+ * Fix: Symlink path resolution
375
+ * Fix: Do not try to resize/open images that are corrupt (missing metadata) (blank screen fix)
376
+
377
+ = 2.4.2 [17/10/13] =
378
+ * Fix: qTranslate caption & URL parsing for image slides
379
+
380
+ = 2.4.1 [17/10/13] =
381
+ * Fix: PHP Warning (reported by & thanks to: fgirardey)
382
+
383
+ = 2.4 [16/10/13] =
384
+ * Fix: FlexSlider styling in twenty twelve theme
385
+ * Fix: IE10 - "Caption" placeholder text being saved as actual caption
386
+ * Improvement: Settings table tidied up
387
+ * Improvement: New slides are resized during addition to the slideshow
388
+ * Improvement: Default slideshow size increased to 700x300
389
+ * Improvement: Image filename now displayed for each slide (instead of image dimensions)
390
+ * Improvement: Replace deprecated 'live()' jQuery call with 'on()'
391
+ * Improvement: Polish Language pack added (thanks to gordon34)
392
+ * Improvement: Chinese language pack added (thanks to 断青丝)
393
+ * Improvement: 'metaslider_resized_image_url' filter added (could be used to disable cropping)
394
+ * Change: qTranslate support for slide URLs (see: http://screencast.com/t/FrsrptyhoT)
395
+ * Change: PolyLang fix to ensure slides are extracted for all languages (set up a new slideshow for each language)
396
+ * Change: WPML fix to ensure slides are extracted for all languages (set up a new slideshow for each language)
397
+
398
+
399
+ = 2.3 [18/09/13] =
400
+ * Improvement: Flex Slider upgraded to v2.2
401
+ * Improvement: Responsive Slides upgraded to v1.54
402
+ * Improvement: 'Create first slideshow' prompt added for new users
403
+ * Change: 'scoped' attribute removed from inline CSS tag until browsers catch up with supporting it properly. A new filter has been added: "metaslider_style_attributes" if you wish to add the scoped attribute back in.
404
+ * Change: wp_footer check removed due to confusion
405
+ * New Feature: 'metaslider_max_tabs' filter added to convert tab list to ordered drop down menu
406
+ * Fix: Remove 'Insert Media' tab from 'Add Slide' modal (WP 3.6 only)
407
+ * New Feature: Filters added to allow modification of image slide HTML
408
+ * Improvement: Settings area tidied up
409
+ * Improvement: Image URL Field less restrictive
410
+ * Improvement: HTML Output tidied up
411
+
412
+ = 2.2.2 [21/08/13] =
413
+ * Improvement: System check added with option to dismiss messages. Checks made for: role scoper plugin, wp_footer, wordpress version & GD/ImageMagick.
414
+
415
+ = 2.2.1 [08/08/13] =
416
+ * Fix: Responsive slides styling in FireFox (reported by and thanks to: dznr418)
417
+ * Fix: Flex Slider carousel causing browser to crash in some circumstances
418
+
419
+ = 2.2 [01/08/13] =
420
+ * Fix: Paragraph tags being added to output using Nivo Slider
421
+
422
+ = 2.1.6 [22/07/2013] =
423
+ * Fix: Use the original image file if the slideshow size is the same size as the image file
424
+ * Fix: Conflict with Advanced Post Types Order plugin
425
+ * Fix: Colorbox conflict when using resizable elements in lightbox
426
+ * Improvement: Refresh slides after clicking 'save'
427
+ * Improvement: Ensure taxonomy category exists before tagging slide to slideshow
428
+ * Fix: Only submit form when submit button is clicked (not all buttons)
429
+ * Fix: Coin slider caption width in FireFox
430
+ * Improvement: Added hook to adjust carousel image margin
431
+
432
+ = 2.1.5 [24/05/13] =
433
+ * Fix: HTML 5 Validation
434
+
435
+ = 2.1.4 [21/05/13] =
436
+ * Fix: Widget markup invalid (reported by and thanks to: CarlosCanvas)
437
+
438
+ = 2.1.3 [21/05/13] =
439
+ * Fix: User Access Manager Plugin incompatibility issues (reported by and thanks to: eltipografico)
440
+
441
+ = 2.1.2 [21/05/13] =
442
+ * Fix: Nivo Slider theme select dropdown (reported by and thanks to: macks)
443
+ * Fix: HTML5 Validation fix for inline styles
444
+ * Improvement: Title field added to widget (suggested by and thanks to: pa_esp)
445
+ * New feature: Spanish language pack (thanks to eltipografico)
446
+
447
+ = 2.1.1 [13/05/13] =
448
+ * Fix: PHP version compatibility
449
+
450
+ = 2.1 [12/05/13] =
451
+ * New feature: Widget added
452
+ * New feature: System check added (checks for required image libraries and WordPress version)
453
+ * Fix: Multiple CSS fixes added for popular themes
454
+ * Fix: Flex slider shows first slide when JS is disabled
455
+ * Improvement: Display warning message when unchecking Print JS and Print CSS options
456
+ * Improvement: Coinslider navigation centered
457
+
458
+ = 2.0.2 [02/05/13] =
459
+ * Fix: PHP Error when using slides the same size as the slideshow
460
+
461
+ = 2.0.1 [28/04/13] =
462
+ * New feature: French language pack (thanks to: fb-graphiklab)
463
+ * Fix: Use transparent background on default flexslider theme
464
+ * Fix: Set direction to LTR for flexslider viewport (fix for RTL languages)
465
+ * Fix: Nivoslider HTML Captions
466
+ * Fix: Responsive slides navigation positioning
467
+
468
+ = 2.0 [21/04/13] =
469
+ * Fix: Responsive slides navigation styling
470
+ * Fix: Update slide order on save
471
+ * Fix: Smart crop edge cases
472
+ * Fix: Flexslider navigation overflow
473
+
474
+ = 2.0-betaX [17/04/13] =
475
+ * Improvement: Error messages exposed in admin is Meta Slider cannot load the slides
476
+ * Improvement: Load default settings if original settings are corrupt/incomplete
477
+ * Fix: Smart Crop ratio
478
+ * Fix: UTF-8 characters in captions (reported by and thanks to: javitopo)
479
+ * Fix: JetPack Photo not loading images (reported by and thanks to: Jason)
480
+ * Fix: Double slash on jQuery easing path
481
+ * Fix: Paragraph tags outputted in JavaScript (reported by and thanks to: CrimsonRaddish)
482
+
483
+ = 2.0-beta =
484
+ * New feature: Preview slideshows in admin control panel
485
+ * New feature: 'Easing' options added to flex slider
486
+ * New feature: 'Carousel mode' option added for flex slider
487
+ * New feature: 'Auto play' option added
488
+ * New feature: 'Smart Crop' setting ensures your slideshow size remains consitent regardless of image dimensions
489
+ * New feature: 'Center align slideshow' option added for all sliders
490
+ * New feature: Coin Slider upgraded to latest version, new options now exposed in Meta Slider
491
+ * New feature: Captions now supported by responsive slides
492
+ * Improvement: Responsive AJAX powered administration screen
493
+ * Improvement: Code refactored
494
+ * Improvement: Flex Slider captions now sit over the slide
495
+ * Fix: Nivo slider invalid markup (reported by and thanks to: nellyshark)
496
+ * Fix: JS && encoding error (reported by and thanks to: neefje)
497
+
498
+ = 1.3 [28/02/13] =
499
+ * Renamed to Meta Slider (previously ML Slider)
500
+ * Improvement: Admin styling cleaned up
501
+ * Improvement: Code refactored
502
+ * Improvement: Plugin localised
503
+ * Improvement: Template include PHP code now displayed on slider edit page
504
+ * Improvement: jQuery tablednd replaced with jQuery sortable for reordering slides
505
+ * New feature: Open URL in new window option added
506
+ * Improvement: max-width css rule added to slider wrapper
507
+ * Fix: UTF-8 support in captions (reported by and thanks to: petergluk)
508
+ * Fix: JS && encoding error (reported by and thanks to: neefje)
509
+ * Fix: Editors now have permission to use MetaSlider (reported by and thanks to: rritsud)
510
+
511
+ = 1.2.1 [20/02/13] =
512
+ * Fix: Number of slides per slideshow limited to WordPress 'blog pages show at most' setting (reported by and thanks to: Kenny)
513
+ * Fix: Add warning when BMP file is added to slider (reported by and thanks to: MadBong)
514
+ * Fix: Allow images smaller than default thumbnail size to be added to slider (reported by and thanks to: MadBong)
515
+
516
+ = 1.2 [19/02/13] =
517
+ * Improvement: Code refactored
518
+ * Fix: Unable to assign the same image to more than one slider
519
+ * Fix: JavaScript error when jQuery is loaded in page footer
520
+ * Improvement: Warning notice when the slider has unsaved changes
521
+ * Fix: Captions not being escaped (reported by and thanks to: papabeers)
522
+ * Improvement: Add multiple files to slider from Media Browser
523
+
524
+ = 1.1 [18/02/13] =
525
+ * Improvement: Code refactored
526
+ * Fix: hitting [enter] brings up Media Library
527
+ * Improvement: Settings for new sliders now based on the last edited slider
528
+ * Improvement: More screenshots added
529
+
530
+ = 1.0.1 [17/02/13] =
531
+ * Fix: min version incorrect (should be 3.5)
532
+
533
+ = 1.0 [15/02/13] =
534
+ * Initial version
535
+
536
  == Upgrade Notice ==
537
+
538
+