MetaSlider - Version 3.6.6

Version Description

  • 2017/Nov/23 =

  • FIX: Fixes FlexSlider bug when resizing slider.

  • FIX: Updates layout on post feed slides.

Download this release

Release Info

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

Code changes from version 3.6.5 to 3.6.6

admin/Notices.php CHANGED
@@ -31,6 +31,11 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
31
// To avoid showing the user ads off the start, lets wait
32
$this->notices_content = ($this->ad_delay_has_finished()) ? $this->ads : array();
33
$this->plugin = $plugin;
34
35
add_action('admin_enqueue_scripts', array($this, 'add_notice_assets'));
36
add_action('wp_ajax_notice_handler', array($this, 'ajax_notice_handler'));
@@ -175,72 +180,71 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
175
}
176
177
/**
178
- * Seasonal Notices. Note that if dismissed, they will stay dismissed for two weeks
179
- * which is the default for any notice. Since the parent class forces these,
180
- * there's no need to edit the key/dismiss_time
181
* @return string
182
*/
183
protected function seasonal_notices() {
184
return array(
185
- 'blackfriday' => array(
186
'title' => __('Black Friday - 50% off the MetaSlider Add-on Pack until November 30th', 'ml-slider'),
187
'text' => __('To benefit, use this discount code:', 'ml-slider').' ',
188
'image' => 'seasonal/black_friday.png',
189
'button_link' => apply_filters('metaslider_hoplink', 'https://www.metaslider.com/upgrade') . '?utm_source=metaslider-plugin-page&utm_medium=banner',
190
'button_meta' => 'ml-slider',
191
- 'dismiss_time' => 'blackfriday',
192
'discount_code' => 'blackfriday2017sale',
193
'valid_from' => '2017-11-20 00:00:00',
194
'valid_to' => '2017-11-30 23:59:59',
195
'hide_time' => __('until next year', 'ml-slider'),
196
'supported_positions' => array('header', 'dashboard'),
197
),
198
- 'christmas' => array(
199
'title' => __('Christmas sale - 50% off the MetaSlider Add-on Pack until December 25th', 'ml-slider'),
200
'text' => __('To benefit, use this discount code:', 'ml-slider').' ',
201
'image' => 'seasonal/christmas.png',
202
'button_link' => apply_filters('metaslider_hoplink', 'https://www.metaslider.com/upgrade') . '?utm_source=metaslider-plugin-page&utm_medium=banner',
203
'button_meta' => 'ml-slider',
204
- 'dismiss_time' => 'christmas',
205
'discount_code' => 'christmas2017sale',
206
'valid_from' => '2017-12-01 00:00:00',
207
'valid_to' => '2017-12-25 23:59:59',
208
'hide_time' => __('until next year', 'ml-slider'),
209
'supported_positions' => array('header', 'dashboard'),
210
),
211
- 'newyear' => array(
212
'title' => __('Happy New Year - 50% off the MetaSlider Add-on Pack until January 1st', 'ml-slider'),
213
'text' => __('To benefit, use this discount code:', 'ml-slider').' ',
214
'image' => 'seasonal/new_year.png',
215
'button_link' => apply_filters('metaslider_hoplink', 'https://www.metaslider.com/upgrade') . '?utm_source=metaslider-plugin-page&utm_medium=banner',
216
'button_meta' => 'ml-slider',
217
- 'dismiss_time' => 'newyear',
218
'discount_code' => 'newyear2018sale',
219
'valid_from' => '2017-12-26 00:00:00',
220
'valid_to' => '2018-01-14 23:59:59',
221
'hide_time' => __('until next year', 'ml-slider'),
222
'supported_positions' => array('header', 'dashboard'),
223
),
224
- 'spring' => array(
225
'title' => __('Spring sale - 50% off the MetaSlider Add-on Pack until April 31st', 'ml-slider'),
226
'text' => __('To benefit, use this discount code:', 'ml-slider').' ',
227
'image' => 'seasonal/spring.png',
228
'button_link' => apply_filters('metaslider_hoplink', 'https://www.metaslider.com/upgrade') . '?utm_source=metaslider-plugin-page&utm_medium=banner',
229
'button_meta' => 'ml-slider',
230
- 'dismiss_time' => 'spring',
231
'discount_code' => 'spring2018sale',
232
'valid_from' => '2018-04-01 00:00:00',
233
'valid_to' => '2018-04-30 23:59:59',
234
'hide_time' => __('until next year', 'ml-slider'),
235
'supported_positions' => array('header', 'dashboard'),
236
),
237
- 'summer' => array(
238
'title' => __('Summer sale - 50% off the MetaSlider Add-on Pack until July 31st', 'ml-slider'),
239
'text' => __('To benefit, use this discount code:', 'ml-slider').' ',
240
'image' => 'seasonal/summer.png',
241
'button_link' => apply_filters('metaslider_hoplink', 'https://www.metaslider.com/upgrade') . '?utm_source=metaslider-plugin-page&utm_medium=banner',
242
'button_meta' => 'ml-slider',
243
- 'dismiss_time' => 'summer',
244
'discount_code' => 'summer2018sale',
245
'valid_from' => '2018-07-01 00:00:00',
246
'valid_to' => '2018-07-31 23:59:59',
@@ -388,7 +392,7 @@ class MetaSlider_Notices extends Updraft_Notices_1_0 {
388
* @return array
389
*/
390
protected function skip_seasonal_notices($notice_data) {
391
- return true;
392
}
393
394
/**
31
// To avoid showing the user ads off the start, lets wait
32
$this->notices_content = ($this->ad_delay_has_finished()) ? $this->ads : array();
33
$this->plugin = $plugin;
34
+
35
+ // If $notices_content is empty, we still want to offer seasonal ads
36
+ if (empty($this->notices_content) && !$this->is_metasliderpro_installed()) {
37
+ $this->notices_content = $this->valid_seasonal_notices();
38
+ }
39
40
add_action('admin_enqueue_scripts', array($this, 'add_notice_assets'));
41
add_action('wp_ajax_notice_handler', array($this, 'ajax_notice_handler'));
180
}
181
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() {
188
return array(
189
+ 'blackfriday2017' => array(
190
'title' => __('Black Friday - 50% off the MetaSlider Add-on Pack until November 30th', 'ml-slider'),
191
'text' => __('To benefit, use this discount code:', 'ml-slider').' ',
192
'image' => 'seasonal/black_friday.png',
193
'button_link' => apply_filters('metaslider_hoplink', 'https://www.metaslider.com/upgrade') . '?utm_source=metaslider-plugin-page&utm_medium=banner',
194
'button_meta' => 'ml-slider',
195
+ 'dismiss_time' => 'blackfriday2017',
196
'discount_code' => 'blackfriday2017sale',
197
'valid_from' => '2017-11-20 00:00:00',
198
'valid_to' => '2017-11-30 23:59:59',
199
'hide_time' => __('until next year', 'ml-slider'),
200
'supported_positions' => array('header', 'dashboard'),
201
),
202
+ 'christmas2017' => array(
203
'title' => __('Christmas sale - 50% off the MetaSlider Add-on Pack until December 25th', 'ml-slider'),
204
'text' => __('To benefit, use this discount code:', 'ml-slider').' ',
205
'image' => 'seasonal/christmas.png',
206
'button_link' => apply_filters('metaslider_hoplink', 'https://www.metaslider.com/upgrade') . '?utm_source=metaslider-plugin-page&utm_medium=banner',
207
'button_meta' => 'ml-slider',
208
+ 'dismiss_time' => 'christmas2017',
209
'discount_code' => 'christmas2017sale',
210
'valid_from' => '2017-12-01 00:00:00',
211
'valid_to' => '2017-12-25 23:59:59',
212
'hide_time' => __('until next year', 'ml-slider'),
213
'supported_positions' => array('header', 'dashboard'),
214
),
215
+ 'newyear2018' => array(
216
'title' => __('Happy New Year - 50% off the MetaSlider Add-on Pack until January 1st', 'ml-slider'),
217
'text' => __('To benefit, use this discount code:', 'ml-slider').' ',
218
'image' => 'seasonal/new_year.png',
219
'button_link' => apply_filters('metaslider_hoplink', 'https://www.metaslider.com/upgrade') . '?utm_source=metaslider-plugin-page&utm_medium=banner',
220
'button_meta' => 'ml-slider',
221
+ 'dismiss_time' => 'newyear2018',
222
'discount_code' => 'newyear2018sale',
223
'valid_from' => '2017-12-26 00:00:00',
224
'valid_to' => '2018-01-14 23:59:59',
225
'hide_time' => __('until next year', 'ml-slider'),
226
'supported_positions' => array('header', 'dashboard'),
227
),
228
+ 'spring2018' => array(
229
'title' => __('Spring sale - 50% off the MetaSlider Add-on Pack until April 31st', 'ml-slider'),
230
'text' => __('To benefit, use this discount code:', 'ml-slider').' ',
231
'image' => 'seasonal/spring.png',
232
'button_link' => apply_filters('metaslider_hoplink', 'https://www.metaslider.com/upgrade') . '?utm_source=metaslider-plugin-page&utm_medium=banner',
233
'button_meta' => 'ml-slider',
234
+ 'dismiss_time' => 'spring2018',
235
'discount_code' => 'spring2018sale',
236
'valid_from' => '2018-04-01 00:00:00',
237
'valid_to' => '2018-04-30 23:59:59',
238
'hide_time' => __('until next year', 'ml-slider'),
239
'supported_positions' => array('header', 'dashboard'),
240
),
241
+ 'summer2018' => array(
242
'title' => __('Summer sale - 50% off the MetaSlider Add-on Pack until July 31st', 'ml-slider'),
243
'text' => __('To benefit, use this discount code:', 'ml-slider').' ',
244
'image' => 'seasonal/summer.png',
245
'button_link' => apply_filters('metaslider_hoplink', 'https://www.metaslider.com/upgrade') . '?utm_source=metaslider-plugin-page&utm_medium=banner',
246
'button_meta' => 'ml-slider',
247
+ 'dismiss_time' => 'summer2018',
248
'discount_code' => 'summer2018sale',
249
'valid_from' => '2018-07-01 00:00:00',
250
'valid_to' => '2018-07-31 23:59:59',
392
* @return array
393
*/
394
protected function skip_seasonal_notices($notice_data) {
395
+ return !$this->check_notice_dismissed($notice_data['dismiss_time']);
396
}
397
398
/**
admin/assets/css/admin.css CHANGED
@@ -859,6 +859,10 @@ textarea:-ms-input-placeholder {
859
margin-bottom: 22px;
860
padding-top: 31px;
861
}
862
.metaslider-ui .metaslider-slides-container .slide > td {
863
padding: 0;
864
transition: all .25s ease-in-out;
859
margin-bottom: 22px;
860
padding-top: 31px;
861
}
862
+ .metaslider-ui .metaslider-slides-container .slide.post_feed .scroll{
863
+ overflow: auto;
864
+ height: 100px;
865
+ }
866
.metaslider-ui .metaslider-slides-container .slide > td {
867
padding: 0;
868
transition: all .25s ease-in-out;
assets/sliders/flexslider/jquery.flexslider.js CHANGED
@@ -145,7 +145,7 @@
145
if (touch && slider.vars.touch) { methods.touch(); }
146
147
// FADE&&SMOOTHHEIGHT || SLIDE:
148
- if (!fade || (fade && slider.vars.smoothHeight)) { $(window).bind("resize orientationchange focus", methods.resize()); }
149
150
slider.find("img").attr("draggable", "false");
151
145
if (touch && slider.vars.touch) { methods.touch(); }
146
147
// FADE&&SMOOTHHEIGHT || SLIDE:
148
+ if (!fade || (fade && slider.vars.smoothHeight)) { $(window).on("resize orientationchange focus", methods.resize); }
149
150
slider.find("img").attr("draggable", "false");
151
assets/sliders/flexslider/jquery.flexslider.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){var t=!0;e.flexslider=function(a,n){var i=e(a);i.vars=e.extend({},e.flexslider.defaults,n);var s,r=i.vars.namespace,o=window.navigator&&window.navigator.msPointerEnabled&&window.MSGesture,l=("ontouchstart"in window||o||window.DocumentTouch&&document instanceof DocumentTouch)&&i.vars.touch,c="click touchend MSPointerUp keyup",d="",u="vertical"===i.vars.direction,v=i.vars.reverse,p=i.vars.itemWidth>0,m="fade"===i.vars.animation,f=""!==i.vars.asNavFor,g={};e.data(a,"flexslider",i),g={init:function(){i.animating=!1,i.currentSlide=parseInt(i.vars.startAt?i.vars.startAt:0,10),isNaN(i.currentSlide)&&(i.currentSlide=0),i.animatingTo=i.currentSlide,i.atEnd=0===i.currentSlide||i.currentSlide===i.last,i.containerSelector=i.vars.selector.substr(0,i.vars.selector.search(" ")),i.slides=e(i.vars.selector,i),i.container=e(i.containerSelector,i),i.count=i.slides.length,i.syncExists=e(i.vars.sync).length>0,"slide"===i.vars.animation&&(i.vars.animation="swing"),i.prop=u?"top":"marginLeft",i.args={},i.manualPause=!1,i.stopped=!1,i.started=!1,i.startTimeout=null,i.transitions=!i.vars.video&&!m&&i.vars.useCSS&&function(){var e=document.createElement("div"),t=["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"];for(var a in t)if(void 0!==e.style[t[a]])return i.pfx=t[a].replace("Perspective","").toLowerCase(),i.prop="-"+i.pfx+"-transform",!0;return!1}(),i.ensureAnimationEnd="",""!==i.vars.controlsContainer&&(i.controlsContainer=e(i.vars.controlsContainer).length>0&&e(i.vars.controlsContainer)),""!==i.vars.manualControls&&(i.manualControls=e(i.vars.manualControls).length>0&&e(i.vars.manualControls)),""!==i.vars.customDirectionNav&&(i.customDirectionNav=2===e(i.vars.customDirectionNav).length&&e(i.vars.customDirectionNav)),i.vars.randomize&&(i.slides.sort(function(){return Math.round(Math.random())-.5}),i.container.empty().append(i.slides)),i.doMath(),i.setup("init"),i.vars.controlNav&&g.controlNav.setup(),i.vars.directionNav&&g.directionNav.setup(),i.vars.keyboard&&(1===e(i.containerSelector).length||i.vars.multipleKeyboard)&&e(document).bind("keyup",function(e){var t=e.keyCode;if(!i.animating&&(39===t||37===t)){var a=39===t?i.getTarget("next"):37===t&&i.getTarget("prev");i.flexAnimate(a,i.vars.pauseOnAction)}}),i.vars.mousewheel&&i.bind("mousewheel",function(e,t,a,n){e.preventDefault();var s=t<0?i.getTarget("next"):i.getTarget("prev");i.flexAnimate(s,i.vars.pauseOnAction)}),i.vars.pausePlay&&g.pausePlay.setup(),i.vars.slideshow&&i.vars.pauseInvisible&&g.pauseInvisible.init(),i.vars.slideshow&&(i.vars.pauseOnHover&&i.hover(function(){i.manualPlay||i.manualPause||i.pause()},function(){i.manualPause||i.manualPlay||i.stopped||i.play()}),i.vars.pauseInvisible&&g.pauseInvisible.isHidden()||(i.vars.initDelay>0?i.startTimeout=setTimeout(i.play,i.vars.initDelay):i.play())),f&&g.asNav.setup(),l&&i.vars.touch&&g.touch(),(!m||m&&i.vars.smoothHeight)&&e(window).bind("resize orientationchange focus",g.resize()),i.find("img").attr("draggable","false"),setTimeout(function(){i.vars.start(i)},200)},asNav:{setup:function(){i.asNav=!0,i.animatingTo=Math.floor(i.currentSlide/i.move),i.currentItem=i.currentSlide,i.slides.removeClass(r+"active-slide").eq(i.currentItem).addClass(r+"active-slide"),o?(a._slider=i,i.slides.each(function(){var t=this;t._gesture=new MSGesture,t._gesture.target=t,t.addEventListener("MSPointerDown",function(e){e.preventDefault(),e.currentTarget._gesture&&e.currentTarget._gesture.addPointer(e.pointerId)},!1),t.addEventListener("MSGestureTap",function(t){t.preventDefault();var a=e(this),n=a.index();e(i.vars.asNavFor).data("flexslider").animating||a.hasClass("active")||(i.direction=i.currentItem<n?"next":"prev",i.flexAnimate(n,i.vars.pauseOnAction,!1,!0,!0))})})):i.slides.on(c,function(t){t.preventDefault();var a=e(this),n=a.index(),s=a.offset().left-e(i).scrollLeft();s<=0&&a.hasClass(r+"active-slide")?i.flexAnimate(i.getTarget("prev"),!0):e(i.vars.asNavFor).data("flexslider").animating||a.hasClass(r+"active-slide")||(i.direction=i.currentItem<n?"next":"prev",i.flexAnimate(n,i.vars.pauseOnAction,!1,!0,!0))})}},controlNav:{setup:function(){i.manualControls?g.controlNav.setupManual():g.controlNav.setupPaging()},setupPaging:function(){var t,a,n="thumbnails"===i.vars.controlNav?"control-thumbs":"control-paging",s=1;if(i.controlNavScaffold=e('<ol class="'+r+"control-nav "+r+n+'"></ol>'),i.pagingCount>1)for(var o=0;o<i.pagingCount;o++){a=i.slides.eq(o),void 0===a.attr("data-thumb-alt")&&a.attr("data-thumb-alt","");var l=""!==a.attr("data-thumb-alt")?l=' alt="'+a.attr("data-thumb-alt")+'"':"";if(t="thumbnails"===i.vars.controlNav?'<img src="'+a.attr("data-thumb")+'"'+l+"/>":'<a href="#">'+s+"</a>","thumbnails"===i.vars.controlNav&&!0===i.vars.thumbCaptions){var u=a.attr("data-thumbcaption");""!==u&&void 0!==u&&(t+='<span class="'+r+'caption">'+u+"</span>")}i.controlNavScaffold.append("<li>"+t+"</li>"),s++}i.controlsContainer?e(i.controlsContainer).append(i.controlNavScaffold):i.append(i.controlNavScaffold),g.controlNav.set(),g.controlNav.active(),i.controlNavScaffold.delegate("a, img",c,function(t){if(t.preventDefault(),""===d||d===t.type){var a=e(this),n=i.controlNav.index(a);a.hasClass(r+"active")||(i.direction=n>i.currentSlide?"next":"prev",i.flexAnimate(n,i.vars.pauseOnAction))}""===d&&(d=t.type),g.setToClearWatchedEvent()})},setupManual:function(){i.controlNav=i.manualControls,g.controlNav.active(),i.controlNav.bind(c,function(t){if(t.preventDefault(),""===d||d===t.type){var a=e(this),n=i.controlNav.index(a);a.hasClass(r+"active")||(n>i.currentSlide?i.direction="next":i.direction="prev",i.flexAnimate(n,i.vars.pauseOnAction))}""===d&&(d=t.type),g.setToClearWatchedEvent()})},set:function(){var t="thumbnails"===i.vars.controlNav?"img":"a";i.controlNav=e("."+r+"control-nav li "+t,i.controlsContainer?i.controlsContainer:i)},active:function(){i.controlNav.removeClass(r+"active").eq(i.animatingTo).addClass(r+"active")},update:function(t,a){i.pagingCount>1&&"add"===t?i.controlNavScaffold.append(e('<li><a href="#">'+i.count+"</a></li>")):1===i.pagingCount?i.controlNavScaffold.find("li").remove():i.controlNav.eq(a).closest("li").remove(),g.controlNav.set(),i.pagingCount>1&&i.pagingCount!==i.controlNav.length?i.update(a,t):g.controlNav.active()}},directionNav:{setup:function(){var t=e('<ul class="'+r+'direction-nav"><li class="'+r+'nav-prev"><a class="'+r+'prev" href="#">'+i.vars.prevText+'</a></li><li class="'+r+'nav-next"><a class="'+r+'next" href="#">'+i.vars.nextText+"</a></li></ul>");i.customDirectionNav?i.directionNav=i.customDirectionNav:i.controlsContainer?(e(i.controlsContainer).append(t),i.directionNav=e("."+r+"direction-nav li a",i.controlsContainer)):(i.append(t),i.directionNav=e("."+r+"direction-nav li a",i)),g.directionNav.update(),i.directionNav.bind(c,function(t){t.preventDefault();var a;""!==d&&d!==t.type||(a=e(this).hasClass(r+"next")?i.getTarget("next"):i.getTarget("prev"),i.flexAnimate(a,i.vars.pauseOnAction)),""===d&&(d=t.type),g.setToClearWatchedEvent()})},update:function(){var e=r+"disabled";1===i.pagingCount?i.directionNav.addClass(e).attr("tabindex","-1"):i.vars.animationLoop?i.directionNav.removeClass(e).removeAttr("tabindex"):0===i.animatingTo?i.directionNav.removeClass(e).filter("."+r+"prev").addClass(e).attr("tabindex","-1"):i.animatingTo===i.last?i.directionNav.removeClass(e).filter("."+r+"next").addClass(e).attr("tabindex","-1"):i.directionNav.removeClass(e).removeAttr("tabindex")}},pausePlay:{setup:function(){var t=e('<div class="'+r+'pauseplay"><a href="#"></a></div>');i.controlsContainer?(i.controlsContainer.append(t),i.pausePlay=e("."+r+"pauseplay a",i.controlsContainer)):(i.append(t),i.pausePlay=e("."+r+"pauseplay a",i)),g.pausePlay.update(i.vars.slideshow?r+"pause":r+"play"),i.pausePlay.bind(c,function(t){t.preventDefault(),""!==d&&d!==t.type||(e(this).hasClass(r+"pause")?(i.manualPause=!0,i.manualPlay=!1,i.pause()):(i.manualPause=!1,i.manualPlay=!0,i.play())),""===d&&(d=t.type),g.setToClearWatchedEvent()})},update:function(e){"play"===e?i.pausePlay.removeClass(r+"pause").addClass(r+"play").html(i.vars.playText):i.pausePlay.removeClass(r+"play").addClass(r+"pause").html(i.vars.pauseText)}},touch:function(){function e(e){e.stopPropagation(),i.animating?e.preventDefault():(i.pause(),a._gesture.addPointer(e.pointerId),w=0,c=u?i.h:i.w,f=Number(new Date),l=p&&v&&i.animatingTo===i.last?0:p&&v?i.limit-(i.itemW+i.vars.itemMargin)*i.move*i.animatingTo:p&&i.currentSlide===i.last?i.limit:p?(i.itemW+i.vars.itemMargin)*i.move*i.currentSlide:v?(i.last-i.currentSlide+i.cloneOffset)*c:(i.currentSlide+i.cloneOffset)*c)}function t(e){e.stopPropagation();var t=e.target._slider;if(t){var n=-e.translationX,i=-e.translationY;return w+=u?i:n,d=w,y=u?Math.abs(w)<Math.abs(-n):Math.abs(w)<Math.abs(-i),e.detail===e.MSGESTURE_FLAG_INERTIA?void setImmediate(function(){a._gesture.stop()}):void((!y||Number(new Date)-f>500)&&(e.preventDefault(),!m&&t.transitions&&(t.vars.animationLoop||(d=w/(0===t.currentSlide&&w<0||t.currentSlide===t.last&&w>0?Math.abs(w)/c+2:1)),t.setProps(l+d,"setTouch"))))}}function n(e){e.stopPropagation();var t=e.target._slider;if(t){if(t.animatingTo===t.currentSlide&&!y&&null!==d){var a=v?-d:d,n=a>0?t.getTarget("next"):t.getTarget("prev");t.canAdvance(n)&&(Number(new Date)-f<550&&Math.abs(a)>50||Math.abs(a)>c/2)?t.flexAnimate(n,t.vars.pauseOnAction):m||t.flexAnimate(t.currentSlide,t.vars.pauseOnAction,!0)}d&&y?t.vars.slideshow&&t.play():d?!t.vars.pauseOnAction&&t.play()||(t.vars.slideshow=!1):t.vars.slideshow&&!t.vars.pauseOnAction&&t.play()||(t.vars.slideshow=!1),s=null,r=null,d=null,l=null,w=0}}var s,r,l,c,d,f,g,h,S,y=!1,x=0,b=0,w=0;o?(a.style.msTouchAction="none",a._gesture=new MSGesture,a._gesture.target=a,a.addEventListener("MSPointerDown",e,!1),a._slider=i,a.addEventListener("MSGestureChange",t,!1),a.addEventListener("MSGestureEnd",n,!1)):(g=function(e){i.animating?e.preventDefault():(window.navigator.msPointerEnabled||1===e.touches.length)&&(i.pause(),c=u?i.h:i.w,f=Number(new Date),x=e.touches[0].pageX,b=e.touches[0].pageY,l=p&&v&&i.animatingTo===i.last?0:p&&v?i.limit-(i.itemW+i.vars.itemMargin)*i.move*i.animatingTo:p&&i.currentSlide===i.last?i.limit:p?(i.itemW+i.vars.itemMargin)*i.move*i.currentSlide:v?(i.last-i.currentSlide+i.cloneOffset)*c:(i.currentSlide+i.cloneOffset)*c,s=u?b:x,r=u?x:b,a.addEventListener("touchmove",h,!1),a.addEventListener("touchend",S,!1))},h=function(e){x=e.touches[0].pageX,b=e.touches[0].pageY,d=u?s-b:s-x,y=u?Math.abs(d)<Math.abs(x-r):Math.abs(d)<Math.abs(b-r);var t=500;(!y||Number(new Date)-f>t)&&(e.preventDefault(),!m&&i.transitions&&(i.vars.animationLoop||(d/=0===i.currentSlide&&d<0||i.currentSlide===i.last&&d>0?Math.abs(d)/c+2:1),i.setProps(l+d,"setTouch")))},S=function(e){if(a.removeEventListener("touchmove",h,!1),i.animatingTo===i.currentSlide&&!y&&null!==d){var t=v?-d:d,n=t>0?i.getTarget("next"):i.getTarget("prev");i.canAdvance(n)&&(Number(new Date)-f<550&&Math.abs(t)>50||Math.abs(t)>c/2)?i.flexAnimate(n,i.vars.pauseOnAction):m||i.flexAnimate(i.currentSlide,i.vars.pauseOnAction,!0)}a.removeEventListener("touchend",S,!1),d&&y?i.vars.slideshow&&i.play():d?!i.vars.pauseOnAction&&i.play()||(i.vars.slideshow=!1):i.vars.slideshow&&!i.vars.pauseOnAction&&i.play()||(i.vars.slideshow=!1),s=null,r=null,d=null,l=null},a.addEventListener("touchstart",g,!1))},resize:function(){!i.animating&&i.is(":visible")&&(p||i.doMath(),m?g.smoothHeight():p?(i.slides.width(i.computedW),i.update(i.pagingCount),i.setProps()):u?(i.viewport.height(i.h),i.setProps(i.h,"setTotal")):(i.vars.smoothHeight&&g.smoothHeight(),i.newSlides.width(i.computedW),i.setProps(i.computedW,"setTotal")))},smoothHeight:function(e){if(!u||m){var t=m?i:i.viewport;e?t.animate({height:i.slides.eq(i.animatingTo).innerHeight()},e):t.innerHeight(i.slides.eq(i.animatingTo).innerHeight())}},sync:function(t){var a=e(i.vars.sync).data("flexslider"),n=i.animatingTo;switch(t){case"animate":a.flexAnimate(n,i.vars.pauseOnAction,!1,!0);break;case"play":a.playing||a.asNav||a.play();break;case"pause":a.pause()}},uniqueID:function(t){return t.filter("[id]").add(t.find("[id]")).each(function(){var t=e(this);t.attr("id",t.attr("id")+"_clone")}),t},pauseInvisible:{visProp:null,init:function(){var e=g.pauseInvisible.getHiddenProp();if(e){var t=e.replace(/[H|h]idden/,"")+"visibilitychange";document.addEventListener(t,function(){g.pauseInvisible.isHidden()?i.startTimeout?clearTimeout(i.startTimeout):i.pause():i.started?i.play():i.vars.initDelay>0?setTimeout(i.play,i.vars.initDelay):i.play()})}},isHidden:function(){var e=g.pauseInvisible.getHiddenProp();return!!e&&document[e]},getHiddenProp:function(){var e=["webkit","moz","ms","o"];if("hidden"in document)return"hidden";for(var t=0;t<e.length;t++)if(e[t]+"Hidden"in document)return e[t]+"Hidden";return null}},setToClearWatchedEvent:function(){clearTimeout(s),s=setTimeout(function(){d=""},3e3)}},i.flexAnimate=function(t,a,n,s,o){if(i.vars.animationLoop||t===i.currentSlide||(i.direction=t>i.currentSlide?"next":"prev"),f&&1===i.pagingCount&&(i.direction=i.currentItem<t?"next":"prev"),!i.animating&&(i.canAdvance(t,o)||n)&&i.is(":visible")){if(f&&s){var c=e(i.vars.asNavFor).data("flexslider");if(i.atEnd=0===t||t===i.count-1,c.flexAnimate(t,!0,!1,!0,o),i.direction=i.currentItem<t?"next":"prev",c.direction=i.direction,Math.ceil((t+1)/i.visible)-1===i.currentSlide||0===t)return i.currentItem=t,i.slides.removeClass(r+"active-slide").eq(t).addClass(r+"active-slide"),!1;i.currentItem=t,i.slides.removeClass(r+"active-slide").eq(t).addClass(r+"active-slide"),t=Math.floor(t/i.visible)}if(i.animating=!0,i.animatingTo=t,a&&i.pause(),i.vars.before(i),i.syncExists&&!o&&g.sync("animate"),i.vars.controlNav&&g.controlNav.active(),p||i.slides.removeClass(r+"active-slide").eq(t).addClass(r+"active-slide"),i.atEnd=0===t||t===i.last,i.vars.directionNav&&g.directionNav.update(),t===i.last&&(i.vars.end(i),i.vars.animationLoop||i.pause()),m)l?(i.slides.eq(i.currentSlide).css({opacity:0,zIndex:1}),i.slides.eq(t).css({opacity:1,zIndex:2}),i.wrapup(y)):(i.slides.eq(i.currentSlide).css({zIndex:1}).animate({opacity:0},i.vars.animationSpeed,i.vars.easing),i.slides.eq(t).css({zIndex:2}).animate({opacity:1},i.vars.animationSpeed,i.vars.easing,i.wrapup));else{var d,h,S,y=u?i.slides.filter(":first").height():i.computedW;p?(d=i.vars.itemMargin,S=(i.itemW+d)*i.move*i.animatingTo,h=S>i.limit&&1!==i.visible?i.limit:S):h=0===i.currentSlide&&t===i.count-1&&i.vars.animationLoop&&"next"!==i.direction?v?(i.count+i.cloneOffset)*y:0:i.currentSlide===i.last&&0===t&&i.vars.animationLoop&&"prev"!==i.direction?v?0:(i.count+1)*y:v?(i.count-1-t+i.cloneOffset)*y:(t+i.cloneOffset)*y,i.setProps(h,"",i.vars.animationSpeed),i.transitions?(i.vars.animationLoop&&i.atEnd||(i.animating=!1,i.currentSlide=i.animatingTo),i.container.unbind("webkitTransitionEnd transitionend"),i.container.bind("webkitTransitionEnd transitionend",function(){clearTimeout(i.ensureAnimationEnd),i.wrapup(y)}),clearTimeout(i.ensureAnimationEnd),i.ensureAnimationEnd=setTimeout(function(){i.wrapup(y)},i.vars.animationSpeed+100)):i.container.animate(i.args,i.vars.animationSpeed,i.vars.easing,function(){i.wrapup(y)})}i.vars.smoothHeight&&g.smoothHeight(i.vars.animationSpeed)}},i.wrapup=function(e){m||p||(0===i.currentSlide&&i.animatingTo===i.last&&i.vars.animationLoop?i.setProps(e,"jumpEnd"):i.currentSlide===i.last&&0===i.animatingTo&&i.vars.animationLoop&&i.setProps(e,"jumpStart")),i.animating=!1,i.currentSlide=i.animatingTo,i.vars.after(i)},i.animateSlides=function(){!i.animating&&t&&i.flexAnimate(i.getTarget("next"))},i.pause=function(){clearInterval(i.animatedSlides),i.animatedSlides=null,i.playing=!1,i.vars.pausePlay&&g.pausePlay.update("play"),i.syncExists&&g.sync("pause")},i.play=function(){i.playing&&clearInterval(i.animatedSlides),i.animatedSlides=i.animatedSlides||setInterval(i.animateSlides,i.vars.slideshowSpeed),i.started=i.playing=!0,i.vars.pausePlay&&g.pausePlay.update("pause"),i.syncExists&&g.sync("play")},i.stop=function(){i.pause(),i.stopped=!0},i.canAdvance=function(e,t){var a=f?i.pagingCount-1:i.last;return!!t||(!(!f||i.currentItem!==i.count-1||0!==e||"prev"!==i.direction)||(!f||0!==i.currentItem||e!==i.pagingCount-1||"next"===i.direction)&&(!(e===i.currentSlide&&!f)&&(!!i.vars.animationLoop||(!i.atEnd||0!==i.currentSlide||e!==a||"next"===i.direction)&&(!i.atEnd||i.currentSlide!==a||0!==e||"next"!==i.direction))))},i.getTarget=function(e){return i.direction=e,"next"===e?i.currentSlide===i.last?0:i.currentSlide+1:0===i.currentSlide?i.last:i.currentSlide-1},i.setProps=function(e,t,a){var n=function(){var a=e?e:(i.itemW+i.vars.itemMargin)*i.move*i.animatingTo,n=function(){if(p)return"setTouch"===t?e:v&&i.animatingTo===i.last?0:v?i.limit-(i.itemW+i.vars.itemMargin)*i.move*i.animatingTo:i.animatingTo===i.last?i.limit:a;switch(t){case"setTotal":return v?(i.count-1-i.currentSlide+i.cloneOffset)*e:(i.currentSlide+i.cloneOffset)*e;case"setTouch":return v?e:e;case"jumpEnd":return v?e:i.count*e;case"jumpStart":return v?i.count*e:e;default:return e}}();return n*-1+"px"}();i.transitions&&(n=u?"translate3d(0,"+n+",0)":"translate3d("+n+",0,0)",a=void 0!==a?a/1e3+"s":"0s",i.container.css("-"+i.pfx+"-transition-duration",a),i.container.css("transition-duration",a)),i.args[i.prop]=n,(i.transitions||void 0===a)&&i.container.css(i.args),i.container.css("transform",n)},i.setup=function(t){if(m)i.slides.css({width:"100%","float":"left",marginRight:"-100%",position:"relative"}),"init"===t&&(l?i.slides.css({opacity:0,display:"block",webkitTransition:"opacity "+i.vars.animationSpeed/1e3+"s ease",zIndex:1}).eq(i.currentSlide).css({opacity:1,zIndex:2}):0==i.vars.fadeFirstSlide?i.slides.css({opacity:0,display:"block",zIndex:1}).eq(i.currentSlide).css({zIndex:2}).css({opacity:1}):i.slides.css({opacity:0,display:"block",zIndex:1}).eq(i.currentSlide).css({zIndex:2}).animate({opacity:1},i.vars.animationSpeed,i.vars.easing)),i.vars.smoothHeight&&g.smoothHeight();else{var a,n;"init"===t&&(i.viewport=e('<div class="'+r+'viewport"></div>').css({overflow:"hidden",position:"relative"}).appendTo(i).append(i.container),i.cloneCount=0,i.cloneOffset=0,v&&(n=e.makeArray(i.slides).reverse(),i.slides=e(n),i.container.empty().append(i.slides))),i.vars.animationLoop&&!p&&(i.cloneCount=2,i.cloneOffset=1,"init"!==t&&i.container.find(".clone").remove(),i.container.append(g.uniqueID(i.slides.first().clone().addClass("clone")).attr("aria-hidden","true")).prepend(g.uniqueID(i.slides.last().clone().addClass("clone")).attr("aria-hidden","true"))),i.newSlides=e(i.vars.selector,i),a=v?i.count-1-i.currentSlide+i.cloneOffset:i.currentSlide+i.cloneOffset,u&&!p?(i.container.height(200*(i.count+i.cloneCount)+"%").css("position","absolute").width("100%"),setTimeout(function(){i.newSlides.css({display:"block"}),i.doMath(),i.viewport.height(i.h),i.setProps(a*i.h,"init")},"init"===t?100:0)):(i.container.width(200*(i.count+i.cloneCount)+"%"),i.setProps(a*i.computedW,"init"),setTimeout(function(){i.doMath(),i.newSlides.css({width:i.computedW,marginRight:i.computedM,"float":"left",display:"block"}),i.vars.smoothHeight&&g.smoothHeight()},"init"===t?100:0))}p||i.slides.removeClass(r+"active-slide").eq(i.currentSlide).addClass(r+"active-slide"),i.vars.init(i)},i.doMath=function(){var e=i.slides.first(),t=i.vars.itemMargin,a=i.vars.minItems,n=i.vars.maxItems;i.w=void 0===i.viewport?i.width():i.viewport.width(),i.h=e.height(),i.boxPadding=e.outerWidth()-e.width(),p?(i.itemT=i.vars.itemWidth+t,i.itemM=t,i.minW=a?a*i.itemT:i.w,i.maxW=n?n*i.itemT-t:i.w,i.itemW=i.minW>i.w?(i.w-t*(a-1))/a:i.maxW<i.w?(i.w-t*(n-1))/n:i.vars.itemWidth>i.w?i.w:i.vars.itemWidth,i.visible=Math.floor(i.w/i.itemW),i.move=i.vars.move>0&&i.vars.move<i.visible?i.vars.move:i.visible,i.pagingCount=Math.ceil((i.count-i.visible)/i.move+1),i.last=i.pagingCount-1,i.limit=1===i.pagingCount?0:i.vars.itemWidth>i.w?i.itemW*(i.count-1)+t*(i.count-1):(i.itemW+t)*i.count-i.w-t):(i.itemW=i.w,i.itemM=t,i.pagingCount=i.count,i.last=i.count-1),i.computedW=i.itemW-i.boxPadding,i.computedM=i.itemM},i.update=function(e,t){i.doMath(),p||(e<i.currentSlide?i.currentSlide+=1:e<=i.currentSlide&&0!==e&&(i.currentSlide-=1),i.animatingTo=i.currentSlide),i.vars.controlNav&&!i.manualControls&&("add"===t&&!p||i.pagingCount>i.controlNav.length?g.controlNav.update("add"):("remove"===t&&!p||i.pagingCount<i.controlNav.length)&&(p&&i.currentSlide>i.last&&(i.currentSlide-=1,i.animatingTo-=1),g.controlNav.update("remove",i.last))),i.vars.directionNav&&g.directionNav.update()},i.addSlide=function(t,a){var n=e(t);i.count+=1,i.last=i.count-1,u&&v?void 0!==a?i.slides.eq(i.count-a).after(n):i.container.prepend(n):void 0!==a?i.slides.eq(a).before(n):i.container.append(n),i.update(a,"add"),i.slides=e(i.vars.selector+":not(.clone)",i),i.setup(),i.vars.added(i)},i.removeSlide=function(t){var a=isNaN(t)?i.slides.index(e(t)):t;i.count-=1,i.last=i.count-1,isNaN(t)?e(t,i.slides).remove():u&&v?i.slides.eq(i.last).remove():i.slides.eq(t).remove(),i.doMath(),i.update(a,"remove"),i.slides=e(i.vars.selector+":not(.clone)",i),i.setup(),i.vars.removed(i)},g.init()},e(window).blur(function(e){t=!1}).focus(function(e){t=!0}),e.flexslider.defaults={namespace:"flex-",selector:".slides > li",animation:"fade",easing:"swing",direction:"horizontal",reverse:!1,animationLoop:!0,smoothHeight:!1,startAt:0,slideshow:!0,slideshowSpeed:7e3,animationSpeed:600,initDelay:0,randomize:!1,fadeFirstSlide:!0,thumbCaptions:!1,pauseOnAction:!0,pauseOnHover:!1,pauseInvisible:!0,useCSS:!0,touch:!0,video:!1,controlNav:!0,directionNav:!0,prevText:"Previous",nextText:"Next",keyboard:!0,multipleKeyboard:!1,mousewheel:!1,pausePlay:!1,pauseText:"Pause",playText:"Play",controlsContainer:"",manualControls:"",customDirectionNav:"",sync:"",asNavFor:"",itemWidth:0,itemMargin:0,minItems:1,maxItems:0,move:0,allowOneSlide:!0,start:function(){},before:function(){},after:function(){},end:function(){},added:function(){},removed:function(){},init:function(){}},e.fn.flexslider=function(t){if(void 0===t&&(t={}),"object"==typeof t)return this.each(function(){var a=e(this),n=t.selector?t.selector:".slides > li",i=a.find(n);1===i.length&&t.allowOneSlide===!1||0===i.length?(i.fadeIn(400),t.start&&t.start(a)):void 0===a.data("flexslider")&&new e.flexslider(this,t)});var a=e(this).data("flexslider");switch(t){case"play":a.play();break;case"pause":a.pause();break;case"stop":a.stop();break;case"next":a.flexAnimate(a.getTarget("next"),!0);break;case"prev":case"previous":a.flexAnimate(a.getTarget("prev"),!0);break;default:"number"==typeof t&&a.flexAnimate(t,!0)}}}(jQuery);
1
+ !function(e){var t=!0;e.flexslider=function(a,n){var i=e(a);i.vars=e.extend({},e.flexslider.defaults,n);var s,r=i.vars.namespace,o=window.navigator&&window.navigator.msPointerEnabled&&window.MSGesture,l=("ontouchstart"in window||o||window.DocumentTouch&&document instanceof DocumentTouch)&&i.vars.touch,c="click touchend MSPointerUp keyup",d="",u="vertical"===i.vars.direction,v=i.vars.reverse,p=i.vars.itemWidth>0,m="fade"===i.vars.animation,f=""!==i.vars.asNavFor,g={};e.data(a,"flexslider",i),g={init:function(){i.animating=!1,i.currentSlide=parseInt(i.vars.startAt?i.vars.startAt:0,10),isNaN(i.currentSlide)&&(i.currentSlide=0),i.animatingTo=i.currentSlide,i.atEnd=0===i.currentSlide||i.currentSlide===i.last,i.containerSelector=i.vars.selector.substr(0,i.vars.selector.search(" ")),i.slides=e(i.vars.selector,i),i.container=e(i.containerSelector,i),i.count=i.slides.length,i.syncExists=e(i.vars.sync).length>0,"slide"===i.vars.animation&&(i.vars.animation="swing"),i.prop=u?"top":"marginLeft",i.args={},i.manualPause=!1,i.stopped=!1,i.started=!1,i.startTimeout=null,i.transitions=!i.vars.video&&!m&&i.vars.useCSS&&function(){var e=document.createElement("div"),t=["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"];for(var a in t)if(void 0!==e.style[t[a]])return i.pfx=t[a].replace("Perspective","").toLowerCase(),i.prop="-"+i.pfx+"-transform",!0;return!1}(),i.ensureAnimationEnd="",""!==i.vars.controlsContainer&&(i.controlsContainer=e(i.vars.controlsContainer).length>0&&e(i.vars.controlsContainer)),""!==i.vars.manualControls&&(i.manualControls=e(i.vars.manualControls).length>0&&e(i.vars.manualControls)),""!==i.vars.customDirectionNav&&(i.customDirectionNav=2===e(i.vars.customDirectionNav).length&&e(i.vars.customDirectionNav)),i.vars.randomize&&(i.slides.sort(function(){return Math.round(Math.random())-.5}),i.container.empty().append(i.slides)),i.doMath(),i.setup("init"),i.vars.controlNav&&g.controlNav.setup(),i.vars.directionNav&&g.directionNav.setup(),i.vars.keyboard&&(1===e(i.containerSelector).length||i.vars.multipleKeyboard)&&e(document).bind("keyup",function(e){var t=e.keyCode;if(!i.animating&&(39===t||37===t)){var a=39===t?i.getTarget("next"):37===t&&i.getTarget("prev");i.flexAnimate(a,i.vars.pauseOnAction)}}),i.vars.mousewheel&&i.bind("mousewheel",function(e,t,a,n){e.preventDefault();var s=t<0?i.getTarget("next"):i.getTarget("prev");i.flexAnimate(s,i.vars.pauseOnAction)}),i.vars.pausePlay&&g.pausePlay.setup(),i.vars.slideshow&&i.vars.pauseInvisible&&g.pauseInvisible.init(),i.vars.slideshow&&(i.vars.pauseOnHover&&i.hover(function(){i.manualPlay||i.manualPause||i.pause()},function(){i.manualPause||i.manualPlay||i.stopped||i.play()}),i.vars.pauseInvisible&&g.pauseInvisible.isHidden()||(i.vars.initDelay>0?i.startTimeout=setTimeout(i.play,i.vars.initDelay):i.play())),f&&g.asNav.setup(),l&&i.vars.touch&&g.touch(),(!m||m&&i.vars.smoothHeight)&&e(window).on("resize orientationchange focus",g.resize),i.find("img").attr("draggable","false"),setTimeout(function(){i.vars.start(i)},200)},asNav:{setup:function(){i.asNav=!0,i.animatingTo=Math.floor(i.currentSlide/i.move),i.currentItem=i.currentSlide,i.slides.removeClass(r+"active-slide").eq(i.currentItem).addClass(r+"active-slide"),o?(a._slider=i,i.slides.each(function(){var t=this;t._gesture=new MSGesture,t._gesture.target=t,t.addEventListener("MSPointerDown",function(e){e.preventDefault(),e.currentTarget._gesture&&e.currentTarget._gesture.addPointer(e.pointerId)},!1),t.addEventListener("MSGestureTap",function(t){t.preventDefault();var a=e(this),n=a.index();e(i.vars.asNavFor).data("flexslider").animating||a.hasClass("active")||(i.direction=i.currentItem<n?"next":"prev",i.flexAnimate(n,i.vars.pauseOnAction,!1,!0,!0))})})):i.slides.on(c,function(t){t.preventDefault();var a=e(this),n=a.index(),s=a.offset().left-e(i).scrollLeft();s<=0&&a.hasClass(r+"active-slide")?i.flexAnimate(i.getTarget("prev"),!0):e(i.vars.asNavFor).data("flexslider").animating||a.hasClass(r+"active-slide")||(i.direction=i.currentItem<n?"next":"prev",i.flexAnimate(n,i.vars.pauseOnAction,!1,!0,!0))})}},controlNav:{setup:function(){i.manualControls?g.controlNav.setupManual():g.controlNav.setupPaging()},setupPaging:function(){var t,a,n="thumbnails"===i.vars.controlNav?"control-thumbs":"control-paging",s=1;if(i.controlNavScaffold=e('<ol class="'+r+"control-nav "+r+n+'"></ol>'),i.pagingCount>1)for(var o=0;o<i.pagingCount;o++){a=i.slides.eq(o),void 0===a.attr("data-thumb-alt")&&a.attr("data-thumb-alt","");var l=""!==a.attr("data-thumb-alt")?l=' alt="'+a.attr("data-thumb-alt")+'"':"";if(t="thumbnails"===i.vars.controlNav?'<img src="'+a.attr("data-thumb")+'"'+l+"/>":'<a href="#">'+s+"</a>","thumbnails"===i.vars.controlNav&&!0===i.vars.thumbCaptions){var u=a.attr("data-thumbcaption");""!==u&&void 0!==u&&(t+='<span class="'+r+'caption">'+u+"</span>")}i.controlNavScaffold.append("<li>"+t+"</li>"),s++}i.controlsContainer?e(i.controlsContainer).append(i.controlNavScaffold):i.append(i.controlNavScaffold),g.controlNav.set(),g.controlNav.active(),i.controlNavScaffold.delegate("a, img",c,function(t){if(t.preventDefault(),""===d||d===t.type){var a=e(this),n=i.controlNav.index(a);a.hasClass(r+"active")||(i.direction=n>i.currentSlide?"next":"prev",i.flexAnimate(n,i.vars.pauseOnAction))}""===d&&(d=t.type),g.setToClearWatchedEvent()})},setupManual:function(){i.controlNav=i.manualControls,g.controlNav.active(),i.controlNav.bind(c,function(t){if(t.preventDefault(),""===d||d===t.type){var a=e(this),n=i.controlNav.index(a);a.hasClass(r+"active")||(n>i.currentSlide?i.direction="next":i.direction="prev",i.flexAnimate(n,i.vars.pauseOnAction))}""===d&&(d=t.type),g.setToClearWatchedEvent()})},set:function(){var t="thumbnails"===i.vars.controlNav?"img":"a";i.controlNav=e("."+r+"control-nav li "+t,i.controlsContainer?i.controlsContainer:i)},active:function(){i.controlNav.removeClass(r+"active").eq(i.animatingTo).addClass(r+"active")},update:function(t,a){i.pagingCount>1&&"add"===t?i.controlNavScaffold.append(e('<li><a href="#">'+i.count+"</a></li>")):1===i.pagingCount?i.controlNavScaffold.find("li").remove():i.controlNav.eq(a).closest("li").remove(),g.controlNav.set(),i.pagingCount>1&&i.pagingCount!==i.controlNav.length?i.update(a,t):g.controlNav.active()}},directionNav:{setup:function(){var t=e('<ul class="'+r+'direction-nav"><li class="'+r+'nav-prev"><a class="'+r+'prev" href="#">'+i.vars.prevText+'</a></li><li class="'+r+'nav-next"><a class="'+r+'next" href="#">'+i.vars.nextText+"</a></li></ul>");i.customDirectionNav?i.directionNav=i.customDirectionNav:i.controlsContainer?(e(i.controlsContainer).append(t),i.directionNav=e("."+r+"direction-nav li a",i.controlsContainer)):(i.append(t),i.directionNav=e("."+r+"direction-nav li a",i)),g.directionNav.update(),i.directionNav.bind(c,function(t){t.preventDefault();var a;""!==d&&d!==t.type||(a=e(this).hasClass(r+"next")?i.getTarget("next"):i.getTarget("prev"),i.flexAnimate(a,i.vars.pauseOnAction)),""===d&&(d=t.type),g.setToClearWatchedEvent()})},update:function(){var e=r+"disabled";1===i.pagingCount?i.directionNav.addClass(e).attr("tabindex","-1"):i.vars.animationLoop?i.directionNav.removeClass(e).removeAttr("tabindex"):0===i.animatingTo?i.directionNav.removeClass(e).filter("."+r+"prev").addClass(e).attr("tabindex","-1"):i.animatingTo===i.last?i.directionNav.removeClass(e).filter("."+r+"next").addClass(e).attr("tabindex","-1"):i.directionNav.removeClass(e).removeAttr("tabindex")}},pausePlay:{setup:function(){var t=e('<div class="'+r+'pauseplay"><a href="#"></a></div>');i.controlsContainer?(i.controlsContainer.append(t),i.pausePlay=e("."+r+"pauseplay a",i.controlsContainer)):(i.append(t),i.pausePlay=e("."+r+"pauseplay a",i)),g.pausePlay.update(i.vars.slideshow?r+"pause":r+"play"),i.pausePlay.bind(c,function(t){t.preventDefault(),""!==d&&d!==t.type||(e(this).hasClass(r+"pause")?(i.manualPause=!0,i.manualPlay=!1,i.pause()):(i.manualPause=!1,i.manualPlay=!0,i.play())),""===d&&(d=t.type),g.setToClearWatchedEvent()})},update:function(e){"play"===e?i.pausePlay.removeClass(r+"pause").addClass(r+"play").html(i.vars.playText):i.pausePlay.removeClass(r+"play").addClass(r+"pause").html(i.vars.pauseText)}},touch:function(){function e(e){e.stopPropagation(),i.animating?e.preventDefault():(i.pause(),a._gesture.addPointer(e.pointerId),w=0,c=u?i.h:i.w,f=Number(new Date),l=p&&v&&i.animatingTo===i.last?0:p&&v?i.limit-(i.itemW+i.vars.itemMargin)*i.move*i.animatingTo:p&&i.currentSlide===i.last?i.limit:p?(i.itemW+i.vars.itemMargin)*i.move*i.currentSlide:v?(i.last-i.currentSlide+i.cloneOffset)*c:(i.currentSlide+i.cloneOffset)*c)}function t(e){e.stopPropagation();var t=e.target._slider;if(t){var n=-e.translationX,i=-e.translationY;return w+=u?i:n,d=w,y=u?Math.abs(w)<Math.abs(-n):Math.abs(w)<Math.abs(-i),e.detail===e.MSGESTURE_FLAG_INERTIA?void setImmediate(function(){a._gesture.stop()}):void((!y||Number(new Date)-f>500)&&(e.preventDefault(),!m&&t.transitions&&(t.vars.animationLoop||(d=w/(0===t.currentSlide&&w<0||t.currentSlide===t.last&&w>0?Math.abs(w)/c+2:1)),t.setProps(l+d,"setTouch"))))}}function n(e){e.stopPropagation();var t=e.target._slider;if(t){if(t.animatingTo===t.currentSlide&&!y&&null!==d){var a=v?-d:d,n=a>0?t.getTarget("next"):t.getTarget("prev");t.canAdvance(n)&&(Number(new Date)-f<550&&Math.abs(a)>50||Math.abs(a)>c/2)?t.flexAnimate(n,t.vars.pauseOnAction):m||t.flexAnimate(t.currentSlide,t.vars.pauseOnAction,!0)}d&&y?t.vars.slideshow&&t.play():d?!t.vars.pauseOnAction&&t.play()||(t.vars.slideshow=!1):t.vars.slideshow&&!t.vars.pauseOnAction&&t.play()||(t.vars.slideshow=!1),s=null,r=null,d=null,l=null,w=0}}var s,r,l,c,d,f,g,h,S,y=!1,x=0,b=0,w=0;o?(a.style.msTouchAction="none",a._gesture=new MSGesture,a._gesture.target=a,a.addEventListener("MSPointerDown",e,!1),a._slider=i,a.addEventListener("MSGestureChange",t,!1),a.addEventListener("MSGestureEnd",n,!1)):(g=function(e){i.animating?e.preventDefault():(window.navigator.msPointerEnabled||1===e.touches.length)&&(i.pause(),c=u?i.h:i.w,f=Number(new Date),x=e.touches[0].pageX,b=e.touches[0].pageY,l=p&&v&&i.animatingTo===i.last?0:p&&v?i.limit-(i.itemW+i.vars.itemMargin)*i.move*i.animatingTo:p&&i.currentSlide===i.last?i.limit:p?(i.itemW+i.vars.itemMargin)*i.move*i.currentSlide:v?(i.last-i.currentSlide+i.cloneOffset)*c:(i.currentSlide+i.cloneOffset)*c,s=u?b:x,r=u?x:b,a.addEventListener("touchmove",h,!1),a.addEventListener("touchend",S,!1))},h=function(e){x=e.touches[0].pageX,b=e.touches[0].pageY,d=u?s-b:s-x,y=u?Math.abs(d)<Math.abs(x-r):Math.abs(d)<Math.abs(b-r);var t=500;(!y||Number(new Date)-f>t)&&(e.preventDefault(),!m&&i.transitions&&(i.vars.animationLoop||(d/=0===i.currentSlide&&d<0||i.currentSlide===i.last&&d>0?Math.abs(d)/c+2:1),i.setProps(l+d,"setTouch")))},S=function(e){if(a.removeEventListener("touchmove",h,!1),i.animatingTo===i.currentSlide&&!y&&null!==d){var t=v?-d:d,n=t>0?i.getTarget("next"):i.getTarget("prev");i.canAdvance(n)&&(Number(new Date)-f<550&&Math.abs(t)>50||Math.abs(t)>c/2)?i.flexAnimate(n,i.vars.pauseOnAction):m||i.flexAnimate(i.currentSlide,i.vars.pauseOnAction,!0)}a.removeEventListener("touchend",S,!1),d&&y?i.vars.slideshow&&i.play():d?!i.vars.pauseOnAction&&i.play()||(i.vars.slideshow=!1):i.vars.slideshow&&!i.vars.pauseOnAction&&i.play()||(i.vars.slideshow=!1),s=null,r=null,d=null,l=null},a.addEventListener("touchstart",g,!1))},resize:function(){!i.animating&&i.is(":visible")&&(p||i.doMath(),m?g.smoothHeight():p?(i.slides.width(i.computedW),i.update(i.pagingCount),i.setProps()):u?(i.viewport.height(i.h),i.setProps(i.h,"setTotal")):(i.vars.smoothHeight&&g.smoothHeight(),i.newSlides.width(i.computedW),i.setProps(i.computedW,"setTotal")))},smoothHeight:function(e){if(!u||m){var t=m?i:i.viewport;e?t.animate({height:i.slides.eq(i.animatingTo).innerHeight()},e):t.innerHeight(i.slides.eq(i.animatingTo).innerHeight())}},sync:function(t){var a=e(i.vars.sync).data("flexslider"),n=i.animatingTo;switch(t){case"animate":a.flexAnimate(n,i.vars.pauseOnAction,!1,!0);break;case"play":a.playing||a.asNav||a.play();break;case"pause":a.pause()}},uniqueID:function(t){return t.filter("[id]").add(t.find("[id]")).each(function(){var t=e(this);t.attr("id",t.attr("id")+"_clone")}),t},pauseInvisible:{visProp:null,init:function(){var e=g.pauseInvisible.getHiddenProp();if(e){var t=e.replace(/[H|h]idden/,"")+"visibilitychange";document.addEventListener(t,function(){g.pauseInvisible.isHidden()?i.startTimeout?clearTimeout(i.startTimeout):i.pause():i.started?i.play():i.vars.initDelay>0?setTimeout(i.play,i.vars.initDelay):i.play()})}},isHidden:function(){var e=g.pauseInvisible.getHiddenProp();return!!e&&document[e]},getHiddenProp:function(){var e=["webkit","moz","ms","o"];if("hidden"in document)return"hidden";for(var t=0;t<e.length;t++)if(e[t]+"Hidden"in document)return e[t]+"Hidden";return null}},setToClearWatchedEvent:function(){clearTimeout(s),s=setTimeout(function(){d=""},3e3)}},i.flexAnimate=function(t,a,n,s,o){if(i.vars.animationLoop||t===i.currentSlide||(i.direction=t>i.currentSlide?"next":"prev"),f&&1===i.pagingCount&&(i.direction=i.currentItem<t?"next":"prev"),!i.animating&&(i.canAdvance(t,o)||n)&&i.is(":visible")){if(f&&s){var c=e(i.vars.asNavFor).data("flexslider");if(i.atEnd=0===t||t===i.count-1,c.flexAnimate(t,!0,!1,!0,o),i.direction=i.currentItem<t?"next":"prev",c.direction=i.direction,Math.ceil((t+1)/i.visible)-1===i.currentSlide||0===t)return i.currentItem=t,i.slides.removeClass(r+"active-slide").eq(t).addClass(r+"active-slide"),!1;i.currentItem=t,i.slides.removeClass(r+"active-slide").eq(t).addClass(r+"active-slide"),t=Math.floor(t/i.visible)}if(i.animating=!0,i.animatingTo=t,a&&i.pause(),i.vars.before(i),i.syncExists&&!o&&g.sync("animate"),i.vars.controlNav&&g.controlNav.active(),p||i.slides.removeClass(r+"active-slide").eq(t).addClass(r+"active-slide"),i.atEnd=0===t||t===i.last,i.vars.directionNav&&g.directionNav.update(),t===i.last&&(i.vars.end(i),i.vars.animationLoop||i.pause()),m)l?(i.slides.eq(i.currentSlide).css({opacity:0,zIndex:1}),i.slides.eq(t).css({opacity:1,zIndex:2}),i.wrapup(y)):(i.slides.eq(i.currentSlide).css({zIndex:1}).animate({opacity:0},i.vars.animationSpeed,i.vars.easing),i.slides.eq(t).css({zIndex:2}).animate({opacity:1},i.vars.animationSpeed,i.vars.easing,i.wrapup));else{var d,h,S,y=u?i.slides.filter(":first").height():i.computedW;p?(d=i.vars.itemMargin,S=(i.itemW+d)*i.move*i.animatingTo,h=S>i.limit&&1!==i.visible?i.limit:S):h=0===i.currentSlide&&t===i.count-1&&i.vars.animationLoop&&"next"!==i.direction?v?(i.count+i.cloneOffset)*y:0:i.currentSlide===i.last&&0===t&&i.vars.animationLoop&&"prev"!==i.direction?v?0:(i.count+1)*y:v?(i.count-1-t+i.cloneOffset)*y:(t+i.cloneOffset)*y,i.setProps(h,"",i.vars.animationSpeed),i.transitions?(i.vars.animationLoop&&i.atEnd||(i.animating=!1,i.currentSlide=i.animatingTo),i.container.unbind("webkitTransitionEnd transitionend"),i.container.bind("webkitTransitionEnd transitionend",function(){clearTimeout(i.ensureAnimationEnd),i.wrapup(y)}),clearTimeout(i.ensureAnimationEnd),i.ensureAnimationEnd=setTimeout(function(){i.wrapup(y)},i.vars.animationSpeed+100)):i.container.animate(i.args,i.vars.animationSpeed,i.vars.easing,function(){i.wrapup(y)})}i.vars.smoothHeight&&g.smoothHeight(i.vars.animationSpeed)}},i.wrapup=function(e){m||p||(0===i.currentSlide&&i.animatingTo===i.last&&i.vars.animationLoop?i.setProps(e,"jumpEnd"):i.currentSlide===i.last&&0===i.animatingTo&&i.vars.animationLoop&&i.setProps(e,"jumpStart")),i.animating=!1,i.currentSlide=i.animatingTo,i.vars.after(i)},i.animateSlides=function(){!i.animating&&t&&i.flexAnimate(i.getTarget("next"))},i.pause=function(){clearInterval(i.animatedSlides),i.animatedSlides=null,i.playing=!1,i.vars.pausePlay&&g.pausePlay.update("play"),i.syncExists&&g.sync("pause")},i.play=function(){i.playing&&clearInterval(i.animatedSlides),i.animatedSlides=i.animatedSlides||setInterval(i.animateSlides,i.vars.slideshowSpeed),i.started=i.playing=!0,i.vars.pausePlay&&g.pausePlay.update("pause"),i.syncExists&&g.sync("play")},i.stop=function(){i.pause(),i.stopped=!0},i.canAdvance=function(e,t){var a=f?i.pagingCount-1:i.last;return!!t||(!(!f||i.currentItem!==i.count-1||0!==e||"prev"!==i.direction)||(!f||0!==i.currentItem||e!==i.pagingCount-1||"next"===i.direction)&&(!(e===i.currentSlide&&!f)&&(!!i.vars.animationLoop||(!i.atEnd||0!==i.currentSlide||e!==a||"next"===i.direction)&&(!i.atEnd||i.currentSlide!==a||0!==e||"next"!==i.direction))))},i.getTarget=function(e){return i.direction=e,"next"===e?i.currentSlide===i.last?0:i.currentSlide+1:0===i.currentSlide?i.last:i.currentSlide-1},i.setProps=function(e,t,a){var n=function(){var a=e?e:(i.itemW+i.vars.itemMargin)*i.move*i.animatingTo,n=function(){if(p)return"setTouch"===t?e:v&&i.animatingTo===i.last?0:v?i.limit-(i.itemW+i.vars.itemMargin)*i.move*i.animatingTo:i.animatingTo===i.last?i.limit:a;switch(t){case"setTotal":return v?(i.count-1-i.currentSlide+i.cloneOffset)*e:(i.currentSlide+i.cloneOffset)*e;case"setTouch":return v?e:e;case"jumpEnd":return v?e:i.count*e;case"jumpStart":return v?i.count*e:e;default:return e}}();return n*-1+"px"}();i.transitions&&(n=u?"translate3d(0,"+n+",0)":"translate3d("+n+",0,0)",a=void 0!==a?a/1e3+"s":"0s",i.container.css("-"+i.pfx+"-transition-duration",a),i.container.css("transition-duration",a)),i.args[i.prop]=n,(i.transitions||void 0===a)&&i.container.css(i.args),i.container.css("transform",n)},i.setup=function(t){if(m)i.slides.css({width:"100%","float":"left",marginRight:"-100%",position:"relative"}),"init"===t&&(l?i.slides.css({opacity:0,display:"block",webkitTransition:"opacity "+i.vars.animationSpeed/1e3+"s ease",zIndex:1}).eq(i.currentSlide).css({opacity:1,zIndex:2}):0==i.vars.fadeFirstSlide?i.slides.css({opacity:0,display:"block",zIndex:1}).eq(i.currentSlide).css({zIndex:2}).css({opacity:1}):i.slides.css({opacity:0,display:"block",zIndex:1}).eq(i.currentSlide).css({zIndex:2}).animate({opacity:1},i.vars.animationSpeed,i.vars.easing)),i.vars.smoothHeight&&g.smoothHeight();else{var a,n;"init"===t&&(i.viewport=e('<div class="'+r+'viewport"></div>').css({overflow:"hidden",position:"relative"}).appendTo(i).append(i.container),i.cloneCount=0,i.cloneOffset=0,v&&(n=e.makeArray(i.slides).reverse(),i.slides=e(n),i.container.empty().append(i.slides))),i.vars.animationLoop&&!p&&(i.cloneCount=2,i.cloneOffset=1,"init"!==t&&i.container.find(".clone").remove(),i.container.append(g.uniqueID(i.slides.first().clone().addClass("clone")).attr("aria-hidden","true")).prepend(g.uniqueID(i.slides.last().clone().addClass("clone")).attr("aria-hidden","true"))),i.newSlides=e(i.vars.selector,i),a=v?i.count-1-i.currentSlide+i.cloneOffset:i.currentSlide+i.cloneOffset,u&&!p?(i.container.height(200*(i.count+i.cloneCount)+"%").css("position","absolute").width("100%"),setTimeout(function(){i.newSlides.css({display:"block"}),i.doMath(),i.viewport.height(i.h),i.setProps(a*i.h,"init")},"init"===t?100:0)):(i.container.width(200*(i.count+i.cloneCount)+"%"),i.setProps(a*i.computedW,"init"),setTimeout(function(){i.doMath(),i.newSlides.css({width:i.computedW,marginRight:i.computedM,"float":"left",display:"block"}),i.vars.smoothHeight&&g.smoothHeight()},"init"===t?100:0))}p||i.slides.removeClass(r+"active-slide").eq(i.currentSlide).addClass(r+"active-slide"),i.vars.init(i)},i.doMath=function(){var e=i.slides.first(),t=i.vars.itemMargin,a=i.vars.minItems,n=i.vars.maxItems;i.w=void 0===i.viewport?i.width():i.viewport.width(),i.h=e.height(),i.boxPadding=e.outerWidth()-e.width(),p?(i.itemT=i.vars.itemWidth+t,i.itemM=t,i.minW=a?a*i.itemT:i.w,i.maxW=n?n*i.itemT-t:i.w,i.itemW=i.minW>i.w?(i.w-t*(a-1))/a:i.maxW<i.w?(i.w-t*(n-1))/n:i.vars.itemWidth>i.w?i.w:i.vars.itemWidth,i.visible=Math.floor(i.w/i.itemW),i.move=i.vars.move>0&&i.vars.move<i.visible?i.vars.move:i.visible,i.pagingCount=Math.ceil((i.count-i.visible)/i.move+1),i.last=i.pagingCount-1,i.limit=1===i.pagingCount?0:i.vars.itemWidth>i.w?i.itemW*(i.count-1)+t*(i.count-1):(i.itemW+t)*i.count-i.w-t):(i.itemW=i.w,i.itemM=t,i.pagingCount=i.count,i.last=i.count-1),i.computedW=i.itemW-i.boxPadding,i.computedM=i.itemM},i.update=function(e,t){i.doMath(),p||(e<i.currentSlide?i.currentSlide+=1:e<=i.currentSlide&&0!==e&&(i.currentSlide-=1),i.animatingTo=i.currentSlide),i.vars.controlNav&&!i.manualControls&&("add"===t&&!p||i.pagingCount>i.controlNav.length?g.controlNav.update("add"):("remove"===t&&!p||i.pagingCount<i.controlNav.length)&&(p&&i.currentSlide>i.last&&(i.currentSlide-=1,i.animatingTo-=1),g.controlNav.update("remove",i.last))),i.vars.directionNav&&g.directionNav.update()},i.addSlide=function(t,a){var n=e(t);i.count+=1,i.last=i.count-1,u&&v?void 0!==a?i.slides.eq(i.count-a).after(n):i.container.prepend(n):void 0!==a?i.slides.eq(a).before(n):i.container.append(n),i.update(a,"add"),i.slides=e(i.vars.selector+":not(.clone)",i),i.setup(),i.vars.added(i)},i.removeSlide=function(t){var a=isNaN(t)?i.slides.index(e(t)):t;i.count-=1,i.last=i.count-1,isNaN(t)?e(t,i.slides).remove():u&&v?i.slides.eq(i.last).remove():i.slides.eq(t).remove(),i.doMath(),i.update(a,"remove"),i.slides=e(i.vars.selector+":not(.clone)",i),i.setup(),i.vars.removed(i)},g.init()},e(window).blur(function(e){t=!1}).focus(function(e){t=!0}),e.flexslider.defaults={namespace:"flex-",selector:".slides > li",animation:"fade",easing:"swing",direction:"horizontal",reverse:!1,animationLoop:!0,smoothHeight:!1,startAt:0,slideshow:!0,slideshowSpeed:7e3,animationSpeed:600,initDelay:0,randomize:!1,fadeFirstSlide:!0,thumbCaptions:!1,pauseOnAction:!0,pauseOnHover:!1,pauseInvisible:!0,useCSS:!0,touch:!0,video:!1,controlNav:!0,directionNav:!0,prevText:"Previous",nextText:"Next",keyboard:!0,multipleKeyboard:!1,mousewheel:!1,pausePlay:!1,pauseText:"Pause",playText:"Play",controlsContainer:"",manualControls:"",customDirectionNav:"",sync:"",asNavFor:"",itemWidth:0,itemMargin:0,minItems:1,maxItems:0,move:0,allowOneSlide:!0,start:function(){},before:function(){},after:function(){},end:function(){},added:function(){},removed:function(){},init:function(){}},e.fn.flexslider=function(t){if(void 0===t&&(t={}),"object"==typeof t)return this.each(function(){var a=e(this),n=t.selector?t.selector:".slides > li",i=a.find(n);1===i.length&&t.allowOneSlide===!1||0===i.length?(i.fadeIn(400),t.start&&t.start(a)):void 0===a.data("flexslider")&&new e.flexslider(this,t)});var a=e(this).data("flexslider");switch(t){case"play":a.play();break;case"pause":a.pause();break;case"stop":a.stop();break;case"next":a.flexAnimate(a.getTarget("next"),!0);break;case"prev":case"previous":a.flexAnimate(a.getTarget("prev"),!0);break;default:"number"==typeof t&&a.flexAnimate(t,!0)}}}(jQuery);
languages/ml-slider.pot CHANGED
@@ -17,207 +17,207 @@ msgstr ""
17
"X-Poedit-SearchPathExcluded-0: *.js\n"
18
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
19
20
- #: src/admin/Notices.php:63
21
msgid "Always backup WordPress to avoid losing your site!"
22
msgstr ""
23
24
- #: src/admin/Notices.php:64
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:74
29
msgid "Keyy: Instant and secure logon with a wave of your phone"
30
msgstr ""
31
32
- #: src/admin/Notices.php:75
33
msgid "No more forgotten passwords. Find out more about our revolutionary new WordPress plugin"
34
msgstr ""
35
36
- #: src/admin/Notices.php:85
37
msgid "Save Time and Money. Manage multiple WordPress sites from one location."
38
msgstr ""
39
40
- #: src/admin/Notices.php:86
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:96
45
msgid "Like MetaSlider and have a minute to spare?"
46
msgstr ""
47
48
- #: src/admin/Notices.php:97
49
msgid "Please help MetaSlider by giving a positive review at wordpress.org."
50
msgstr ""
51
52
- #: src/admin/Notices.php:106
53
msgid "Help us to get even better MetaSlider"
54
msgstr ""
55
56
- #: src/admin/Notices.php:107
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:116
61
msgid "Spice up your site with animated layers and video slides"
62
msgstr ""
63
64
- #: src/admin/Notices.php:117
65
msgid "With the MetaSlider Add-on pack you can give your slideshows a professional look!"
66
msgstr ""
67
68
- #: src/admin/Notices.php:126
69
msgid "Increase your revenue and conversion with video slides and many more features"
70
msgstr ""
71
72
- #: src/admin/Notices.php:127
73
msgid "Upgrade today to benefit from many more premium features. Find out more."
74
msgstr ""
75
76
- #: src/admin/Notices.php:136
77
msgid "Can you translate? Want to improve MetaSlider for speakers of your language?"
78
msgstr ""
79
80
- #: src/admin/Notices.php:137
81
msgid "Please go here for instructions - it is easy."
82
msgstr ""
83
84
- #: src/admin/Notices.php:147
85
msgid "Thank you for installing MetaSlider"
86
msgstr ""
87
88
- #: src/admin/Notices.php:148
89
msgid "Supercharge & secure your WordPress site with our other top plugins:"
90
msgstr ""
91
92
- #: src/admin/Notices.php:165
93
msgid "We’re making changes and need your help."
94
msgstr ""
95
96
- #: src/admin/Notices.php:166
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:171
101
msgid "forever"
102
msgstr ""
103
104
- #: src/admin/Notices.php:186
105
msgid "Black Friday - 50% off the MetaSlider Add-on Pack until November 30th"
106
msgstr ""
107
108
- #: src/admin/Notices.php:187, src/admin/Notices.php:200, src/admin/Notices.php:213, src/admin/Notices.php:226, src/admin/Notices.php:239
109
msgid "To benefit, use this discount code:"
110
msgstr ""
111
112
- #: src/admin/Notices.php:195, src/admin/Notices.php:208, src/admin/Notices.php:221, src/admin/Notices.php:234, src/admin/Notices.php:247
113
msgid "until next year"
114
msgstr ""
115
116
- #: src/admin/Notices.php:199
117
msgid "Christmas sale - 50% off the MetaSlider Add-on Pack until December 25th"
118
msgstr ""
119
120
- #: src/admin/Notices.php:212
121
msgid "Happy New Year - 50% off the MetaSlider Add-on Pack until January 1st"
122
msgstr ""
123
124
- #: src/admin/Notices.php:225
125
msgid "Spring sale - 50% off the MetaSlider Add-on Pack until April 31st"
126
msgstr ""
127
128
- #: src/admin/Notices.php:238
129
msgid "Summer sale - 50% off the MetaSlider Add-on Pack until July 31st"
130
msgstr ""
131
132
- #: src/admin/Notices.php:261
133
msgid "Increase your conversion rate with video slides and many more options."
134
msgstr ""
135
136
- #: src/admin/Notices.php:268
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:275
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:282
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:289
149
msgid "auto-clean your WordPress database so that it runs at maximum efficiency."
150
msgstr ""
151
152
- #: src/admin/Notices.php:296
153
msgid "Simple & secure login with a wave of your phone."
154
msgstr ""
155
156
- #: src/admin/Notices.php:303
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:508
161
msgid "weeks"
162
msgstr ""
163
164
- #: src/admin/Notices.php:523
165
msgid "Get UpdraftPlus"
166
msgstr ""
167
168
- #: src/admin/Notices.php:524
169
msgid "Get Keyy"
170
msgstr ""
171
172
- #: src/admin/Notices.php:525
173
msgid "Optimize today"
174
msgstr ""
175
176
- #: src/admin/Notices.php:526
177
msgid "Get UpdraftCentral"
178
msgstr ""
179
180
- #: src/admin/Notices.php:527
181
msgid "Let's Start"
182
msgstr ""
183
184
- #: src/admin/Notices.php:528
185
msgid "Review MetaSlider"
186
msgstr ""
187
188
- #: src/admin/Notices.php:529
189
msgid "Find out more"
190
msgstr ""
191
192
- #: src/admin/Notices.php:530
193
msgid "Sign up"
194
msgstr ""
195
196
- #: src/admin/Notices.php:531
197
msgid "Go there"
198
msgstr ""
199
200
- #: src/admin/Notices.php:533
201
msgid "Read more"
202
msgstr ""
203
204
- #: src/admin/Notices.php:546, src/admin/Tour.php:119, src/inc/slide/metaslide.class.php:113, src/inc/slide/metaslide.image.class.php:107, src/ml-slider.php:1229, src/ml-slider.php:1321
205
msgid "The security check failed. Please refresh the page and try again."
206
msgstr ""
207
208
- #: src/admin/Notices.php:552
209
msgid "This item does not exist. Please refresh the page and try again."
210
msgstr ""
211
212
- #: src/admin/Notices.php:565
213
msgid "The option was successfully updated"
214
msgstr ""
215
216
- #: src/admin/Notices.php:618
217
msgid "The requested data does not exist."
218
msgstr ""
219
220
- #: src/admin/Notices.php:636
221
msgid "The attempt to update the option failed."
222
msgstr ""
223
@@ -269,7 +269,7 @@ msgstr ""
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:2019
273
msgid "Learn More"
274
msgstr ""
275
@@ -305,7 +305,7 @@ msgstr ""
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:2675
309
msgid "Preview Slideshow"
310
msgstr ""
311
@@ -361,7 +361,7 @@ msgstr ""
361
msgid "free"
362
msgstr ""
363
364
- #: src/admin/views/pages/upgrade.php:20, src/ml-slider.php:619, src/ml-slider.php:3801
365
msgid "Add-ons"
366
msgstr ""
367
@@ -565,7 +565,7 @@ msgstr ""
565
msgid "Select Slider:"
566
msgstr ""
567
568
- #: src/inc/metaslider.widget.class.php:122, src/ml-slider.php:3693
569
msgid "No slideshows found"
570
msgstr ""
571
@@ -677,534 +677,534 @@ msgstr ""
677
msgid "Previous"
678
msgstr ""
679
680
- #: src/ml-slider.php:865
681
msgid "Image"
682
msgstr ""
683
684
- #: src/ml-slider.php:867
685
msgid "Add to slideshow"
686
msgstr ""
687
688
- #: src/ml-slider.php:1255
689
msgid "The slide was successfully restored"
690
msgstr ""
691
692
- #: src/ml-slider.php:1285
693
msgid "The attempt to restore the slide failed."
694
msgstr ""
695
696
- #: src/ml-slider.php:1347
697
msgid "The slide was successfully trashed"
698
msgstr ""
699
700
- #: src/ml-slider.php:1701, src/ml-slider.php:2365
701
msgid "New Slideshow"
702
msgstr ""
703
704
- #: src/ml-slider.php:2019
705
msgid "Get the add-on pack today!"
706
msgstr ""
707
708
- #: src/ml-slider.php:2325
709
msgid "Select Slideshow"
710
msgstr ""
711
712
- #: src/ml-slider.php:2349
713
msgid "or"
714
msgstr ""
715
716
- #: src/ml-slider.php:2351
717
msgid "Create a New Slideshow"
718
msgstr ""
719
720
- #: src/ml-slider.php:2389, src/ml-slider.php:2393
721
msgid "Add a New Slideshow"
722
msgstr ""
723
724
- #: src/ml-slider.php:2579
725
msgid "Trashed Slides"
726
msgstr ""
727
728
- #: src/ml-slider.php:2581
729
msgid "<a href=\"%s\">view active</a>"
730
msgstr ""
731
732
- #: src/ml-slider.php:2599
733
msgid "Add a New Slide"
734
msgstr ""
735
736
- #: src/ml-slider.php:2603
737
msgid "Add Slide"
738
msgstr ""
739
740
- #: src/ml-slider.php:2657
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:2679
745
msgid "Preview"
746
msgstr ""
747
748
- #: src/ml-slider.php:2685
749
msgid "Save"
750
msgstr ""
751
752
- #: src/ml-slider.php:2741, src/ml-slider.php:3257
753
msgid "Width"
754
msgstr ""
755
756
- #: src/ml-slider.php:2745
757
msgid "Slideshow width"
758
msgstr ""
759
760
- #: src/ml-slider.php:2747, src/ml-slider.php:2773, src/ml-slider.php:3111
761
msgid "px"
762
msgstr ""
763
764
- #: src/ml-slider.php:2767, src/ml-slider.php:3283
765
msgid "Height"
766
msgstr ""
767
768
- #: src/ml-slider.php:2771
769
msgid "Slideshow height"
770
msgstr ""
771
772
- #: src/ml-slider.php:2785
773
msgid "Effect"
774
msgstr ""
775
776
- #: src/ml-slider.php:2789
777
msgid "Slide transition effect"
778
msgstr ""
779
780
- #: src/ml-slider.php:2793, src/ml-slider.php:3121
781
msgid "Random"
782
msgstr ""
783
784
- #: src/ml-slider.php:2795
785
msgid "Swirl"
786
msgstr ""
787
788
- #: src/ml-slider.php:2797
789
msgid "Rain"
790
msgstr ""
791
792
- #: src/ml-slider.php:2799
793
msgid "Straight"
794
msgstr ""
795
796
- #: src/ml-slider.php:2801
797
msgid "Slide Down"
798
msgstr ""
799
800
- #: src/ml-slider.php:2803
801
msgid "Slice Up"
802
msgstr ""
803
804
- #: src/ml-slider.php:2805
805
msgid "Slide Up Left"
806
msgstr ""
807
808
- #: src/ml-slider.php:2807
809
msgid "Slice Up Down"
810
msgstr ""
811
812
- #: src/ml-slider.php:2809
813
msgid "Slide Up Down Left"
814
msgstr ""
815
816
- #: src/ml-slider.php:2811
817
msgid "Fold"
818
msgstr ""
819
820
- #: src/ml-slider.php:2813
821
msgid "Fade"
822
msgstr ""
823
824
- #: src/ml-slider.php:2815
825
msgid "Slide In Right"
826
msgstr ""
827
828
- #: src/ml-slider.php:2817
829
msgid "Slide In Left"
830
msgstr ""
831
832
- #: src/ml-slider.php:2819
833
msgid "Box Random"
834
msgstr ""
835
836
- #: src/ml-slider.php:2821
837
msgid "Box Rain"
838
msgstr ""
839
840
- #: src/ml-slider.php:2823
841
msgid "Box Rain Reverse"
842
msgstr ""
843
844
- #: src/ml-slider.php:2825
845
msgid "Box Rain Grow Reverse"
846
msgstr ""
847
848
- #: src/ml-slider.php:2827
849
msgid "Slide"
850
msgstr ""
851
852
- #: src/ml-slider.php:2841
853
msgid "Theme"
854
msgstr ""
855
856
- #: src/ml-slider.php:2845
857
msgid "Slideshow theme"
858
msgstr ""
859
860
- #: src/ml-slider.php:2849
861
msgid "Default"
862
msgstr ""
863
864
- #: src/ml-slider.php:2851
865
msgid "Dark (Nivo)"
866
msgstr ""
867
868
- #: src/ml-slider.php:2853
869
msgid "Light (Nivo)"
870
msgstr ""
871
872
- #: src/ml-slider.php:2855
873
msgid "Bar (Nivo)"
874
msgstr ""
875
876
- #: src/ml-slider.php:2867
877
msgid "Arrows"
878
msgstr ""
879
880
- #: src/ml-slider.php:2873
881
msgid "Show the previous/next arrows"
882
msgstr ""
883
884
- #: src/ml-slider.php:2883
885
msgid "Navigation"
886
msgstr ""
887
888
- #: src/ml-slider.php:2889
889
msgid "Show the slide navigation bullets"
890
msgstr ""
891
892
- #: src/ml-slider.php:2893
893
msgid "Hidden"
894
msgstr ""
895
896
- #: src/ml-slider.php:2895
897
msgid "Dots"
898
msgstr ""
899
900
- #: src/ml-slider.php:2899
901
msgid "Thumbnail"
902
msgstr ""
903
904
- #: src/ml-slider.php:2907
905
msgid "Filmstrip"
906
msgstr ""
907
908
- #: src/ml-slider.php:2933
909
msgid "Title"
910
msgstr ""
911
912
- #: src/ml-slider.php:2935
913
msgid "Slideshow title"
914
msgstr ""
915
916
- #: src/ml-slider.php:2969
917
msgid "View trashed slides"
918
msgstr ""
919
920
- #: src/ml-slider.php:2971
921
msgid "Trash"
922
msgstr ""
923
924
- #: src/ml-slider.php:2985
925
msgid "Advanced Settings"
926
msgstr ""
927
928
- #: src/ml-slider.php:3003
929
msgid "Stretch"
930
msgstr ""
931
932
- #: src/ml-slider.php:3007
933
msgid "100% wide output"
934
msgstr ""
935
936
- #: src/ml-slider.php:3011
937
msgid "Stretch the slideshow output to fill it's parent container"
938
msgstr ""
939
940
- #: src/ml-slider.php:3021
941
msgid "Center align"
942
msgstr ""
943
944
- #: src/ml-slider.php:3027
945
msgid "Center align the slideshow"
946
msgstr ""
947
948
- #: src/ml-slider.php:3037
949
msgid "Auto play"
950
msgstr ""
951
952
- #: src/ml-slider.php:3043
953
msgid "Transition between slides automatically"
954
msgstr ""
955
956
- #: src/ml-slider.php:3053
957
msgid "Image Crop"
958
msgstr ""
959
960
- #: src/ml-slider.php:3061
961
msgid "Smart Crop"
962
msgstr ""
963
964
- #: src/ml-slider.php:3063
965
msgid "Standard"
966
msgstr ""
967
968
- #: src/ml-slider.php:3065
969
msgid "Disabled"
970
msgstr ""
971
972
- #: src/ml-slider.php:3067
973
msgid "Disabled (Smart Pad)"
974
msgstr ""
975
976
- #: src/ml-slider.php:3071
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:3081
981
msgid "Carousel mode"
982
msgstr ""
983
984
- #: src/ml-slider.php:3087
985
msgid "Display multiple slides at once. Slideshow output will be 100% wide."
986
msgstr ""
987
988
- #: src/ml-slider.php:3103
989
msgid "Carousel margin"
990
msgstr ""
991
992
- #: src/ml-slider.php:3109
993
msgid "Pixel margin between slides in carousel."
994
msgstr ""
995
996
- #: src/ml-slider.php:3127
997
msgid "Randomise the order of the slides"
998
msgstr ""
999
1000
- #: src/ml-slider.php:3137
1001
msgid "Hover pause"
1002
msgstr ""
1003
1004
- #: src/ml-slider.php:3143
1005
msgid "Pause the slideshow when hovering over slider, then resume when no longer hovering."
1006
msgstr ""
1007
1008
- #: src/ml-slider.php:3153
1009
msgid "Reverse"
1010
msgstr ""
1011
1012
- #: src/ml-slider.php:3159
1013
msgid "Reverse the animation direction"
1014
msgstr ""
1015
1016
- #: src/ml-slider.php:3179
1017
msgid "Slide delay"
1018
msgstr ""
1019
1020
- #: src/ml-slider.php:3183
1021
msgid "How long to display each slide, in milliseconds"
1022
msgstr ""
1023
1024
- #: src/ml-slider.php:3185, src/ml-slider.php:3211, src/ml-slider.php:3237, src/ml-slider.php:3389, src/ml-slider.php:3441
1025
msgid "ms"
1026
msgstr ""
1027
1028
- #: src/ml-slider.php:3205
1029
msgid "Animation speed"
1030
msgstr ""
1031
1032
- #: src/ml-slider.php:3209
1033
msgid "Set the speed of animations, in milliseconds"
1034
msgstr ""
1035
1036
- #: src/ml-slider.php:3231, src/ml-slider.php:3235
1037
msgid "Number of slices"
1038
msgstr ""
1039
1040
- #: src/ml-slider.php:3257, src/ml-slider.php:3261, src/ml-slider.php:3283, src/ml-slider.php:3287
1041
msgid "Number of squares"
1042
msgstr ""
1043
1044
- #: src/ml-slider.php:3299
1045
msgid "Slide direction"
1046
msgstr ""
1047
1048
- #: src/ml-slider.php:3303
1049
msgid "Select the sliding direction"
1050
msgstr ""
1051
1052
- #: src/ml-slider.php:3309
1053
msgid "Horizontal"
1054
msgstr ""
1055
1056
- #: src/ml-slider.php:3311
1057
msgid "Vertical"
1058
msgstr ""
1059
1060
- #: src/ml-slider.php:3323
1061
msgid "Easing"
1062
msgstr ""
1063
1064
- #: src/ml-slider.php:3327
1065
msgid "Animation easing effect"
1066
msgstr ""
1067
1068
- #: src/ml-slider.php:3341
1069
msgid "Previous text"
1070
msgstr ""
1071
1072
- #: src/ml-slider.php:3345
1073
msgid "Set the text for the 'previous' direction item"
1074
msgstr ""
1075
1076
- #: src/ml-slider.php:3357
1077
msgid "Next text"
1078
msgstr ""
1079
1080
- #: src/ml-slider.php:3361
1081
msgid "Set the text for the 'next' direction item"
1082
msgstr ""
1083
1084
- #: src/ml-slider.php:3383
1085
msgid "Square delay"
1086
msgstr ""
1087
1088
- #: src/ml-slider.php:3387
1089
msgid "Delay between squares in ms"
1090
msgstr ""
1091
1092
- #: src/ml-slider.php:3409
1093
msgid "Opacity"
1094
msgstr ""
1095
1096
- #: src/ml-slider.php:3413
1097
msgid "Opacity of title and navigation"
1098
msgstr ""
1099
1100
- #: src/ml-slider.php:3435
1101
msgid "Caption speed"
1102
msgstr ""
1103
1104
- #: src/ml-slider.php:3439
1105
msgid "Set the fade in speed of the caption"
1106
msgstr ""
1107
1108
- #: src/ml-slider.php:3453
1109
msgid "Developer options"
1110
msgstr ""
1111
1112
- #: src/ml-slider.php:3463
1113
msgid "CSS classes"
1114
msgstr ""
1115
1116
- #: src/ml-slider.php:3467
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:3479
1121
msgid "Print CSS"
1122
msgstr ""
1123
1124
- #: src/ml-slider.php:3485
1125
msgid "Uncheck this is you would like to include your own CSS"
1126
msgstr ""
1127
1128
- #: src/ml-slider.php:3495
1129
msgid "Print JS"
1130
msgstr ""
1131
1132
- #: src/ml-slider.php:3501
1133
msgid "Uncheck this is you would like to include your own Javascript"
1134
msgstr ""
1135
1136
- #: src/ml-slider.php:3511
1137
msgid "No conflict mode"
1138
msgstr ""
1139
1140
- #: src/ml-slider.php:3517
1141
msgid "Delay adding the flexslider class to the slideshow"
1142
msgstr ""
1143
1144
- #: src/ml-slider.php:3547
1145
msgid "Delete Slideshow"
1146
msgstr ""
1147
1148
- #: src/ml-slider.php:3601
1149
msgid "Select slideshow to insert into post"
1150
msgstr ""
1151
1152
- #: src/ml-slider.php:3607
1153
msgid "Add slider"
1154
msgstr ""
1155
1156
- #: src/ml-slider.php:3675
1157
msgid "Insert MetaSlider"
1158
msgstr ""
1159
1160
- #: src/ml-slider.php:3679
1161
msgid "Choose slideshow"
1162
msgstr ""
1163
1164
- #: src/ml-slider.php:3689
1165
msgid "Insert slideshow"
1166
msgstr ""
1167
1168
- #: src/ml-slider.php:3795
1169
msgid "Take a tour"
1170
msgstr ""
1171
1172
- #: src/ml-slider.php:3803
1173
msgid "Support"
1174
msgstr ""
1175
1176
- #: src/ml-slider.php:3807
1177
msgid "Premium Support"
1178
msgstr ""
1179
1180
- #: src/ml-slider.php:3811, src/ml-slider.php:3937
1181
msgid "Documentation"
1182
msgstr ""
1183
1184
- #: src/ml-slider.php:3813
1185
msgid "Leave a review"
1186
msgstr ""
1187
1188
- #: src/ml-slider.php:3881
1189
msgid "Upgrade Now"
1190
msgstr ""
1191
1192
- #: src/ml-slider.php:3885
1193
msgid "Get The Pro Pack Today!"
1194
msgstr ""
1195
1196
- #: src/ml-slider.php:3919
1197
msgid "Switch to Dropdown view"
1198
msgstr ""
1199
1200
- #: src/ml-slider.php:3919
1201
msgid "Switch to Tab view"
1202
msgstr ""
1203
1204
- #: src/ml-slider.php:3923
1205
msgid "Layout"
1206
msgstr ""
1207
1208
- #: src/ml-slider.php:3937
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: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
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
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
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
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
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 ""
ml-slider.php CHANGED
@@ -1,1994 +1,1994 @@
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.5
9
- * Author: Team Updraft
10
- * Author URI: https://www.metaslider.com
11
- * License: GPL-2.0+
12
- * Copyright: 2017 Simba Hosting Ltd
13
- *
14
- * Text Domain: ml-slider
15
- * Domain Path: /languages
16
- */
17
-
18
- if ( ! defined( 'ABSPATH' ) ) {
19
- exit; // disable direct access
20
- }
21
-
22
- if ( ! class_exists( 'MetaSliderPlugin' ) ) :
23
-
24
- /**
25
- * Register the plugin.
26
- *
27
- * Display the administration panel, insert JavaScript etc.
28
- */
29
- class MetaSliderPlugin {
30
-
31
- /**
32
- * @var string
33
- */
34
- public $version = '3.6.5';
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;
45
-
46
-
47
- /**
48
- * Init
49
- */
50
- public static function init() {
51
-
52
- $metaslider = new self();
53
-
54
- }
55
-
56
-
57
- /**
58
- * Constructor
59
- */
60
- public function __construct() {
61
- $this->define_constants();
62
- $this->includes();
63
- $this->setup_actions();
64
- $this->setup_filters();
65
- $this->setup_shortcode();
66
- $this->register_slide_types();
67
- $this->admin = new MetaSlider_Admin_Pages($this);
68
- }
69
-
70
-
71
- /**
72
- * Define MetaSlider constants
73
- */
74
- private function define_constants() {
75
- define('METASLIDER_VERSION', $this->version);
76
- define('METASLIDER_BASE_URL', trailingslashit(plugins_url('ml-slider')));
77
- define('METASLIDER_ASSETS_URL', trailingslashit(METASLIDER_BASE_URL . 'assets'));
78
- define('METASLIDER_ADMIN_URL', trailingslashit(METASLIDER_BASE_URL . 'admin'));
79
- define('METASLIDER_PATH', plugin_dir_path(__FILE__));
80
- define('METASLIDER_PRO_PRICE', $this->pro_price);
81
- }
82
-
83
- /**
84
- * All MetaSlider classes
85
- */
86
- private function plugin_classes() {
87
- return array(
88
- 'metaslider' => METASLIDER_PATH . 'inc/slider/metaslider.class.php',
89
- 'metacoinslider' => METASLIDER_PATH . 'inc/slider/metaslider.coin.class.php',
90
- 'metaflexslider' => METASLIDER_PATH . 'inc/slider/metaslider.flex.class.php',
91
- 'metanivoslider' => METASLIDER_PATH . 'inc/slider/metaslider.nivo.class.php',
92
- 'metaresponsiveslider' => METASLIDER_PATH . 'inc/slider/metaslider.responsive.class.php',
93
- 'metaslide' => METASLIDER_PATH . 'inc/slide/metaslide.class.php',
94
- 'metaimageslide' => METASLIDER_PATH . 'inc/slide/metaslide.image.class.php',
95
- 'metasliderimagehelper' => METASLIDER_PATH . 'inc/metaslider.imagehelper.class.php',
96
- 'metaslidersystemcheck' => METASLIDER_PATH . 'inc/metaslider.systemcheck.class.php',
97
- 'metaslider_widget' => METASLIDER_PATH . 'inc/metaslider.widget.class.php',
98
- 'simple_html_dom' => METASLIDER_PATH . 'inc/simple_html_dom.php',
99
- 'metaslider_notices' => METASLIDER_PATH . 'admin/Notices.php',
100
- 'metaslider_admin_pages' => METASLIDER_PATH . 'admin/Pages.php',
101
- 'metaslider_tour' => METASLIDER_PATH . 'admin/Tour.php'
102
- );
103
- }
104
-
105
-
106
- /**
107
- * Load required classes
108
- */
109
- private function includes() {
110
- require_once(METASLIDER_PATH . 'admin/lib/helpers.php');
111
- $autoload_is_disabled = defined( 'METASLIDER_AUTOLOAD_CLASSES' ) && METASLIDER_AUTOLOAD_CLASSES === false;
112
-
113
- if ( function_exists( "spl_autoload_register" ) && ! ( $autoload_is_disabled ) ) {
114
-
115
- // >= PHP 5.2 - Use auto loading
116
- if ( function_exists( "__autoload" ) ) {
117
- spl_autoload_register( "__autoload" );
118
- }
119
-
120
- spl_autoload_register( array( $this, 'autoload' ) );
121
-
122
- } else {
123
-
124
- // < PHP5.2 - Require all classes
125
- foreach ( $this->plugin_classes() as $id => $path ) {
126
- if ( is_readable( $path ) && ! class_exists( $id ) ) {
127
- require_once( $path );
128
- }
129
- }
130
-
131
- }
132
-
133
- }
134
-
135
-
136
- /**
137
- * Autoload MetaSlider classes to reduce memory consumption
138
- */
139
- public function autoload( $class ) {
140
-
141
- $classes = $this->plugin_classes();
142
-
143
- $class_name = strtolower( $class );
144
-
145
- if ( isset( $classes[$class_name] ) && is_readable( $classes[$class_name] ) ) {
146
- require_once( $classes[$class_name] );
147
- }
148
-
149
- }
150
-
151
-
152
- /**
153
- * Register the [metaslider] shortcode.
154
- */
155
- private function setup_shortcode() {
156
-
157
- add_shortcode( 'metaslider', array( $this, 'register_shortcode' ) );
158
- add_shortcode( 'ml-slider', array( $this, 'register_shortcode' ) ); // backwards compatibility
159
-
160
- }
161
-
162
-
163
- /**
164
- * Hook MetaSlider into WordPress
165
- */
166
- private function setup_actions() {
167
- add_action('admin_menu', array($this, 'register_admin_pages'), 9553);
168
- add_action('init', array($this, 'register_post_types'));
169
- add_action('init', array($this, 'register_taxonomy'));
170
- add_action('init', array($this, 'load_plugin_textdomain'));
171
- add_action('admin_footer', array($this, 'admin_footer'), 11);
172
- add_action('widgets_init', array($this, 'register_metaslider_widget'));
173
-
174
- add_action('admin_post_metaslider_preview', array($this, 'do_preview'));
175
- add_action('admin_post_metaslider_switch_view', array($this, 'switch_view'));
176
- add_action('admin_post_metaslider_delete_slide', array($this, 'delete_slide'));
177
- add_action('admin_post_metaslider_delete_slider', array($this, 'delete_slider'));
178
- add_action('admin_post_metaslider_create_slider', array($this, 'create_slider'));
179
- add_action('admin_post_metaslider_update_slider', array($this, 'update_slider'));
180
-
181
- add_action('media_upload_vimeo', array($this, 'upgrade_to_pro_tab'));
182
- add_action('media_upload_youtube', array($this, 'upgrade_to_pro_tab'));
183
- add_action('media_upload_post_feed', array($this, 'upgrade_to_pro_tab'));
184
- add_action('media_upload_layer', array($this, 'upgrade_to_pro_tab'));
185
-
186
- // TODO: Refactor to Slide class object
187
- add_action('wp_ajax_delete_slide', array($this, 'ajax_delete_slide'));
188
- add_action('wp_ajax_undelete_slide', array($this, 'ajax_undelete_slide'));
189
-
190
- // TODO: Make this work
191
- // register_activation_hook(plugin_basename(__FILE__), array($this, 'after_activation'));
192
- }
193
-
194
-
195
- /**
196
- * Hook MetaSlider into WordPress
197
- */
198
- private function setup_filters() {
199
- add_filter('media_upload_tabs', array($this, 'custom_media_upload_tab_name'), 998);
200
- add_filter('media_view_strings', array($this, 'custom_media_uploader_tabs'), 5);
201
- add_filter('media_buttons_context', array($this, 'insert_metaslider_button'));
202
- add_filter("plugin_row_meta", array($this, 'get_extra_meta_links'), 10, 4);
203
- add_action('admin_head', array($this, 'add_star_styles'));
204
- add_action('admin_head', array($this, 'add_tour_nonce_to_activation_page'));
205
-
206
- // html5 compatibility for stylesheets enqueued within <body>
207
- add_filter('style_loader_tag', array($this, 'add_property_attribute_to_stylesheet_links'), 11, 2);
208
- }
209
-
210
-
211
- /**
212
- * Register MetaSlider widget
213
- */
214
- public function register_metaslider_widget() {
215
- register_widget('MetaSlider_Widget');
216
- }
217
-
218
-
219
- /**
220
- * Register ML Slider post type
221
- */
222
- public function register_post_types() {
223
-
224
- $show_ui = false;
225
-
226
- $capability = apply_filters( 'metaslider_capability', 'edit_others_posts' );
227
-
228
- if ( is_admin() && current_user_can( $capability ) && ( isset($_GET['show_ui']) || defined("METASLIDER_DEBUG") && METASLIDER_DEBUG ) ) {
229
- $show_ui = true;
230
- }
231
-
232
- register_post_type( 'ml-slider', array(
233
- 'query_var' => false,
234
- 'rewrite' => false,
235
- 'public' => false,
236
- 'exclude_from_search' => true,
237
- 'publicly_queryable' => false,
238
- 'show_in_nav_menus' => false,
239
- 'show_ui' => $show_ui,
240
- 'labels' => array(
241
- 'name' => 'MetaSlider'
242
- )
243
- )
244
- );
245
-
246
- register_post_type( 'ml-slide', array(
247
- 'query_var' => false,
248
- 'rewrite' => false,
249
- 'public' => false,
250
- 'exclude_from_search' => true,
251
- 'publicly_queryable' => false,
252
- 'show_in_nav_menus' => false,
253
- 'show_ui' => $show_ui,
254
- 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt'),
255
- 'labels' => array(
256
- 'name' => 'Meta Slides'
257
- )
258
- )
259
- );
260
-
261
- }
262
-
263
-
264
- /**
265
- * Register taxonomy to store slider => slides relationship
266
- */
267
- public function register_taxonomy() {
268
-
269
- $show_ui = false;
270
-
271
- $capability = apply_filters( 'metaslider_capability', 'edit_others_posts' );
272
-
273
- if (is_admin() && current_user_can( $capability ) && ( isset($_GET['show_ui']) || defined("METASLIDER_DEBUG") && METASLIDER_DEBUG ) ) {
274
- $show_ui = true;
275
- }
276
-
277
- register_taxonomy( 'ml-slider', array('attachment', 'ml-slide'), array(
278
- 'hierarchical' => true,
279
- 'public' => false,
280
- 'query_var' => false,
281
- 'rewrite' => false,
282
- 'show_ui' => $show_ui,
283
- 'label' => "Slider"
284
- )
285
- );
286
-
287
- }
288
-
289
-
290
- /**
291
- * Register our slide types
292
- */
293
- private function register_slide_types() {
294
-
295
- $image = new MetaImageSlide();
296
-
297
- }
298
-
299
- /**
300
- * Add the menu pages
301
- */
302
- public function register_admin_pages() {
303
- if (metaslider_is_pro_active()) {
304
- $this->admin->add_page('MetaSlider Pro', 'metaslider');
305
- } else {
306
- $this->admin->add_page('MetaSlider');
307
- }
308
-
309
- if (metaslider_sees_upgrade_page()) {
310
- $this->admin->add_page(__('Add-ons', 'ml-slider'), 'upgrade', 'metaslider');
311
- }
312
- }
313
-
314
- /**
315
- * Shortcode used to display slideshow
316
- *
317
- * @return string HTML output of the shortcode
318
- */
319
- public function register_shortcode( $atts ) {
320
-
321
- extract( shortcode_atts( array(
322
- 'id' => false,
323
- 'restrict_to' => false
324
- ), $atts, 'metaslider' ) );
325
-
326
-
327
- if ( ! $id ) {
328
- return false;
329
- }
330
-
331
- // handle [metaslider id=123 restrict_to=home]
332
- if ($restrict_to && $restrict_to == 'home' && ! is_front_page()) {
333
- return;
334
- }
335
-
336
- if ($restrict_to && $restrict_to != 'home' && ! is_page( $restrict_to ) ) {
337
- return;
338
- }
339
-
340
- // we have an ID to work with
341
- $slider = get_post( $id );
342
-
343
- // check the slider is published and the ID is correct
344
- if ( ! $slider || $slider->post_status != 'publish' || $slider->post_type != 'ml-slider' ) {
345
- return "<!-- MetaSlider {$atts['id']} not found -->";
346
- }
347
-
348
- // lets go
349
- $this->set_slider( $id, $atts );
350
- $this->slider->enqueue_scripts();
351
-
352
- return $this->slider->render_public_slides();
353
-
354
- }
355
-
356
- /**
357
- * Set first activation option to database
358
- */
359
- public function after_activation() {
360
-
361
- // Set date showing the first activation and redirect
362
- if (!get_option('ms_was_installed_on')) {
363
- update_option('ms_was_installed_on', time());
364
- }
365
- }
366
-
367
- /**
368
- * Initialise translations
369
- */
370
- public function load_plugin_textdomain() {
371
-
372
- load_plugin_textdomain( 'ml-slider', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
373
-
374
- }
375
-
376
-
377
- /**
378
- * Outputs a blank page containing a slideshow preview (for use in the 'Preview' iFrame)
379
- */
380
- public function do_preview() {
381
-
382
- remove_action('wp_footer', 'wp_admin_bar_render', 1000);
383
-
384
- if ( isset( $_GET['slider_id'] ) && absint( $_GET['slider_id'] ) > 0 ) {
385
- $id = absint( $_GET['slider_id'] );
386
-
387
- ?>
388
- <!DOCTYPE html>
389
- <html>
390
- <head>
391
- <style type='text/css'>
392
- body, html {
393
- overflow: hidden;
394
- margin: 0;
395
- padding: 0;
396
- }
397
- </style>
398
- <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
399
- <meta http-equiv="Pragma" content="no-cache" />
400
- <meta http-equiv="Expires" content="0" />
401
- </head>
402
- <body>
403
- <?php echo do_shortcode("[metaslider id={$id}]"); ?>
404
- <?php wp_footer(); ?>
405
- </body>
406
- </html>
407
- <?php
408
- }
409
-
410
- die();
411
-
412
- }
413
-
414
-
415
- /**
416
- * Check our WordPress installation is compatible with MetaSlider
417
- */
418
- public function do_system_check() {
419
-
420
- $systemCheck = new MetaSliderSystemCheck();
421
- $systemCheck->check();
422
-
423
- }
424
-
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',
440
- 'insertFromUrlTitle',
441
- 'createPlaylistTitle'
442
- );
443
-
444
- foreach ($strings_to_remove as $string) {
445
- if (isset($strings[$string])) {
446
- unset($strings[$string]);
447
- }
448
- }
449
- }
450
-
451
- return $strings;
452
-
453
- }
454
-
455
-
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
-
463
- $metaslider_tabs = array( 'post_feed', 'layer', 'youtube', 'vimeo' );
464
-
465
- // restrict our tab changes to the MetaSlider plugin page
466
- if ( ( isset( $_GET['page'] ) && $_GET['page'] == 'metaslider' ) || ( isset( $_GET['tab'] ) && in_array( $_GET['tab'], $metaslider_tabs ) ) ) {
467
- $newtabs = array();
468
-
469
- if ( function_exists( 'is_plugin_active' ) && ! is_plugin_active( 'ml-slider-pro/ml-slider-pro.php' ) ) {
470
- $newtabs = array(
471
- 'post_feed' => __( "Post Feed", "metaslider" ),
472
- 'vimeo' => __( "Vimeo", "metaslider" ),
473
- 'youtube' => __( "YouTube", "metaslider" ),
474
- 'layer' => __( "Layer Slide", "metaslider" )
475
- );
476
- }
477
-
478
- if ( isset( $tabs['nextgen'] ) )
479
- unset( $tabs['nextgen'] );
480
-
481
-
482
- if ( is_array( $tabs ) ) {
483
- return array_merge( $tabs, $newtabs );
484
- } else {
485
- return $newtabs;
486
- }
487
-
488
- }
489
-
490
- return $tabs;
491
-
492
-
493
- }
494
-
495
-
496
- /**
497
- * Set the current slider
498
- */
499
- public function set_slider( $id, $shortcode_settings = array() ) {
500
-
501
- $type = 'flex';
502
-
503
- if ( isset( $shortcode_settings['type'] ) ) {
504
- $type = $shortcode_settings['type'];
505
- } else if ( $settings = get_post_meta( $id, 'ml-slider_settings', true ) ) {
506
- if ( is_array( $settings ) && isset( $settings['type'] ) ) {
507
- $type = $settings['type'];
508
- }
509
- }
510
-
511
- if ( ! in_array( $type, array( 'flex', 'coin', 'nivo', 'responsive' ) ) ) {
512
- $type = 'flex';
513
- }
514
-
515
- $this->slider = $this->load_slider( $type, $id, $shortcode_settings );
516
-
517
- }
518
-
519
-
520
- /**
521
- * Create a new slider based on the sliders type setting
522
- */
523
- private function load_slider( $type, $id, $shortcode_settings ) {
524
-
525
- switch ( $type ) {
526
- case( 'coin' ):
527
- return new MetaCoinSlider( $id, $shortcode_settings );
528
- case( 'flex' ):
529
- return new MetaFlexSlider( $id, $shortcode_settings );
530
- case( 'nivo' ):
531
- return new MetaNivoSlider( $id, $shortcode_settings );
532
- case( 'responsive' ):
533
- return new MetaResponsiveSlider( $id, $shortcode_settings );
534
- default:
535
- return new MetaFlexSlider( $id, $shortcode_settings );
536
-
537
- }
538
- }
539
-
540
-
541
- /**
542
- *
543
- */
544
- public function update_slider() {
545
-
546
- check_admin_referer( "metaslider_update_slider" );
547
-
548
- $capability = apply_filters( 'metaslider_capability', 'edit_others_posts' );
549
-
550
- if ( ! current_user_can( $capability ) ) {
551
- return;
552
- }
553
-
554
- $slider_id = absint( $_POST['slider_id'] );
555
-
556
- if ( ! $slider_id ) {
557
- return;
558
- }
559
-
560
- // update settings
561
- if ( isset( $_POST['settings'] ) ) {
562
-
563
- $new_settings = $_POST['settings'];
564
-
565
- $old_settings = get_post_meta( $slider_id, 'ml-slider_settings', true );
566
-
567
- // convert submitted checkbox values from 'on' or 'off' to boolean values
568
- $checkboxes = apply_filters( "metaslider_checkbox_settings", array( 'noConflict', 'fullWidth', 'hoverPause', 'links', 'reverse', 'random', 'printCss', 'printJs', 'smoothHeight', 'center', 'carouselMode', 'autoPlay' ) );
569
-
570
- foreach ( $checkboxes as $checkbox ) {
571
- if ( isset( $new_settings[$checkbox] ) && $new_settings[$checkbox] == 'on' ) {
572
- $new_settings[$checkbox] = "true";
573
- } else {
574
- $new_settings[$checkbox] = "false";
575
- }
576
- }
577
-
578
- $settings = array_merge( (array)$old_settings, $new_settings );
579
-
580
- // update the slider settings
581
- update_post_meta( $slider_id, 'ml-slider_settings', $settings );
582
-
583
- }
584
-
585
- // update slideshow title
586
- if ( isset( $_POST['title'] ) ) {
587
-
588
- $slide = array(
589
- 'ID' => $slider_id,
590
- 'post_title' => esc_html( $_POST['title'] )
591
- );
592
-
593
- wp_update_post( $slide );
594
-
595
- }
596
-
597
- // update individual slides
598
- if ( isset( $_POST['attachment'] ) ) {
599
-
600
- foreach ( $_POST['attachment'] as $slide_id => $fields ) {
601
- do_action( "metaslider_save_{$fields['type']}_slide", $slide_id, $slider_id, $fields );
602
- }
603
-
604
- }
605
-
606
- }
607
-
608
- /**
609
- * Delete a slide via ajax.
610
- * @return string Returns the status of the request
611
- */
612
- public function ajax_undelete_slide() {
613
- if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'metaslider_undelete_slide')) {
614
- return wp_send_json_error(array(
615
- 'message' => __('The security check failed. Please refresh the page and try again.', 'ml-slider')
616
- ), 401);
617
- }
618
-
619
- $result = $this->undelete_slide(absint($_POST['slide_id']), absint($_POST['slider_id']));
620
-
621
- if (is_wp_error($result)) {
622
- return wp_send_json_error(array(
623
- 'message' => $result->get_error_message()
624
- ), 409);
625
- }
626
-
627
- return wp_send_json_success(array(
628
- 'message' => __('The slide was successfully restored', 'ml-slider'),
629
- ), 200);
630
- }
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
- */
638
- public function undelete_slide($slide_id, $slider_id) {
639
- if ('ml-slide' === get_post_type($slide_id)) {
640
- return wp_update_post(array(
641
- 'ID' => $slide_id,
642
- 'post_status' => 'publish'
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');
652
- return wp_set_object_terms($slide_id, $term->term_id, 'ml-slider');
653
- }
654
-
655
- /**
656
- * Delete a slide via ajax.
657
- */
658
- public function ajax_delete_slide() {
659
- if (!wp_verify_nonce($_REQUEST['_wpnonce'], 'metaslider_delete_slide')) {
660
- return wp_send_json_error(array(
661
- 'message' => __('The security check failed. Please refresh the page and try again.', 'ml-slider')
662
- ), 401);
663
- }
664
-
665
- $result = $this->delete_slide(absint($_POST['slide_id']), absint($_POST['slider_id']));
666
-
667
- if (is_wp_error($result)) {
668
- return wp_send_json_error(array(
669
- 'message' => $result->get_error_message()
670
- ), 409);
671
- }
672
-
673
- return wp_send_json_success(array(
674
- 'message' => __('The slide was successfully trashed', 'ml-slider'),
675
- ), 200);
676
- }
677
-
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) {
686
- if ('ml-slide' === get_post_type($slide_id)) {
687
- return wp_update_post(array(
688
- 'ID' => $slide_id,
689
- 'post_status' => 'trash'
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'));
700
-
701
- // This returns the term object, named after the slider ID
702
- // The $term->term_id would be 7 in the example above
703
- // It also includes the count of slides attached to the slider
704
- $term = get_term_by('name', $slider_id, 'ml-slider');
705
-
706
- // I'm not sure why this is here. It seems this is only useful if
707
- // a slide was attached to multiple sliders. A slide should only
708
- // have one $current_terms (7 above)
709
- $new_terms = array();
710
- foreach ($current_terms as $current_term) {
711
- if ($current_term != $term->term_id) {
712
- $new_terms[] = absint($current_term);
713
- }
714
- }
715
-
716
- // This only works becasue $new_terms is an empty array,
717
- // which deletes the relationship. I'm leaving the loop above
718
- // in case it's here for some legacy reason I'm unaware of.
719
- return wp_set_object_terms($slide_id, $new_terms, 'ml-slider');
720
- }
721
-
722
-
723
- /**
724
- * Delete a slider (send it to trash)
725
- */
726
- public function delete_slider() {
727
-
728
- // check nonce
729
- check_admin_referer( "metaslider_delete_slider" );
730
-
731
- $capability = apply_filters( 'metaslider_capability', 'edit_others_posts' );
732
-
733
- if ( ! current_user_can( $capability ) ) {
734
- return;
735
- }
736
-
737
- $slider_id = absint( $_GET['slider_id'] );
738
-
739
- if ( get_post_type( $slider_id ) != 'ml-slider' ) {
740
- wp_redirect( admin_url( "admin.php?page=metaslider" ) );
741
- wp_die();
742
- }
743
-
744
- // send the post to trash
745
- $id = wp_update_post( array(
746
- 'ID' => $slider_id,
747
- 'post_status' => 'trash'
748
- )
749
- );
750
-
751
- $this->delete_all_slides_from_slider($slider_id);
752
-
753
- $slider_id = $this->find_slider( 'modified', 'DESC' );
754
-
755
- wp_redirect( admin_url( "admin.php?page=metaslider&id={$slider_id}" ) );
756
-
757
- }
758
-
759
-
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) {
767
- // find slides and trash them
768
- $args = array(
769
- 'force_no_custom_order' => true,
770
- 'orderby' => 'menu_order',
771
- 'order' => 'ASC',
772
- 'post_type' => array('ml-slide'),
773
- 'post_status' => array('publish'),
774
- 'lang' => '', // polylang, ingore language filter
775
- 'suppress_filters' => 1, // wpml, ignore language filter
776
- 'posts_per_page' => -1,
777
- 'tax_query' => array(
778
- array(
779
- 'taxonomy' => 'ml-slider',
780
- 'field' => 'slug',
781
- 'terms' => $slider_id
782
- )
783
- )
784
- );
785
-
786
- $query = new WP_Query( $args );
787
-
788
- while ( $query->have_posts() ) {
789
- $query->next_post();
790
- $id = $query->post->ID;
791
-
792
- $id = wp_update_post( array(
793
- 'ID' => $id,
794
- 'post_status' => 'trash'
795
- )
796
- );
797
- }
798
-
799
- return $slider_id;
800
- }
801
-
802
-
803
- /**
804
- *
805
- */
806
- public function switch_view() {
807
- global $user_ID;
808
-
809
- $view = $_GET['view'];
810
-
811
- $allowed_views = array('tabs', 'dropdown');
812
-
813
- if ( ! in_array( $view, $allowed_views ) ) {
814
- return;
815
- }
816
-
817
- delete_user_meta( $user_ID, "metaslider_view" );
818
-
819
- if ( $view == 'dropdown' ) {
820
- add_user_meta( $user_ID, "metaslider_view", "dropdown");
821
- }
822
-
823
- wp_redirect( admin_url( "admin.php?page=metaslider" ) );
824
-
825
- }
826
-
827
-
828
- /**
829
- * Create a new slider
830
- */
831
- public function create_slider() {
832
-
833
- // check nonce
834
- check_admin_referer( "metaslider_create_slider" );
835
-
836
- $capability = apply_filters( 'metaslider_capability', 'edit_others_posts' );
837
-
838
- if ( ! current_user_can( $capability ) ) {
839
- return;
840
- }
841
-
842
- $defaults = array();
843
-
844
- // if possible, take a copy of the last edited slider settings in place of default settings
845
- if ( $last_modified = $this->find_slider( 'modified', 'DESC' ) ) {
846
- $defaults = get_post_meta( $last_modified, 'ml-slider_settings', true );
847
- }
848
-
849
- // insert the post
850
- $id = wp_insert_post( array(
851
- 'post_title' => __("New Slideshow", "ml-slider"),
852
- 'post_status' => 'publish',
853
- 'post_type' => 'ml-slider'
854
- )
855
- );
856
-
857
- // use the default settings if we can't find anything more suitable.
858
- if ( empty( $defaults ) ) {
859
- $slider = new MetaSlider( $id, array() );
860
- $defaults = $slider->get_default_parameters();
861
- }
862
-
863
- // insert the post meta
864
- add_post_meta( $id, 'ml-slider_settings', $defaults, true );
865
-
866
- // create the taxonomy term, the term is the ID of the slider itself
867
- wp_insert_term( $id, 'ml-slider' );
868
-
869
- wp_redirect( admin_url( "admin.php?page=metaslider&id={$id}" ) );
870
-
871
- }
872
-
873
-
874
-
875
- /**
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 ) {
883
-
884
- $args = array(
885
- 'force_no_custom_order' => true,
886
- 'post_type' => 'ml-slider',
887
- 'num_posts' => 1,
888
- 'post_status' => 'publish',
889
- 'suppress_filters' => 1, // wpml, ignore language filter
890
- 'orderby' => $orderby,
891
- 'order' => $order
892
- );
893
-
894
- $the_query = new WP_Query( $args );
895
-
896
- while ( $the_query->have_posts() ) {
897
- $the_query->the_post();
898
- return $the_query->post->ID;
899
- }
900
-
901
- wp_reset_query();
902
-
903
- return false;
904
-
905
- }
906
-
907
-
908
- /**
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' ) {
916
-
917
- $sliders = array();
918
-
919
- // list the tabs
920
- $args = array(
921
- 'post_type' => 'ml-slider',
922
- 'post_status' => 'publish',
923
- 'orderby' => $sort_key,
924
- 'suppress_filters' => 1, // wpml, ignore language filter
925
- 'order' => 'ASC',
926
- 'posts_per_page' => -1
927
- );
928
-
929
- $args = apply_filters( 'metaslider_all_meta_sliders_args', $args );
930
-
931
- // WP_Query causes issues with other plugins using admin_footer to insert scripts
932
- // use get_posts instead
933
- $all_sliders = get_posts( $args );
934
-
935
- foreach( $all_sliders as $slideshow ) {
936
-
937
- $active = $this->slider && ( $this->slider->id == $slideshow->ID ) ? true : false;
938
-
939
- $sliders[] = array(
940
- 'active' => $active,
941
- 'title' => $slideshow->post_title,
942
- 'id' => $slideshow->ID
943
- );
944
-
945
- }
946
-
947
- return $sliders;
948
-
949
- }
950
-
951
-
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 ) {
960
-
961
- return $elem1['priority'] > $elem2['priority'];
962
-
963
- }
964
-
965
-
966
- /**
967
- *
968
- * @param array $aFields - array of field to render
969
- * @return string
970
- */
971
- public function build_settings_rows( $aFields ) {
972
-
973
- // order the fields by priority
974
- uasort( $aFields, array( $this, "compare_elems" ) );
975
-
976
- $return = "";
977
-
978
- // loop through the array and build the settings HTML
979
- foreach ( $aFields as $id => $row ) {
980
- // checkbox input type
981
- if ( $row['type'] == 'checkbox' ) {
982
- $return .= "<tr><td class='tipsy-tooltip' title=\"{$row['helptext']}\">{$row['label']}</td><td><input class='option {$row['class']} {$id}' type='checkbox' name='settings[{$id}]' {$row['checked']} />";
983
-
984
- if ( isset( $row['after'] ) ) {
985
- $return .= "<span class='after'>{$row['after']}</span>";
986
- }
987
-
988
- $return .= "</td></tr>";
989
- }
990
-
991
- // navigation row
992
- if ( $row['type'] == 'navigation' ) {
993
- $navigation_row = "<tr class='{$row['type']}'><td class='tipsy-tooltip' title=\"{$row['helptext']}\">{$row['label']}</td><td><ul>";
994
-
995
- foreach ( $row['options'] as $k => $v ) {
996
- $tease = isset($v['addon_required']) ? 'disabled' : '';
997
-
998
- if ( $row['value'] === true && $k === 'true' ) {
999
- $checked = checked( true, true, false );
1000
- } else if ( $row['value'] === false && $k === 'false' ) {
1001
- $checked = checked( true, true, false );
1002
- } else {
1003
- $checked = checked( $k, $row['value'], false );
1004
- }
1005
-
1006
- $disabled = $k == 'thumbnails' ? 'disabled' : '';
1007
- $navigation_row .= "<li><label class='{$tease}'><input {$tease} type='radio' name='settings[{$id}]' value='{$k}' {$checked} {$disabled}/>{$v['label']}</label>";
1008
-
1009
- if (isset($v['addon_required']) && $v['addon_required']) {
1010
- $navigation_row .= sprintf(" <a target='_blank' class='get-addon' href='%s' title='%s'>%s</a>", metaslider_get_upgrade_link(), __('Get the add-on pack today!', 'ml-slider'), __('Learn More', 'ml-slider'));
1011
- }
1012
-
1013
- $navigation_row .= "</li>";
1014
- }
1015
-
1016
- $navigation_row .= "</ul></td></tr>";
1017
-
1018
- $return .= apply_filters( 'metaslider_navigation_options', $navigation_row, $this->slider );
1019
- }
1020
-
1021
- // navigation row
1022
- if ( $row['type'] == 'radio' ) {
1023
- $navigation_row = "<tr class='{$row['type']}'><td class='tipsy-tooltip' title=\"{$row['helptext']}\">{$row['label']}</td><td><ul>";
1024
-
1025
- foreach ( $row['options'] as $k => $v ) {
1026
- $checked = checked( $k, $row['value'], false );
1027
- $class = isset( $v['class'] ) ? $v['class'] : "";
1028
- $navigation_row .= "<li><label><input type='radio' name='settings[{$id}]' value='{$k}' {$checked} class='radio {$class}'/>{$v['label']}</label></li>";
1029
- }
1030
-
1031
- $navigation_row .= "</ul></td></tr>";
1032
-
1033
- $return .= apply_filters( 'metaslider_navigation_options', $navigation_row, $this->slider );
1034
- }
1035
-
1036
- // header/divider row
1037
- if ( $row['type'] == 'divider' ) {
1038
- $return .= "<tr class='{$row['type']}'><td colspan='2' class='divider'><b>{$row['value']}</b></td></tr>";
1039
- }
1040
-
1041
- // slideshow select row
1042
- if ( $row['type'] == 'slider-lib' ) {
1043
- $return .= "<tr class='{$row['type']}'><td colspan='2' class='slider-lib-row'>";
1044
-
1045
- foreach ( $row['options'] as $k => $v ) {
1046
- $checked = checked( $k, $row['value'], false );
1047
- $return .= "<input class='select-slider' id='{$k}' rel='{$k}' type='radio' name='settings[type]' value='{$k}' {$checked} />
1048
- <label tabindex='0' for='{$k}'>{$v['label']}</label>";
1049
- }
1050
-
1051
- $return .= "</td></tr>";
1052
- }
1053
-
1054
- // number input type
1055
- if ( $row['type'] == 'number' ) {
1056
- $return .= "<tr class='{$row['type']}'><td class='tipsy-tooltip' title=\"{$row['helptext']}\">{$row['label']}</td><td><input class='option {$row['class']} {$id}' type='number' min='{$row['min']}' max='{$row['max']}' step='{$row['step']}' name='settings[{$id}]' value='" . absint( $row['value'] ) . "' /><span class='after'>{$row['after']}</span></td></tr>";
1057
- }
1058
-
1059
- // select drop down
1060
- if ( $row['type'] == 'select' ) {
1061
- $return .= "<tr class='{$row['type']}'><td class='tipsy-tooltip' title=\"{$row['helptext']}\">{$row['label']}</td><td><select class='option {$row['class']} {$id}' name='settings[{$id}]'>";
1062
- foreach ( $row['options'] as $k => $v ) {
1063
- $selected = selected( $k, $row['value'], false );
1064
- $return .= "<option class='{$v['class']}' value='{$k}' {$selected}>{$v['label']}</option>";
1065
- }
1066
- $return .= "</select></td></tr>";
1067
- }
1068
-
1069
- // theme drop down
1070
- if ( $row['type'] == 'theme' ) {
1071
- $return .= "<tr class='{$row['type']}'><td class='tipsy-tooltip' title=\"{$row['helptext']}\">{$row['label']}</td><td><select class='option {$row['class']} {$id}' name='settings[{$id}]'>";
1072
- $themes = "";
1073
-
1074
- foreach ( $row['options'] as $k => $v ) {
1075
- $selected = selected( $k, $row['value'], false );
1076
- $themes .= "<option class='{$v['class']}' value='{$k}' {$selected}>{$v['label']}</option>";
1077
- }
1078
-
1079
- $return .= apply_filters( 'metaslider_get_available_themes', $themes, $this->slider->get_setting( 'theme' ) );
1080
-
1081
- $return .= "</select></td></tr>";
1082
- }
1083
-
1084
- // text input type
1085
- if ( $row['type'] == 'text' ) {
1086
- $return .= "<tr class='{$row['type']}'><td class='tipsy-tooltip' title=\"{$row['helptext']}\">{$row['label']}</td><td><input class='option {$row['class']} {$id}' type='text' name='settings[{$id}]' value='" . esc_attr( $row['value'] ) . "' /></td></tr>";
1087
- }
1088
-
1089
- // text input type
1090
- if ( $row['type'] == 'textarea' ) {
1091
- $return .= "<tr class='{$row['type']}'><td class='tipsy-tooltip' title=\"{$row['helptext']}\" colspan='2'>{$row['label']}</td></tr><tr><td colspan='2'><textarea class='option {$row['class']} {$id}' name='settings[{$id}]' />{$row['value']}</textarea></td></tr>";
1092
- }
1093
-
1094
- // text input type
1095
- if ( $row['type'] == 'title' ) {
1096
- $return .= "<tr class='{$row['type']}'><td class='tipsy-tooltip' title=\"{$row['helptext']}\">{$row['label']}</td><td><input class='option {$row['class']} {$id}' type='text' name='{$id}' value='" . esc_attr( $row['value'] ) . "' /></td></tr>";
1097
- }
1098
- }
1099
-
1100
- return $return;
1101
-
1102
- }
1103
-
1104
-
1105
- /**
1106
- * Return an indexed array of all easing options
1107
- *
1108
- * @return array
1109
- */
1110
- private function get_easing_options() {
1111
-
1112
- $options = array(
1113
- 'linear', 'swing', 'jswing', 'easeInQuad', 'easeOutQuad', 'easeInOutQuad',
1114
- 'easeInCubic', 'easeOutCubic', 'easeInOutCubic', 'easeInQuart',
1115
- 'easeOutQuart', 'easeInOutQuart', 'easeInQuint', 'easeOutQuint',
1116
- 'easeInOutQuint', 'easeInSine', 'easeOutSine', 'easeInOutSine',
1117
- 'easeInExpo', 'easeOutExpo', 'easeInOutExpo', 'easeInCirc', 'easeOutCirc',
1118
- 'easeInOutCirc', 'easeInElastic', 'easeOutElastic', 'easeInOutElastic',
1119
- 'easeInBack', 'easeOutBack', 'easeInOutBack', 'easeInBounce', 'easeOutBounce',
1120
- 'easeInOutBounce'
1121
- );
1122
-
1123
- foreach ( $options as $option ) {
1124
- $return[$option] = array(
1125
- 'label' => ucfirst( preg_replace( '/(\w+)([A-Z])/U', '\\1 \\2', $option ) ),
1126
- 'class' => ''
1127
- );
1128
- }
1129
-
1130
- return $return;
1131
-
1132
- }
1133
-
1134
- /**
1135
- * Output the slideshow selector.
1136
- *
1137
- * Show tabs or a dropdown list depending on the users saved preference.
1138
- */
1139
- public function print_slideshow_selector() {
1140
- global $user_ID;
1141
-
1142
- // First check if we have any slideshows yet
1143
- if ($tabs = $this->all_meta_sliders()) {
1144
-
1145
- // Next check if they have the tabs view selected
1146
- if ('tabs' == $this->get_view()) {
1147
-
1148
- // Render the tabs
1149
- echo "<div class='nav-tab-wrapper'>";
1150
- foreach ($tabs as $tab) {
1151
- if ( $tab['active'] ) {
1152
- echo "<div class='nav-tab nav-tab-active'><input class='no_last_pass' type='text' name='title' value='" . esc_attr($tab['title']) . "'></div>";
1153
- } else {
1154
- echo "<a href='?page=metaslider&amp;id={$tab['id']}' title= '" . esc_attr($tab['title']) . "' class='nav-tab'>" . esc_html( $tab['title'] ) . "</a>";
1155
- }
1156
- }
1157
- echo $this->get_add_slideshow_button("New", 'nav-tab');
1158
- echo "</div>";
1159
-
1160
- // This will render the select dropdown view
1161
- // TODO make this resemble the WP Nav menu UI perhaps
1162
- } else {
1163
- echo "<div class='manage-menus'><label for='select-slideshow' class='selected-menu'>" . __("Select Slideshow", "ml-slider") . ": </label>";
1164
- echo "<select name='select-slideshow' onchange='if (this.value) window.location.href=this.value'>";
1165
-
1166
- $tabs = $this->all_meta_sliders('title');
1167
- foreach ($tabs as $tab) {
1168
- $selected = $tab['active'] ? " selected" : "";
1169
- if ($tab['active']) {
1170
- $title = $tab['title'];
1171
- }
1172
- echo "<option value='?page=metaslider&amp;id={$tab['id']}'{$selected}>{$tab['title']}</option>";
1173
- }
1174
- echo "</select>";
1175
- echo "<span class='add-new-menu-action'> " . __( 'or', "ml-slider" ) . " ";
1176
- echo "<a href='". wp_nonce_url(admin_url("admin-post.php?action=metaslider_create_slider"), "metaslider_create_slider") ."' id='create_new_tab' class='' title='" . __('Create a New Slideshow', 'ml-slider') . "'>create a new slideshow</a>";
1177
- echo "</span></div>";
1178
- }
1179
-
1180
- // This section is shown when there are no slideshows
1181
- } else {
1182
- echo "<div class='nav-tab-wrapper'>";
1183
- echo "<div class='fake-tabs nav-tab nav-tab-active'><span class='blurred-out'>" . __('New Slideshow', 'ml-slider') ."</span></div>";
1184
- echo $this->get_add_slideshow_button("New", 'nav-tab');
1185
- echo "</div>";
1186
- }
1187
- }
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");
1194
- if ('' == $text) {
1195
- $text = __('Add a New Slideshow', 'ml-slider');
1196
- }
1197
- return "<a href='{$add_url}' id='create_new_tab' class='ml-add-new {$classes}' title='" . __('Add a New Slideshow', 'ml-slider') . "'><i><svg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-plus-circle'><circle cx='12' cy='12' r='10'/><line x1='12' y1='8' x2='12' y2='16'/><line x1='8' y1='12' x2='16' y2='12'/></svg></i> {$text}</a>";
1198
- }
1199
-
1200
- /**
1201
- * Return the users saved view preference.
1202
- */
1203
- public function get_view() {
1204
- global $user_ID;
1205
-
1206
- if ( get_user_meta( $user_ID, "metaslider_view", true ) ) {
1207
- return get_user_meta( $user_ID, "metaslider_view", true );
1208
- }
1209
-
1210
- return 'tabs';
1211
- }
1212
-
1213
-
1214
- /**
1215
- * Render the admin page (tabs, slides, settings)
1216
- */
1217
- public function render_admin_page() {
1218
-
1219
- // Default to the most recently modified slider
1220
- $slider_id = $this->find_slider('modified', 'DESC');
1221
-
1222
- // If the id parameter exists, verify and use that.
1223
- if (isset($_REQUEST['id']) && $id = $_REQUEST['id']) {
1224
- if (in_array(get_post_status(absint($id)), array('publish', 'inherit'))) {
1225
- $slider_id = $id;
1226
- }
1227
- }
1228
-
1229
- // "Set the slider"
1230
- // TODO figure out what this does and if it can be better stated
1231
- // Perhaps maybe "apply_settings()" or something.
1232
- if ($slider_id) {
1233
- $this->set_slider($slider_id);
1234
- }
1235
-
1236
- echo "<div class='wrap metaslider-ui-top' style='margin-top:0;'>";
1237
- echo $this->documentation_button();
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>";
1244
-
1245
- $this->do_system_check();
1246
-
1247
- $slider_id = $this->slider ? $this->slider->id : 0;
1248
-
1249
- ?>
1250
-
1251
- <script type='text/javascript'>
1252
- var metaslider_slider_id = <?php echo $slider_id; ?>;
1253
- </script>
1254
-
1255
- <div class="wrap metaslider metaslider-ui">
1256
- <h1 class="wp-heading-inline metaslider-title">
1257
- <img width=50 height=50 src="<?php echo METASLIDER_ADMIN_URL ?>images/metaslider_logo_large.png" alt="MetaSlider">
1258
- MetaSlider
1259
- <?php if (metaslider_is_pro_active()) {
1260
- echo ' Pro';
1261
- } ?>
1262
- </h1>
1263
- <?php if (metaslider_sees_notices($this)) {
1264
- echo $this->notices->do_notice(false, 'header', true);
1265
- } ?>
1266
- <form accept-charset="UTF-8" action="<?php echo admin_url( 'admin-post.php'); ?>" method="post">
1267
- <input type="hidden" name="action" value="metaslider_update_slider">
1268
- <input type="hidden" name="slider_id" value="<?php echo $slider_id; ?>">
1269
- <?php wp_nonce_field( 'metaslider_update_slider' ); ?>
1270
-
1271
- <?php $this->print_slideshow_selector(); ?>
1272
-
1273
- <?php if ( ! $this->slider ) return; ?>
1274
-
1275
- <div id='poststuff' class="metaslider-inner wp-clearfix">
1276
- <div id='post-body' class='metabox-holder columns-2'>
1277
-
1278
- <div id='post-body-content'>
1279
- <div class="left">
1280
-
1281
- <?php do_action( "metaslider_admin_table_before", $this->slider->id ); ?>
1282
-
1283
- <table class="widefat sortable metaslider-slides-container">
1284
- <thead>
1285
- <tr>
1286
- <?php if (metaslider_viewing_trashed_slides($this->slider->id)) {
1287
-
1288
- // If they are on the trash page, show them?>
1289
- <th class="trashed-header">
1290
- <h3><i><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-trash-2"><polyline points="3 6 5 6 21 6"/><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/><line x1="10" y1="11" x2="10" y2="17"/><line x1="14" y1="11" x2="14" y2="17"/></svg></i> <?php _e('Trashed Slides', 'ml-slider'); ?></h3>
1291
- <small> <?php printf(__('<a href="%s">view active</a>', 'ml-slider'), admin_url("?page=metaslider&id={$this->slider->id}")); ?></small>
1292
- </th>
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?>
1300
- <button class='ml-button ml-has-icon ml-skinless-button alignright add-slide' data-editor='content' title='<?php _e( "Add a New Slide", "ml-slider" ) ?>'>
1301
-