MetaSlider - Version 2.0.2

Version Description

  • Fix: PHP Error when using slides the same size as the slideshow
Download this release

Release Info

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

Code changes from version 1.3 to 2.0.2

Files changed (71) hide show
  1. assets/coinslider/coin-slider-styles.css +0 -17
  2. assets/coinslider/coin-slider.min.js +0 -51
  3. assets/colorbox/colorbox.css +86 -0
  4. assets/colorbox/images/border.png +0 -0
  5. assets/colorbox/images/controls.png +0 -0
  6. assets/colorbox/images/ie6/borderBottomCenter.png +0 -0
  7. assets/colorbox/images/ie6/borderBottomLeft.png +0 -0
  8. assets/colorbox/images/ie6/borderBottomRight.png +0 -0
  9. assets/colorbox/images/ie6/borderMiddleLeft.png +0 -0
  10. assets/colorbox/images/ie6/borderMiddleRight.png +0 -0
  11. assets/colorbox/images/ie6/borderTopCenter.png +0 -0
  12. assets/colorbox/images/ie6/borderTopLeft.png +0 -0
  13. assets/colorbox/images/ie6/borderTopRight.png +0 -0
  14. assets/colorbox/images/loading.gif +0 -0
  15. assets/colorbox/images/loading_background.png +0 -0
  16. assets/colorbox/images/overlay.png +0 -0
  17. assets/colorbox/jquery.colorbox-min.js +6 -0
  18. assets/easing/jQuery.easing.min.js +44 -0
  19. assets/metaslider-admin.css +0 -218
  20. assets/metaslider-display.css +0 -81
  21. assets/metaslider.js +0 -151
  22. assets/metaslider/admin.css +356 -0
  23. assets/metaslider/admin.js +137 -0
  24. assets/metaslider/admin.less +413 -0
  25. assets/metaslider/image/image.js +40 -0
  26. assets/metaslider/matchalabs.png +0 -0
  27. assets/metaslider/public.css +134 -0
  28. assets/sliders/coinslider/coin-slider-styles.css +36 -0
  29. assets/sliders/coinslider/coin-slider.min.js +11 -0
  30. assets/{flexslider → sliders/flexslider}/bg_direction_nav.png +0 -0
  31. assets/{flexslider → sliders/flexslider}/flexslider.css +1 -1
  32. assets/{flexslider → sliders/flexslider}/jquery.flexslider-min.js +0 -0
  33. assets/{nivoslider → sliders/nivoslider}/jquery.nivo.slider.pack.js +0 -0
  34. assets/{nivoslider → sliders/nivoslider}/nivo-slider.css +0 -0
  35. assets/{nivoslider → sliders/nivoslider}/themes/bar/arrows.png +0 -0
  36. assets/{nivoslider → sliders/nivoslider}/themes/bar/bar.css +0 -0
  37. assets/{nivoslider → sliders/nivoslider}/themes/bar/bullets.png +0 -0
  38. assets/{nivoslider → sliders/nivoslider}/themes/bar/loading.gif +0 -0
  39. assets/{nivoslider → sliders/nivoslider}/themes/dark/arrows.png +0 -0
  40. assets/{nivoslider → sliders/nivoslider}/themes/dark/bullets.png +0 -0
  41. assets/{nivoslider → sliders/nivoslider}/themes/dark/dark.css +0 -0
  42. assets/{nivoslider → sliders/nivoslider}/themes/dark/loading.gif +0 -0
  43. assets/{nivoslider → sliders/nivoslider}/themes/default/arrows.png +0 -0
  44. assets/{nivoslider → sliders/nivoslider}/themes/default/bullets.png +0 -0
  45. assets/{nivoslider → sliders/nivoslider}/themes/default/default.css +0 -1
  46. assets/{nivoslider → sliders/nivoslider}/themes/default/loading.gif +0 -0
  47. assets/{nivoslider → sliders/nivoslider}/themes/light/arrows.png +0 -0
  48. assets/{nivoslider → sliders/nivoslider}/themes/light/bullets.png +0 -0
  49. assets/{nivoslider → sliders/nivoslider}/themes/light/light.css +0 -0
  50. assets/{nivoslider → sliders/nivoslider}/themes/light/loading.gif +0 -0
  51. assets/{responsiveslides → sliders/responsiveslides}/responsiveslides.css +0 -0
  52. assets/{responsiveslides → sliders/responsiveslides}/responsiveslides.min.js +0 -0
  53. inc/metaslider.class.php +0 -210
  54. inc/metaslider.flex.class.php +0 -78
  55. inc/metaslider.imagehelper.class.php +210 -0
  56. inc/slide/metaslide.class.php +96 -0
  57. inc/slide/metaslide.image.class.php +208 -0
  58. inc/slider/metaslider.class.php +392 -0
  59. inc/{metaslider.coin.class.php → slider/metaslider.coin.class.php} +11 -30
  60. inc/slider/metaslider.flex.class.php +112 -0
  61. inc/{metaslider.nivo.class.php → slider/metaslider.nivo.class.php} +26 -17
  62. inc/{metaslider.responsive.class.php → slider/metaslider.responsive.class.php} +14 -31
  63. languages/default.mo +0 -0
  64. languages/default.po +0 -272
  65. languages/metaslider-fr_FR.mo +0 -0
  66. languages/metaslider-fr_FR.po +356 -0
  67. languages/metaslider.mo +0 -0
  68. languages/metaslider.po +351 -0
  69. ml-slider.php +460 -392
  70. preview.php +19 -0
  71. readme.txt +73 -41
assets/coinslider/coin-slider-styles.css DELETED
@@ -1,17 +0,0 @@
1
- /*
2
- Coin Slider jQuery plugin CSS styles
3
- http://workshop.rs/projects/coin-slider
4
- */
5
-
6
-
7
- .coin-slider { overflow: hidden; zoom: 1; position: relative; }
8
- .coin-slider a{ text-decoration: none; outline: none; border: none; }
9
-
10
- .cs-buttons { font-size: 0px; padding: 10px; float: left; }
11
- .cs-buttons a { margin-left: 5px; height: 10px; width: 10px; float: left; border: 1px solid #B8C4CF; color: #B8C4CF; text-indent: -1000px; }
12
- .cs-active { background-color: #B8C4CF; color: #FFFFFF; }
13
-
14
- .cs-title { width: 545px; padding: 10px; background-color: #000000; color: #FFFFFF; }
15
-
16
- .cs-prev,
17
- .cs-next { background-color: #000000; color: #FFFFFF; padding: 0px 10px; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/coinslider/coin-slider.min.js DELETED
@@ -1,51 +0,0 @@
1
- /**
2
- * Coin Slider - Unique jQuery Image Slider
3
- * @version: 1.0 - (2010/04/04)
4
- * @requires jQuery v1.2.2 or later
5
- * @author Ivan Lazarevic
6
- * Examples and documentation at: http://workshop.rs/projects/coin-slider/
7
-
8
- * Licensed under MIT licence:
9
- * http://www.opensource.org/licenses/mit-license.php
10
- **/
11
-
12
- (function($){var params=new Array;var order=new Array;var images=new Array;var links=new Array;var linksTarget=new Array;var titles=new Array;var interval=new Array;var imagePos=new Array;var appInterval=new Array;var squarePos=new Array;var reverse=new Array;$.fn.coinslider=$.fn.CoinSlider=function(options){init=function(el){order[el.id]=new Array();images[el.id]=new Array();links[el.id]=new Array();linksTarget[el.id]=new Array();titles[el.id]=new Array();imagePos[el.id]=0;squarePos[el.id]=0;reverse[el.id]=1;params[el.id]=$.extend({},$.fn.coinslider.defaults,options);$.each($('#'+el.id+' img'),function(i,item){images[el.id][i]=$(item).attr('src');links[el.id][i]=$(item).parent().is('a')?$(item).parent().attr('href'):'';linksTarget[el.id][i]=$(item).parent().is('a')?$(item).parent().attr('target'):'';titles[el.id][i]=$(item).next().is('span')?$(item).next().html():'';$(item).hide();$(item).next().hide();});$(el).css({'background-image':'url('+images[el.id][0]+')','width':params[el.id].width,'height':params[el.id].height,'position':'relative','background-position':'top left'}).wrap("<div class='coin-slider' id='coin-slider-"+el.id+"' />");$('#'+el.id).append("<div class='cs-title' id='cs-title-"+el.id+"' style='position: absolute; bottom:0; left: 0; z-index: 1000;'></div>");$.setFields(el);if(params[el.id].navigation)
13
- $.setNavigation(el);$.transition(el,0);$.transitionCall(el);}
14
- $.setFields=function(el){tWidth=sWidth=parseInt(params[el.id].width/params[el.id].spw);tHeight=sHeight=parseInt(params[el.id].height/params[el.id].sph);counter=sLeft=sTop=0;tgapx=gapx=params[el.id].width-params[el.id].spw*sWidth;tgapy=gapy=params[el.id].height-params[el.id].sph*sHeight;for(i=1;i<=params[el.id].sph;i++){gapx=tgapx;if(gapy>0){gapy--;sHeight=tHeight+1;}else{sHeight=tHeight;}
15
- for(j=1;j<=params[el.id].spw;j++){if(gapx>0){gapx--;sWidth=tWidth+1;}else{sWidth=tWidth;}
16
- order[el.id][counter]=i+''+j;counter++;if(params[el.id].links)
17
- $('#'+el.id).append("<a href='"+links[el.id][0]+"' class='cs-"+el.id+"' id='cs-"+el.id+i+j+"' style='width:"+sWidth+"px; height:"+sHeight+"px; float: left; position: absolute;'></a>");else
18
- $('#'+el.id).append("<div class='cs-"+el.id+"' id='cs-"+el.id+i+j+"' style='width:"+sWidth+"px; height:"+sHeight+"px; float: left; position: absolute;'></div>");$("#cs-"+el.id+i+j).css({'background-position':-sLeft+'px '+(-sTop+'px'),'left':sLeft,'top':sTop});sLeft+=sWidth;}
19
- sTop+=sHeight;sLeft=0;}
20
- $('.cs-'+el.id).mouseover(function(){$('#cs-navigation-'+el.id).show();});$('.cs-'+el.id).mouseout(function(){$('#cs-navigation-'+el.id).hide();});$('#cs-title-'+el.id).mouseover(function(){$('#cs-navigation-'+el.id).show();});$('#cs-title-'+el.id).mouseout(function(){$('#cs-navigation-'+el.id).hide();});if(params[el.id].hoverPause){$('.cs-'+el.id).mouseover(function(){params[el.id].pause=true;});$('.cs-'+el.id).mouseout(function(){params[el.id].pause=false;});$('#cs-title-'+el.id).mouseover(function(){params[el.id].pause=true;});$('#cs-title-'+el.id).mouseout(function(){params[el.id].pause=false;});}};$.transitionCall=function(el){clearInterval(interval[el.id]);delay=params[el.id].delay+params[el.id].spw*params[el.id].sph*params[el.id].sDelay;interval[el.id]=setInterval(function(){$.transition(el)},delay);}
21
- $.transition=function(el,direction){if(params[el.id].pause==true)return;$.effect(el);squarePos[el.id]=0;appInterval[el.id]=setInterval(function(){$.appereance(el,order[el.id][squarePos[el.id]])},params[el.id].sDelay);$(el).css({'background-image':'url('+images[el.id][imagePos[el.id]]+')'});if(typeof(direction)=="undefined")
22
- imagePos[el.id]++;else
23
- if(direction=='prev')
24
- imagePos[el.id]--;else
25
- imagePos[el.id]=direction;if(imagePos[el.id]==images[el.id].length){imagePos[el.id]=0;}
26
- if(imagePos[el.id]==-1){imagePos[el.id]=images[el.id].length-1;}
27
- $('.cs-button-'+el.id).removeClass('cs-active');$('#cs-button-'+el.id+"-"+(imagePos[el.id]+1)).addClass('cs-active');if(titles[el.id][imagePos[el.id]]){$('#cs-title-'+el.id).css({'opacity':0}).animate({'opacity':params[el.id].opacity},params[el.id].titleSpeed);$('#cs-title-'+el.id).html(titles[el.id][imagePos[el.id]]);}else{$('#cs-title-'+el.id).css('opacity',0);}};$.appereance=function(el,sid){$('.cs-'+el.id).attr('href',links[el.id][imagePos[el.id]]).attr('target',linksTarget[el.id][imagePos[el.id]]);if(squarePos[el.id]==params[el.id].spw*params[el.id].sph){clearInterval(appInterval[el.id]);return;}
28
- $('#cs-'+el.id+sid).css({opacity:0,'background-image':'url('+images[el.id][imagePos[el.id]]+')'});$('#cs-'+el.id+sid).animate({opacity:1},300);squarePos[el.id]++;};$.setNavigation=function(el){$(el).append("<div id='cs-navigation-"+el.id+"'></div>");$('#cs-navigation-'+el.id).hide();$('#cs-navigation-'+el.id).append("<a href='#' id='cs-prev-"+el.id+"' class='cs-prev'>prev</a>");$('#cs-navigation-'+el.id).append("<a href='#' id='cs-next-"+el.id+"' class='cs-next'>next</a>");$('#cs-prev-'+el.id).css({'position':'absolute','top':params[el.id].height/2-15,'left':0,'z-index':1001,'line-height':'30px','opacity':params[el.id].opacity}).click(function(e){e.preventDefault();$.transition(el,'prev');$.transitionCall(el);}).mouseover(function(){$('#cs-navigation-'+el.id).show()});$('#cs-next-'+el.id).css({'position':'absolute','top':params[el.id].height/2-15,'right':0,'z-index':1001,'line-height':'30px','opacity':params[el.id].opacity}).click(function(e){e.preventDefault();$.transition(el);$.transitionCall(el);}).mouseover(function(){$('#cs-navigation-'+el.id).show()});$("<div id='cs-buttons-"+el.id+"' class='cs-buttons'></div>").appendTo($('#coin-slider-'+el.id));for(k=1;k<images[el.id].length+1;k++){$('#cs-buttons-'+el.id).append("<a href='#' class='cs-button-"+el.id+"' id='cs-button-"+el.id+"-"+k+"'>"+k+"</a>");}
29
- $.each($('.cs-button-'+el.id),function(i,item){$(item).click(function(e){$('.cs-button-'+el.id).removeClass('cs-active');$(this).addClass('cs-active');e.preventDefault();$.transition(el,i);$.transitionCall(el);})});$('#cs-navigation-'+el.id+' a').mouseout(function(){$('#cs-navigation-'+el.id).hide();params[el.id].pause=false;});$("#cs-buttons-"+el.id).css({'left':'50%','margin-left':-images[el.id].length*15/2-5,'position':'relative'});}
30
- $.effect=function(el){effA=['random','swirl','rain','straight'];if(params[el.id].effect=='')
31
- eff=effA[Math.floor(Math.random()*(effA.length))];else
32
- eff=params[el.id].effect;order[el.id]=new Array();if(eff=='random'){counter=0;for(i=1;i<=params[el.id].sph;i++){for(j=1;j<=params[el.id].spw;j++){order[el.id][counter]=i+''+j;counter++;}}
33
- $.random(order[el.id]);}
34
- if(eff=='rain'){$.rain(el);}
35
- if(eff=='swirl')
36
- $.swirl(el);if(eff=='straight')
37
- $.straight(el);reverse[el.id]*=-1;if(reverse[el.id]>0){order[el.id].reverse();}}
38
- $.random=function(arr){var i=arr.length;if(i==0)return false;while(--i){var j=Math.floor(Math.random()*(i+1));var tempi=arr[i];var tempj=arr[j];arr[i]=tempj;arr[j]=tempi;}}
39
- $.swirl=function(el){var n=params[el.id].sph;var m=params[el.id].spw;var x=1;var y=1;var going=0;var num=0;var c=0;var dowhile=true;while(dowhile){num=(going==0||going==2)?m:n;for(i=1;i<=num;i++){order[el.id][c]=x+''+y;c++;if(i!=num){switch(going){case 0:y++;break;case 1:x++;break;case 2:y--;break;case 3:x--;break;}}}
40
- going=(going+1)%4;switch(going){case 0:m--;y++;break;case 1:n--;x++;break;case 2:m--;y--;break;case 3:n--;x--;break;}
41
- check=$.max(n,m)-$.min(n,m);if(m<=check&&n<=check)
42
- dowhile=false;}}
43
- $.rain=function(el){var n=params[el.id].sph;var m=params[el.id].spw;var c=0;var to=to2=from=1;var dowhile=true;while(dowhile){for(i=from;i<=to;i++){order[el.id][c]=i+''+parseInt(to2-i+1);c++;}
44
- to2++;if(to<n&&to2<m&&n<m){to++;}
45
- if(to<n&&n>=m){to++;}
46
- if(to2>m){from++;}
47
- if(from>to)dowhile=false;}}
48
- $.straight=function(el){counter=0;for(i=1;i<=params[el.id].sph;i++){for(j=1;j<=params[el.id].spw;j++){order[el.id][counter]=i+''+j;counter++;}}}
49
- $.min=function(n,m){if(n>m)return m;else return n;}
50
- $.max=function(n,m){if(n<m)return m;else return n;}
51
- this.each(function(){init(this);});};$.fn.coinslider.defaults={width:565,height:290,spw:7,sph:5,delay:3000,sDelay:30,opacity:0.7,titleSpeed:500,effect:'',navigation:true,links:true,hoverPause:true};})(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/colorbox/colorbox.css ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ ColorBox Core Style:
3
+ The following CSS is consistent between example themes and should not be altered.
4
+ */
5
+ #colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
6
+ #cboxOverlay{position:fixed; width:100%; height:100%;}
7
+ #cboxMiddleLeft, #cboxBottomLeft{clear:left;}
8
+ #cboxContent{position:relative;}
9
+ #cboxLoadedContent{overflow:auto; -webkit-overflow-scrolling: touch;}
10
+ #cboxTitle{margin:0;}
11
+ #cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%; height:100%;}
12
+ #cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
13
+ .cboxPhoto{float:left; margin:auto; border:0; display:block; max-width:none;}
14
+ .cboxIframe{width:100%; height:100%; display:block; border:0;}
15
+ #colorbox, #cboxContent, #cboxLoadedContent{box-sizing:content-box; -moz-box-sizing:content-box; -webkit-box-sizing:content-box;}
16
+
17
+ /*
18
+ User Style:
19
+ Change the following styles to modify the appearance of ColorBox. They are
20
+ ordered & tabbed in a way that represents the nesting of the generated HTML.
21
+ */
22
+ #cboxOverlay{background:url(images/overlay.png) repeat 0 0;}
23
+ #colorbox{outline:0;}
24
+
25
+ #cboxContent{background:#fff; overflow:hidden; padding: 10px;}
26
+ .cboxIframe{background:#fff;}
27
+ #cboxError{padding:50px; border:1px solid #ccc;}
28
+ #cboxLoadedContent{margin-bottom:28px;}
29
+ #cboxTitle{position:absolute; bottom:4px; left:0; text-align:center; width:100%; color:#949494;}
30
+ #cboxCurrent{position:absolute; bottom:4px; left:58px; color:#949494;}
31
+ #cboxLoadingOverlay{background:url(images/loading_background.png) no-repeat center center;}
32
+ #cboxLoadingGraphic{background:url(images/loading.gif) no-repeat center center;}
33
+
34
+ /* these elements are buttons, and may need to have additional styles reset to avoid unwanted base styles */
35
+ #cboxPrevious, #cboxNext, #cboxSlideshow, #cboxClose {border:0; padding:0; margin:0; overflow:visible; width:auto; background:none; }
36
+
37
+ /* avoid outlines on :active (mouseclick), but preserve outlines on :focus (tabbed navigating) */
38
+ #cboxPrevious:active, #cboxNext:active, #cboxSlideshow:active, #cboxClose:active {outline:0;}
39
+
40
+ #cboxSlideshow{position:absolute; bottom:4px; right:30px; color:#0092ef;}
41
+ #cboxPrevious{position:absolute; bottom:0; left:0; background:url(images/controls.png) no-repeat -75px 0; width:25px; height:25px; text-indent:-9999px;}
42
+ #cboxPrevious:hover{background-position:-75px -25px;}
43
+ #cboxNext{position:absolute; bottom:0; left:27px; background:url(images/controls.png) no-repeat -50px 0; width:25px; height:25px; text-indent:-9999px;}
44
+ #cboxNext:hover{background-position:-50px -25px;}
45
+ #cboxClose{position:absolute; bottom:0; right:0; background:url(images/controls.png) no-repeat -25px 0; width:25px; height:25px; text-indent:-9999px;}
46
+ #cboxClose:hover{background-position:-25px -25px;}
47
+
48
+ /*
49
+ The following fixes a problem where IE7 and IE8 replace a PNG's alpha transparency with a black fill
50
+ when an alpha filter (opacity change) is set on the element or ancestor element. This style is not applied to or needed in IE9.
51
+ See: http://jacklmoore.com/notes/ie-transparency-problems/
52
+ */
53
+ .cboxIE #cboxTopLeft,
54
+ .cboxIE #cboxTopCenter,
55
+ .cboxIE #cboxTopRight,
56
+ .cboxIE #cboxBottomLeft,
57
+ .cboxIE #cboxBottomCenter,
58
+ .cboxIE #cboxBottomRight,
59
+ .cboxIE #cboxMiddleLeft,
60
+ .cboxIE #cboxMiddleRight {
61
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);
62
+ }
63
+
64
+ /*
65
+ The following provides PNG transparency support for IE6
66
+ Feel free to remove this and the /ie6/ directory if you have dropped IE6 support.
67
+ */
68
+ .cboxIE6 #cboxTopLeft{background:url(images/ie6/borderTopLeft.png);}
69
+ .cboxIE6 #cboxTopCenter{background:url(images/ie6/borderTopCenter.png);}
70
+ .cboxIE6 #cboxTopRight{background:url(images/ie6/borderTopRight.png);}
71
+ .cboxIE6 #cboxBottomLeft{background:url(images/ie6/borderBottomLeft.png);}
72
+ .cboxIE6 #cboxBottomCenter{background:url(images/ie6/borderBottomCenter.png);}
73
+ .cboxIE6 #cboxBottomRight{background:url(images/ie6/borderBottomRight.png);}
74
+ .cboxIE6 #cboxMiddleLeft{background:url(images/ie6/borderMiddleLeft.png);}
75
+ .cboxIE6 #cboxMiddleRight{background:url(images/ie6/borderMiddleRight.png);}
76
+
77
+ .cboxIE6 #cboxTopLeft,
78
+ .cboxIE6 #cboxTopCenter,
79
+ .cboxIE6 #cboxTopRight,
80
+ .cboxIE6 #cboxBottomLeft,
81
+ .cboxIE6 #cboxBottomCenter,
82
+ .cboxIE6 #cboxBottomRight,
83
+ .cboxIE6 #cboxMiddleLeft,
84
+ .cboxIE6 #cboxMiddleRight {
85
+ _behavior: expression(this.src = this.src ? this.src : this.currentStyle.backgroundImage.split('"')[1], this.style.background = "none", this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src=" + this.src + ", sizingMethod='scale')");
86
+ }
assets/colorbox/images/border.png ADDED
Binary file
assets/colorbox/images/controls.png ADDED
Binary file
assets/colorbox/images/ie6/borderBottomCenter.png ADDED
Binary file
assets/colorbox/images/ie6/borderBottomLeft.png ADDED
Binary file
assets/colorbox/images/ie6/borderBottomRight.png ADDED
Binary file
assets/colorbox/images/ie6/borderMiddleLeft.png ADDED
Binary file
assets/colorbox/images/ie6/borderMiddleRight.png ADDED
Binary file
assets/colorbox/images/ie6/borderTopCenter.png ADDED
Binary file
assets/colorbox/images/ie6/borderTopLeft.png ADDED
Binary file
assets/colorbox/images/ie6/borderTopRight.png ADDED
Binary file
assets/colorbox/images/loading.gif ADDED
Binary file
assets/colorbox/images/loading_background.png ADDED
Binary file
assets/colorbox/images/overlay.png ADDED
Binary file
assets/colorbox/jquery.colorbox-min.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ /*!
2
+ jQuery ColorBox v1.4.3 - 2013-02-18
3
+ (c) 2013 Jack Moore - jacklmoore.com/colorbox
4
+ license: http://www.opensource.org/licenses/mit-license.php
5
+ */
6
+ (function(e,t,i){function o(i,o,n){var r=t.createElement(i);return o&&(r.id=Y+o),n&&(r.style.cssText=n),e(r)}function n(e){var t=T.length,i=(A+e)%t;return 0>i?t+i:i}function r(e,t){return Math.round((/%/.test(e)?("x"===t?k.width():k.height())/100:1)*parseInt(e,10))}function h(e,t){return e.photo||e.photoRegex.test(t)}function l(e,t){return e.retinaUrl&&i.devicePixelRatio>1?t.replace(e.photoRegex,e.retinaSuffix):t}function s(e){"contains"in w[0]&&!w[0].contains(e.target)&&(e.stopPropagation(),w.focus())}function a(){var t,i=e.data(N,V);null==i?(K=e.extend({},J),console&&console.log&&console.log("Error: cboxElement missing settings object")):K=e.extend({},i);for(t in K)e.isFunction(K[t])&&"on"!==t.slice(0,2)&&(K[t]=K[t].call(N));K.rel=K.rel||N.rel||e(N).data("rel")||"nofollow",K.href=K.href||e(N).attr("href"),K.title=K.title||N.title,"string"==typeof K.href&&(K.href=e.trim(K.href))}function d(i,o){e(t).trigger(i),at.trigger(i),e.isFunction(o)&&o.call(N)}function c(){var e,t,i,o,n,r=Y+"Slideshow_",h="click."+Y;K.slideshow&&T[1]?(t=function(){clearTimeout(e)},i=function(){(K.loop||T[A+1])&&(e=setTimeout(G.next,K.slideshowSpeed))},o=function(){M.html(K.slideshowStop).unbind(h).one(h,n),at.bind(it,i).bind(tt,t).bind(ot,n),w.removeClass(r+"off").addClass(r+"on")},n=function(){t(),at.unbind(it,i).unbind(tt,t).unbind(ot,n),M.html(K.slideshowStart).unbind(h).one(h,function(){G.next(),o()}),w.removeClass(r+"on").addClass(r+"off")},K.slideshowAuto?o():n()):w.removeClass(r+"off "+r+"on")}function u(i){U||(N=i,a(),T=e(N),A=0,"nofollow"!==K.rel&&(T=e("."+Z).filter(function(){var t,i=e.data(this,V);return i&&(t=e(this).data("rel")||i.rel||this.rel),t===K.rel}),A=T.index(N),-1===A&&(T=T.add(N),A=T.length-1)),m.css({opacity:parseFloat(K.opacity),cursor:K.overlayClose?"pointer":"auto",visibility:"visible"}).show(),j||(j=q=!0,w.css({visibility:"hidden",display:"block"}),E=o(dt,"LoadedContent","width:0; height:0; overflow:hidden").appendTo(v),_=x.height()+C.height()+v.outerHeight(!0)-v.height(),z=y.width()+b.width()+v.outerWidth(!0)-v.width(),D=E.outerHeight(!0),B=E.outerWidth(!0),K.w=r(K.initialWidth,"x"),K.h=r(K.initialHeight,"y"),G.position(),lt&&k.bind("resize."+st+" scroll."+st,function(){m.css({width:k.width(),height:k.height(),top:k.scrollTop(),left:k.scrollLeft()})}).trigger("resize."+st),c(),d(et,K.onOpen),P.add(W).hide(),R.html(K.close).show(),w.focus(),t.addEventListener&&(t.addEventListener("focus",s,!0),at.one(nt,function(){t.removeEventListener("focus",s,!0)})),K.returnFocus&&at.one(nt,function(){e(N).focus()})),G.load(!0))}function f(){!w&&t.body&&(X=!1,k=e(i),w=o(dt).attr({id:V,"class":ht?Y+(lt?"IE6":"IE"):"",role:"dialog",tabindex:"-1"}).hide(),m=o(dt,"Overlay",lt?"position:absolute":"").hide(),L=o(dt,"LoadingOverlay").add(o(dt,"LoadingGraphic")),g=o(dt,"Wrapper"),v=o(dt,"Content").append(W=o(dt,"Title"),H=o(dt,"Current"),F=o("button","Previous"),S=o("button","Next"),M=o("button","Slideshow"),L,R=o("button","Close")),g.append(o(dt).append(o(dt,"TopLeft"),x=o(dt,"TopCenter"),o(dt,"TopRight")),o(dt,!1,"clear:left").append(y=o(dt,"MiddleLeft"),v,b=o(dt,"MiddleRight")),o(dt,!1,"clear:left").append(o(dt,"BottomLeft"),C=o(dt,"BottomCenter"),o(dt,"BottomRight"))).find("div div").css({"float":"left"}),I=o(dt,!1,"position:absolute; width:9999px; visibility:hidden; display:none"),P=S.add(F).add(H).add(M),e(t.body).append(m,w.append(g,I)))}function p(){function i(e){e.which>1||e.shiftKey||e.altKey||e.metaKey||(e.preventDefault(),u(this))}return w?(X||(X=!0,S.click(function(){G.next()}),F.click(function(){G.prev()}),R.click(function(){G.close()}),m.click(function(){K.overlayClose&&G.close()}),e(t).bind("keydown."+Y,function(e){var t=e.keyCode;j&&K.escKey&&27===t&&(e.preventDefault(),G.close()),j&&K.arrowKey&&T[1]&&!e.altKey&&(37===t?(e.preventDefault(),F.click()):39===t&&(e.preventDefault(),S.click()))}),e.isFunction(e.fn.on)?e(t).on("click."+Y,"."+Z,i):e("."+Z).live("click."+Y,i)),!0):!1}var m,w,g,v,x,y,b,C,T,k,E,I,L,W,H,M,S,F,R,P,K,_,z,D,B,N,A,O,j,q,U,$,G,Q,X,J={transition:"elastic",speed:300,width:!1,initialWidth:"600",innerWidth:!1,maxWidth:!1,height:!1,initialHeight:"450",innerHeight:!1,maxHeight:!1,scalePhotos:!0,scrolling:!0,inline:!1,html:!1,iframe:!1,fastIframe:!0,photo:!1,href:!1,title:!1,rel:!1,opacity:.9,preloading:!0,className:!1,retinaImage:!1,retinaUrl:!1,retinaSuffix:"@2x.$1",current:"image {current} of {total}",previous:"previous",next:"next",close:"close",xhrError:"This content failed to load.",imgError:"This image failed to load.",open:!1,returnFocus:!0,reposition:!0,loop:!0,slideshow:!1,slideshowAuto:!0,slideshowSpeed:2500,slideshowStart:"start slideshow",slideshowStop:"stop slideshow",photoRegex:/\.(gif|png|jp(e|g|eg)|bmp|ico)((#|\?).*)?$/i,onOpen:!1,onLoad:!1,onComplete:!1,onCleanup:!1,onClosed:!1,overlayClose:!0,escKey:!0,arrowKey:!0,top:!1,bottom:!1,left:!1,right:!1,fixed:!1,data:void 0},V="colorbox",Y="cbox",Z=Y+"Element",et=Y+"_open",tt=Y+"_load",it=Y+"_complete",ot=Y+"_cleanup",nt=Y+"_closed",rt=Y+"_purge",ht=!e.support.leadingWhitespace,lt=ht&&!i.XMLHttpRequest,st=Y+"_IE6",at=e({}),dt="div";e.colorbox||(e(f),G=e.fn[V]=e[V]=function(t,i){var o=this;if(t=t||{},f(),p()){if(e.isFunction(o))o=e("<a/>"),t.open=!0;else if(!o[0])return o;i&&(t.onComplete=i),o.each(function(){e.data(this,V,e.extend({},e.data(this,V)||J,t))}).addClass(Z),(e.isFunction(t.open)&&t.open.call(o)||t.open)&&u(o[0])}return o},G.position=function(e,t){function i(e){x[0].style.width=C[0].style.width=v[0].style.width=parseInt(e.style.width,10)-z+"px",v[0].style.height=y[0].style.height=b[0].style.height=parseInt(e.style.height,10)-_+"px"}var o,n,h,l=0,s=0,a=w.offset();k.unbind("resize."+Y),w.css({top:-9e4,left:-9e4}),n=k.scrollTop(),h=k.scrollLeft(),K.fixed&&!lt?(a.top-=n,a.left-=h,w.css({position:"fixed"})):(l=n,s=h,w.css({position:"absolute"})),s+=K.right!==!1?Math.max(k.width()-K.w-B-z-r(K.right,"x"),0):K.left!==!1?r(K.left,"x"):Math.round(Math.max(k.width()-K.w-B-z,0)/2),l+=K.bottom!==!1?Math.max(k.height()-K.h-D-_-r(K.bottom,"y"),0):K.top!==!1?r(K.top,"y"):Math.round(Math.max(k.height()-K.h-D-_,0)/2),w.css({top:a.top,left:a.left,visibility:"visible"}),e=w.width()===K.w+B&&w.height()===K.h+D?0:e||0,g[0].style.width=g[0].style.height="9999px",o={width:K.w+B+z,height:K.h+D+_,top:l,left:s},0===e&&w.css(o),w.dequeue().animate(o,{duration:e,complete:function(){i(this),q=!1,g[0].style.width=K.w+B+z+"px",g[0].style.height=K.h+D+_+"px",K.reposition&&setTimeout(function(){k.bind("resize."+Y,G.position)},1),t&&t()},step:function(){i(this)}})},G.resize=function(e){j&&(e=e||{},e.width&&(K.w=r(e.width,"x")-B-z),e.innerWidth&&(K.w=r(e.innerWidth,"x")),E.css({width:K.w}),e.height&&(K.h=r(e.height,"y")-D-_),e.innerHeight&&(K.h=r(e.innerHeight,"y")),e.innerHeight||e.height||(E.css({height:"auto"}),K.h=E.height()),E.css({height:K.h}),G.position("none"===K.transition?0:K.speed))},G.prep=function(t){function i(){return K.w=K.w||E.width(),K.w=K.mw&&K.mw<K.w?K.mw:K.w,K.w}function r(){return K.h=K.h||E.height(),K.h=K.mh&&K.mh<K.h?K.mh:K.h,K.h}if(j){var s,a="none"===K.transition?0:K.speed;E.empty().remove(),E=o(dt,"LoadedContent").append(t),E.hide().appendTo(I.show()).css({width:i(),overflow:K.scrolling?"auto":"hidden"}).css({height:r()}).prependTo(v),I.hide(),e(O).css({"float":"none"}),s=function(){function t(){ht&&w[0].style.removeAttribute("filter")}var i,r,s=T.length,c="frameBorder",u="allowTransparency";j&&(r=function(){clearTimeout($),L.hide(),d(it,K.onComplete)},ht&&O&&E.fadeIn(100),W.html(K.title).add(E).show(),s>1?("string"==typeof K.current&&H.html(K.current.replace("{current}",A+1).replace("{total}",s)).show(),S[K.loop||s-1>A?"show":"hide"]().html(K.next),F[K.loop||A?"show":"hide"]().html(K.previous),K.slideshow&&M.show(),K.preloading&&e.each([n(-1),n(1)],function(){var t,i,o=T[this],n=e.data(o,V);n&&n.href?(t=n.href,e.isFunction(t)&&(t=t.call(o))):t=e(o).attr("href"),t&&h(n,t)&&(t=l(n,t),i=new Image,i.src=t)})):P.hide(),K.iframe?(i=o("iframe")[0],c in i&&(i[c]=0),u in i&&(i[u]="true"),K.scrolling||(i.scrolling="no"),e(i).attr({src:K.href,name:(new Date).getTime(),"class":Y+"Iframe",allowFullScreen:!0,webkitAllowFullScreen:!0,mozallowfullscreen:!0}).one("load",r).appendTo(E),at.one(rt,function(){i.src="//about:blank"}),K.fastIframe&&e(i).trigger("load")):r(),"fade"===K.transition?w.fadeTo(a,1,t):t())},"fade"===K.transition?w.fadeTo(a,0,function(){G.position(0,s)}):G.position(a,s)}},G.load=function(t){var n,s,c,u=G.prep;q=!0,O=!1,N=T[A],t||a(),Q&&w.add(m).removeClass(Q),K.className&&w.add(m).addClass(K.className),Q=K.className,d(rt),d(tt,K.onLoad),K.h=K.height?r(K.height,"y")-D-_:K.innerHeight&&r(K.innerHeight,"y"),K.w=K.width?r(K.width,"x")-B-z:K.innerWidth&&r(K.innerWidth,"x"),K.mw=K.w,K.mh=K.h,K.maxWidth&&(K.mw=r(K.maxWidth,"x")-B-z,K.mw=K.w&&K.w<K.mw?K.w:K.mw),K.maxHeight&&(K.mh=r(K.maxHeight,"y")-D-_,K.mh=K.h&&K.h<K.mh?K.h:K.mh),n=K.href,$=setTimeout(function(){L.show()},100),K.inline?(c=o(dt).hide().insertBefore(e(n)[0]),at.one(rt,function(){c.replaceWith(E.children())}),u(e(n))):K.iframe?u(" "):K.html?u(K.html):h(K,n)?(n=l(K,n),e(O=new Image).addClass(Y+"Photo").bind("error",function(){K.title=!1,u(o(dt,"Error").html(K.imgError))}).one("load",function(){var e;K.retinaImage&&i.devicePixelRatio>1&&(O.height=O.height/i.devicePixelRatio,O.width=O.width/i.devicePixelRatio),K.scalePhotos&&(s=function(){O.height-=O.height*e,O.width-=O.width*e},K.mw&&O.width>K.mw&&(e=(O.width-K.mw)/O.width,s()),K.mh&&O.height>K.mh&&(e=(O.height-K.mh)/O.height,s())),K.h&&(O.style.marginTop=Math.max(K.mh-O.height,0)/2+"px"),T[1]&&(K.loop||T[A+1])&&(O.style.cursor="pointer",O.onclick=function(){G.next()}),ht&&(O.style.msInterpolationMode="bicubic"),setTimeout(function(){u(O)},1)}),setTimeout(function(){O.src=n},1)):n&&I.load(n,K.data,function(t,i){u("error"===i?o(dt,"Error").html(K.xhrError):e(this).contents())})},G.next=function(){!q&&T[1]&&(K.loop||T[A+1])&&(A=n(1),G.load())},G.prev=function(){!q&&T[1]&&(K.loop||A)&&(A=n(-1),G.load())},G.close=function(){j&&!U&&(U=!0,j=!1,d(ot,K.onCleanup),k.unbind("."+Y+" ."+st),m.fadeTo(200,0),w.stop().fadeTo(300,0,function(){w.add(m).css({opacity:1,cursor:"auto"}).hide(),d(rt),E.empty().remove(),setTimeout(function(){U=!1,d(nt,K.onClosed)},1)}))},G.remove=function(){e([]).add(w).add(m).remove(),w=null,e("."+Z).removeData(V).removeClass(Z),e(t).unbind("click."+Y)},G.element=function(){return e(N)},G.settings=J)})(jQuery,document,window);
assets/easing/jQuery.easing.min.js ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
3
+ *
4
+ * Uses the built in easing capabilities added In jQuery 1.1
5
+ * to offer multiple easing options
6
+ *
7
+ * TERMS OF USE - EASING EQUATIONS
8
+ *
9
+ * Open source under the BSD License.
10
+ *
11
+ * Copyright © 2001 Robert Penner
12
+ * All rights reserved.
13
+ *
14
+ * TERMS OF USE - jQuery Easing
15
+ *
16
+ * Open source under the BSD License.
17
+ *
18
+ * Copyright © 2008 George McGinley Smith
19
+ * All rights reserved.
20
+ *
21
+ * Redistribution and use in source and binary forms, with or without modification,
22
+ * are permitted provided that the following conditions are met:
23
+ *
24
+ * Redistributions of source code must retain the above copyright notice, this list of
25
+ * conditions and the following disclaimer.
26
+ * Redistributions in binary form must reproduce the above copyright notice, this list
27
+ * of conditions and the following disclaimer in the documentation and/or other materials
28
+ * provided with the distribution.
29
+ *
30
+ * Neither the name of the author nor the names of contributors may be used to endorse
31
+ * or promote products derived from this software without specific prior written permission.
32
+ *
33
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
34
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
35
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
36
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
37
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
38
+ * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
39
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
40
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
41
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
42
+ *
43
+ */
44
+ jQuery.easing.jswing=jQuery.easing.swing;jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(e,f,a,h,g){return jQuery.easing[jQuery.easing.def](e,f,a,h,g)},easeInQuad:function(e,f,a,h,g){return h*(f/=g)*f+a},easeOutQuad:function(e,f,a,h,g){return -h*(f/=g)*(f-2)+a},easeInOutQuad:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f+a}return -h/2*((--f)*(f-2)-1)+a},easeInCubic:function(e,f,a,h,g){return h*(f/=g)*f*f+a},easeOutCubic:function(e,f,a,h,g){return h*((f=f/g-1)*f*f+1)+a},easeInOutCubic:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f+a}return h/2*((f-=2)*f*f+2)+a},easeInQuart:function(e,f,a,h,g){return h*(f/=g)*f*f*f+a},easeOutQuart:function(e,f,a,h,g){return -h*((f=f/g-1)*f*f*f-1)+a},easeInOutQuart:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f+a}return -h/2*((f-=2)*f*f*f-2)+a},easeInQuint:function(e,f,a,h,g){return h*(f/=g)*f*f*f*f+a},easeOutQuint:function(e,f,a,h,g){return h*((f=f/g-1)*f*f*f*f+1)+a},easeInOutQuint:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f*f+a}return h/2*((f-=2)*f*f*f*f+2)+a},easeInSine:function(e,f,a,h,g){return -h*Math.cos(f/g*(Math.PI/2))+h+a},easeOutSine:function(e,f,a,h,g){return h*Math.sin(f/g*(Math.PI/2))+a},easeInOutSine:function(e,f,a,h,g){return -h/2*(Math.cos(Math.PI*f/g)-1)+a},easeInExpo:function(e,f,a,h,g){return(f==0)?a:h*Math.pow(2,10*(f/g-1))+a},easeOutExpo:function(e,f,a,h,g){return(f==g)?a+h:h*(-Math.pow(2,-10*f/g)+1)+a},easeInOutExpo:function(e,f,a,h,g){if(f==0){return a}if(f==g){return a+h}if((f/=g/2)<1){return h/2*Math.pow(2,10*(f-1))+a}return h/2*(-Math.pow(2,-10*--f)+2)+a},easeInCirc:function(e,f,a,h,g){return -h*(Math.sqrt(1-(f/=g)*f)-1)+a},easeOutCirc:function(e,f,a,h,g){return h*Math.sqrt(1-(f=f/g-1)*f)+a},easeInOutCirc:function(e,f,a,h,g){if((f/=g/2)<1){return -h/2*(Math.sqrt(1-f*f)-1)+a}return h/2*(Math.sqrt(1-(f-=2)*f)+1)+a},easeInElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return -(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e},easeOutElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}return g*Math.pow(2,-10*h)*Math.sin((h*k-i)*(2*Math.PI)/j)+l+e},easeInOutElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k/2)==2){return e+l}if(!j){j=k*(0.3*1.5)}if(g<Math.abs(l)){g=l;var i=j/4}else{var i=j/(2*Math.PI)*Math.asin(l/g)}if(h<1){return -0.5*(g*Math.pow(2,10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j))+e}return g*Math.pow(2,-10*(h-=1))*Math.sin((h*k-i)*(2*Math.PI)/j)*0.5+l+e},easeInBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}return i*(f/=h)*f*((g+1)*f-g)+a},easeOutBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}return i*((f=f/h-1)*f*((g+1)*f+g)+1)+a},easeInOutBack:function(e,f,a,i,h,g){if(g==undefined){g=1.70158}if((f/=h/2)<1){return i/2*(f*f*(((g*=(1.525))+1)*f-g))+a}return i/2*((f-=2)*f*(((g*=(1.525))+1)*f+g)+2)+a},easeInBounce:function(e,f,a,h,g){return h-jQuery.easing.easeOutBounce(e,g-f,0,h,g)+a},easeOutBounce:function(e,f,a,h,g){if((f/=g)<(1/2.75)){return h*(7.5625*f*f)+a}else{if(f<(2/2.75)){return h*(7.5625*(f-=(1.5/2.75))*f+0.75)+a}else{if(f<(2.5/2.75)){return h*(7.5625*(f-=(2.25/2.75))*f+0.9375)+a}else{return h*(7.5625*(f-=(2.625/2.75))*f+0.984375)+a}}}},easeInOutBounce:function(e,f,a,h,g){if(f<g/2){return jQuery.easing.easeInBounce(e,f*2,0,h,g)*0.5+a}return jQuery.easing.easeOutBounce(e,f*2-g,0,h,g)*0.5+h*0.5+a}});
assets/metaslider-admin.css DELETED
@@ -1,218 +0,0 @@
1
- .msTipsy .tipsy-inner { color: white; background-color: #555; }
2
- .msTipsy .tipsy-arrow-n { border-bottom-color: #555; }
3
- .msTipsy .tipsy-arrow-s { border-top-color: #555; }
4
- .msTipsy .tipsy-arrow-e { border-left-color: #555; }
5
- .msTipsy .tipsy-arrow-w { border-right-color: #555; }
6
-
7
- .metaslider .highlight {
8
- background: #f1f1f1;
9
- background-image: -webkit-gradient(linear, left bottom, left top, from(#ececec), to(#f9f9f9));
10
- background-image: -webkit-linear-gradient(bottom, #ececec, #f9f9f9);
11
- background-image: -moz-linear-gradient(bottom, #ececec, #f9f9f9);
12
- background-image: -o-linear-gradient(bottom, #ececec, #f9f9f9);
13
- background-image: linear-gradient(to top, #ececec, #f9f9f9);
14
- }
15
- .metaslider .ui-sortable-helper {
16
- box-shadow: 3px 3px 5px #cccccc;
17
- }
18
- .metaslider tr.slide .new_window {
19
- position: relative;
20
- float: right;
21
- font-size: 10px;
22
- padding: 0px 3px;
23
- color: #a9a9a9;
24
- }
25
- .metaslider tr.slide .new_window label {
26
- position: absolute;
27
- width: 78px;
28
- right: 0;
29
- top: -30px;
30
- }
31
- .metaslider tr.slide .new_window label input {
32
- margin: 1px 0 0 4px;
33
- margin-bottom: 0;
34
- }
35
- .metaslider .shortcode {
36
- width: 100%;
37
- margin-top: 20px;
38
-
39
- }
40
- .metaslider .shortcode input {
41
- width: 100%;
42
- font-size: 0.9em;
43
- background: transparent;
44
- border: 0;
45
- }
46
- .metaslider .shortcode td {
47
- border-bottom: 0;
48
- border-top: 0;
49
- font-size: 0.9em;
50
- }
51
- .metaslider .nav-tab,
52
- .metaslider h2.nav-tab-wrapper {
53
- font-size: 13px;
54
- }
55
- .metaslider .nav-tab-active input {
56
- padding: 0;
57
- margin: 0;
58
- border: 0;
59
- width: 100px;
60
- font-size: 13px;
61
- }
62
- .metaslider .left {
63
- width: 68%;
64
- margin-top: 20px;
65
- float: left;
66
- clear: none;
67
- }
68
- .metaslider .right {
69
- width: 30%;
70
- float: right;
71
- margin-top: 20px;
72
- clear: none;
73
- }
74
- .metaslider table.slides td {
75
- border-bottom: 0;
76
- border-top: 0;
77
- background: #f9f9f9;
78
- cursor: move;
79
- padding: 5px 10px 5px 10px;
80
- }
81
- .metaslider table.slides td.col-1 {
82
- padding: 10px 10px 0 10px;
83
- }
84
- .metaslider table.slides td.col-2 {
85
- padding: 10px 10px 0 0;
86
- }
87
- .metaslider table.slides tr:last-child td {
88
- padding-bottom: 10px;
89
- }
90
- .metaslider .unsaved {
91
- float: right;
92
- background: #ff3019; /* Old browsers */
93
- background: -moz-linear-gradient(top, #ff3019 0%, #cf0404 100%); /* FF3.6+ */
94
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ff3019), color-stop(100%,#cf0404)); /* Chrome,Safari4+ */
95
- background: -webkit-linear-gradient(top, #ff3019 0%,#cf0404 100%); /* Chrome10+,Safari5.1+ */
96
- background: -o-linear-gradient(top, #ff3019 0%,#cf0404 100%); /* Opera 11.10+ */
97
- background: -ms-linear-gradient(top, #ff3019 0%,#cf0404 100%); /* IE10+ */
98
- background: linear-gradient(to bottom, #ff3019 0%,#cf0404 100%); /* W3C */
99
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ff3019', endColorstr='#cf0404',GradientType=0 ); /* IE6-9 */
100
- color: white;
101
- padding: 1px 9px;
102
- border-radius: 3px;
103
- margin-top: 2px;
104
- font-weight: bold;
105
- font-size: 1em !important;
106
- text-rendering: optimizeLegibility;
107
- margin: 2px 10px;
108
- }
109
- .metaslider tr.slide {
110
- background-color: #f9f9f9;
111
- }
112
- .metaslider tr.slide textarea {
113
- width: 100%;
114
- height: 75px;
115
- margin-bottom: 5px;
116
- }
117
- .metaslider tr.slide input {
118
- margin-bottom: 10px;
119
- }
120
- .metaslider tr.slide input.alt,
121
- .metaslider tr.slide input.url {
122
- width: 100%;
123
- }
124
- .metaslider .delete-slide {
125
- position: relative;
126
- top: 0px;
127
- left: 0px;
128
- background: #EE2C2C;
129
- color: white;
130
- width: 16px;
131
- height: 16px;
132
- float: left;
133
- text-align: center;
134
- display: none;
135
- }
136
- .metaslider tr.slide td.col-1:hover .delete-slide {
137
- display: block;
138
- }
139
-
140
- .metaslider .slider-wrap {
141
- border-left: 1px solid #ccc;
142
- border-right: 1px solid #ccc;
143
- border-bottom: 1px solid #ccc;
144
- width: 100%;
145
- float: left;
146
- }
147
-
148
- .metaslider .slider-lib {
149
- float: left;
150
- width: 23%;
151
- margin: 1%;
152
- list-style-type: none;
153
- text-align: center;
154
- }
155
-
156
- .metaslider .tooltip {
157
- font-size: 0.9em;
158
- }
159
-
160
- .metaslider .settings td {
161
- font-size: 0.9em;
162
- vertical-align: middle;
163
- padding: 3px 0px 3px 6px;
164
- border-bottom: 0;
165
- }
166
-
167
- .metaslider .slider-lib label {
168
- color: white;
169
- border-radius: 10%;
170
- float: left;
171
- width: 100%;
172
- padding: 10px 0px;
173
- vertical-align: bottom;
174
- }
175
-
176
- .metaslider .slider-lib.nivo label {
177
- background: #b6e026; /* Old browsers */
178
- background: -moz-linear-gradient(top, #b6e026 0%, #abdc28 100%); /* FF3.6+ */
179
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#b6e026), color-stop(100%,#abdc28)); /* Chrome,Safari4+ */
180
- background: -webkit-linear-gradient(top, #b6e026 0%,#abdc28 100%); /* Chrome10+,Safari5.1+ */
181
- background: -o-linear-gradient(top, #b6e026 0%,#abdc28 100%); /* Opera 11.10+ */
182
- background: -ms-linear-gradient(top, #b6e026 0%,#abdc28 100%); /* IE10+ */
183
- background: linear-gradient(to bottom, #b6e026 0%,#abdc28 100%); /* W3C */
184
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#b6e026', endColorstr='#abdc28',GradientType=0 ); /* IE6-9 */
185
- }
186
- .metaslider .slider-lib.flex label {
187
- background: #00b7ea; /* Old browsers */
188
- background: -moz-linear-gradient(top, #00b7ea 0%, #009ec3 100%); /* FF3.6+ */
189
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#00b7ea), color-stop(100%,#009ec3)); /* Chrome,Safari4+ */
190
- background: -webkit-linear-gradient(top, #00b7ea 0%,#009ec3 100%); /* Chrome10+,Safari5.1+ */
191
- background: -o-linear-gradient(top, #00b7ea 0%,#009ec3 100%); /* Opera 11.10+ */
192
- background: -ms-linear-gradient(top, #00b7ea 0%,#009ec3 100%); /* IE10+ */
193
- background: linear-gradient(to bottom, #00b7ea 0%,#009ec3 100%); /* W3C */
194
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00b7ea', endColorstr='#009ec3',GradientType=0 ); /* IE6-9 */
195
- }
196
-
197
- .metaslider .slider-lib.coin label {
198
- background: #ffd65e; /* Old browsers */
199
- background: -moz-linear-gradient(top, #ffd65e 0%, #febf04 100%); /* FF3.6+ */
200
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffd65e), color-stop(100%,#febf04)); /* Chrome,Safari4+ */
201
- background: -webkit-linear-gradient(top, #ffd65e 0%,#febf04 100%); /* Chrome10+,Safari5.1+ */
202
- background: -o-linear-gradient(top, #ffd65e 0%,#febf04 100%); /* Opera 11.10+ */
203
- background: -ms-linear-gradient(top, #ffd65e 0%,#febf04 100%); /* IE10+ */
204
- background: linear-gradient(to bottom, #ffd65e 0%,#febf04 100%); /* W3C */
205
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffd65e', endColorstr='#febf04',GradientType=0 ); /* IE6-9 */
206
- }
207
-
208
- .metaslider .slider-lib.responsive label {
209
- background: #959595; /* Old browsers */
210
- background: -moz-linear-gradient(top, #959595 0%, #0d0d0d 46%, #010101 50%, #0a0a0a 53%, #4e4e4e 76%, #383838 87%, #1b1b1b 100%); /* FF3.6+ */
211
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#959595), color-stop(46%,#0d0d0d), color-stop(50%,#010101), color-stop(53%,#0a0a0a), color-stop(76%,#4e4e4e), color-stop(87%,#383838), color-stop(100%,#1b1b1b)); /* Chrome,Safari4+ */
212
- background: -webkit-linear-gradient(top, #959595 0%,#0d0d0d 46%,#010101 50%,#0a0a0a 53%,#4e4e4e 76%,#383838 87%,#1b1b1b 100%); /* Chrome10+,Safari5.1+ */
213
- background: -o-linear-gradient(top, #959595 0%,#0d0d0d 46%,#010101 50%,#0a0a0a 53%,#4e4e4e 76%,#383838 87%,#1b1b1b 100%); /* Opera 11.10+ */
214
- background: -ms-linear-gradient(top, #959595 0%,#0d0d0d 46%,#010101 50%,#0a0a0a 53%,#4e4e4e 76%,#383838 87%,#1b1b1b 100%); /* IE10+ */
215
- background: linear-gradient(to bottom, #959595 0%,#0d0d0d 46%,#010101 50%,#0a0a0a 53%,#4e4e4e 76%,#383838 87%,#1b1b1b 100%); /* W3C */
216
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#959595', endColorstr='#1b1b1b',GradientType=0 ); /* IE6-9 */
217
- }
218
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/metaslider-display.css DELETED
@@ -1,81 +0,0 @@
1
- .metaslider .flexslider,
2
- .metaslider .flexslider ul,
3
- .metaslider .flexslider .slides li,
4
- .metaslider .flexslider .slides ul,
5
- .metaslider .flexslider .slides ol,
6
- .metaslider .flexslider .flex-direction-nav,
7
- .metaslider .rslides li,
8
- .metaslider .rslides .rslides_tabs {
9
- border: 0;
10
- margin: 0;
11
- list-style-type: none;
12
- }
13
- .metaslider .flexslider .slides p {
14
- margin: 0;
15
- }
16
- .metaslider .flexslider .flex-control-nav {
17
- position: inherit;
18
- bottom: auto;
19
- }
20
- .metaslider .rslides_tabs {
21
- margin: 0;
22
- padding: 7px 0 !important;
23
- background: #333;
24
- box-shadow: 0 0 1px rgba(255,255,255,.3), inset 0 0 5px rgba(0,0,0,1.0);
25
- -moz-box-shadow: 0 0 1px rgba(255,255,255,.3), inset 0 0 5px rgba(0,0,0,1.0);
26
- -webkit-box-shadow: 0 0 1px rgba(255,255,255,.3), inset 0 0 5px rgba(0,0,0,1.0);
27
- font-size: 18px;
28
- list-style: none;
29
- margin: 0 auto 50px;
30
- padding: 10px 0;
31
- text-align: center;
32
- width: 100%;
33
- }
34
- .metaslider .rslides_tabs li {
35
- margin: 0;
36
- padding: 0;
37
- display: inline;
38
- float: none;
39
- margin-right: 1px;
40
- list-style-type: none;
41
- }
42
- .metaslider .rslides_tabs a {
43
- text-decoration: none;
44
- width: auto;
45
- line-height: 20px;
46
- padding: 9px 20px;
47
- height: auto;
48
- background: transparent;
49
- display: inline;
50
- }
51
- .metaslider .rslides_tabs a:hover {
52
- border: 0;
53
- color: white;
54
- }
55
-
56
- .metaslider .rslides_tabs li:first-child {
57
- margin-left: 0;
58
- }
59
- .metaslider .rslides_tabs .rslides_here a {
60
- background: rgba(255,255,255,.1);
61
- color: #fff;
62
- font-weight: bold;
63
- }
64
- .metaslider-responsive {
65
- position: relative;
66
- }
67
- .metaslider .rslides_nav {
68
- background-color: #000000;
69
- color: #FFFFFF;
70
- padding: 0px 10px;
71
- position:absolute;
72
- top:45%;
73
- z-index:9;
74
- cursor:pointer;
75
- }
76
- .metaslider .rslides_nav.prev {
77
- left:0px;
78
- }
79
- .metaslider .rslides_nav.next {
80
- right:0px;
81
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/metaslider.js DELETED
@@ -1,151 +0,0 @@
1
- /**
2
- * Ml SLider
3
- */
4
- (function ($) {
5
- $(function () {
6
-
7
- /**
8
- * Reindex the slides after they have been dragged/dropped
9
- */
10
- var updateSlideOrder = function() {
11
- $('.metaslider table.sortable tr').each(function() {
12
- $('input.menu_order', $(this)).val($(this).index());
13
- });
14
- }
15
-
16
- /**
17
- * Enable the correct options for this slider type
18
- */
19
- var enableOptions = function(slider) {
20
- $('.metaslider .option:not(.' + slider + ')').attr('disabled', 'disabled').css('color','#ccc').parents('tr').hide();
21
- $('.metaslider .option.' + slider).removeAttr('disabled').css('color','').parents('tr').show();
22
-
23
- if ($('.effect option:selected').attr('disabled') == 'disabled') {
24
- $('.effect option:enabled:first').attr('selected', 'selected');
25
- }
26
- }
27
-
28
- /**
29
- * Enable the correct options on page load
30
- */
31
- enableOptions($('.metaslider .select-slider:checked').attr('rel'));
32
-
33
- /**
34
- * Handle slide libary switching
35
- */
36
- $('.metaslider .select-slider').click(function() {
37
- enableOptions($(this).attr('rel'));
38
- });
39
-
40
- // Return a helper with preserved width of cells
41
- var helper = function(e, ui) {
42
- ui.children().each(function() {
43
- $(this).width($(this).width());
44
- });
45
- return ui;
46
- };
47
-
48
- $(".metaslider table.sortable tbody").sortable({
49
- helper: helper,
50
- stop: function() {
51
- updateSlideOrder()
52
- }
53
- });
54
-
55
-
56
- $(".confirm").click(function() {
57
- return confirm(metaslider.confirm);
58
- });
59
-
60
- /**
61
- * Helptext tooltips
62
- */
63
- $(".metaslider .tooltip").tipsy({className: 'msTipsy', live: true, delayIn: 200, html: true, fade: true, gravity: 'e'});
64
- $(".metaslider .tooltiptop").tipsy({live: true, delayIn: 500, html: true, fade: true, gravity: 'se'});
65
-
66
- /**
67
- * Image uploader
68
- */
69
- var file_frame;
70
-
71
- jQuery('.upload_image_button').live('click', function( event ){
72
- event.preventDefault();
73
-
74
- // If the media frame already exists, reopen it.
75
- if ( file_frame ) {
76
- file_frame.open();
77
- return;
78
- }
79
-
80
- // Create the media frame.
81
- file_frame = wp.media.frames.file_frame = wp.media({
82
- title: jQuery( this ).data( 'uploader_title' ),
83
- button: {
84
- text: jQuery( this ).data( 'uploader_button_text' ),
85
- },
86
- multiple: 'add'
87
- });
88
-
89
- // When an image is selected, run a callback.
90
- file_frame.on( 'select', function() {
91
- var selection = file_frame.state().get('selection');
92
-
93
- selection.map( function( attachment ) {
94
-
95
- attachment = attachment.toJSON();
96
-
97
- if (attachment.subtype == 'bmp') {
98
- alert('Warning: BML images not allowed');
99
- return;
100
- }
101
-
102
- var url = attachment.url;
103
-
104
- if (typeof(attachment.sizes.thumbnail) != 'undefined') {
105
- url = attachment.sizes.thumbnail.url;
106
- }
107
-
108
- var tableRow = "<tr class='slide'><td class='col-1'>" +
109
- "<div style='position: absolute'><a class='delete-slide remove-slide' href='#'>x</a></div>" +
110
- "<img src='" + url + "' width='150px'></td>" +
111
- "<td class='col-2'><textarea name='attachment[" + attachment.id + "][post_excerpt]' placeholder='" + metaslider.caption + "'>" + attachment.caption + "</textarea>" +
112
- "<input class='url' type='text' name='attachment[" + attachment.id + "][url]' placeholder='" + metaslider.url + "' value=''>" +
113
- "<div class='new_window'>" +
114
- "<label>" + metaslider.new_window + "<input type='checkbox' name='attachment[" + attachment.id + "][new_window]'></label>" +
115
- "</div>" +
116
- "<input type='hidden' class='menu_order' name='attachment[" + attachment.id + "][menu_order]'>" +
117
- "</td></tr>";
118
-
119
- // add slide to existing slides table
120
- jQuery(".metaslider .slides tbody").append(tableRow);
121
-
122
- // display the unsaved changes warning
123
- $('.metaslider .unsaved').show();
124
- });
125
-
126
- // the slides haven't been assigned to the slider yet, so just remove the row if the delete
127
- // button is clicked
128
- jQuery(".remove-slide").live('click', function(e){
129
- e.preventDefault();
130
- $(this).closest('tr').remove();
131
- });
132
-
133
- // reindex the slides
134
- updateSlideOrder();
135
-
136
- });
137
-
138
- file_frame.open();
139
- });
140
-
141
- // show the unsaved changes when the form is changed
142
- $('.metaslider form').live('change', function() {
143
- $('.metaslider .unsaved').fadeIn();
144
- });
145
-
146
- $(".metaslider .shortcode input").click(function(){
147
- // Select input field contents
148
- this.select();
149
- });
150
- });
151
- }(jQuery));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/metaslider/admin.css ADDED
@@ -0,0 +1,356 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .probutton,
2
+ .probutton:hover {
3
+ width: 36%;
4
+ margin: 20px 32%;
5
+ float: left;
6
+ font-size: 1.4em;
7
+ padding: 15px 0;
8
+ background-color: #759ae9;
9
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #759ae9), color-stop(50%, #376fe0), color-stop(50%, #1a5ad9), color-stop(100%, #2463de));
10
+ background-image: -webkit-linear-gradient(top, #759ae9 0%, #376fe0 50%, #1a5ad9 50%, #2463de 100%);
11
+ background-image: -moz-linear-gradient(top, #759ae9 0%, #376fe0 50%, #1a5ad9 50%, #2463de 100%);
12
+ background-image: -ms-linear-gradient(top, #759ae9 0%, #376fe0 50%, #1a5ad9 50%, #2463de 100%);
13
+ background-image: -o-linear-gradient(top, #759ae9 0%, #376fe0 50%, #1a5ad9 50%, #2463de 100%);
14
+ background-image: linear-gradient(top, #759ae9 0%, #376fe0 50%, #1a5ad9 50%, #2463de 100%);
15
+ border-top: 1px solid #1f58cc;
16
+ border-right: 1px solid #1b4db3;
17
+ border-bottom: 1px solid #174299;
18
+ border-left: 1px solid #1b4db3;
19
+ border-radius: 4px;
20
+ -webkit-box-shadow: inset 0 0 2px 0 rgba(57, 140, 255, 0.8);
21
+ box-shadow: inset 0 0 2px 0 rgba(57, 140, 255, 0.8);
22
+ color: #fff;
23
+ font-family: 'PT Sans', helvetica, arial, sans-serif;
24
+ text-shadow: 0 -1px 1px #1a5ad9;
25
+ color: white;
26
+ text-align: center;
27
+ text-decoration: none;
28
+ border-radius: 5px;
29
+ line-height: 2em;
30
+ }
31
+ .super {
32
+ text-transform: uppercase;
33
+ font-size: 0.7em;
34
+ vertical-align: top;
35
+ line-height: 2em;
36
+ }
37
+ .logo {
38
+ text-transform: uppercase;
39
+ }
40
+ .attachment-filters {
41
+ display: none;
42
+ }
43
+ .media-frame-menu .separator {
44
+ display: none;
45
+ }
46
+ .msTipsy .tipsy-arrow-s {
47
+ border-top-color: #555;
48
+ }
49
+ .msTipsy .tipsy-arrow-w {
50
+ border-right-color: #555;
51
+ }
52
+ .msTipsy .tipsy-arrow-n {
53
+ border-bottom-color: #555;
54
+ }
55
+ .msTipsy .tipsy-inner {
56
+ color: white;
57
+ background-color: #555;
58
+ }
59
+ .msTipsy .tipsy-arrow-e {
60
+ border-left-color: #555;
61
+ }
62
+ #cboxLoadedContent {
63
+ overflow: hidden !important;
64
+ }
65
+ #cboxLoadedContent iframe {
66
+ border: 0 none;
67
+ display: block;
68
+ height: 100%;
69
+ overflow: hidden;
70
+ width: 100%;
71
+ }
72
+ .metaslider .left table tr.slide input.alt,
73
+ .metaslider .left table tr.slide input.url {
74
+ width: 100%;
75
+ margin: 0 0 8px 0;
76
+ }
77
+ .metaslider .tooltip {
78
+ font-size: 0.9em;
79
+ }
80
+ .metaslider .nav-tab-active input {
81
+ padding: 0;
82
+ margin: 0;
83
+ border: 0;
84
+ width: 100px;
85
+ font-size: 13px;
86
+ }
87
+ .metaslider .button {
88
+ font-family: sans-serif;
89
+ }
90
+ .metaslider .widefat th {
91
+ padding: 6px 7px 5px;
92
+ font-size: 15px;
93
+ line-height: 1.4em;
94
+ }
95
+ .metaslider .nav-tab-wrapper :first-child {
96
+ margin-left: 5px;
97
+ }
98
+ .metaslider .ui-sortable-helper {
99
+ box-shadow: 3px 3px 5px #cccccc;
100
+ }
101
+ .metaslider .left {
102
+ width: 68%;
103
+ margin-top: 20px;
104
+ float: left;
105
+ clear: none;
106
+ }
107
+ @media (max-width: 900px) {
108
+ .metaslider .left {
109
+ width: 100%;
110
+ float: none;
111
+ }
112
+ }
113
+ .metaslider .left table {
114
+ width: 100%;
115
+ }
116
+ .metaslider .left table thead input {
117
+ margin-left: 5px;
118
+ }
119
+ .metaslider .left table thead .add-slide {
120
+ padding-left: 0.4em;
121
+ padding-right: 0.6em;
122
+ }
123
+ .metaslider .left table thead .add-slide .wp-media-buttons-icon {
124
+ background: url('../../../../../wp-admin/images/media-button.png') no-repeat top left;
125
+ display: inline-block;
126
+ width: 16px;
127
+ height: 16px;
128
+ vertical-align: text-top;
129
+ margin: 0 2px;
130
+ }
131
+ .metaslider .left table tr.slide {
132
+ background: #f9f9f9;
133
+ height: 167px;
134
+ }
135
+ .metaslider .left table tr.slide label input {
136
+ margin: 1px 0 10px 3px;
137
+ }
138
+ .metaslider .left table tr.slide textarea {
139
+ width: 100%;
140
+ height: 75px;
141
+ margin: 0 0 5px 0;
142
+ }
143
+ .metaslider .left table tr.slide td.col-1 {
144
+ cursor: move;
145
+ }
146
+ .metaslider .left table tr.slide td.col-1 .thumb {
147
+ position: relative;
148
+ height: 150px;
149
+ width: 150px;
150
+ background-size: auto 150px;
151
+ background-position: center;
152
+ }
153
+ .metaslider .left table tr.slide td.col-1 .thumb .delete-slide {
154
+ position: absolute;
155
+ top: 0px;
156
+ left: 0px;
157
+ background: #EE2C2C;
158
+ color: white;
159
+ width: 16px;
160
+ height: 16px;
161
+ float: left;
162
+ text-align: center;
163
+ display: none;
164
+ }
165
+ .metaslider .left table tr.slide td.col-1 .thumb .slide-details {
166
+ bottom: 0;
167
+ left: 0;
168
+ position: absolute;
169
+ background: #333;
170
+ color: white;
171
+ padding: 0 5px;
172
+ text-transform: uppercase;
173
+ font-size: 9px;
174
+ opacity: 0.6;
175
+ }
176
+ .metaslider .left table tr.slide td.col-1:hover .delete-slide {
177
+ display: block;
178
+ }
179
+ .metaslider .left table tr.slide .new_window {
180
+ position: relative;
181
+ float: right;
182
+ font-size: 10px;
183
+ padding: 0px 3px;
184
+ color: #a9a9a9;
185
+ }
186
+ .metaslider .left table tr.slide .new_window label {
187
+ position: absolute;
188
+ width: 78px;
189
+ right: 0;
190
+ top: -28px;
191
+ }
192
+ .metaslider .left table td {
193
+ border-top: 0;
194
+ padding: 8px;
195
+ }
196
+ .metaslider .left table td.col-2 {
197
+ padding: 8px 8px 8px 0;
198
+ }
199
+ .metaslider .right {
200
+ width: 30%;
201
+ float: right;
202
+ margin-top: 20px;
203
+ clear: none;
204
+ }
205
+ @media (max-width: 900px) {
206
+ .metaslider .right {
207
+ width: 100%;
208
+ float: none;
209
+ }
210
+ }
211
+ .metaslider .right .highlight {
212
+ background: #f1f1f1;
213
+ border-top: 3px solid #f9f9f9;
214
+ border-bottom: 3px solid #f9f9f9;
215
+ }
216
+ .metaslider .right .settings .slider-lib-row {
217
+ padding: 6px 3px;
218
+ }
219
+ .metaslider .right .settings #save {
220
+ margin-right: 0;
221
+ }
222
+ .metaslider .right .settings input {
223
+ margin-right: 5px;
224
+ }
225
+ .metaslider .right .settings label {
226
+ margin-right: 10px;
227
+ }
228
+ .metaslider .right .settings .slider-lib {
229
+ float: left;
230
+ width: 23%;
231
+ margin: 1%;
232
+ list-style-type: none;
233
+ text-align: center;
234
+ }
235
+ @media (max-width: 1120px) {
236
+ .metaslider .right .settings .slider-lib {
237
+ width: 48%;
238
+ margin: 1%;
239
+ }
240
+ }
241
+ @media (max-width: 900px) {
242
+ .metaslider .right .settings .slider-lib {
243
+ width: 23%;
244
+ margin: 1%;
245
+ }
246
+ }
247
+ .metaslider .right .settings .slider-lib label {
248
+ color: white;
249
+ border-radius: 2px;
250
+ float: left;
251
+ width: 100%;
252
+ padding: 5px 0px;
253
+ vertical-align: bottom;
254
+ }
255
+ .metaslider .right .settings .slider-lib.nivo label {
256
+ background: #b6e026;
257
+ background: -moz-linear-gradient(top, #b6e026 0%, #abdc28 100%);
258
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #b6e026), color-stop(100%, #abdc28));
259
+ background: -webkit-linear-gradient(top, #b6e026 0%, #abdc28 100%);
260
+ background: -o-linear-gradient(top, #b6e026 0%, #abdc28 100%);
261
+ background: -ms-linear-gradient(top, #b6e026 0%, #abdc28 100%);
262
+ background: linear-gradient(to bottom, #b6e026 0%, #abdc28 100%);
263
+ }
264
+ .metaslider .right .settings .slider-lib.responsive label {
265
+ background: #959595;
266
+ background: -moz-linear-gradient(top, #959595 0%, #0d0d0d 46%, #010101 50%, #0a0a0a 53%, #4e4e4e 76%, #383838 87%, #1b1b1b 100%);
267
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #959595), color-stop(46%, #0d0d0d), color-stop(50%, #010101), color-stop(53%, #0a0a0a), color-stop(76%, #4e4e4e), color-stop(87%, #383838), color-stop(100%, #1b1b1b));
268
+ background: -webkit-linear-gradient(top, #959595 0%, #0d0d0d 46%, #010101 50%, #0a0a0a 53%, #4e4e4e 76%, #383838 87%, #1b1b1b 100%);
269
+ background: -o-linear-gradient(top, #959595 0%, #0d0d0d 46%, #010101 50%, #0a0a0a 53%, #4e4e4e 76%, #383838 87%, #1b1b1b 100%);
270
+ background: -ms-linear-gradient(top, #959595 0%, #0d0d0d 46%, #010101 50%, #0a0a0a 53%, #4e4e4e 76%, #383838 87%, #1b1b1b 100%);
271
+ background: linear-gradient(to bottom, #959595 0%, #0d0d0d 46%, #010101 50%, #0a0a0a 53%, #4e4e4e 76%, #383838 87%, #1b1b1b 100%);
272
+ }
273
+ .metaslider .right .settings .slider-lib.coin label {
274
+ background: #ffd65e;
275
+ background: -moz-linear-gradient(top, #ffd65e 0%, #febf04 100%);
276
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffd65e), color-stop(100%, #febf04));
277
+ background: -webkit-linear-gradient(top, #ffd65e 0%, #febf04 100%);
278
+ background: -o-linear-gradient(top, #ffd65e 0%, #febf04 100%);
279
+ background: -ms-linear-gradient(top, #ffd65e 0%, #febf04 100%);
280
+ background: linear-gradient(to bottom, #ffd65e 0%, #febf04 100%);
281
+ }
282
+ .metaslider .right .settings .slider-lib.flex label {
283
+ background: #00b7ea;
284
+ background: -moz-linear-gradient(top, #00b7ea 0%, #009ec3 100%);
285
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #00b7ea), color-stop(100%, #009ec3));
286
+ background: -webkit-linear-gradient(top, #00b7ea 0%, #009ec3 100%);
287
+ background: -o-linear-gradient(top, #00b7ea 0%, #009ec3 100%);
288
+ background: -ms-linear-gradient(top, #00b7ea 0%, #009ec3 100%);
289
+ background: linear-gradient(to bottom, #00b7ea 0%, #009ec3 100%);
290
+ }
291
+ @media (max-width: 1120px) {
292
+ .metaslider .right .settings .configuration {
293
+ display: none;
294
+ }
295
+ }
296
+ @media (max-width: 900px) {
297
+ .metaslider .right .settings .configuration {
298
+ display: inline;
299
+ }
300
+ }
301
+ @media (max-width: 900px) {
302
+ .metaslider .right .settings .button {
303
+ width: auto;
304
+ float: right;
305
+ }
306
+ }
307
+ .metaslider .right .shortcode {
308
+ width: 100%;
309
+ margin-top: 20px;
310
+ }
311
+ .metaslider .right .shortcode td {
312
+ border-bottom: 0;
313
+ border-top: 0;
314
+ font-size: 0.9em;
315
+ }
316
+ .metaslider .right .shortcode input,
317
+ .metaslider .right .shortcode input:active {
318
+ font-family: monospace;
319
+ width: 100%;
320
+ font-size: 0.9em;
321
+ background: transparent;
322
+ border: 0;
323
+ box-shadow: none;
324
+ }
325
+ .metaslider .right table td {
326
+ border-top: 0;
327
+ height: 28px;
328
+ font-size: 0.9em;
329
+ vertical-align: middle;
330
+ padding: 0 6px;
331
+ border-bottom: 0;
332
+ }
333
+ .metaslider .right table td input[type='checkbox'] {
334
+ margin-left: 2px;
335
+ }
336
+ .metaslider .right table .slider-lib-row {
337
+ padding: 3px;
338
+ }
339
+ .metaslider .nav-tab,
340
+ .metaslider h2.nav-tab-wrapper {
341
+ font-size: 13px;
342
+ }
343
+ ul.info {
344
+ width: 100%;
345
+ margin-top: 20px;
346
+ border-radius: 5px;
347
+ }
348
+ ul.info li {
349
+ text-align: right;
350
+ display: inline;
351
+ width: 33%;
352
+ float: left;
353
+ }
354
+ .delete-slider {
355
+ margin: 0 5px 3px 0 !important;
356
+ }
assets/metaslider/admin.js ADDED
@@ -0,0 +1,137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ jQuery(document).ready(function($) {
2
+
3
+ // Enable the correct options for this slider type
4
+ var switchType = function(slider) {
5
+ jQuery('.metaslider .option:not(.' + slider + ')').attr('disabled', 'disabled').parents('tr').hide();
6
+ jQuery('.metaslider .option.' + slider).removeAttr('disabled').parents('tr').show();
7
+
8
+ // make sure that the selected option is available for this slider type
9
+ if (jQuery('.effect option:selected').attr('disabled') === 'disabled') {
10
+ jQuery('.effect option:enabled:first').attr('selected', 'selected');
11
+ }
12
+
13
+ // slides - set red background on incompatible slides
14
+ jQuery('.metaslider .slide:not(.' + slider + ')').css('background', '#FFD9D9');
15
+ jQuery('.metaslider .slide.' + slider).css('background', '');
16
+ };
17
+
18
+ // enable the correct options on page load
19
+ switchType(jQuery('.metaslider .select-slider:checked').attr('rel'));
20
+
21
+ // handle slide libary switching
22
+ jQuery('.metaslider .select-slider').click(function() {
23
+ switchType(jQuery(this).attr('rel'));
24
+ });
25
+
26
+ // return a helper with preserved width of cells
27
+ var helper = function(e, ui) {
28
+ ui.children().each(function() {
29
+ jQuery(this).width(jQuery(this).width());
30
+ });
31
+ return ui;
32
+ };
33
+
34
+ // drag and drop slides, update the slide order on drop
35
+ jQuery(".metaslider .left table tbody").sortable({
36
+ helper: helper,
37
+ handle: 'td.col-1',
38
+ stop: function() {
39
+ jQuery(".metaslider .left table").trigger('updateSlideOrder');
40
+ }
41
+ });
42
+
43
+ // bind an event to the slides table to update the menu order of each slide
44
+ jQuery('.metaslider .left table').bind('updateSlideOrder', function(event) {
45
+ jQuery('tr', this).each(function() {
46
+ jQuery('input.menu_order', jQuery(this)).val(jQuery(this).index());
47
+ });
48
+ });
49
+
50
+ // show the confirm dialogue
51
+ jQuery(".confirm").live('click', function() {
52
+ return confirm(metaslider.confirm);
53
+ });
54
+
55
+ // show the confirm dialogue
56
+ jQuery(".toggle").live('click', function(e) {
57
+ e.preventDefault();
58
+ jQuery(this).next('.message').toggle();
59
+ });
60
+
61
+ // helptext tooltips
62
+ jQuery(".metaslider .tooltip").tipsy({className: 'msTipsy', live: true, delayIn: 1000, html: true, fade: true, gravity: 'e'});
63
+ jQuery(".metaslider .tooltiptop").tipsy({live: true, delayIn: 1000, html: true, fade: true, gravity: 'se'});
64
+
65
+ // Select input field contents when clicked
66
+ jQuery(".metaslider .shortcode input").click(function() {
67
+ this.select();
68
+ });
69
+
70
+ // show the spinner while slides are being added
71
+ function checkPendingRequest() {
72
+ if (jQuery.active > 0) {
73
+ jQuery(".metaslider .spinner").show();
74
+ jQuery(".metaslider input[type=submit]").attr('disabled', 'disabled');
75
+ } else {
76
+ jQuery(".metaslider .spinner").hide();
77
+ jQuery(".metaslider input[type=submit]").removeAttr('disabled');
78
+ }
79
+
80
+ setTimeout(checkPendingRequest, 1000);
81
+ }
82
+
83
+ checkPendingRequest();
84
+
85
+ // return lightbox width
86
+ var getLightboxWidth = function() {
87
+ var width = parseInt(jQuery('input.width').val(), 10) + 'px';
88
+
89
+ if (jQuery('#carouselMode').is(':checked')) {
90
+ width = '75%';
91
+ }
92
+
93
+ return width;
94
+ };
95
+
96
+ // return lightbox height
97
+ var getLightboxHeight = function() {
98
+ return parseInt(jQuery('input.height').val(), 10) + 80 + 'px';
99
+ };
100
+
101
+ // AJAX save & preview
102
+ jQuery(".metaslider form").find(":submit").click(function(e) {
103
+ e.preventDefault();
104
+
105
+ // update slide order
106
+ jQuery(".metaslider .left table").trigger('updateSlideOrder');
107
+
108
+ // get some values from elements on the page:
109
+ var the_form = jQuery(this).parents("form");
110
+ var data = the_form.serialize();
111
+ var url = the_form.attr( 'action' );
112
+ var button = e.target;
113
+
114
+ jQuery(".metaslider .spinner").show();
115
+ jQuery(".metaslider input[type=submit]").attr('disabled', 'disabled');
116
+
117
+ jQuery.ajax({
118
+ type: "POST",
119
+ data : data,
120
+ cache: false,
121
+ url: url,
122
+ success: function(data) {
123
+ if (button.id === 'preview') {
124
+ jQuery.colorbox({
125
+ iframe: true,
126
+ href: metaslider.iframeurl + "?slider_id=" + jQuery(button).data("slider_id"),
127
+ transition: "elastic",
128
+ innerHeight: getLightboxHeight(),
129
+ innerWidth: getLightboxWidth(),
130
+ scrolling: false,
131
+ fastIframe: false
132
+ });
133
+ }
134
+ }
135
+ });
136
+ });
137
+ });
assets/metaslider/admin.less ADDED
@@ -0,0 +1,413 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .probutton, .probutton:hover {
2
+ width: 36%;
3
+ margin: 20px 32%;
4
+ float: left;
5
+ font-size: 1.4em;
6
+ padding: 15px 0;
7
+ background-color: #759ae9;
8
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #759ae9), color-stop(50%, #376fe0), color-stop(50%, #1a5ad9), color-stop(100%, #2463de));
9
+ background-image: -webkit-linear-gradient(top, #759ae9 0%, #376fe0 50%, #1a5ad9 50%, #2463de 100%);
10
+ background-image: -moz-linear-gradient(top, #759ae9 0%, #376fe0 50%, #1a5ad9 50%, #2463de 100%);
11
+ background-image: -ms-linear-gradient(top, #759ae9 0%, #376fe0 50%, #1a5ad9 50%, #2463de 100%);
12
+ background-image: -o-linear-gradient(top, #759ae9 0%, #376fe0 50%, #1a5ad9 50%, #2463de 100%);
13
+ background-image: linear-gradient(top, #759ae9 0%, #376fe0 50%, #1a5ad9 50%, #2463de 100%);
14
+ border-top: 1px solid #1f58cc;
15
+ border-right: 1px solid #1b4db3;
16
+ border-bottom: 1px solid #174299;
17
+ border-left: 1px solid #1b4db3;
18
+ border-radius: 4px;
19
+ -webkit-box-shadow: inset 0 0 2px 0 rgba(57, 140, 255, 0.8);
20
+ box-shadow: inset 0 0 2px 0 rgba(57, 140, 255, 0.8);
21
+ color: #fff;
22
+ font-family: 'PT Sans', helvetica, arial, sans-serif;
23
+ text-shadow: 0 -1px 1px #1a5ad9;
24
+ color: white;
25
+ text-align: center;
26
+ text-decoration: none;
27
+ border-radius: 5px;
28
+ line-height: 2em;
29
+ }
30
+ .super {
31
+ text-transform: uppercase;
32
+ font-size: 0.7em;
33
+ vertical-align: top;
34
+ line-height: 2em;
35
+ }
36
+ .logo {
37
+ text-transform: uppercase;
38
+ }
39
+ .attachment-filters {
40
+ display: none;
41
+ }
42
+ .media-frame-menu {
43
+ .separator {
44
+ display: none;
45
+ }
46
+ }
47
+ .msTipsy {
48
+ .tipsy-arrow-s {
49
+ border-top-color: #555;
50
+ }
51
+ .tipsy-arrow-w {
52
+ border-right-color: #555;
53
+ }
54
+ .tipsy-arrow-n {
55
+ border-bottom-color: #555;
56
+ }
57
+ .tipsy-inner {
58
+ color: white;
59
+ background-color: #555;
60
+ }
61
+ .tipsy-arrow-e {
62
+ border-left-color: #555;
63
+ }
64
+ }
65
+ #cboxLoadedContent {
66
+ overflow: hidden !important;
67
+ iframe {
68
+ border: 0 none;
69
+ display: block;
70
+ height: 100%;
71
+ overflow: hidden;
72
+ width: 100%;
73
+ }
74
+ }
75
+ .metaslider .left table tr.slide input.alt,
76
+ .metaslider .left table tr.slide input.url {
77
+ width: 100%;
78
+ margin: 0 0 8px 0;
79
+ }
80
+ .metaslider {
81
+ .tooltip {
82
+ font-size: 0.9em;
83
+ }
84
+ .nav-tab-active {
85
+ input {
86
+ padding: 0;
87
+ margin: 0;
88
+ border: 0;
89
+ width: 100px;
90
+ font-size: 13px;
91
+ }
92
+ }
93
+ .button {
94
+ font-family: sans-serif;
95
+ }
96
+ .widefat {
97
+ th {
98
+ padding: 6px 7px 5px;
99
+ font-size: 15px;
100
+ line-height: 1.4em;
101
+ }
102
+ }
103
+ .nav-tab-wrapper {
104
+ :first-child {
105
+ margin-left: 5px;
106
+ }
107
+ }
108
+
109
+ .ui-sortable-helper {
110
+ box-shadow: 3px 3px 5px #cccccc;
111
+ }
112
+
113
+
114
+ .left {
115
+ width: 68%;
116
+ margin-top: 20px;
117
+ float: left;
118
+ clear: none;
119
+
120
+
121
+ @media (max-width: 900px) {
122
+ width: 100%;
123
+ float: none;
124
+ }
125
+
126
+ table {
127
+ width: 100%;
128
+ thead {
129
+ input {
130
+ margin-left: 5px;
131
+ }
132
+
133
+ .add-slide {
134
+ padding-left: 0.4em;
135
+ padding-right: 0.6em;
136
+ .wp-media-buttons-icon {
137
+ background: url('../../../../../wp-admin/images/media-button.png') no-repeat top left;
138
+ display: inline-block;
139
+ width: 16px;
140
+ height: 16px;
141
+ vertical-align: text-top;
142
+ margin: 0 2px;
143
+ }
144
+ }
145
+ }
146
+
147
+ tr.slide {
148
+ background: #f9f9f9;
149
+ height: 167px;
150
+
151
+ label {
152
+ input {
153
+ margin: 1px 0 10px 3px;
154
+ }
155
+ }
156
+
157
+ textarea {
158
+ width: 100%;
159
+ height: 75px;
160
+ margin: 0 0 5px 0;
161
+ }
162
+
163
+ td.col-1 {
164
+ cursor: move;
165
+ .thumb {
166
+ position: relative;
167
+ height: 150px;
168
+ width: 150px;
169
+ background-size: auto 150px;
170
+ background-position: center;
171
+
172
+ .delete-slide {
173
+ position: absolute;
174
+ top: 0px;
175
+ left: 0px;
176
+ background: #EE2C2C;
177
+ color: white;
178
+ width: 16px;
179
+ height: 16px;
180
+ float: left;
181
+ text-align: center;
182
+ display: none;
183
+ }
184
+
185
+ .slide-details {
186
+ bottom: 0;
187
+ left: 0;
188
+ position: absolute;
189
+ background: #333;
190
+ color: white;
191
+ padding: 0 5px;
192
+ text-transform: uppercase;
193
+ font-size: 9px;
194
+ opacity: 0.6;
195
+ }
196
+ }
197
+
198
+ }
199
+
200
+ td.col-1:hover {
201
+ .delete-slide {
202
+ display: block;
203
+ }
204
+ }
205
+
206
+ .new_window {
207
+ position: relative;
208
+ float: right;
209
+ font-size: 10px;
210
+ padding: 0px 3px;
211
+ color: #a9a9a9;
212
+ label {
213
+ position: absolute;
214
+ width: 78px;
215
+ right: 0;
216
+ top: -28px;
217
+ }
218
+ }
219
+ }
220
+
221
+ td {
222
+ border-top: 0;
223
+ padding: 8px;
224
+ }
225
+ td.col-2 {
226
+ padding: 8px 8px 8px 0;
227
+ }
228
+ }
229
+ }
230
+
231
+ .right {
232
+ width: 30%;
233
+ float: right;
234
+ margin-top: 20px;
235
+ clear: none;
236
+
237
+
238
+ @media (max-width: 900px) {
239
+ width: 100%;
240
+ float: none;
241
+ }
242
+
243
+
244
+ .highlight {
245
+ background: #f1f1f1;
246
+ border-top: 3px solid #f9f9f9;
247
+ border-bottom: 3px solid #f9f9f9;
248
+ }
249
+
250
+ .settings {
251
+ .slider-lib-row {
252
+ padding: 6px 3px;
253
+ }
254
+ #save {
255
+ margin-right: 0;
256
+ }
257
+ input {
258
+ margin-right: 5px;
259
+ }
260
+ label {
261
+ margin-right: 10px;
262
+ }
263
+ .slider-lib {
264
+ float: left;
265
+ width: 23%;
266
+ margin: 1%;
267
+ list-style-type: none;
268
+ text-align: center;
269
+
270
+ @media (max-width: 1120px) {
271
+ width: 48%;
272
+ margin: 1%;
273
+ }
274
+
275
+ @media (max-width: 900px) {
276
+ width: 23%;
277
+ margin: 1%;
278
+ }
279
+
280
+ label {
281
+ color: white;
282
+ border-radius: 2px;
283
+ float: left;
284
+ width: 100%;
285
+ padding: 5px 0px;
286
+ vertical-align: bottom;
287
+ }
288
+ }
289
+
290
+ .slider-lib.nivo {
291
+ label {
292
+ background: #b6e026;
293
+ background: -moz-linear-gradient(top, #b6e026 0%, #abdc28 100%);
294
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#b6e026), color-stop(100%,#abdc28));
295
+ background: -webkit-linear-gradient(top, #b6e026 0%,#abdc28 100%);
296
+ background: -o-linear-gradient(top, #b6e026 0%,#abdc28 100%);
297
+ background: -ms-linear-gradient(top, #b6e026 0%,#abdc28 100%);
298
+ background: linear-gradient(to bottom, #b6e026 0%,#abdc28 100%);
299
+ }
300
+ }
301
+ .slider-lib.responsive {
302
+ label {
303
+ background: #959595;
304
+ background: -moz-linear-gradient(top, #959595 0%, #0d0d0d 46%, #010101 50%, #0a0a0a 53%, #4e4e4e 76%, #383838 87%, #1b1b1b 100%);
305
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#959595), color-stop(46%,#0d0d0d), color-stop(50%,#010101), color-stop(53%,#0a0a0a), color-stop(76%,#4e4e4e), color-stop(87%,#383838), color-stop(100%,#1b1b1b));
306
+ background: -webkit-linear-gradient(top, #959595 0%,#0d0d0d 46%,#010101 50%,#0a0a0a 53%,#4e4e4e 76%,#383838 87%,#1b1b1b 100%);
307
+ background: -o-linear-gradient(top, #959595 0%,#0d0d0d 46%,#010101 50%,#0a0a0a 53%,#4e4e4e 76%,#383838 87%,#1b1b1b 100%);
308
+ background: -ms-linear-gradient(top, #959595 0%,#0d0d0d 46%,#010101 50%,#0a0a0a 53%,#4e4e4e 76%,#383838 87%,#1b1b1b 100%);
309
+ background: linear-gradient(to bottom, #959595 0%,#0d0d0d 46%,#010101 50%,#0a0a0a 53%,#4e4e4e 76%,#383838 87%,#1b1b1b 100%);
310
+ }
311
+ }
312
+ .slider-lib.coin {
313
+ label {
314
+ background: #ffd65e;
315
+ background: -moz-linear-gradient(top, #ffd65e 0%, #febf04 100%);
316
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffd65e), color-stop(100%,#febf04));
317
+ background: -webkit-linear-gradient(top, #ffd65e 0%,#febf04 100%);
318
+ background: -o-linear-gradient(top, #ffd65e 0%,#febf04 100%);
319
+ background: -ms-linear-gradient(top, #ffd65e 0%,#febf04 100%);
320
+ background: linear-gradient(to bottom, #ffd65e 0%,#febf04 100%);
321
+ }
322
+ }
323
+ .slider-lib.flex {
324
+ label {
325
+ background: #00b7ea;
326
+ background: -moz-linear-gradient(top, #00b7ea 0%, #009ec3 100%);
327
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#00b7ea), color-stop(100%,#009ec3));
328
+ background: -webkit-linear-gradient(top, #00b7ea 0%,#009ec3 100%);
329
+ background: -o-linear-gradient(top, #00b7ea 0%,#009ec3 100%);
330
+ background: -ms-linear-gradient(top, #00b7ea 0%,#009ec3 100%);
331
+ background: linear-gradient(to bottom, #00b7ea 0%,#009ec3 100%);
332
+ }
333
+ }
334
+
335
+
336
+ .configuration {
337
+ @media (max-width: 1120px) {
338
+ display: none;
339
+ }
340
+ @media (max-width: 900px) {
341
+ display: inline;
342
+ }
343
+ }
344
+
345
+ .button {
346
+ @media (max-width: 900px) {
347
+ width: auto;
348
+ float: right;
349
+ }
350
+ }
351
+ }
352
+
353
+
354
+ .shortcode {
355
+ width: 100%;
356
+ margin-top: 20px;
357
+ td {
358
+ border-bottom: 0;
359
+ border-top: 0;
360
+ font-size: 0.9em;
361
+ }
362
+ input, input:active {
363
+ font-family: monospace;
364
+ width: 100%;
365
+ font-size: 0.9em;
366
+ background: transparent;
367
+ border: 0;
368
+ box-shadow: none;
369
+ }
370
+ }
371
+
372
+ table {
373
+ td {
374
+ border-bottom: 0;
375
+ border-top: 0;
376
+ height: 28px;
377
+ font-size: 0.9em;
378
+ vertical-align: middle;
379
+ padding: 0 6px;
380
+ border-bottom: 0;
381
+
382
+ input[type='checkbox'] {
383
+ margin-left: 2px;
384
+ }
385
+ }
386
+
387
+ .slider-lib-row {
388
+ padding: 3px;
389
+ }
390
+ }
391
+ }
392
+ }
393
+ .metaslider .nav-tab,.metaslider h2.nav-tab-wrapper {
394
+ font-size: 13px;
395
+ }
396
+
397
+ ul.info {
398
+ width: 100%;
399
+ margin-top: 20px;
400
+ border-radius: 5px;
401
+
402
+
403
+ li {
404
+ text-align: right;
405
+ display: inline;
406
+ width: 33%;
407
+ float: left;
408
+ }
409
+ }
410
+
411
+ .delete-slider {
412
+ margin: 0 5px 3px 0 !important;
413
+ }
assets/metaslider/image/image.js ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Meta Slider
3
+ */
4
+ (function ($) {
5
+ $(function () {
6
+ jQuery('.metaslider .add-slide').live('click', function(event){
7
+ event.preventDefault();
8
+
9
+ // Create the media frame.
10
+ file_frame = wp.media.frames.file_frame = wp.media({
11
+ multiple: 'add',
12
+ frame: 'post',
13
+ library: {type: 'image'}
14
+ });
15
+
16
+ // When an image is selected, run a callback.
17
+ file_frame.on('insert', function() {
18
+ var selection = file_frame.state().get('selection');
19
+
20
+ selection.map( function( attachment ) {
21
+
22
+ attachment = attachment.toJSON();
23
+
24
+ var data = {
25
+ action: 'create_image_slide',
26
+ slide_id: attachment.id,
27
+ slider_id: window.parent.metaslider_slider_id
28
+ };
29
+
30
+ jQuery.post(ajaxurl, data, function(response) {
31
+ jQuery(".metaslider .left table").append(response);
32
+ });
33
+ });
34
+ });
35
+
36
+ file_frame.open();
37
+ });
38
+ });
39
+
40
+ }(jQuery));
assets/metaslider/matchalabs.png ADDED
Binary file
assets/metaslider/public.css ADDED
@@ -0,0 +1,134 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * The files in /assets are unmodified.
3
+ * This file contains
4
+ * - resets, in an attempt to ensure sliders display properly in all themes
5
+ * - modifications to the default sliders CSS
6
+ */
7
+ .metaslider-responsive {
8
+ position: relative;
9
+ }
10
+ .metaslider .flexslider .slides li,
11
+ .metaslider ul.rslides li {
12
+ position: relative;
13
+ }
14
+ .metaslider .flex-viewport {
15
+ direction: ltr;
16
+ }
17
+ .metaslider .caption-wrap {
18
+ position: absolute;
19
+ bottom: 0;
20
+ left: 0;
21
+ background: black;
22
+ color: white;
23
+ line-height: 30px;
24
+ opacity: 0.7;
25
+ margin: 0;
26
+ display: block;
27
+ width: 100%;
28
+ }
29
+ .metaslider .caption {
30
+ padding: 5px 10px;
31
+ }
32
+ .metaslider img {
33
+ height: auto;
34
+ }
35
+ .metaslider .flexslider ul,
36
+ .metaslider .flexslider .slides li,
37
+ .metaslider .flexslider .slides ul,
38
+ .metaslider .flexslider .slides ol,
39
+ .metaslider .flexslider .flex-direction-nav,
40
+ .metaslider .rslides li,
41
+ .metaslider .rslides .rslides_tabs {
42
+ border: 0;
43
+ border-top: 0;
44
+ border-right: 0;
45
+ border-bottom: 0;
46
+ border-left: 0;
47
+ margin: 0;
48
+ margin-top: 0;
49
+ margin-right: 0;
50
+ margin-bottom: 0;
51
+ margin-left: 0;
52
+ list-style-type: none;
53
+ }
54
+ .metaslider .flexslider {
55
+ border: 0;
56
+ }
57
+ .metaslider .flex-direction-nav a {
58
+ -moz-transition: all .3s ease;
59
+ transition: all .3s ease;
60
+ }
61
+ .metaslider li:before,
62
+ .metaslider li:after {
63
+ content: "" !important;
64
+ }
65
+ .metaslider .flexslider .slides p {
66
+ margin: 0;
67
+ }
68
+ .metaslider .flexslider {
69
+ background: none;
70
+ box-shadow: none;
71
+ -webkit-box-shadow: none;
72
+ -moz-box-shadow: none;
73
+ -o-box-shadow: none;
74
+ }
75
+ .metaslider .rslides_tabs {
76
+ margin: 0;
77
+ padding: 7px 0 !important;
78
+ background: #333;
79
+ font-size: 18px;
80
+ list-style: none;
81
+ padding: 10px 0;
82
+ text-align: center;
83
+ width: 100%;
84
+ }
85
+ .metaslider .rslides_tabs li {
86
+ margin: 0;
87
+ padding: 0;
88
+ display: inline;
89
+ float: none;
90
+ margin-right: 1px;
91
+ list-style-type: none;
92
+ }
93
+ .metaslider .rslides_tabs a {
94
+ text-decoration: none;
95
+ width: auto;
96
+ line-height: 20px;
97
+ padding: 9px 20px;
98
+ height: auto;
99
+ background: transparent;
100
+ display: inline;
101
+ color: white;
102
+ }
103
+ .metaslider .rslides_tabs a:hover {
104
+ border: 0;
105
+ color: white;
106
+ }
107
+ .metaslider .rslides_tabs li:first-child {
108
+ margin-left: 0;
109
+ }
110
+ .metaslider .rslides_tabs .rslides_here a {
111
+ background: rgba(255,255,255,.1);
112
+ color: #fff;
113
+ font-weight: bold;
114
+ }
115
+ .metaslider .rslides_nav {
116
+ background-color: #000000;
117
+ color: #FFFFFF;
118
+ padding: 10px;
119
+ position: absolute;
120
+ top: 50%;
121
+ z-index: 9;
122
+ cursor: pointer;
123
+ font-weight: bold;
124
+ margin-top: -15px;
125
+ opacity: 0.7;
126
+ }
127
+ .metaslider .rslides_nav.prev {
128
+ left:0px;
129
+ text-decoration: none;
130
+ }
131
+ .metaslider .rslides_nav.next {
132
+ right:0px;
133
+ text-decoration: none;
134
+ }
assets/sliders/coinslider/coin-slider-styles.css ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ Coin Slider jQuery plugin CSS styles
3
+ http://workshop.rs/projects/coin-slider
4
+ */
5
+ .coin-slider { overflow: hidden; zoom: 1; position: relative; }
6
+ .coin-slider a{ text-decoration: none; outline: none; border: none; }
7
+
8
+ .cs-buttons { font-size: 0px; padding: 10px; float: left; }
9
+ .cs-buttons a { margin-left: 5px; height: 10px; width: 10px; float: left; border: 1px solid #B8C4CF; color: #B8C4CF; text-indent: -1000px; }
10
+ .cs-active { background-color: #B8C4CF; color: #FFFFFF; }
11
+
12
+ .cs-title { width: 100%; padding: 10px; background-color: #000000; color: #FFFFFF; }
13
+
14
+ .cs-prev,
15
+ .cs-next { background-color: #000000; color: #FFFFFF; padding: 0px 10px; }
16
+
17
+ .cs-buttons a {
18
+ border-radius: 50%;
19
+ background: #CCC;
20
+ background: -webkit-linear-gradient(top, #CCCCCC, #F3F3F3);
21
+ background: -moz-linear-gradient(top, #CCCCCC, #F3F3F3);
22
+ background: -o-linear-gradient(top, #CCCCCC, #F3F3F3);
23
+ background: -ms-linear-gradient(top, #CCCCCC, #F3F3F3);
24
+ background: linear-gradient(top, #CCCCCC, #F3F3F3);
25
+ }
26
+ a.cs-active {
27
+ background: #599BDC;
28
+ background: -webkit-linear-gradient(top, #599BDC, #3072B3);
29
+ background: -moz-linear-gradient(top, #599BDC, #3072B3);
30
+ background: -o-linear-gradient(top, #599BDC, #3072B3);
31
+ background: -ms-linear-gradient(top, #599BDC, #3072B3);
32
+ background: linear-gradient(top, #599BDC, #3072B3);
33
+ border-radius: 50%;
34
+ box-shadow: 0 0 3px #518CC6;
35
+ border: 1px solid #3072B3 !important;
36
+ }
assets/sliders/coinslider/coin-slider.min.js ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Coin Slider - Unique jQuery Image Slider
3
+ * @version: 1.0 - (2010/04/04)
4
+ * @requires jQuery v1.2.2 or later
5
+ * @author Ivan Lazarevic
6
+ * Examples and documentation at: http://workshop.rs/projects/coin-slider/
7
+
8
+ * Licensed under MIT licence:
9
+ * http://www.opensource.org/licenses/mit-license.php
10
+ **/
11
+ (function($){var params=[],order=[],images=[],links=[],linksTarget=[],titles=[],interval=[],imagePos=[],appInterval=[],squarePos=[],reverse=[];$.fn.coinslider=$.fn.CoinSlider=function(options){var setFields=function(el){var tWidth=parseInt(params[el.id].width/params[el.id].spw),sWidth=tWidth,tHeight=parseInt(params[el.id].height/params[el.id].sph),sHeight=tHeight,counter=0,sLeft=0,sTop=0,i,j,tgapx=params[el.id].width-params[el.id].spw*sWidth,gapx=tgapx,tgapy=params[el.id].height-params[el.id].sph*sHeight,gapy=tgapy;for(i=1;i<=params[el.id].sph;i++){gapx=tgapx;if(gapy>0){gapy--;sHeight=tHeight+1}else{sHeight=tHeight}for(j=1;j<=params[el.id].spw;j++){if(gapx>0){gapx--;sWidth=tWidth+1}else{sWidth=tWidth}order[el.id][counter]=i+""+j;counter++;if(params[el.id].links){$('#'+el.id).append("<a href='"+links[el.id][0]+"' class='cs-"+el.id+"' id='cs-"+el.id+i+j+"' style='width:"+sWidth+"px; height:"+sHeight+"px; float: left; position: absolute;'></a>")}else{$('#'+el.id).append("<div class='cs-"+el.id+"' id='cs-"+el.id+i+j+"' style='width:"+sWidth+"px; height:"+sHeight+"px; float: left; position: absolute;'></div>")}$("#cs-"+el.id+i+j).css({'background-position':-sLeft+'px '+(-sTop+'px'),'left':sLeft,'top':sTop});sLeft+=sWidth}sTop+=sHeight;sLeft=0}if(!params[el.id].navigationPrevNextAlwaysShown){$('.cs-'+el.id).mouseover(function(){$('#cs-navigation-'+el.id).show()});$('.cs-'+el.id).mouseout(function(){$('#cs-navigation-'+el.id).hide()});$('#cs-title-'+el.id).mouseover(function(){$('#cs-navigation-'+el.id).show()});$('#cs-title-'+el.id).mouseout(function(){$('#cs-navigation-'+el.id).hide()})}if(params[el.id].hoverPause){$('.cs-'+el.id).mouseover(function(){params[el.id].pause=true});$('.cs-'+el.id).mouseout(function(){params[el.id].pause=false});$('#cs-title-'+el.id).mouseover(function(){params[el.id].pause=true});$('#cs-title-'+el.id).mouseout(function(){params[el.id].pause=false})}};var transitionCall=function(el){clearInterval(interval[el.id]);var delay=params[el.id].delay+params[el.id].spw*params[el.id].sph*params[el.id].sDelay;interval[el.id]=setInterval(function(){transition(el)},delay)};var transition=function(el,direction){if(params[el.id].pause===true){return}effect(el);squarePos[el.id]=0;appInterval[el.id]=setInterval(function(){appereance(el,order[el.id][squarePos[el.id]])},params[el.id].sDelay);$(el).css({'background-image':'url('+images[el.id][imagePos[el.id]]+')'});if(typeof(direction)=="undefined"){imagePos[el.id]++}else{if(direction=='prev'){imagePos[el.id]--}else{imagePos[el.id]=direction}}if(imagePos[el.id]==images[el.id].length){imagePos[el.id]=0}if(imagePos[el.id]==-1){imagePos[el.id]=images[el.id].length-1}$('.cs-button-'+el.id).removeClass('cs-active');$('#cs-button-'+el.id+"-"+(imagePos[el.id]+1)).addClass('cs-active');if(titles[el.id][imagePos[el.id]]){$('#cs-title-'+el.id).css({'opacity':0}).animate({'opacity':params[el.id].opacity},params[el.id].titleSpeed);$('#cs-title-'+el.id).html(titles[el.id][imagePos[el.id]])}else{$('#cs-title-'+el.id).css('opacity',0)}};var appereance=function(el,sid){$('.cs-'+el.id).attr('href',links[el.id][imagePos[el.id]]).attr('target',linksTarget[el.id][imagePos[el.id]]);if(squarePos[el.id]==params[el.id].spw*params[el.id].sph){clearInterval(appInterval[el.id]);return}$('#cs-'+el.id+sid).css({opacity:0,'background-image':'url('+images[el.id][imagePos[el.id]]+')'});$('#cs-'+el.id+sid).animate({opacity:1},300);squarePos[el.id]++};var setNavigation=function(el){if(params[el.id].showNavigationPrevNext){$(el).append("<div id='cs-navigation-"+el.id+"'></div>");if(!params[el.id].navigationPrevNextAlwaysShown){$('#cs-navigation-'+el.id).hide()}$('#cs-navigation-'+el.id).append("<a href='#' id='cs-prev-"+el.id+"' class='cs-prev'>"+params[el.id].prevText+"</a>");$('#cs-navigation-'+el.id).append("<a href='#' id='cs-next-"+el.id+"' class='cs-next'>"+params[el.id].nextText+"</a>");$('#cs-prev-'+el.id).css({'position':'absolute','top':params[el.id].height/2-15,'left':0,'z-index':1001,'line-height':'30px','opacity':params[el.id].opacity}).click(function(e){e.preventDefault();transition(el,'prev');transitionCall(el)}).mouseover(function(){$('#cs-navigation-'+el.id).show()});$('#cs-next-'+el.id).css({'position':'absolute','top':params[el.id].height/2-15,'right':0,'z-index':1001,'line-height':'30px','opacity':params[el.id].opacity}).click(function(e){e.preventDefault();transition(el);transitionCall(el)}).mouseover(function(){$('#cs-navigation-'+el.id).show()});$('#cs-navigation-'+el.id+' a').mouseout(function(){if(!params[el.id].navigationPrevNextAlwaysShown)$('#cs-navigation-'+el.id).hide();params[el.id].pause=false})}if(params[el.id].showNavigationButtons){$("<div id='cs-buttons-"+el.id+"' class='cs-buttons'></div>").appendTo($('#coin-slider-'+el.id));var k;for(k=1;k<images[el.id].length+1;k++){$('#cs-buttons-'+el.id).append("<a href='#' class='cs-button-"+el.id+"' id='cs-button-"+el.id+"-"+k+"'>"+k+"</a>")}$.each($('.cs-button-'+el.id),function(i,item){$(item).click(function(e){$('.cs-button-'+el.id).removeClass('cs-active');$(this).addClass('cs-active');e.preventDefault();transition(el,i);transitionCall(el)})});$("#cs-buttons-"+el.id).css({'left':'50%','margin-left':-images[el.id].length*15/2-5,'position':'relative'})}};var effect=function(el){var effA=['random','swirl','rain','straight'],i,j,counter,eff;if(params[el.id].effect===''){eff=effA[Math.floor(Math.random()*(effA.length))]}else{eff=params[el.id].effect}order[el.id]=[];if(eff=='random'){counter=0;for(i=1;i<=params[el.id].sph;i++){for(j=1;j<=params[el.id].spw;j++){order[el.id][counter]=i+""+j;counter++}}randomEffect(order[el.id])}if(eff=='rain'){rain(el)}if(eff=='swirl'){swirl(el)}if(eff=='straight'){straight(el)}reverse[el.id]*=-1;if(reverse[el.id]>0){order[el.id].reverse()}};var randomEffect=function(arr){var i=arr.length,j,tempi,tempj;if(i===0){return false}while(--i){j=Math.floor(Math.random()*(i+1));tempi=arr[i];tempj=arr[j];arr[i]=tempj;arr[j]=tempi}};var swirl=function(el){var n=params[el.id].sph,m=params[el.id].spw,x=1,y=1,going=0,num=0,c=0,check,dowhile=true,i;while(dowhile){num=(going===0||going===2)?m:n;for(i=1;i<=num;i++){order[el.id][c]=x+""+y;c++;if(i!=num){switch(going){case 0:y++;break;case 1:x++;break;case 2:y--;break;case 3:x--;break}}}going=(going+1)%4;switch(going){case 0:m--;y++;break;case 1:n--;x++;break;case 2:m--;y--;break;case 3:n--;x--;break}check=max(n,m)-min(n,m);if(m<=check&&n<=check){dowhile=false}}};var rain=function(el){var n=params[el.id].sph,m=params[el.id].spw,c=0,to=1,to2=1,from=1,dowhile=true;while(dowhile){for(i=from;i<=to;i++){order[el.id][c]=i+''+parseInt(to2-i+1);c++}to2++;if(to<n&&to2<m&&n<m){to++}if(to<n&&n>=m){to++}if(to2>m){from++}if(from>to){dowhile=false}}};var straight=function(el){var counter=0,i,j;for(i=1;i<=params[el.id].sph;i++){for(j=1;j<=params[el.id].spw;j++){order[el.id][counter]=i+''+j;counter++}}};var min=function(n,m){if(n>m){return m}else{return n}};var max=function(n,m){if(n<m){return m}else{return n}};var init=function(el){order[el.id]=[];images[el.id]=[];links[el.id]=[];linksTarget[el.id]=[];titles[el.id]=[];imagePos[el.id]=0;squarePos[el.id]=0;reverse[el.id]=1;params[el.id]=$.extend({},$.fn.coinslider.defaults,options);$.each($('#'+el.id+' img'),function(i,item){images[el.id][i]=$(item).attr('src');links[el.id][i]=$(item).parent().is('a')?$(item).parent().attr('href'):'';linksTarget[el.id][i]=$(item).parent().is('a')?$(item).parent().attr('target'):'';titles[el.id][i]=$(item).next().is('span')?$(item).next().html():'';$(item).hide();$(item).next().hide()});$(el).css({'background-image':'url('+images[el.id][0]+')','width':params[el.id].width,'height':params[el.id].height,'position':'relative','background-position':'top left'}).wrap("<div class='coin-slider' id='coin-slider-"+el.id+"' />");$('#'+el.id).append("<div class='cs-title' id='cs-title-"+el.id+"' style='position: absolute; bottom:0; left: 0; z-index: 1000;'></div>");setFields(el);if(params[el.id].navigation){setNavigation(el)}transition(el,0);transitionCall(el)};this.each(function(){init(this)})};$.fn.coinslider.defaults={width:565,height:290,spw:7,sph:5,delay:3000,sDelay:30,opacity:0.7,titleSpeed:500,effect:'',links:true,hoverPause:true,prevText:'prev',nextText:'next',navigation:true,showNavigationPrevNext:true,showNavigationButtons:true,navigationPrevNextAlwaysShown:false}})(jQuery);
assets/{flexslider → sliders/flexslider}/bg_direction_nav.png RENAMED
File without changes
assets/{flexslider → sliders/flexslider}/flexslider.css RENAMED
@@ -18,11 +18,11 @@
18
  .slides,
19
  .flex-control-nav,
20
  .flex-direction-nav {margin: 0; padding: 0; list-style: none;}
 
21
 
22
  /* FlexSlider Necessary Styles
23
  *********************************/
24
  .flexslider {margin: 0; padding: 0;}
25
- .flexslider .slides > li {display: none; -webkit-backface-visibility: hidden;} /* Hide the slides before the JS is loaded. Avoids image jumping */
26
  .flexslider .slides img {width: 100%; display: block;}
27
  .flex-pauseplay span {text-transform: capitalize;}
28
 
18
  .slides,
19
  .flex-control-nav,
20
  .flex-direction-nav {margin: 0; padding: 0; list-style: none;}
21
+ .flex-direction-nav li {margin: 0; padding: 0; list-style: none;}
22
 
23
  /* FlexSlider Necessary Styles
24
  *********************************/
25
  .flexslider {margin: 0; padding: 0;}
 
26
  .flexslider .slides img {width: 100%; display: block;}
27
  .flex-pauseplay span {text-transform: capitalize;}
28
 
assets/{flexslider → sliders/flexslider}/jquery.flexslider-min.js RENAMED
File without changes
assets/{nivoslider → sliders/nivoslider}/jquery.nivo.slider.pack.js RENAMED
File without changes
assets/{nivoslider → sliders/nivoslider}/nivo-slider.css RENAMED
File without changes
assets/{nivoslider → sliders/nivoslider}/themes/bar/arrows.png RENAMED
File without changes
assets/{nivoslider → sliders/nivoslider}/themes/bar/bar.css RENAMED
File without changes
assets/{nivoslider → sliders/nivoslider}/themes/bar/bullets.png RENAMED
File without changes
assets/{nivoslider → sliders/nivoslider}/themes/bar/loading.gif RENAMED
File without changes
assets/{nivoslider → sliders/nivoslider}/themes/dark/arrows.png RENAMED
File without changes
assets/{nivoslider → sliders/nivoslider}/themes/dark/bullets.png RENAMED
File without changes
assets/{nivoslider → sliders/nivoslider}/themes/dark/dark.css RENAMED
File without changes
assets/{nivoslider → sliders/nivoslider}/themes/dark/loading.gif RENAMED
File without changes
assets/{nivoslider → sliders/nivoslider}/themes/default/arrows.png RENAMED
File without changes
assets/{nivoslider → sliders/nivoslider}/themes/default/bullets.png RENAMED
File without changes
assets/{nivoslider → sliders/nivoslider}/themes/default/default.css RENAMED
@@ -10,7 +10,6 @@ Supports Thumbs: true
10
 
11
  .theme-default .nivoSlider {
12
  position:relative;
13
- background:#fff url(loading.gif) no-repeat 50% 50%;
14
  margin-bottom:10px;
15
  -webkit-box-shadow: 0px 1px 5px 0px #4a4a4a;
16
  -moz-box-shadow: 0px 1px 5px 0px #4a4a4a;
10
 
11
  .theme-default .nivoSlider {
12
  position:relative;
 
13
  margin-bottom:10px;
14
  -webkit-box-shadow: 0px 1px 5px 0px #4a4a4a;
15
  -moz-box-shadow: 0px 1px 5px 0px #4a4a4a;
assets/{nivoslider → sliders/nivoslider}/themes/default/loading.gif RENAMED
File without changes
assets/{nivoslider → sliders/nivoslider}/themes/light/arrows.png RENAMED
File without changes
assets/{nivoslider → sliders/nivoslider}/themes/light/bullets.png RENAMED
File without changes
assets/{nivoslider → sliders/nivoslider}/themes/light/light.css RENAMED
File without changes
assets/{nivoslider → sliders/nivoslider}/themes/light/loading.gif RENAMED
File without changes
assets/{responsiveslides → sliders/responsiveslides}/responsiveslides.css RENAMED
File without changes
assets/{responsiveslides → sliders/responsiveslides}/responsiveslides.min.js RENAMED
File without changes
inc/metaslider.class.php DELETED
@@ -1,210 +0,0 @@
1
- <?php
2
- /**
3
- *
4
- */
5
- class MetaSlider {
6
-
7
- public $id = 0; // slider ID
8
- public $identifier = 0; // unique identifier
9
- public $slides = array(); //slides belonging to this slider
10
- public $settings = array(); // slider settings
11
-
12
- /**
13
- * Constructor
14
- */
15
- public function __construct($id) {
16
- $this->id = $id;
17
- $this->slides = $this->get_slides();
18
- $this->settings = $this->get_settings();
19
- $this->identifier = 'metaslider_' . rand();
20
- }
21
-
22
- /**
23
- * Return the unique identifier for the slider (used to avoid javascript conflicts)
24
- */
25
- protected function get_identifier() {
26
- return $this->identifier;
27
- }
28
-
29
- /**
30
- * Return slides for the current slider
31
- *
32
- * @return array collection of slides belonging to the current slider
33
- */
34
- protected function get_slides() {
35
- $slides = array();
36
-
37
- $args = array(
38
- 'orderby' => $this->get_setting('random') == 'true' && !is_admin() ? 'rand' : 'menu_order',
39
- 'order' => 'ASC',
40
- 'post_type' => 'attachment',
41
- 'post_status' => 'inherit',
42
- 'posts_per_page' => -1,
43
- 'tax_query' => array(
44
- array(
45
- 'taxonomy' => 'ml-slider',
46
- 'field' => 'slug',
47
- 'terms' => $this->id
48
- )
49
- )
50
- );
51
-
52
- $query = new WP_Query($args);
53
-
54
- while ($query->have_posts()) {
55
- $query->next_post();
56
-
57
- $slide_src = wp_get_attachment_image_src($query->post->ID, 'ml-slider-slide'); // returns an array
58
- $slide_thumb = wp_get_attachment_image_src($query->post->ID); // returns an array
59
-
60
- $slides[] = array(
61
- 'id' => $query->post->ID,
62
- 'type' => 'image',
63
- 'url' => get_post_meta($query->post->ID, 'ml-slider_url', true),
64
- 'caption' => htmlentities($query->post->post_excerpt, ENT_QUOTES, 'UTF-8'),
65
- 'src' => $slide_src[0],
66
- 'thumb' => $slide_thumb[0],
67
- 'menu_order' => $query->post->menu_order,
68
- 'target' => get_post_meta($query->post->ID, 'ml-slider_new_window', true) ? '_blank' : '_self',
69
- 'alt' => get_post_meta($query->post->ID, '_wp_attachment_image_alt', true)
70
- );
71
- }
72
-
73
- return $slides;
74
- }
75
-
76
- /**
77
- * Get settings for the current slider
78
- *
79
- * @return array slider settings
80
- */
81
- private function get_settings() {
82
- return get_post_meta($this->id, 'ml-slider_settings', true);
83
- }
84
-
85
- /**
86
- * Return an individual setting
87
- *
88
- * @param string $name Name of the setting
89
- * @return string | bool setting value or fase
90
- */
91
- public function get_setting($name) {
92
- return isset($this->settings[$name]) && strlen($this->settings[$name]) > 0 ? $this->settings[$name] : "false";
93
- }
94
-
95
- /**
96
- * Get the slider libary parameters. This function is overridden by sub classes.
97
- *
98
- * @return string javascript options
99
- */
100
- public function get_default_parameters() {
101
- $params = array(
102
- 'type' => 'nivo',
103
- 'random' => false,
104
- 'cssClass' => '',
105
- 'printCss' => true,
106
- 'printJs' => true,
107
- 'width' => 565,
108
- 'height' => 290,
109
- 'spw' => 7,
110
- 'sph' => 5,
111
- 'delay' => 3000,
112
- 'sDelay' => 30,
113
- 'opacity' => 0.7,
114
- 'titleSpeed' => 500,
115
- 'effect' => 'random',
116
- 'navigation' => true,
117
- 'links' => true,
118
- 'hoverPause' => true,
119
- 'theme' => 'default',
120
- 'direction' => 'horizontal',
121
- 'reverse' => false,
122
- 'animationSpeed' => 600,
123
- 'prevText' => 'Previous',
124
- 'nextText' => 'Next',
125
- 'slices' => 15
126
- );
127
-
128
- return $params;
129
- }
130
-
131
- /**
132
- *
133
- */
134
- private function get_javascript_parameters() {
135
- $options = array();
136
-
137
- foreach ($this->get_default_parameters() as $name => $default) {
138
- if ($param = $this->get_param($name)) {
139
- $val = $this->get_setting($name);
140
-
141
- if (gettype($default) == 'string') {
142
- $options[] = $param . ": '" . $val . "'";
143
- } else {
144
- $options[] = $param . ": " . $val;
145
- }
146
- }
147
- }
148
-
149
- return implode(",\n ", $options);
150
- }
151
-
152
- /**
153
- * Return the Javascript to kick off the slider. Code is wrapped in a timer
154
- * to allow for themes that load jQuery at the bottom of the page.
155
- *
156
- * @return string javascript
157
- */
158
- public function get_javascript() {
159
- $identifier = $this->identifier;
160
-
161
- $return_value = "\n<script type='text/javascript'>";
162
- $return_value .= "\n var " . $identifier . " = function($) {";
163
- $return_value .= "\n $('#" . $identifier . "')." . $this->js_function . "({ ";
164
- $return_value .= "\n " . $this->get_javascript_parameters();
165
- $return_value .= "\n });";
166
- $return_value .= "\n };";
167
- $return_value .= "\n var timer_" . $identifier . " = function() {";
168
- $return_value .= "\n if (window.jQuery && jQuery.isReady) {";
169
- $return_value .= "\n " . $identifier . "(window.jQuery);";
170
- $return_value .= "\n } else {";
171
- $return_value .= "\n window.setTimeout(timer_" . $identifier . ", 100);";
172
- $return_value .= "\n }";
173
- $return_value .= "\n };";
174
- $return_value .= "\n timer_" . $identifier . "();";
175
- $return_value .= "\n</script>";
176
-
177
- return $return_value;
178
- }
179
-
180
- /**
181
- * Output the HTML and Javascript for this slider
182
- */
183
- public function output() {
184
- $class = "metaslider metaslider-{$this->get_setting('type')} metaslider-{$this->id} ml-slider";
185
-
186
- if ($this->get_setting('cssClass') != 'false') {
187
- $class .= " " . $this->get_setting('cssClass');
188
- }
189
-
190
- return "<div style='max-width: {$this->get_setting('width')}px;' class='{$class}'>" .
191
- $this->get_html() .
192
- "</div>" .
193
- $this->get_javascript();
194
- }
195
-
196
- /**
197
- * Include slider assets
198
- */
199
- public function enqueue_scripts() {
200
- if ($this->get_setting('printJs') == 'true') {
201
- wp_enqueue_script('metaslider_' . $this->get_setting('type') . '_slider', METASLIDER_ASSETS_URL . $this->get_js_path(), array('jquery'), METASLIDER_VERSION);
202
- }
203
-
204
- if ($this->get_setting('printCss') == 'true') {
205
- wp_enqueue_style('metaslider_display_css', METASLIDER_ASSETS_URL . 'metaslider-display.css');
206
- wp_enqueue_style('metaslider_' . $this->get_setting('type') . '_slider_css', METASLIDER_ASSETS_URL . $this->get_css_path());
207
- }
208
- }
209
- }
210
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
inc/metaslider.flex.class.php DELETED
@@ -1,78 +0,0 @@
1
- <?php
2
- /*
3
- *
4
- */
5
- class MetaFlexSlider extends MetaSlider {
6
-
7
- protected $js_function = 'flexslider';
8
-
9
- /**
10
- * Constructor
11
- */
12
- public function __construct($id) {
13
- parent::__construct($id);
14
- }
15
-
16
- /**
17
- * Return the file path to the Javascript for this slider
18
- */
19
- public function get_js_path() {
20
- return 'flexslider/jquery.flexslider-min.js';
21
- }
22
-
23
- /**
24
- * Return the css path to the Javascript for this slider
25
- */
26
- public function get_css_path() {
27
- return 'flexslider/flexslider.css';
28
- }
29
-
30
- /**
31
- * Enable the parameters that are accepted by the slider
32
- *
33
- * @return array enabled parameters
34
- */
35
- protected function get_param($param) {
36
- $params = array(
37
- 'effect' => 'animation',
38
- 'direction' => 'direction',
39
- 'prevText' => 'prevText',
40
- 'nextText' => 'nextText',
41
- 'delay' => 'slideshowSpeed',
42
- 'animationSpeed' => 'animationSpeed',
43
- 'hoverPause' => 'pauseOnHover',
44
- 'reverse' => 'reverse',
45
- 'navigation' => 'controlNav',
46
- 'links' =>'directionNav'
47
- );
48
-
49
- if (isset($params[$param])) {
50
- return $params[$param];
51
- }
52
-
53
- return false;
54
- }
55
-
56
- /**
57
- * Build the HTML for a slider.
58
- *
59
- * @return string slider markup.
60
- */
61
- protected function get_html() {
62
- $return_value = "<div id='" . $this->get_identifier() . "' class='flexslider'><ul class='slides'>";
63
-
64
- foreach ($this->get_slides() as $slide) {
65
- $return_value .= "<li>";
66
- if (strlen($slide['url'])) $return_value .= "<a href='{$slide['url']}' target='{$slide['target']}'>";
67
- $return_value .= "<img src='{$slide['src']}' alt='{$slide['alt']}'>";
68
- if (strlen($slide['caption'])) $return_value .= "<p class='flex-caption'>{$slide['caption']}</p>";
69
- if (strlen($slide['url'])) $return_value .= "</a>";
70
- $return_value .= "</li>";
71
- }
72
-
73
- $return_value .= "</ul></div>";
74
-
75
- return $return_value;
76
- }
77
- }
78
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
inc/metaslider.imagehelper.class.php ADDED
@@ -0,0 +1,210 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Helper class for resizing images, returning the correct URL to the image etc
4
+ */
5
+ class MetaSliderImageHelper {
6
+
7
+ private $smart_crop = 'false';
8
+ private $container_width; // slideshow width
9
+ private $container_height; // slideshow height
10
+ private $id; // slide/attachment ID
11
+ private $url;
12
+ private $path; // path to attachment on server
13
+
14
+ /**
15
+ * Constructor
16
+ */
17
+ public function __construct($slide_id, $width, $height, $smart_crop) {
18
+ $this->id = $slide_id;
19
+
20
+ $upload_dir = wp_upload_dir();
21
+ $this->url = $upload_dir['baseurl'] . "/" . get_post_meta($slide_id, '_wp_attached_file', true);
22
+
23
+ $this->container_width = $width;
24
+ $this->container_height = $height;
25
+ $this->smart_crop = $smart_crop;
26
+ }
27
+
28
+ /**
29
+ * Return the crop dimensions.
30
+ *
31
+ * Smart Crop: If the image is smaller than the container width or height, then return
32
+ * dimensions that respect the container size ratio. This ensures image displays in a
33
+ * sane manner in responsive sliders
34
+ *
35
+ * @return array image dimensions
36
+ */
37
+ private function get_crop_dimensions($image_width, $image_height) {
38
+ if ($this->smart_crop == 'false') {
39
+ return array('width' => (int)$this->container_width, 'height' => (int)$this->container_height);
40
+ }
41
+
42
+ $container_width = $this->container_width;
43
+ $container_height = $this->container_height;
44
+
45
+ /**
46
+ * Slideshow Width == Slide Width
47
+ */
48
+ if ($image_width == $container_width && $image_height == $container_height) {
49
+ $new_slide_width = $container_width;
50
+ $new_slide_height = $container_height;
51
+ }
52
+
53
+ if ($image_width == $container_width && $image_height < $container_height) {
54
+ $new_slide_height = $image_height;
55
+ $new_slide_width = $container_width / ($container_height / $image_height);
56
+ }
57
+
58
+ if ($image_width == $container_width && $image_height > $container_height) {
59
+ $new_slide_width = $container_width;
60
+ $new_slide_height = $container_height;
61
+ }
62
+
63
+ /**
64
+ * Slideshow Width < Slide Width
65
+ */
66
+ if ($image_width < $container_width && $image_height == $container_height) {
67
+ $new_slide_width = $image_width;
68
+ $new_slide_height = $image_height / ($container_width / $image_width);
69
+ }
70
+
71
+ /**
72
+ * Slide is smaller than slidehow - both width and height
73
+ */
74
+ if ($image_width < $container_width && $image_height < $container_height) {
75
+ if ($container_width > $container_height) {
76
+ // wide
77
+
78
+ if ($image_width > $image_height) {
79
+ // wide
80
+ $new_slide_height = $image_height;
81
+ $new_slide_width = $container_width / ($container_height / $image_height);
82
+
83
+ if ($new_slide_width > $image_width) {
84
+ $new_slide_width = $image_width;
85
+ $new_slide_height = $container_height / ($container_width / $image_width);
86
+ }
87
+ } else {
88
+ // tall
89
+ $new_slide_width = $image_width;
90
+ $new_slide_height = $container_height / ($container_width / $image_width);
91
+
92
+ if ($new_slide_height > $image_height) {
93
+ $new_slide_height = $image_height;
94
+ $new_slide_width = $container_width / ($container_height / $image_height);
95
+ }
96
+ }
97
+ } else {
98
+ // tall
99
+ if ($image_width > $image_height) {
100
+ // wide
101
+ $new_slide_height = $image_height;
102
+ $new_slide_width = $container_width / ($container_height / $image_height);
103
+
104
+ if ($new_slide_width > $image_width) {
105
+ $new_slide_width = $image_width;
106
+ $new_slide_height = $container_height / ($container_width / $image_width);
107
+ }
108
+ } else {
109
+ // tall
110
+ $new_slide_width = $image_width;
111
+ $new_slide_height = $container_height / ($container_width / $image_width);
112
+
113
+ if ($new_slide_height > $image_height) {
114
+ $new_slide_height = $image_height;
115
+ $new_slide_width = $container_width / ($container_height / $image_height);
116
+ }
117
+ }
118
+ }
119
+ }
120
+
121
+ if ($image_width < $container_width && $image_height > $container_height) {
122
+ $new_slide_width = $image_width;
123
+ $new_slide_height = $container_height / ($container_width / $image_width);
124
+ }
125
+
126
+ /**
127
+ * Slideshow Width > Slide Width
128
+ */
129
+ if ($image_width > $container_width && $image_height == $container_height) {
130
+ $new_slide_width = $container_width;
131
+ $new_slide_height = $container_height;
132
+ }
133
+
134
+ if ($image_width > $container_width && $image_height < $container_height) {
135
+ $new_slide_height = $image_height;
136
+ $new_slide_width = $container_width / ($container_height / $image_height);
137
+ }
138
+
139
+ if ($image_width > $container_width && $image_height > $container_height) {
140
+ $new_slide_width = $container_width;
141
+ $new_slide_height = $container_height;
142
+ }
143
+
144
+ return array('width' => floor($new_slide_width), 'height' => floor($new_slide_height));
145
+ }
146
+
147
+ /**
148
+ * Return the image URL, crop the image to the correct dimensions if required
149
+ *
150
+ * @return string resized image URL
151
+ */
152
+ function get_image_url() {
153
+ // Get the image file path
154
+ $file_path = get_attached_file($this->id);
155
+
156
+ // load image
157
+ $image = wp_get_image_editor($file_path);
158
+
159
+ // editor will return an error if the path is invalid
160
+ if (is_wp_error($image)) {
161
+ if (is_admin()) {
162
+ echo '<div id="message" class="error">';
163
+ echo "<p><strong>ERROR</strong> " . $image->get_error_message() . " Check <a href='http://codex.wordpress.org/Changing_File_Permissions' target='_blank'>file permissions</a></p>";
164
+ echo "<button class='toggle'>Show Details</button>";
165
+ echo "<div class='message' style='display: none;'><br />Slide ID: {$this->id}<pre>";
166
+ var_dump($image);
167
+ echo "</pre></div>";
168
+ echo "</div>";
169
+ }
170
+
171
+ return $this->url;
172
+ }
173
+
174
+ // get the original image size
175
+ $size = $image->get_size();
176
+ $orig_width = $size['width'];
177
+ $orig_height = $size['height'];
178
+
179
+ // get the crop size
180
+ $size = $this->get_crop_dimensions($orig_width, $orig_height);
181
+ $dest_width = $size['width'];
182
+ $dest_height = $size['height'];
183
+
184
+ // image info
185
+ $info = pathinfo( $file_path );
186
+ $dir = $info['dirname'];
187
+ $ext = $info['extension'];
188
+ $name = wp_basename($file_path, ".$ext");
189
+ $dest_file_name = "{$dir}/{$name}-{$dest_width}x{$dest_height}.{$ext}";
190
+
191
+ // URL to destination file
192
+ $url = str_replace(basename($this->url), basename($dest_file_name), $this->url);
193
+
194
+ // crop needed
195
+ if (!file_exists($dest_file_name)) {
196
+ $dims = image_resize_dimensions($orig_width, $orig_height, $dest_width, $dest_height, true);
197
+
198
+ if ($dims) {
199
+ list($dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h) = $dims;
200
+ $image->crop($src_x, $src_y, $src_w, $src_h, $dst_w, $dst_h);
201
+ }
202
+
203
+ $saved = $image->save($dest_file_name);
204
+ $url = str_replace(basename($this->url), basename($saved['path']), $this->url);
205
+ }
206
+
207
+ return $url;
208
+ }
209
+ }
210
+ ?>
inc/slide/metaslide.class.php ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Slide class represting a single slide. This is extended by type specific
4
+ * slides (eg, MetaImageSlide, MetaYoutubeSlide (pro only), etc)
5
+ */
6
+ class MetaSlide {
7
+
8
+ public $slide = 0;
9
+ public $slider = 0;
10
+ public $settings = array(); // slideshow settings
11
+
12
+ /**
13
+ * Set the slide
14
+ */
15
+ public function set_slide($id) {
16
+ $this->slide = get_post($id);
17
+ }
18
+
19
+ /**
20
+ * Set the slide (that this slide belongs to)
21
+ */
22
+ public function set_slider($id) {
23
+ $this->slider = get_post($id);
24
+ $this->settings = get_post_meta($id, 'ml-slider_settings', true);
25
+ }
26
+
27
+ /**
28
+ * Return the HTML for the slide
29
+ *
30
+ * @return array complete array of slides
31
+ */
32
+ public function get_slide($slide_id, $slider_id) {
33
+ $this->set_slider($slider_id);
34
+ $this->set_slide($slide_id);
35
+ return $this->get_slide_html();
36
+ }
37
+
38
+ /**
39
+ * Save the slide
40
+ */
41
+ public function save_slide($slide_id, $slider_id, $fields) {
42
+ $this->set_slider($slider_id);
43
+ $this->set_slide($slide_id);
44
+ $this->save($fields);
45
+ }
46
+
47
+ /**
48
+ * Return the correct slide HTML based on whether we're viewing the slides in the
49
+ * admin panel or on the front end.
50
+ *
51
+ * @return string slide html
52
+ */
53
+ public function get_slide_html() {
54
+ return is_admin() && !isset($_GET['slider_id']) ? $this->get_admin_slide() : $this->get_public_slide();
55
+ }
56
+
57
+ /**
58
+ * Tag the slide attachment to the slider tax category
59
+ */
60
+ public function tag_slide_to_slider() {
61
+ // get the term thats name is the same as the ID of the slider
62
+ $term = get_term_by('name', $this->slider->ID, 'ml-slider');
63
+ // tag this slide to the taxonomy term
64
+ wp_set_post_terms($this->slide->ID, $term->term_id, 'ml-slider', true);
65
+ }
66
+
67
+ /**
68
+ * If the meta doesn't exist, add it
69
+ * If the meta exists, but the value is empty, delete it
70
+ * If the meta exists, update it
71
+ */
72
+ public function add_or_update_or_delete_meta($post_id, $name, $value) {
73
+ $key = "ml-slider_" . $name;
74
+
75
+ if ($value == 'false' || $value == "" || !$value) {
76
+ if (get_post_meta($post_id, $key)) {
77
+ delete_post_meta($post_id, $key);
78
+ }
79
+ } else {
80
+ if (get_post_meta($post_id, $key)) {
81
+ update_post_meta($post_id, $key, $value);
82
+ } else {
83
+ add_post_meta($post_id, $key, $value, true);
84
+ }
85
+ }
86
+ }
87
+
88
+ /**
89
+ * Get the thumbnail for the slide
90
+ */
91
+ public function get_thumb() {
92
+ $imageHelper = new MetaSliderImageHelper($this->slide->ID, 150,150,'false');
93
+ return $imageHelper->get_image_url();
94
+ }
95
+ }
96
+ ?>
inc/slide/metaslide.image.class.php ADDED
@@ -0,0 +1,208 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Generic Slider super class. Extended by library specific classes.
4
+ */
5
+ class MetaImageSlide extends MetaSlide {
6
+
7
+ /**
8
+ * Register slide type
9
+ */
10
+ public function __construct() {
11
+ add_filter('metaslider_get_image_slide', array($this, 'get_slide'), 10, 2);
12
+ add_action('metaslider_save_image_slide', array($this, 'save_slide'), 5, 3);
13
+ add_action('wp_ajax_create_image_slide', array($this, 'ajax_create_slide'));
14
+ }
15
+
16
+ /**
17
+ * Create a new slide and echo the admin HTML
18
+ */
19
+ public function ajax_create_slide() {
20
+ $slide_id = intval($_POST['slide_id']);
21
+ $slider_id = intval($_POST['slider_id']);
22
+
23
+ $this->set_slide($slide_id);
24
+ $this->set_slider($slider_id);
25
+ $this->tag_slide_to_slider();
26
+
27
+ $this->add_or_update_or_delete_meta($slide_id, 'type', 'image');
28
+
29
+ echo $this->get_admin_slide();
30
+ die();
31
+ }
32
+
33
+ /**
34
+ * Return the HTML used to display this slide in the admin screen
35
+ *
36
+ * @return string slide html
37
+ */
38
+ protected function get_admin_slide() {
39
+ // get some slide settings
40
+ $thumb = $this->get_thumb();
41
+ $full = wp_get_attachment_image_src($this->slide->ID, 'full');
42
+ $url = get_post_meta($this->slide->ID, 'ml-slider_url', true);
43
+ $target = get_post_meta($this->slide->ID, 'ml-slider_new_window', true) ? 'checked=checked' : '';
44
+ $caption = htmlentities($this->slide->post_excerpt, ENT_QUOTES, 'UTF-8');
45
+
46
+ // localisation
47
+ $str_caption = __("Caption", 'metaslider');
48
+ $str_new_window = __("New Window", 'metaslider');
49
+ $str_url = __("URL", 'metaslider');
50
+
51
+ // slide row HTML
52
+ $row = "<tr class='slide flex responsive nivo coin'>";
53
+ $row .= " <td class='col-1'>";
54
+ $row .= " <div class='thumb' style='background-image: url({$thumb})'>";
55
+ $row .= " <a class='delete-slide confirm' href='?page=metaslider&id={$this->slider->ID}&deleteSlide={$this->slide->ID}'>x</a>";
56
+ $row .= " <span class='slide-details'>Image {$full[1]} x {$full[2]}</span>";
57
+ $row .= " </div>";
58
+ $row .= " </td>";
59
+ $row .= " <td class='col-2'>";
60
+ $row .= " <textarea name='attachment[{$this->slide->ID}][post_excerpt]' placeholder='{$str_caption}'>{$caption}</textarea>";
61
+ $row .= " <input class='url' type='url' name='attachment[{$this->slide->ID}][url]' placeholder='{$str_url}' value='{$url}' />";
62
+ $row .= " <div class='new_window'>";
63
+ $row .= " <label>{$str_new_window}<input type='checkbox' name='attachment[{$this->slide->ID}][new_window]' {$target} /></label>";
64
+ $row .= " </div>";
65
+ $row .= " <input type='hidden' name='attachment[{$this->slide->ID}][type]' value='image' />";
66
+ $row .= " <input type='hidden' class='menu_order' name='attachment[{$this->slide->ID}][menu_order]' value='{$this->slide->menu_order}' />";
67
+ $row .= " </td>";
68
+ $row .= "</tr>";
69
+
70
+ return $row;
71
+ }
72
+
73
+ /**
74
+ * Returns the HTML for the public slide
75
+ *
76
+ * @return string slide html
77
+ */
78
+ protected function get_public_slide() {
79
+ // get the image url (and handle cropping)
80
+ $imageHelper = new MetaSliderImageHelper(
81
+ $this->slide->ID,
82
+ $this->settings['width'],
83
+ $this->settings['height'],
84
+ isset($this->settings['smartCrop']) ? $this->settings['smartCrop'] : 'false'
85
+ );
86
+
87
+ $url = $imageHelper->get_image_url();
88
+
89
+ if (is_wp_error($url)) {
90
+ return ""; // bail out here. todo: look at a way of notifying the admin
91
+ }
92
+
93
+ // store the slide details
94
+ $slide = array(
95
+ 'thumb' => $url,
96
+ 'url' => get_post_meta($this->slide->ID, 'ml-slider_url', true),
97
+ 'alt' => get_post_meta($this->slide->ID, '_wp_attachment_image_alt', true),
98
+ 'target' => get_post_meta($this->slide->ID, 'ml-slider_new_window', true) ? '_blank' : '_self',
99
+ 'caption' => html_entity_decode($this->slide->post_excerpt, ENT_NOQUOTES, 'UTF-8'),
100
+ 'caption_raw' => $this->slide->post_excerpt
101
+ );
102
+
103
+ // return the slide HTML
104
+ switch($this->settings['type']) {
105
+ case "coin":
106
+ return $this->get_coin_slider_markup($slide);
107
+ case "flex":
108
+ return $this->get_flex_slider_markup($slide);
109
+ case "nivo":
110
+ return $this->get_nivo_slider_markup($slide);
111
+ case "responsive":
112
+ return $this->get_responsive_slides_markup($slide);
113
+ default:
114
+ return $this->get_flex_slider_markup($slide);
115
+ }
116
+ }
117
+
118
+ /**
119
+ * Generate nivo slider markup
120
+ *
121
+ * @return string slide html
122
+ */
123
+ private function get_nivo_slider_markup($slide) {
124
+ $caption = htmlentities($slide['caption_raw'], ENT_QUOTES, 'UTF-8');
125
+
126
+ $html = "<img height='{$this->settings['height']}' width='{$this->settings['width']}' src='{$slide['thumb']}' title=\"{$caption}\" alt='{$slide['alt']}' />";
127
+
128
+ if (strlen($slide['url'])) {
129
+ $html = "<a href='{$slide['url']}' target='{$slide['target']}'>" . $html . "</a>";
130
+ }
131
+
132
+ return $html;
133
+ }
134
+
135
+ /**
136
+ * Generate flex slider markup
137
+ *
138
+ * @return string slide html
139
+ */
140
+ private function get_flex_slider_markup($slide) {
141
+ $html = "<img height='{$this->settings['height']}' width='{$this->settings['width']}' src='{$slide['thumb']}' alt='{$slide['alt']}' />";
142
+
143
+ if (strlen($slide['url'])) {
144
+ $html = "<a href='{$slide['url']}' target='{$slide['target']}'>" . $html . "</a>";
145
+ }
146
+
147
+ if (strlen($slide['caption'])) {
148
+ $html .= "<div class='caption-wrap'><div class='caption'>" . $slide['caption'] . "</div></div>";
149
+ }
150
+
151
+ return $html;
152
+ }
153
+
154
+ /**
155
+ * Generate coin slider markup
156
+ *
157
+ * @return string slide html
158
+ */
159
+ private function get_coin_slider_markup($slide) {
160
+ $url = strlen($slide['url']) ? $slide['url'] : "javascript:void(0)"; // coinslider always wants a URL
161
+
162
+ $html = "<a href='{$url}' style='display: none;'>";
163
+ $html .= "<img height='{$this->settings['height']}' width='{$this->settings['width']}' src='{$slide['thumb']}' alt='{$slide['alt']}' />"; // target doesn't work with coin
164
+ $html .= "<span>{$slide['caption']}</span>";
165
+ $html .= "</a>";
166
+ return $html;
167
+ }
168
+
169
+ /**
170
+ * Generate responsive slides markup
171
+ *
172
+ * @return string slide html
173
+ */
174
+ private function get_responsive_slides_markup($slide) {
175
+ $html = "<img height='{$this->settings['height']}' width='{$this->settings['width']}' src='{$slide['thumb']}' alt='{$slide['alt']}' />";
176
+
177
+ if (strlen($slide['caption'])) {
178
+ $html .= "<div class='caption-wrap'><div class='caption'>" . $slide['caption'] . "</div></div>";
179
+ }
180
+
181
+ if (strlen($slide['url'])) {
182
+ $html = "<a href='{$slide['url']}' target='{$slide['target']}'>" . $html . "</a>";
183
+ }
184
+
185
+ return $html;
186
+ }
187
+
188
+ /**
189
+ * Save
190
+ */
191
+ protected function save($fields) {
192
+ // update the slide
193
+ wp_update_post(array(
194
+ 'ID' => $this->slide->ID,
195
+ 'post_excerpt' => $fields['post_excerpt'],
196
+ 'menu_order' => $fields['menu_order']
197
+ ));
198
+
199
+ // store the URL as a meta field against the attachment
200
+ $this->add_or_update_or_delete_meta($this->slide->ID, 'url', $fields['url']);
201
+
202
+ // store the 'new window' setting
203
+ $new_window = isset($fields['new_window']) && $fields['new_window'] == 'on' ? 'true' : 'false';
204
+
205
+ $this->add_or_update_or_delete_meta($this->slide->ID, 'new_window', $new_window);
206
+ }
207
+ }
208
+ ?>
inc/slider/metaslider.class.php ADDED
@@ -0,0 +1,392 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Generic Slider super class. Extended by library specific classes.
4
+ *
5
+ * This class handles all slider related functionality, including saving settings and outputting
6
+ * the slider HTML (front end and back end)
7
+ */
8
+ class MetaSlider {
9
+
10
+ public $id = 0; // slider ID
11
+ public $identifier = 0; // unique identifier
12
+ public $slides = array(); //slides belonging to this slider
13
+ public $settings = array(); // slider settings
14
+
15
+ /**
16
+ * Constructor
17
+ */
18
+ public function __construct($id) {
19
+ $this->id = $id;
20
+ $this->settings = $this->get_settings();
21
+ $this->identifier = 'metaslider_' . $this->id;
22
+ $this->save();
23
+ $this->populate_slides();
24
+ }
25
+
26
+ /**
27
+ * Return the unique identifier for the slider (used to avoid javascript conflicts)
28
+ *
29
+ * @return string unique identifier for slider
30
+ */
31
+ protected function get_identifier() {
32
+ return $this->identifier;
33
+ }
34
+
35
+ /**
36
+ * Get settings for the current slider
37
+ *
38
+ * @return array slider settings
39
+ */
40
+ private function get_settings() {
41
+ $settings = get_post_meta($this->id, 'ml-slider_settings', true);
42
+
43
+ if (is_array($settings) &&
44
+ isset($settings['type']) &&
45
+ in_array($settings['type'], array('flex', 'coin', 'nivo', 'responsive')))
46
+ {
47
+ return $settings;
48
+ } else {
49
+ return $this->get_default_parameters();
50
+ }
51
+ }
52
+
53
+ /**
54
+ * Return an individual setting
55
+ *
56
+ * @param string $name Name of the setting
57
+ * @return string setting value or 'false'
58
+ */
59
+ public function get_setting($name) {
60
+ if (!isset($this->settings[$name])) {
61
+ $defaults = $this->get_default_parameters();
62
+
63
+ if (isset($defaults[$name])) {
64
+ return $defaults[$name] ? $defaults[$name] : 'false';
65
+ }
66
+ } else {
67
+ if (strlen($this->settings[$name]) > 0) {
68
+ return $this->settings[$name];
69
+ }
70
+ }
71
+
72
+ return 'false';
73
+ }
74
+
75
+ /**
76
+ * Get the slider libary parameters, this lists all possible parameters and their
77
+ * default values. Slider subclasses override this and disable/rename parameters
78
+ * appropriately.
79
+ *
80
+ * @return string javascript options
81
+ */
82
+ public function get_default_parameters() {
83
+ $params = array(
84
+ 'type' => 'flex',
85
+ 'random' => false,
86
+ 'cssClass' => '',
87
+ 'printCss' => true,
88
+ 'printJs' => true,
89
+ 'width' => 565,
90
+ 'height' => 290,
91
+ 'spw' => 7,
92
+ 'sph' => 5,
93
+ 'delay' => 3000,
94
+ 'sDelay' => 30,
95
+ 'opacity' => 0.7,
96
+ 'titleSpeed' => 500,
97
+ 'effect' => 'random',
98
+ 'navigation' => true,
99
+ 'links' => true,
100
+ 'hoverPause' => true,
101
+ 'theme' => 'default',
102
+ 'direction' => 'horizontal',
103
+ 'reverse' => false,
104
+ 'animationSpeed' => 600,
105
+ 'prevText' => '<',
106
+ 'nextText' => '>',
107
+ 'slices' => 15,
108
+ 'center' => false,
109
+ 'smartCrop' => true,
110
+ 'carouselMode' => false,
111
+ 'easing' => 'linear',
112
+ 'autoPlay' => true
113
+ );
114
+
115
+ return $params;
116
+ }
117
+
118
+ /**
119
+ * Save the slider details and initiate the update of all slides associated with slider.
120
+ */
121
+ private function save() {
122
+ if (!is_admin()) {
123
+ return;
124
+ }
125
+ // make changes to slider
126
+ if (isset($_POST['settings'])) {
127
+ $this->update_settings($_POST['settings']);
128
+ }
129
+ if (isset($_POST['title'])) {
130
+ $this->update_title($_POST['title']);
131
+ }
132
+ if (isset($_GET['deleteSlide'])) {
133
+ $this->delete_slide(intval($_GET['deleteSlide']));
134
+ }
135
+
136
+ // make changes to slides
137
+ if (isset($_POST['attachment'])) {
138
+ $this->update_slides($_POST['attachment']);
139
+ }
140
+ }
141
+
142
+ /**
143
+ * Return slides for the current slider
144
+ *
145
+ * @return array collection of slides belonging to the current slider
146
+ */
147
+ private function populate_slides() {
148
+ $slides = array();
149
+
150
+ $args = array(
151
+ 'orderby' => 'menu_order',
152
+ 'order' => 'ASC',
153
+ 'post_type' => 'attachment',
154
+ 'post_status' => 'inherit',
155
+ 'posts_per_page' => -1,
156
+ 'tax_query' => array(
157
+ array(
158
+ 'taxonomy' => 'ml-slider',
159
+ 'field' => 'slug',
160
+ 'terms' => $this->id
161
+ )
162
+ )
163
+ );
164
+
165
+ $query = new WP_Query($args);
166
+
167
+ $slides = array();
168
+
169
+ while ($query->have_posts()) {
170
+ $query->next_post();
171
+
172
+ $type = get_post_meta($query->post->ID, 'ml-slider_type', true);
173
+ $type = $type ? $type : 'image';
174
+
175
+ if (has_filter("metaslider_get_{$type}_slide")) {
176
+ $return = apply_filters("metaslider_get_{$type}_slide", $query->post->ID, $this->id);
177
+
178
+ if (is_array($return)) {
179
+ $slides = array_merge($slides, $return);
180
+ } else {
181
+ $slides[] = $return;
182
+ }
183
+ }
184
+ }
185
+
186
+ if ($this->get_setting('random') == 'true' && !is_admin()) {
187
+ shuffle($slides);
188
+ }
189
+
190
+ $this->slides = $slides;
191
+ }
192
+
193
+ /**
194
+ * Render each slide belonging to the slider out to the screen
195
+ */
196
+ public function render_admin_slides() {
197
+ foreach($this->slides as $slide) {
198
+ echo $slide;
199
+ }
200
+ }
201
+
202
+ /**
203
+ * Output the HTML and Javascript for this slider
204
+ *
205
+ * @return string HTML & Javascrpt
206
+ */
207
+ public function render_public_slides() {
208
+ $class = "metaslider metaslider-{$this->get_setting('type')} metaslider-{$this->id} ml-slider";
209
+
210
+ if ($this->get_setting('cssClass') != 'false') {
211
+ $class .= " " . $this->get_setting('cssClass');
212
+ }
213
+
214
+ if ($this->get_setting('carouselMode') != 'true') {
215
+ $style = "max-width: {$this->get_setting('width')}px;";
216
+ } else {
217
+ $style = "width: 100%;";
218
+ }
219
+
220
+ if ($this->get_setting('center') != 'false') {
221
+ $style .= " margin: 0 auto;";
222
+ }
223
+
224
+ $html = "<div style='{$style}' class='{$class}'>" . $this->get_html() . "</div>";
225
+ $html .= $this->get_inline_javascript();
226
+ $html .= $this->get_inline_css();
227
+
228
+ return $html;
229
+ }
230
+
231
+ /**
232
+ * Build the javascript parameter arguments for the slider.
233
+ *
234
+ * @return string parameters
235
+ */
236
+ private function get_javascript_parameters() {
237
+ $options = array();
238
+
239
+ foreach ($this->get_default_parameters() as $name => $default) {
240
+ if ($param = $this->get_param($name)) {
241
+ $val = $this->get_setting($name);
242
+
243
+ if (gettype($default) == 'string') {
244
+ $options[$param] = '"' . $val . '"';
245
+ } else {
246
+ $options[$param] = $val;
247
+ }
248
+ }
249
+ }
250
+
251
+ $type = $this->get_setting('type');
252
+
253
+ if (has_filter("metaslider_{$type}_slider_parameters")) {
254
+ $options = apply_filters("metaslider_{$type}_slider_parameters", $options, $this->id);
255
+ }
256
+
257
+ foreach ($options as $key => $value) {
258
+ if (is_array($value)) {
259
+ $pairs[] = "{$key}: function() {\n "
260
+ . implode("\n ", $value)
261
+ . "\n }";
262
+ } else {
263
+ $pairs[] = "{$key}:{$value}";
264
+ }
265
+ }
266
+
267
+ return implode(",\n ", $pairs);
268
+ }
269
+
270
+ /**
271
+ * Return the Javascript to kick off the slider. Code is wrapped in a timer
272
+ * to allow for themes that load jQuery at the bottom of the page.
273
+ *
274
+ * Delay execution of slider code until jQuery is ready (supports themes where
275
+ * jQuery is loaded at the bottom of the page)
276
+ *
277
+ * @return string javascript
278
+ */
279
+ private function get_inline_javascript() {
280
+ $identifier = $this->identifier;
281
+ $type = $this->get_setting('type');
282
+ $javascript = "";
283
+ $javascript = apply_filters("metaslider_{$type}_slider_javascript", $javascript, $this->id);
284
+
285
+ $return_value = "\n<script type='text/javascript'>";
286
+ $return_value .= "\n var " . $identifier . " = function($) {";
287
+ $return_value .= "\n $('#" . $identifier . "')." . $this->js_function . "({ ";
288
+ $return_value .= "\n " . $this->get_javascript_parameters();
289
+ $return_value .= "\n });";
290
+ if (strlen ($javascript)) {
291
+ $return_value .= "\n {$javascript}";
292
+ }
293
+ $return_value .= "\n };";
294
+ $return_value .= "\n var timer_" . $identifier . " = function() {";
295
+ $return_value .= "\n var slider = !window.jQuery ? window.setTimeout(timer_{$identifier}, 100) : !jQuery.isReady ? window.setTimeout(timer_{$identifier}, 100) : {$identifier}(window.jQuery);";
296
+ $return_value .= "\n };";
297
+ $return_value .= "\n timer_" . $identifier . "();";
298
+ $return_value .= "\n</script>";
299
+
300
+ return $return_value;
301
+ }
302
+
303
+ /**
304
+ * @return string
305
+ */
306
+ private function get_inline_css() {
307
+ if (has_filter("metaslider_css")) {
308
+ return "<style type='text/css'>" . apply_filters("metaslider_css", $this->settings, $this->id) . "</style>";
309
+ }
310
+ }
311
+
312
+ /**
313
+ * Include slider assets, JS and CSS paths are specified by child classes.
314
+ */
315
+ public function enqueue_scripts() {
316
+ if ($this->get_setting('printJs') == 'true') {
317
+ wp_enqueue_script('metaslider-easing', METASLIDER_ASSETS_URL . 'easing/jQuery.easing.min.js', array('jquery'), METASLIDER_VERSION);
318
+ wp_enqueue_script('metaslider-' . $this->get_setting('type') . '-slider', METASLIDER_ASSETS_URL . $this->js_path, array('jquery'), METASLIDER_VERSION);
319
+ }
320
+
321
+ if ($this->get_setting('printCss') == 'true') {
322
+ wp_enqueue_style('metaslider-display-css', METASLIDER_ASSETS_URL . 'metaslider/public.css', false, METASLIDER_VERSION);
323
+ wp_enqueue_style('metaslider-' . $this->get_setting('type') . '-slider-css', METASLIDER_ASSETS_URL . $this->css_path);
324
+ }
325
+
326
+ do_action('metaslider_register_public_styles');
327
+ }
328
+
329
+ /**
330
+ * Update the slider settings, converting checkbox values (on/off) to true or false.
331
+ */
332
+ public function update_settings($new_settings) {
333
+ $old_settings = $this->get_settings();
334
+
335
+ // convert submitted checkbox values from 'on' or 'off' to boolean values
336
+ $checkboxes = array('hoverPause', 'links', 'navigation', 'reverse', 'random', 'printCss', 'printJs', 'smoothHeight', 'center', 'smartCrop', 'carouselMode', 'autoPlay');
337
+
338
+ foreach ($checkboxes as $checkbox) {
339
+ if (isset($new_settings[$checkbox]) && $new_settings[$checkbox] == 'on') {
340
+ $new_settings[$checkbox] = "true";
341
+ } else {
342
+ $new_settings[$checkbox] = "false";
343
+ }
344
+ }
345
+
346
+ // update the slider settings
347
+ update_post_meta($this->id, 'ml-slider_settings', array_merge((array)$old_settings, $new_settings));
348
+
349
+ $this->settings = $this->get_settings();
350
+ }
351
+
352
+ /**
353
+ * Update the title of the slider
354
+ */
355
+ private function update_title($title) {
356
+ $slide = array(
357
+ 'ID' => $this->id,
358
+ 'post_title' => $title
359
+ );
360
+
361
+ wp_update_post($slide);
362
+ }
363
+
364
+ /**
365
+ * Delete a slide. This doesn't actually remove the slide from WordPress, simply untags
366
+ * it from the slide taxonomy
367
+ */
368
+ private function delete_slide($slide_id) {
369
+ // Get the existing terms and only keep the ones we don't want removed
370
+ $new_terms = array();
371
+ $current_terms = wp_get_object_terms($slide_id, 'ml-slider', array('fields' => 'ids'));
372
+ $term = get_term_by('name', $this->id, 'ml-slider');
373
+
374
+ foreach ($current_terms as $current_term) {
375
+ if ($current_term != $term->term_id) {
376
+ $new_terms[] = intval($current_term);
377
+ }
378
+ }
379
+
380
+ return wp_set_object_terms($slide_id, $new_terms, 'ml-slider');
381
+ }
382
+
383
+ /**
384
+ * Loop over each slide and call the save action on each
385
+ */
386
+ private function update_slides($data) {
387
+ foreach ($data as $slide_id => $fields) {
388
+ do_action("metaslider_save_{$fields['type']}_slide", $slide_id, $this->id, $fields);
389
+ }
390
+ }
391
+ }
392
+ ?>
inc/{metaslider.coin.class.php → slider/metaslider.coin.class.php} RENAMED
@@ -1,31 +1,13 @@
1
  <?php
2
- /*
3
- *
 
4
  */
5
  class MetaCoinSlider extends MetaSlider {
6
 
7
  protected $js_function = 'coinslider';
8
-
9
- /**
10
- * Constructor
11
- */
12
- public function __construct($id) {
13
- parent::__construct($id);
14
- }
15
-
16
- /**
17
- * Return the file path to the Javascript for this slider
18
- */
19
- public function get_js_path() {
20
- return 'coinslider/coin-slider.min.js';
21
- }
22
-
23
- /**
24
- * Return the file path to the CSS for this slider
25
- */
26
- public function get_css_path() {
27
- return 'coinslider/coin-slider-styles.css';
28
- }
29
 
30
  /**
31
  * Enable the parameters that are accepted by the slider
@@ -44,7 +26,10 @@ class MetaCoinSlider extends MetaSlider {
44
  'opacity' => 'opacity',
45
  'titleSpeed' => 'titleSpeed',
46
  'hoverPause' => 'hoverPause',
47
- 'navigation' => 'navigation'
 
 
 
48
  );
49
 
50
  if (isset($params[$param])) {
@@ -62,12 +47,8 @@ class MetaCoinSlider extends MetaSlider {
62
  protected function get_html() {
63
  $retVal = "<div id='" . $this->get_identifier() . "' class='coin-slider'>";
64
 
65
- foreach ($this->get_slides() as $slide) {
66
- $url = strlen($slide['url']) ? $slide['url'] : "javascript:void(0)"; // coinslider always wants a URL
67
- $retVal .= "<a href='{$url}'>";
68
- $retVal .= "<img src='{$slide['src']}' alt='{$slide['alt']}' target='{$slide['target']}'>";
69
- $retVal .= "<span>{$slide['caption']}</span>";
70
- $retVal .= "</a>";
71
  }
72
 
73
  $retVal .= "</div>";
1
  <?php
2
+ /**
3
+ * Override parent 'MetaSlider' class with CoinSlider specific markup,
4
+ * javascript, css and settings.
5
  */
6
  class MetaCoinSlider extends MetaSlider {
7
 
8
  protected $js_function = 'coinslider';
9
+ protected $js_path = 'sliders/coinslider/coin-slider.min.js';
10
+ protected $css_path = 'sliders/coinslider/coin-slider-styles.css';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
 
12
  /**
13
  * Enable the parameters that are accepted by the slider
26
  'opacity' => 'opacity',
27
  'titleSpeed' => 'titleSpeed',
28
  'hoverPause' => 'hoverPause',
29
+ 'navigation' => 'showNavigationButtons',
30
+ 'links' => 'showNavigationPrevNext',
31
+ 'prevText' => 'prevText',
32
+ 'nextText' => 'nextText'
33
  );
34
 
35
  if (isset($params[$param])) {
47
  protected function get_html() {
48
  $retVal = "<div id='" . $this->get_identifier() . "' class='coin-slider'>";
49
 
50
+ foreach ($this->slides as $slide) {
51
+ $retVal .= $slide;
 
 
 
 
52
  }
53
 
54
  $retVal .= "</div>";
inc/slider/metaslider.flex.class.php ADDED
@@ -0,0 +1,112 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Flex Slider specific markup, javascript, css and settings.
4
+ */
5
+ class MetaFlexSlider extends MetaSlider {
6
+
7
+ protected $js_function = 'flexslider';
8
+ protected $js_path = 'sliders/flexslider/jquery.flexslider-min.js';
9
+ protected $css_path = 'sliders/flexslider/flexslider.css';
10
+
11
+ protected $carousel_item_margin = 5;
12
+
13
+ public function __construct($id) {
14
+ parent::__construct($id);
15
+ add_filter('metaslider_flex_slider_parameters', array($this, 'enable_carousel_mode'), 10, 2);
16
+ add_filter('metaslider_flex_slider_parameters', array($this, 'enable_easing'), 10, 2);
17
+ add_filter('metaslider_css', array($this, 'get_carousel_css'), 10, 2);
18
+ }
19
+
20
+
21
+ /**
22
+ * Adjust the slider parameters so they're comparible with the carousel mode
23
+ */
24
+ public function enable_carousel_mode($options, $slider_id) {
25
+ if (isset($options["carouselMode"])) {
26
+ if ($options["carouselMode"] == "true") {
27
+ $options["itemWidth"] = $this->get_setting('width');
28
+ $options["animation"] = "'slide'";
29
+ $options["direction"] = "'horizontal'";
30
+ $options["itemMargin"] = $this->carousel_item_margin;
31
+ }
32
+
33
+ unset($options["carouselMode"]);
34
+ }
35
+
36
+ // we don't want this filter hanging around if there's more than one slideshow on the page
37
+ remove_filter('metaslider_flex_slider_parameters', array($this, 'enable_carousel_mode'));
38
+
39
+ return $options;
40
+ }
41
+
42
+ /**
43
+ * Adjust the slider parameters so they're comparible with the carousel mode
44
+ */
45
+ public function enable_easing($options, $slider_id) {
46
+ if (isset($options["easing"])) {
47
+ $options['useCSS'] = 'false';
48
+ }
49
+
50
+ // we don't want this filter hanging around if there's more than one slideshow on the page
51
+ remove_filter('metaslider_flex_slider_parameters', array($this, 'enable_easing'));
52
+
53
+ return $options;
54
+ }
55
+
56
+ /**
57
+ * Return css to ensure our slides are rendered correctly in the carousel
58
+ */
59
+ public function get_carousel_css($settings, $slider_id) {
60
+ if (isset($settings["carouselMode"]) && $settings['carouselMode'] == 'true') {
61
+ return "#metaslider_{$slider_id}.flexslider li {margin-right: {$this->carousel_item_margin}px;}";
62
+ }
63
+ }
64
+
65
+ /**
66
+ * Enable the parameters that are accepted by the slider
67
+ *
68
+ * @return array enabled parameters
69
+ */
70
+ protected function get_param($param) {
71
+ $params = array(
72
+ 'effect' => 'animation',
73
+ 'direction' => 'direction',
74
+ 'prevText' => 'prevText',
75
+ 'nextText' => 'nextText',
76
+ 'delay' => 'slideshowSpeed',
77
+ 'animationSpeed' => 'animationSpeed',
78
+ 'hoverPause' => 'pauseOnHover',
79
+ 'reverse' => 'reverse',
80
+ 'navigation' => 'controlNav',
81
+ 'links' =>'directionNav',
82
+ 'carouselMode' => 'carouselMode',
83
+ 'easing' => 'easing',
84
+ 'autoPlay' => 'slideshow'
85
+ );
86
+
87
+ if (isset($params[$param])) {
88
+ return $params[$param];
89
+ }
90
+
91
+ return false;
92
+ }
93
+
94
+ /**
95
+ * Build the HTML for a slider.
96
+ *
97
+ * @return string slider markup.
98
+ */
99
+ protected function get_html() {
100
+ $return_value = "<div id='" . $this->get_identifier() . "' class='flexslider'><ul class='slides'>";
101
+
102
+ foreach ($this->slides as $slide) {
103
+ $return_value .= "<li style='display: none;'>" . $slide . "</li>";
104
+ $first = false;
105
+ }
106
+
107
+ $return_value .= "</ul></div>";
108
+
109
+ return $return_value;
110
+ }
111
+ }
112
+ ?>
inc/{metaslider.nivo.class.php → slider/metaslider.nivo.class.php} RENAMED
@@ -1,30 +1,40 @@
1
  <?php
2
- /*
3
- *
4
  */
5
  class MetaNivoSlider extends MetaSlider {
6
 
7
  protected $js_function = 'nivoSlider';
 
 
8
 
9
  /**
10
  * Constructor
11
  */
12
  public function __construct($id) {
13
  parent::__construct($id);
14
- }
15
 
16
- /**
17
- * Return the file path to the Javascript for this slider
18
- */
19
- public function get_js_path() {
20
- return 'nivoslider/jquery.nivo.slider.pack.js';
21
  }
22
 
23
  /**
24
- * Return the file path to the CSS for this slider
 
 
25
  */
26
- public function get_css_path() {
27
- return 'nivoslider/nivo-slider.css';
 
 
 
 
 
 
 
 
 
 
 
28
  }
29
 
30
  /**
@@ -45,7 +55,8 @@ class MetaNivoSlider extends MetaSlider {
45
  'spw' => 'boxCols',
46
  'sph' => 'boxRows',
47
  'navigation' => 'controlNav',
48
- 'links' =>'directionNav'
 
49
  );
50
 
51
  if (isset($params[$param])) {
@@ -64,7 +75,7 @@ class MetaNivoSlider extends MetaSlider {
64
  // include the theme
65
  if ($this->get_setting('printCss') == 'true') {
66
  $theme = $this->get_setting('theme');
67
- wp_enqueue_style('ml-slider_nivo_slider_theme_' . $theme, METASLIDER_ASSETS_URL . "nivoslider/themes/{$theme}/{$theme}.css");
68
  }
69
  }
70
 
@@ -78,10 +89,8 @@ class MetaNivoSlider extends MetaSlider {
78
  $retVal .= "<div class='ribbon'></div>";
79
  $retVal .= "<div id='" . $this->get_identifier() . "' class='nivoSlider'>";
80
 
81
- foreach ($this->get_slides() as $slide) {
82
- if (strlen($slide['url'])) $retVal .= "<a href='{$slide['url']}' target='{$slide['target']}'>";
83
- $retVal .= "<img src='{$slide['src']}' title='{$slide['caption']}' alt='{$slide['alt']}'>";
84
- if (strlen($slide['url'])) $retVal .= "</a>";
85
  }
86
 
87
  $retVal .= "</div></div>";
1
  <?php
2
+ /**
3
+ * Nivo Slider specific markup, javascript, css and settings.
4
  */
5
  class MetaNivoSlider extends MetaSlider {
6
 
7
  protected $js_function = 'nivoSlider';
8
+ protected $js_path = 'sliders/nivoslider/jquery.nivo.slider.pack.js';
9
+ protected $css_path = 'sliders/nivoslider/nivo-slider.css';
10
 
11
  /**
12
  * Constructor
13
  */
14
  public function __construct($id) {
15
  parent::__construct($id);
 
16
 
17
+ add_filter('metaslider_nivo_slider_parameters', array($this, 'set_autoplay_parameter'), 10, 2);
 
 
 
 
18
  }
19
 
20
  /**
21
+ * Other slides use "AutoPlay = true" (true autoplays the slideshow)
22
+ * Nivo slider uses "ManualAvance = false" (ie, false autoplays the slideshow)
23
+ * Take care of the manualAdvance parameter here.
24
  */
25
+ public function set_autoplay_parameter($options, $slider_id) {
26
+ if (isset($options["autoPlay"])) {
27
+ if ($options["autoPlay"] == 'true') {
28
+ $options["manualAdvance"] = 'false';
29
+ } else {
30
+ $options["manualAdvance"] = 'true';
31
+ }
32
+ }
33
+
34
+ // we don't want this filter hanging around if there's more than one slideshow on the page
35
+ remove_filter('metaslider_nivo_slider_parameters', array($this, 'set_autoplay_parameter'));
36
+
37
+ return $options;
38
  }
39
 
40
  /**
55
  'spw' => 'boxCols',
56
  'sph' => 'boxRows',
57
  'navigation' => 'controlNav',
58
+ 'links' =>'directionNav',
59
+ 'autoPlay' => 'autoPlay'
60
  );
61
 
62
  if (isset($params[$param])) {
75
  // include the theme
76
  if ($this->get_setting('printCss') == 'true') {
77
  $theme = $this->get_setting('theme');
78
+ wp_enqueue_style('ml-slider_nivo_slider_theme_' . $theme, METASLIDER_ASSETS_URL . "sliders/nivoslider/themes/{$theme}/{$theme}.css");
79
  }
80
  }
81
 
89
  $retVal .= "<div class='ribbon'></div>";
90
  $retVal .= "<div id='" . $this->get_identifier() . "' class='nivoSlider'>";
91
 
92
+ foreach ($this->slides as $slide) {
93
+ $retVal .= $slide;
 
 
94
  }
95
 
96
  $retVal .= "</div></div>";
inc/{metaslider.responsive.class.php → slider/metaslider.responsive.class.php} RENAMED
@@ -1,31 +1,12 @@
1
  <?php
2
- /*
3
- *
4
  */
5
  class MetaResponsiveSlider extends MetaSlider {
6
 
7
- public $js_function = 'responsiveSlides';
8
-
9
- /**
10
- * Constructor
11
- */
12
- public function __construct($id) {
13
- parent::__construct($id);
14
- }
15
-
16
- /**
17
- * Return the file path to the Javascript for this slider
18
- */
19
- public function get_js_path() {
20
- return 'responsiveslides/responsiveslides.min.js';
21
- }
22
-
23
- /**
24
- * Return the file path to the CSS for this slider
25
- */
26
- public function get_css_path() {
27
- return 'responsiveslides/responsiveslides.css';
28
- }
29
 
30
  /**
31
  * Detect whether thie slide supports the requested setting,
@@ -41,7 +22,8 @@ class MetaResponsiveSlider extends MetaSlider {
41
  'animationSpeed' => 'speed',
42
  'hoverPause' => 'pause',
43
  'navigation' => 'pager',
44
- 'links' =>'nav'
 
45
  );
46
 
47
  if (isset($params[$param])) {
@@ -59,12 +41,13 @@ class MetaResponsiveSlider extends MetaSlider {
59
  protected function get_html() {
60
  $return_value = "<ul id='" . $this->get_identifier() . "' class='rslides'>";
61
 
62
- foreach ($this->get_slides() as $slide) {
63
- $return_value .= "<li>";
64
- if (strlen($slide['url'])) $return_value .= "<a href='{$slide['url']}' target='{$slide['target']}'>";
65
- $return_value .= "<img src='{$slide['src']}' alt='{$slide['alt']}'>";
66
- if (strlen($slide['url'])) $return_value .= "</a>";
67
- $return_value .= "</li>";
 
68
  }
69
 
70
  $return_value .= "</ul>";
1
  <?php
2
+ /**
3
+ * Responsive Slider specific markup, javascript, css and settings.
4
  */
5
  class MetaResponsiveSlider extends MetaSlider {
6
 
7
+ protected $js_function = 'responsiveSlides';
8
+ protected $js_path = 'sliders/responsiveslides/responsiveslides.min.js';
9
+ protected $css_path = 'sliders/responsiveslides/responsiveslides.css';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
 
11
  /**
12
  * Detect whether thie slide supports the requested setting,
22
  'animationSpeed' => 'speed',
23
  'hoverPause' => 'pause',
24
  'navigation' => 'pager',
25
+ 'links' =>'nav',
26
+ 'autoPlay' => 'auto'
27
  );
28
 
29
  if (isset($params[$param])) {
41
  protected function get_html() {
42
  $return_value = "<ul id='" . $this->get_identifier() . "' class='rslides'>";
43
 
44
+ $first = true;
45
+ foreach ($this->slides as $slide) {
46
+ if (!$first) {
47
+ $style = " style='display: none'";
48
+ }
49
+ $return_value .= "<li{$style}>" . $slide . "</li>";
50
+ $first = false;
51
  }
52
 
53
  $return_value .= "</ul>";
languages/default.mo DELETED
Binary file
languages/default.po DELETED
@@ -1,272 +0,0 @@
1
- msgid ""
2
- msgstr ""
3
- "Project-Id-Version: metaslider\n"
4
- "POT-Creation-Date: 2013-02-28 14:38-0000\n"
5
- "PO-Revision-Date: 2013-02-28 14:39-0000\n"
6
- "Last-Translator: \n"
7
- "Language-Team: Matcha Labs <hello@matchalabs.com>\n"
8
- "MIME-Version: 1.0\n"
9
- "Content-Type: text/plain; charset=UTF-8\n"
10
- "Content-Transfer-Encoding: 8bit\n"
11
- "X-Generator: Poedit 1.5.5\n"
12
- "X-Poedit-KeywordsList: _e;__\n"
13
- "X-Poedit-Basepath: ../\n"
14
- "X-Poedit-SearchPath-0: .\n"
15
- "X-Poedit-SearchPath-1: ..\n"
16
-
17
- #: metaslider.php:65 metaslider.php:494 ../ml-slider/metaslider.php:65
18
- #: ../ml-slider/metaslider.php:494
19
- msgid "URL"
20
- msgstr ""
21
-
22
- #: metaslider.php:66 metaslider.php:492 ../ml-slider/metaslider.php:66
23
- #: ../ml-slider/metaslider.php:492
24
- msgid "Caption"
25
- msgstr ""
26
-
27
- #: metaslider.php:67 metaslider.php:493 ../ml-slider/metaslider.php:67
28
- #: ../ml-slider/metaslider.php:493
29
- msgid "New Window"
30
- msgstr ""
31
-
32
- #: metaslider.php:68 ../ml-slider/metaslider.php:68
33
- msgid "Are you sure?"
34
- msgstr ""
35
-
36
- #: metaslider.php:95 metaslider.php:115 ../ml-slider/metaslider.php:95
37
- #: ../ml-slider/metaslider.php:115
38
- msgid "Slider"
39
- msgstr ""
40
-
41
- #: metaslider.php:483 ../ml-slider/metaslider.php:483
42
- msgid "Slides"
43
- msgstr ""
44
-
45
- #: metaslider.php:484 ../ml-slider/metaslider.php:484
46
- msgid "Add Slide"
47
- msgstr ""
48
-
49
- #: metaslider.php:484 ../ml-slider/metaslider.php:484
50
- msgid "Select Slide"
51
- msgstr ""
52
-
53
- #: metaslider.php:484 ../ml-slider/metaslider.php:484
54
- msgid "Add to slider"
55
- msgstr ""
56
-
57
- #: metaslider.php:519 ../ml-slider/metaslider.php:519
58
- msgid "Configuration"
59
- msgstr ""
60
-
61
- #: metaslider.php:521 ../ml-slider/metaslider.php:521
62
- msgid "Save"
63
- msgstr ""
64
-
65
- #: metaslider.php:522 ../ml-slider/metaslider.php:522
66
- msgid "Unsaved Changes"
67
- msgstr ""
68
-
69
- #: metaslider.php:548 ../ml-slider/metaslider.php:548
70
- msgid "Set the initial size for the slides (width x height)"
71
- msgstr ""
72
-
73
- #: metaslider.php:549 ../ml-slider/metaslider.php:549
74
- msgid "Size"
75
- msgstr ""
76
-
77
- #: metaslider.php:557 ../ml-slider/metaslider.php:557
78
- msgid "Slide transition effect"
79
- msgstr ""
80
-
81
- #: metaslider.php:558 ../ml-slider/metaslider.php:558
82
- msgid "Effect"
83
- msgstr ""
84
-
85
- #: metaslider.php:584 ../ml-slider/metaslider.php:584
86
- msgid "Change the slider style"
87
- msgstr ""
88
-
89
- #: metaslider.php:585 ../ml-slider/metaslider.php:585
90
- msgid "Theme"
91
- msgstr ""
92
-
93
- #: metaslider.php:597 ../ml-slider/metaslider.php:597
94
- msgid "Show slide navigation row"
95
- msgstr ""
96
-
97
- #: metaslider.php:598 ../ml-slider/metaslider.php:598
98
- msgid "Show Navigation"
99
- msgstr ""
100
-
101
- #: metaslider.php:605 ../ml-slider/metaslider.php:605
102
- msgid "Show previous and next links"
103
- msgstr ""
104
-
105
- #: metaslider.php:606 ../ml-slider/metaslider.php:606
106
- msgid "Show Links"
107
- msgstr ""
108
-
109
- #: metaslider.php:613 ../ml-slider/metaslider.php:613
110
- msgid ""
111
- "Pause the slideshow when hovering over slider, then resume when no longer "
112
- "hovering"
113
- msgstr ""
114
-
115
- #: metaslider.php:614 ../ml-slider/metaslider.php:614
116
- msgid "Hover pause"
117
- msgstr ""
118
-
119
- #: metaslider.php:621 ../ml-slider/metaslider.php:621
120
- msgid "How long to display each slide, in milliseconds"
121
- msgstr ""
122
-
123
- #: metaslider.php:622 ../ml-slider/metaslider.php:622
124
- msgid "Slide delay"
125
- msgstr ""
126
-
127
- #: metaslider.php:629 ../ml-slider/metaslider.php:629
128
- msgid "Randomise the order of the slides"
129
- msgstr ""
130
-
131
- #: metaslider.php:630 ../ml-slider/metaslider.php:630
132
- msgid "Random"
133
- msgstr ""
134
-
135
- #: metaslider.php:637 ../ml-slider/metaslider.php:637
136
- msgid "Select the sliding direction"
137
- msgstr ""
138
-
139
- #: metaslider.php:637 ../ml-slider/metaslider.php:637
140
- msgid "Direction"
141
- msgstr ""
142
-
143
- #: metaslider.php:646 ../ml-slider/metaslider.php:646
144
- msgid "Set the text for the 'previous' direction item"
145
- msgstr ""
146
-
147
- #: metaslider.php:647 ../ml-slider/metaslider.php:647
148
- msgid "Previous text"
149
- msgstr ""
150
-
151
- #: metaslider.php:654 ../ml-slider/metaslider.php:654
152
- msgid "Set the text for the 'next' direction item"
153
- msgstr ""
154
-
155
- #: metaslider.php:655 ../ml-slider/metaslider.php:655
156
- msgid "Next text"
157
- msgstr ""
158
-
159
- #: metaslider.php:662 ../ml-slider/metaslider.php:662
160
- msgid "Advanced Settings"
161
- msgstr ""
162
-
163
- #: metaslider.php:665 ../ml-slider/metaslider.php:665
164
- msgid "Reverse the animation direction"
165
- msgstr ""
166
-
167
- #: metaslider.php:666 ../ml-slider/metaslider.php:666
168
- msgid "Reverse"
169
- msgstr ""
170
-
171
- #: metaslider.php:673 ../ml-slider/metaslider.php:673
172
- msgid "Number of squares (width x height)"
173
- msgstr ""
174
-
175
- #: metaslider.php:674 ../ml-slider/metaslider.php:674
176
- msgid "Number of squares"
177
- msgstr ""
178
-
179
- #: metaslider.php:682 metaslider.php:683 ../ml-slider/metaslider.php:682
180
- #: ../ml-slider/metaslider.php:683
181
- msgid "Number of slices"
182
- msgstr ""
183
-
184
- #: metaslider.php:690 ../ml-slider/metaslider.php:690
185
- msgid "Delay beetwen squares in ms"
186
- msgstr ""
187
-
188
- #: metaslider.php:691 ../ml-slider/metaslider.php:691
189
- msgid "Square delay"
190
- msgstr ""
191
-
192
- #: metaslider.php:698 ../ml-slider/metaslider.php:698
193
- msgid "Opacity of title and navigation"
194
- msgstr ""
195
-
196
- #: metaslider.php:699 ../ml-slider/metaslider.php:699
197
- msgid "Opacity"
198
- msgstr ""
199
-
200
- #: metaslider.php:706 ../ml-slider/metaslider.php:706
201
- msgid "Set the fade in speef of the caption"
202
- msgstr ""
203
-
204
- #: metaslider.php:707 ../ml-slider/metaslider.php:707
205
- msgid "Caption speed"
206
- msgstr ""
207
-
208
- #: metaslider.php:714 ../ml-slider/metaslider.php:714
209
- msgid "Set the speed of animations, in milliseconds"
210
- msgstr ""
211
-
212
- #: metaslider.php:715 ../ml-slider/metaslider.php:715
213
- msgid "Animation speed"
214
- msgstr ""
215
-
216
- #: metaslider.php:722 ../ml-slider/metaslider.php:722
217
- msgid "Developer Options"
218
- msgstr ""
219
-
220
- #: metaslider.php:725 ../ml-slider/metaslider.php:725
221
- msgid ""
222
- "Specify any custom CSS Classes you would like to be added to the slider "
223
- "wrapper"
224
- msgstr ""
225
-
226
- #: metaslider.php:726 ../ml-slider/metaslider.php:726
227
- msgid "CSS classes"
228
- msgstr ""
229
-
230
- #: metaslider.php:733 ../ml-slider/metaslider.php:733
231
- msgid "Uncheck this is you would like to include your own CSS"
232
- msgstr ""
233
-
234
- #: metaslider.php:734 ../ml-slider/metaslider.php:734
235
- msgid "Print CSS"
236
- msgstr ""
237
-
238
- #: metaslider.php:741 ../ml-slider/metaslider.php:741
239
- msgid "Uncheck this is you would like to include your own Javascript"
240
- msgstr ""
241
-
242
- #: metaslider.php:742 ../ml-slider/metaslider.php:742
243
- msgid "Print JS"
244
- msgstr ""
245
-
246
- #: metaslider.php:754 ../ml-slider/metaslider.php:754
247
- msgid "Usage"
248
- msgstr ""
249
-
250
- #: metaslider.php:760 ../ml-slider/metaslider.php:760
251
- msgid "Shortcode"
252
- msgstr ""
253
-
254
- #: metaslider.php:766 ../ml-slider/metaslider.php:766
255
- msgid "Template Include"
256
- msgstr ""
257
-
258
- #: metaslider.php:776 ../ml-slider/metaslider.php:776
259
- msgid "Delete Slider"
260
- msgstr ""
261
-
262
- #: ../ml-post-slider/ml-post-slider.php:71
263
- msgid "Title"
264
- msgstr ""
265
-
266
- #: ../ml-post-slider/ml-post-slider.php:72
267
- msgid "Slider category"
268
- msgstr ""
269
-
270
- #: ../ml-post-slider/ml-post-slider.php:73
271
- msgid "Date"
272
- msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
languages/metaslider-fr_FR.mo ADDED
Binary file
languages/metaslider-fr_FR.po ADDED
@@ -0,0 +1,356 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: metaslider\n"
4
+ "POT-Creation-Date: 2013-04-13 15:30-0000\n"
5
+ "PO-Revision-Date: 2013-04-23 11:38+0100\n"
6
+ "Last-Translator: FB-graphiklab.com <referencement@fb-graphiklab.com>\n"
7
+ "Language-Team: www.fb-graphiklab.com\n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.5.5\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
13
+ "X-Poedit-Basepath: .\n"
14
+ "X-Poedit-Language: French\n"
15
+ "X-Poedit-Country: FRANCE\n"
16
+ "X-Poedit-SearchPath-0: .\n"
17
+ "X-Poedit-SearchPath-1: ..\n"
18
+
19
+ #: ../ml-slider.php:80
20
+ msgid "Go Pro"
21
+ msgstr "Passer Pro"
22
+
23
+ #: ../ml-slider.php:127
24
+ msgid "Image"
25
+ msgstr "Image"
26
+
27
+ #: ../ml-slider.php:128
28
+ msgid "Add to slider"
29
+ msgstr "Ajouter au diaporama"
30
+
31
+ #: ../ml-slider.php:147
32
+ msgid "More Slide Types"
33
+ msgstr "Autres types de diapositive"
34
+
35
+ #: ../ml-slider.php:193
36
+ #: ../inc/slide/metaslide.image.class.php:49
37
+ msgid "URL"
38
+ msgstr "URL"
39
+
40
+ #: ../ml-slider.php:194
41
+ #: ../inc/slide/metaslide.image.class.php:47
42
+ msgid "Caption"
43
+ msgstr "Légende"
44
+
45
+ #: ../ml-slider.php:195
46
+ #: ../inc/slide/metaslide.image.class.php:48
47
+ msgid "New Window"
48
+ msgstr "Nouvelle fenêtre"
49
+
50
+ #: ../ml-slider.php:196
51
+ msgid "Are you sure?"
52
+ msgstr "Êtes vous sûr ?"
53
+
54
+ #: ../ml-slider.php:229
55
+ msgid "Documentation"
56
+ msgstr "Documentation"
57
+
58
+ #: ../ml-slider.php:236
59
+ msgid "Support Meta Slider"
60
+ msgstr "Soutenir Meta Slider"
61
+
62
+ #: ../ml-slider.php:351
63
+ msgid "New Slider"
64
+ msgstr "Nouveau diaporama"
65
+
66
+ #: ../ml-slider.php:443
67
+ msgid "Version"
68
+ msgstr "Version"
69
+
70
+ #: ../ml-slider.php:444
71
+ msgid "Responsive"
72
+ msgstr "Responsive"
73
+
74
+ #: ../ml-slider.php:445
75
+ #: ../ml-slider.php:449
76
+ msgid "Yes"
77
+ msgstr "Oui"
78
+
79
+ #: ../ml-slider.php:445
80
+ #: ../ml-slider.php:449
81
+ msgid "No"
82
+ msgstr "Non"
83
+
84
+ #: ../ml-slider.php:447
85
+ #: ../ml-slider.php:548
86
+ msgid "Size"
87
+ msgstr "Taille"
88
+
89
+ #: ../ml-slider.php:447
90
+ msgid "kb"
91
+ msgstr "kb"
92
+
93
+ #: ../ml-slider.php:448
94
+ msgid "Mobile Friendly"
95
+ msgstr "Compatible Mobiles"
96
+
97
+ #: ../ml-slider.php:495
98
+ msgid "Slides"
99
+ msgstr "Diapositives"
100
+
101
+ #: ../ml-slider.php:498
102
+ #: ../ml-slider.php:499
103
+ msgid "Add Slide"
104
+ msgstr "Ajouter une diapositive"
105
+
106
+ #: ../ml-slider.php:518
107
+ msgid "Settings"
108
+ msgstr "Paramètres"
109
+
110
+ #: ../ml-slider.php:519
111
+ msgid "Save"
112
+ msgstr "Sauver"
113
+
114
+ #: ../ml-slider.php:520
115
+ msgid "Save & Preview"
116
+ msgstr "Sauver & Prévisualiser"
117
+
118
+ #: ../ml-slider.php:547
119
+ msgid "Set the initial size for the slides (width x height)"
120
+ msgstr "Définissez la taille initiale des diapositives (largeur x hauteur)"
121
+
122
+ #: ../ml-slider.php:551
123
+ msgid "Width"
124
+ msgstr "Largeur"
125
+
126
+ #: ../ml-slider.php:552
127
+ msgid "Height"
128
+ msgstr "Hauteur"
129
+
130
+ #: ../ml-slider.php:556
131
+ msgid "Center align the slideshow"
132
+ msgstr "Alignement central du diaporama"
133
+
134
+ #: ../ml-slider.php:557
135
+ msgid "Center align"
136
+ msgstr "Alignement central"
137
+
138
+ #: ../ml-slider.php:564
139
+ msgid "Show slide navigation row"
140
+ msgstr "Montrer la rangée de navigation du diaporama"
141
+
142
+ #: ../ml-slider.php:565
143
+ msgid "Controls"
144
+ msgstr "Contrôles"
145
+
146
+ #: ../ml-slider.php:573
147
+ msgid "Slide transition effect"
148
+ msgstr "Effet de transition des diapositives"
149
+
150
+ #: ../ml-slider.php:574
151
+ msgid "Effect"
152
+ msgstr "Effet"
153
+
154
+ #: ../ml-slider.php:600
155
+ msgid "Change the slider style"
156
+ msgstr "Changer le style du diaporama"
157
+
158
+ #: ../ml-slider.php:601
159
+ msgid "Theme"
160
+ msgstr "Thème"
161
+
162
+ #: ../ml-slider.php:613
163
+ msgid "Advanced Settings"
164
+ msgstr "Paramètres avancés"
165
+
166
+ #: ../ml-slider.php:616
167
+ msgid "Start the slideshow on page load"
168
+ msgstr "Démarrer le diaporama au chargement de la page"
169
+
170
+ #: ../ml-slider.php:617
171
+ msgid "Auto play"
172
+ msgstr "Lecture auto"
173
+
174
+ #: ../ml-slider.php:624
175
+ msgid "Animation easing effect"
176
+ msgstr "Effet \"easing\" de l'animation"
177
+
178
+ #: ../ml-slider.php:625
179
+ msgid "Easing"
180
+ msgstr "Easing"
181
+
182
+ #: ../ml-slider.php:653
183
+ msgid "Select the sliding direction"
184
+ msgstr "Choisissez le sens du défilement"
185
+
186
+ #: ../ml-slider.php:653
187
+ msgid "Slide direction"
188
+ msgstr "Sens du défilement"
189
+
190
+ #: ../ml-slider.php:656
191
+ msgid "Horizontal"
192
+ msgstr "Horizontal"
193
+
194
+ #: ../ml-slider.php:657
195
+ msgid "Vertical"
196
+ msgstr "Vertical"
197
+
198
+ #: ../ml-slider.php:662
199
+ msgid "Smart Crop ensures your responsive slides are cropped to a ratio that results in a consistent slideshow size"
200
+ msgstr "Cadrage intelligent veille à ce que les diapositives \"responsives\" soient recadrés à un ratio qui aboutit à une taille compatible avec celle du diaporama"
201
+
202
+ #: ../ml-slider.php:663
203
+ msgid "Smart crop"
204
+ msgstr "Cadrage intelligent"
205
+
206
+ #: ../ml-slider.php:670
207
+ msgid "Display as carousel - when selected the effect and direction options will be ignored."
208
+ msgstr "Afficher sous forme de carrousel - lorsque sélectionné l'effet et les options de direction seront ignorées."
209
+
210
+ #: ../ml-slider.php:671
211
+ msgid "Carousel mode"
212
+ msgstr "Mode carrousel"
213
+
214
+ #: ../ml-slider.php:678
215
+ msgid "Randomise the order of the slides"
216
+ msgstr "Aléatorisation de l'ordre des diapositives"
217
+
218
+ #: ../ml-slider.php:679
219
+ msgid "Random"
220
+ msgstr "Aléatoire"
221
+
222
+ #: ../ml-slider.php:686
223
+ msgid "Pause the slideshow when hovering over slider, then resume when no longer hovering"
224
+ msgstr "Mettre le diaporama en pause au survol, puis reprendre lorsqu'il ne l'est plus"
225
+
226
+ #: ../ml-slider.php:687
227
+ msgid "Hover pause"
228
+ msgstr "Pause au survol"
229
+
230
+ #: ../ml-slider.php:694
231
+ msgid "Reverse the animation direction"
232
+ msgstr "Inverser le sens de l'animation"
233
+
234
+ #: ../ml-slider.php:695
235
+ msgid "Reverse"
236
+ msgstr "Inverser"
237
+
238
+ #: ../ml-slider.php:702
239
+ msgid "How long to display each slide, in milliseconds"
240
+ msgstr "Durée d'affichage de chaque diapositive, en millisecondes"
241
+
242
+ #: ../ml-slider.php:703
243
+ msgid "Slide delay"
244
+ msgstr "Délai entre les diapositives"
245
+
246
+ #: ../ml-slider.php:706
247
+ #: ../ml-slider.php:755
248
+ #: ../ml-slider.php:771
249
+ msgid "ms"
250
+ msgstr "ms"
251
+
252
+ #: ../ml-slider.php:710
253
+ msgid "Set the speed of animations, in milliseconds"
254
+ msgstr "Définir la vitesse des animations, en millisecondes"
255
+
256
+ #: ../ml-slider.php:711
257
+ msgid "Animation speed"
258
+ msgstr "Vitesse d'animation"
259
+
260
+ #: ../ml-slider.php:718
261
+ msgid "Number of squares (width x height)"
262
+ msgstr "Nombre de carrés (largeur x hauteur)"
263
+
264
+ #: ../ml-slider.php:719
265
+ msgid "Number of squares"
266
+ msgstr "Nombre de carrés"
267
+
268
+ #: ../ml-slider.php:727
269
+ #: ../ml-slider.php:728
270
+ msgid "Number of slices"
271
+ msgstr "Nombre de tranches"
272
+
273
+ #: ../ml-slider.php:735
274
+ msgid "Set the text for the 'previous' direction item"
275
+ msgstr "Définir le texte pour l'élément de direction «précédent»"
276
+
277
+ #: ../ml-slider.php:736
278
+ msgid "Previous text"
279
+ msgstr "Précédent"
280
+
281
+ #: ../ml-slider.php:743
282
+ msgid "Set the text for the 'next' direction item"
283
+ msgstr "Définir le texte pour l'élément de direction «suivant»"
284
+
285
+ #: ../ml-slider.php:744
286
+ msgid "Next text"
287
+ msgstr "Suivant"
288
+
289
+ #: ../ml-slider.php:751
290
+ msgid "Delay beetwen squares in ms"
291
+ msgstr "Délai entre les carrés en millisecondes"
292
+
293
+ #: ../ml-slider.php:752
294
+ msgid "Square delay"
295
+ msgstr "Délai entre les carrés"
296
+
297
+ #: ../ml-slider.php:759
298
+ msgid "Opacity of title and navigation"
299
+ msgstr "Opacité du titre et de la navigation"
300
+
301
+ #: ../ml-slider.php:760
302
+ msgid "Opacity"
303
+ msgstr "Opacité"
304
+
305
+ #: ../ml-slider.php:767
306
+ msgid "Set the fade in speef of the caption"
307
+ msgstr "Régler le fondu de la vitesse de la légende"
308
+
309
+ #: ../ml-slider.php:768
310
+ msgid "Caption speed"
311
+ msgstr "Vitesse de la légende"
312
+
313
+ #: ../ml-slider.php:775
314
+ msgid "Developer Options"
315
+ msgstr "Options pour les développeurs"
316
+
317
+ #: ../ml-slider.php:778
318
+ msgid "Specify any custom CSS Classes you would like to be added to the slider wrapper"
319
+ msgstr "Spécifiez des classes CSS personnalisés que vous souhaitez ajouter à l'enveloppe (wrapper) du diaporama"
320
+
321
+ #: ../ml-slider.php:779
322
+ msgid "CSS classes"
323
+ msgstr "Classes CSS"
324
+
325
+ #: ../ml-slider.php:786
326
+ msgid "Uncheck this is you would like to include your own CSS"
327
+ msgstr "Décochez ceci si vous souhaitez inclure votre propre CSS"
328
+
329
+ #: ../ml-slider.php:787
330
+ msgid "Print CSS"
331
+ msgstr "Imprimer CSS"
332
+
333
+ #: ../ml-slider.php:794
334
+ msgid "Uncheck this is you would like to include your own Javascript"
335
+ msgstr "Décochez ceci si vous souhaitez inclure votre propre Javascript"
336
+
337
+ #: ../ml-slider.php:795
338
+ msgid "Print JS"
339
+ msgstr "Imprimer JS"
340
+
341
+ #: ../ml-slider.php:806
342
+ msgid "Usage"
343
+ msgstr "Utilisation"
344
+
345
+ #: ../ml-slider.php:812
346
+ msgid "Shortcode"
347
+ msgstr "Shortcode"
348
+
349
+ #: ../ml-slider.php:818
350
+ msgid "Template Include"
351
+ msgstr "Inclusion template"
352
+
353
+ #: ../ml-slider.php:828
354
+ msgid "Delete Slider"
355
+ msgstr "Effacer diaporama"
356
+
languages/metaslider.mo ADDED
Binary file
languages/metaslider.po ADDED
@@ -0,0 +1,351 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ msgid ""
2
+ msgstr ""
3
+ "Project-Id-Version: metaslider\n"
4
+ "POT-Creation-Date: 2013-04-13 15:30-0000\n"
5
+ "PO-Revision-Date: 2013-04-13 15:31-0000\n"
6
+ "Last-Translator: \n"
7
+ "Language-Team: \n"
8
+ "MIME-Version: 1.0\n"
9
+ "Content-Type: text/plain; charset=UTF-8\n"
10
+ "Content-Transfer-Encoding: 8bit\n"
11
+ "X-Generator: Poedit 1.5.5\n"
12
+ "X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
13
+ "X-Poedit-Basepath: .\n"
14
+ "X-Poedit-SearchPath-0: .\n"
15
+ "X-Poedit-SearchPath-1: ..\n"
16
+
17
+ #: ../ml-slider.php:80
18
+ msgid "Go Pro"
19
+ msgstr ""
20
+
21
+ #: ../ml-slider.php:127
22
+ msgid "Image"
23
+ msgstr ""
24
+
25
+ #: ../ml-slider.php:128
26
+ msgid "Add to slider"
27
+ msgstr ""
28
+
29
+ #: ../ml-slider.php:147
30
+ msgid "More Slide Types"
31
+ msgstr ""
32
+
33
+ #: ../ml-slider.php:193 ../inc/slide/metaslide.image.class.php:49
34
+ msgid "URL"
35
+ msgstr ""
36
+
37
+ #: ../ml-slider.php:194 ../inc/slide/metaslide.image.class.php:47
38
+ msgid "Caption"
39
+ msgstr ""
40
+
41
+ #: ../ml-slider.php:195 ../inc/slide/metaslide.image.class.php:48
42
+ msgid "New Window"
43
+ msgstr ""
44
+
45
+ #: ../ml-slider.php:196
46
+ msgid "Are you sure?"
47
+ msgstr ""
48
+
49
+ #: ../ml-slider.php:229
50
+ msgid "Documentation"
51
+ msgstr ""
52
+
53
+ #: ../ml-slider.php:236
54
+ msgid "Support Meta Slider"
55
+ msgstr ""
56
+
57
+ #: ../ml-slider.php:351
58
+ msgid "New Slider"
59
+ msgstr ""
60
+
61
+ #: ../ml-slider.php:443
62
+ msgid "Version"
63
+ msgstr ""
64
+
65
+ #: ../ml-slider.php:444
66
+ msgid "Responsive"
67
+ msgstr ""
68
+
69
+ #: ../ml-slider.php:445 ../ml-slider.php:449
70
+ msgid "Yes"
71
+ msgstr ""
72
+
73
+ #: ../ml-slider.php:445 ../ml-slider.php:449
74
+ msgid "No"
75
+ msgstr ""
76
+
77
+ #: ../ml-slider.php:447 ../ml-slider.php:548
78
+ msgid "Size"
79
+ msgstr ""
80
+
81
+ #: ../ml-slider.php:447
82
+ msgid "kb"
83
+ msgstr ""
84
+
85
+ #: ../ml-slider.php:448
86
+ msgid "Mobile Friendly"
87
+ msgstr ""
88
+
89
+ #: ../ml-slider.php:495
90
+ msgid "Slides"
91
+ msgstr ""
92
+
93
+ #: ../ml-slider.php:498 ../ml-slider.php:499
94
+ msgid "Add Slide"
95
+ msgstr ""
96
+
97
+ #: ../ml-slider.php:518
98
+ msgid "Settings"
99
+ msgstr ""
100
+
101
+ #: ../ml-slider.php:519
102
+ msgid "Save"
103
+ msgstr ""
104
+
105
+ #: ../ml-slider.php:520
106
+ msgid "Save & Preview"
107
+ msgstr ""
108
+
109
+ #: ../ml-slider.php:547
110
+ msgid "Set the initial size for the slides (width x height)"
111
+ msgstr ""
112
+
113
+ #: ../ml-slider.php:551
114
+ msgid "Width"
115
+ msgstr ""
116
+
117
+ #: ../ml-slider.php:552
118
+ msgid "Height"
119
+ msgstr ""
120
+
121
+ #: ../ml-slider.php:556
122
+ msgid "Center align the slideshow"
123
+ msgstr ""
124
+
125
+ #: ../ml-slider.php:557
126
+ msgid "Center align"
127
+ msgstr ""
128
+
129
+ #: ../ml-slider.php:564
130
+ msgid "Show slide navigation row"
131
+ msgstr ""
132
+
133
+ #: ../ml-slider.php:565
134
+ msgid "Controls"
135
+ msgstr ""
136
+
137
+ #: ../ml-slider.php:573
138
+ msgid "Slide transition effect"
139
+ msgstr ""
140
+
141
+ #: ../ml-slider.php:574
142
+ msgid "Effect"
143
+ msgstr ""
144
+
145
+ #: ../ml-slider.php:600
146
+ msgid "Change the slider style"
147
+ msgstr ""
148
+
149
+ #: ../ml-slider.php:601
150
+ msgid "Theme"
151
+ msgstr ""
152
+
153
+ #: ../ml-slider.php:613
154
+ msgid "Advanced Settings"
155
+ msgstr ""
156
+
157
+ #: ../ml-slider.php:616
158
+ msgid "Start the slideshow on page load"
159
+ msgstr ""
160
+
161
+ #: ../ml-slider.php:617
162
+ msgid "Auto play"
163
+ msgstr ""
164
+
165
+ #: ../ml-slider.php:624
166
+ msgid "Animation easing effect"
167
+ msgstr ""
168
+
169
+ #: ../ml-slider.php:625
170
+ msgid "Easing"
171
+ msgstr ""
172
+
173
+ #: ../ml-slider.php:653
174
+ msgid "Select the sliding direction"
175
+ msgstr ""
176
+
177
+ #: ../ml-slider.php:653
178
+ msgid "Slide direction"
179
+ msgstr ""
180
+
181
+ #: ../ml-slider.php:656
182
+ msgid "Horizontal"
183
+ msgstr ""
184
+
185
+ #: ../ml-slider.php:657
186
+ msgid "Vertical"
187
+ msgstr ""
188
+
189
+ #: ../ml-slider.php:662
190
+ msgid ""
191
+ "Smart Crop ensures your responsive slides are cropped to a ratio that "
192
+ "results in a consistent slideshow size"
193
+ msgstr ""
194
+
195
+ #: ../ml-slider.php:663
196
+ msgid "Smart crop"
197
+ msgstr ""
198
+
199
+ #: ../ml-slider.php:670
200
+ msgid ""
201
+ "Display as carousel - when selected the effect and direction options will be "
202
+ "ignored."
203
+ msgstr ""
204
+
205
+ #: ../ml-slider.php:671
206
+ msgid "Carousel mode"
207
+ msgstr ""
208
+
209
+ #: ../ml-slider.php:678
210
+ msgid "Randomise the order of the slides"
211
+ msgstr ""
212
+
213
+ #: ../ml-slider.php:679
214
+ msgid "Random"
215
+ msgstr ""
216
+
217
+ #: ../ml-slider.php:686
218
+ msgid ""
219
+ "Pause the slideshow when hovering over slider, then resume when no longer "
220
+ "hovering"
221
+ msgstr ""
222
+
223
+ #: ../ml-slider.php:687
224
+ msgid "Hover pause"
225
+ msgstr ""
226
+
227
+ #: ../ml-slider.php:694
228
+ msgid "Reverse the animation direction"
229
+ msgstr ""
230
+
231
+ #: ../ml-slider.php:695
232
+ msgid "Reverse"
233
+ msgstr ""
234
+
235
+ #: ../ml-slider.php:702
236
+ msgid "How long to display each slide, in milliseconds"
237
+ msgstr ""
238
+
239
+ #: ../ml-slider.php:703
240
+ msgid "Slide delay"
241
+ msgstr ""
242
+
243
+ #: ../ml-slider.php:706 ../ml-slider.php:755 ../ml-slider.php:771
244
+ msgid "ms"
245
+ msgstr ""
246
+
247
+ #: ../ml-slider.php:710
248
+ msgid "Set the speed of animations, in milliseconds"
249
+ msgstr ""
250
+
251
+ #: ../ml-slider.php:711
252
+ msgid "Animation speed"
253
+ msgstr ""
254
+
255
+ #: ../ml-slider.php:718
256
+ msgid "Number of squares (width x height)"
257
+ msgstr ""
258
+
259
+ #: ../ml-slider.php:719
260
+ msgid "Number of squares"
261
+ msgstr ""
262
+
263
+ #: ../ml-slider.php:727 ../ml-slider.php:728
264
+ msgid "Number of slices"
265
+ msgstr ""
266
+
267
+ #: ../ml-slider.php:735
268
+ msgid "Set the text for the 'previous' direction item"
269
+ msgstr ""
270
+
271
+ #: ../ml-slider.php:736
272
+ msgid "Previous text"
273
+ msgstr ""
274
+
275
+ #: ../ml-slider.php:743
276
+ msgid "Set the text for the 'next' direction item"
277
+ msgstr ""
278
+
279
+ #: ../ml-slider.php:744
280
+ msgid "Next text"
281
+ msgstr ""
282
+
283
+ #: ../ml-slider.php:751
284
+ msgid "Delay beetwen squares in ms"
285
+ msgstr ""
286
+
287
+ #: ../ml-slider.php:752
288
+ msgid "Square delay"
289
+ msgstr ""
290
+
291
+ #: ../ml-slider.php:759
292
+ msgid "Opacity of title and navigation"
293
+ msgstr ""
294
+
295
+ #: ../ml-slider.php:760
296
+ msgid "Opacity"
297
+ msgstr ""
298
+
299
+ #: ../ml-slider.php:767
300
+ msgid "Set the fade in speef of the caption"
301
+ msgstr ""
302
+
303
+ #: ../ml-slider.php:768
304
+ msgid "Caption speed"
305
+ msgstr ""
306
+
307
+ #: ../ml-slider.php:775
308
+ msgid "Developer Options"
309
+ msgstr ""
310
+
311
+ #: ../ml-slider.php:778
312
+ msgid ""
313
+ "Specify any custom CSS Classes you would like to be added to the slider "
314
+ "wrapper"
315
+ msgstr ""
316
+
317
+ #: ../ml-slider.php:779
318
+ msgid "CSS classes"
319
+ msgstr ""
320
+
321
+ #: ../ml-slider.php:786
322
+ msgid "Uncheck this is you would like to include your own CSS"
323
+ msgstr ""
324
+
325
+ #: ../ml-slider.php:787
326
+ msgid "Print CSS"
327
+ msgstr ""
328
+
329
+ #: ../ml-slider.php:794
330
+ msgid "Uncheck this is you would like to include your own Javascript"
331
+ msgstr ""
332
+
333
+ #: ../ml-slider.php:795
334
+ msgid "Print JS"
335
+ msgstr ""
336
+
337
+ #: ../ml-slider.php:806
338
+ msgid "Usage"
339
+ msgstr ""
340
+
341
+ #: ../ml-slider.php:812
342
+ msgid "Shortcode"
343
+ msgstr ""
344
+
345
+ #: ../ml-slider.php:818
346
+ msgid "Template Include"
347
+ msgstr ""
348
+
349
+ #: ../ml-slider.php:828
350
+ msgid "Delete Slider"
351
+ msgstr ""
ml-slider.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Meta Slider
4
  * Plugin URI: http://www.metaslider.com
5
  * Description: 4 sliders in 1! Choose from Nivo Slider, Flex Slider, Coin Slider or Responsive Slides.
6
- * Version: 1.3
7
  * Author: Matcha Labs
8
  * Author URI: http://www.matchalabs.com
9
  * License: GPLv2 or later
@@ -14,356 +14,361 @@
14
  * GNU General Public License for more details.
15
  */
16
 
17
- define('METASLIDER_VERSION', '1.3');
18
  define('METASLIDER_BASE_URL', plugin_dir_url(__FILE__));
19
  define('METASLIDER_ASSETS_URL', METASLIDER_BASE_URL . 'assets/');
20
  define('METASLIDER_BASE_DIR_LONG', dirname(__FILE__));
21
  define('METASLIDER_INC_DIR', METASLIDER_BASE_DIR_LONG . '/inc/');
22
 
23
- require_once( METASLIDER_INC_DIR . 'metaslider.class.php' );
24
- require_once( METASLIDER_INC_DIR . 'metaslider.coin.class.php' );
25
- require_once( METASLIDER_INC_DIR . 'metaslider.flex.class.php' );
26
- require_once( METASLIDER_INC_DIR . 'metaslider.nivo.class.php' );
27
- require_once( METASLIDER_INC_DIR . 'metaslider.responsive.class.php' );
 
28
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  class MetaSliderPlugin {
30
 
 
31
  var $slider = null;
32
 
33
  /**
34
  * Constructor
35
  */
36
  public function __construct() {
37
- add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'));
38
- add_action('admin_menu', array($this, 'register_admin_menu'), 10001);
 
 
39
  add_action('init', array($this, 'register_post_type' ));
40
  add_action('init', array($this, 'register_taxonomy' ));
41
- add_action('admin_print_styles', array( $this, 'register_admin_styles'));
 
 
42
  add_shortcode('metaslider', array($this, 'register_shortcode'));
43
  add_shortcode('ml-slider', array($this, 'register_shortcode')); // backwards compatibility
44
- load_plugin_textdomain( 'metaslider', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  }
46
 
47
  /**
48
- * Registers and enqueues admin-specific styles.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49
  */
50
  public function register_admin_styles() {
51
- wp_enqueue_style('metaslider-tipsy-styles', METASLIDER_ASSETS_URL . 'tipsy/tipsy.css');
52
- wp_enqueue_style('metaslider-admin-styles', METASLIDER_ASSETS_URL . 'metaslider-admin.css');
 
 
 
53
  }
54
-
55
  /**
56
- * Registers and enqueues admin-specific JavaScript.
57
  */
58
  public function register_admin_scripts() {
 
 
 
 
 
 
 
 
 
 
 
59
  wp_enqueue_media();
 
 
60
  wp_enqueue_script('jquery-ui-core', array('jquery'));
61
  wp_enqueue_script('jquery-ui-sortable', array('jquery', 'jquery-ui-core'));
62
- wp_enqueue_script('metaslider-tipsy', METASLIDER_ASSETS_URL . 'tipsy/jquery.tipsy.js', array('jquery'));
63
- wp_enqueue_script('metaslider-admin-script', METASLIDER_ASSETS_URL . 'metaslider.js', array('jquery', 'metaslider-tipsy', 'media-upload'));
 
 
 
 
64
  wp_localize_script( 'metaslider-admin-script', 'metaslider', array(
65
  'url' => __("URL", 'metaslider'),
66
  'caption' => __("Caption", 'metaslider'),
67
  'new_window' => __("New Window", 'metaslider'),
68
- 'confirm' => __("Are you sure?", 'metaslider')
 
 
69
  ));
70
- }
71
-
72
- /**
73
- * Include the default CSS
74
- */
75
- public function enqueue_scripts() {
76
- wp_enqueue_style('metaslider_display_css', METASLIDER_ASSETS_URL . 'metaslider-display.css');
77
  }
78
 
79
  /**
80
  * Add the menu page
81
  */
82
  public function register_admin_menu() {
83
- $page = add_menu_page('MetaSlider', 'MetaSlider', 'edit_others_posts', 'metaslider', array(
 
 
84
  $this, 'render_admin_page'
85
- ), METASLIDER_ASSETS_URL . 'matchalabs.png', 9501);
86
 
87
- add_action('admin_print_scripts-' . $page, array( $this, 'register_admin_scripts' ) );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  }
89
 
90
  /**
91
- * Create ML Slider post type
92
  */
93
  public function register_post_type() {
94
- $post_type_args = array(
95
- 'singular_label' => __('Slider'),
96
- 'public' => false,
97
- 'show_ui' => false,
98
- 'publicly_queryable' => false,
99
- 'query_var' => true,
100
- 'capability_type' => 'post',
101
- 'has_archive' => false,
102
- 'hierarchical' => false,
103
  'rewrite' => false
104
- );
105
- register_post_type('ml-slider', $post_type_args);
106
  }
107
 
108
  /**
109
- * Create taxonomy to store slider => slides relationship
110
  */
111
  public function register_taxonomy() {
112
- $labels = array(
113
- 'name' => _x( 'Slider', 'taxonomy general name' ),
114
- 'singular_name' => _x( 'Slider', 'taxonomy singular name' ),
115
- 'menu_name' => __( 'Slider' )
116
- );
117
-
118
- $args = array(
119
  'hierarchical' => true,
120
- 'labels' => $labels,
121
- 'show_ui' => false,
122
- 'show_admin_column' => true,
123
  'query_var' => false,
124
- 'rewrite' => array('slug' => 'ml-slider')
125
- );
126
-
127
- register_taxonomy( 'ml-slider', 'attachment', $args );
128
  }
129
 
130
  /**
131
- * Current slide ID
 
 
132
  */
133
- private function set_slider($id) {
134
- $this->slider = new MetaSlider($id);
135
- }
136
 
137
- /**
138
- * Handle slide uploads/changes
139
- */
140
- public function admin_process() {
141
- if (isset($_REQUEST['id'])) {
142
- $slider_id = $_REQUEST['id'];
143
- } else {
144
- $slider_id = $this->find_slider('date', 'DESC');
145
- }
146
 
147
- $this->set_slider($slider_id);
 
148
 
149
- $this->handle_slide_updates();
150
- $this->handle_delete_slider();
151
- $this->handle_delete_slide();
152
- $this->handle_update_slider_title();
153
- $this->handle_update_slider_settings();
154
- $this->handle_create_slider();
155
 
156
- $this->set_slider($this->slider->id); // refresh
 
 
 
157
  }
158
 
159
  /**
160
- * Get sliders. Returns a nicely formatted array of currently
161
- * published sliders.
162
- *
163
- * @return array array of all published sliders
164
  */
165
- private function get_sliders() {
166
- $sliders = false;
167
-
168
- // list the tabs
169
- $args = array(
170
- 'post_type' => 'ml-slider',
171
- 'post_status' => 'publish',
172
- 'orderby' => 'date',
173
- 'order' => 'ASC',
174
- 'posts_per_page' => -1
175
- );
176
-
177
- $the_query = new WP_Query($args);
178
-
179
- while ($the_query->have_posts()) {
180
- if (!$this->slider->id) {
181
- $this->set_slider($the_query->post->ID);
182
- }
183
-
184
- $the_query->the_post();
185
- $active = $this->slider->id == $the_query->post->ID ? true : false;
186
-
187
- $sliders[] = array(
188
- 'active' => $active,
189
- 'title' => get_the_title(),
190
- 'id' => $the_query->post->ID
191
- );
192
  }
193
-
194
- return $sliders;
195
  }
196
 
197
  /**
198
- * Create a new slider
199
  */
200
- private function handle_create_slider() {
201
- // create a new slider
202
- if (isset($_GET['add'])) {
203
- $defaults = array();
204
-
205
- // if possible, take a copy of the last edited slider settings in place of default settings
206
- if ($last_modified = $this->find_slider('modified', 'DESC')) {
207
- $defaults = get_post_meta($last_modified, 'ml-slider_settings', true);
208
- }
209
-
210
- // insert the post
211
- $id = wp_insert_post(array(
212
- 'post_title' => 'New Slider',
213
- 'post_status' => 'publish',
214
- 'post_type' => 'ml-slider'
215
- ));
216
-
217
- // use the default settings if we can't find anything more suitable.
218
- if (empty($defaults)) {
219
- $slider = new MetaSlider($id);
220
- $defaults = $slider->get_default_parameters();
221
- }
222
-
223
- // insert the post meta
224
- add_post_meta($id, 'ml-slider_settings', $defaults, true);
225
-
226
- // create the taxonomy term, the term is the ID of the slider itself
227
- wp_insert_term($id, 'ml-slider');
228
-
229
- // set the current slider to the one we have created
230
- $this->set_slider($id);
231
  }
232
  }
233
 
234
  /**
235
- * Update slider settings
236
  */
237
- private function handle_update_slider_settings() {
238
- if (isset($_POST['settings'])) {
239
- $old_settings = $this->slider->settings;
240
 
241
- $new_settings = $_POST['settings'];
242
-
243
- // convert submitted checkbox values from 'on' or 'off' to boolean values
244
- $checkboxes = array('hoverPause', 'links', 'navigation', 'reverse', 'random', 'printCss', 'printJs');
245
-
246
- foreach ($checkboxes as $checkbox) {
247
- if (isset($new_settings[$checkbox]) && $new_settings[$checkbox] == 'on') {
248
- $new_settings[$checkbox] = "true";
249
- } else {
250
- $new_settings[$checkbox] = "false";
251
- }
252
- }
253
-
254
- // update the slider settings
255
- update_post_meta($this->slider->id, 'ml-slider_settings', array_merge($old_settings, $new_settings));
256
  }
257
- }
258
 
259
- /**
260
- * Update slider title
261
- */
262
- private function handle_update_slider_title() {
263
- if (isset($_POST['title'])) {
264
- $slide = array(
265
- 'ID' => $this->slider->id,
266
- 'post_title' => $_POST['title']
267
- );
268
-
269
- wp_update_post($slide);
270
  }
271
- }
272
 
273
- /**
274
- * 'Delete' a slide. Note: this doesn't delete the slide itself, it just deletes
275
- * the relationship between the slider taxonomy term and the slide.
276
- *
277
- * @return bool true if the slide was untagged
278
- */
279
- private function handle_delete_slide() {
280
- if (isset($_GET['deleteSlide'])) {
281
- $slideToUntagFromCurrentSlider = $_GET['deleteSlide'];
282
-
283
- // Get the existing terms and only keep the ones we don't want removed
284
- $new_terms = array();
285
- $current_terms = wp_get_object_terms($slideToUntagFromCurrentSlider, 'ml-slider', array('fields' => 'ids'));
286
- $term = get_term_by('name', $this->slider->id, 'ml-slider');
287
-
288
- foreach ($current_terms as $current_term) {
289
- if ($current_term != $term->term_id) {
290
- $new_terms[] = intval($current_term);
291
- }
292
- }
293
-
294
- return wp_set_object_terms($slideToUntagFromCurrentSlider, $new_terms, 'ml-slider');
295
  }
 
 
296
  }
297
 
298
  /**
299
- * Update the slides. Add new slides, update ordering, taxonomy tagging (associating
300
- * slide with slider), resize images.
301
  */
302
- private function handle_slide_updates() {
303
- // handle slide description, url and ordering
304
- if (isset($_POST['attachment'])) {
305
- foreach ($_POST['attachment'] as $id => $fields) {
306
- // get the term thats name is the same as the ID of the slider
307
- $term = get_term_by('name', $this->slider->id, 'ml-slider');
308
-
309
- // tag this slide to the taxonomy term
310
- wp_set_post_terms($id, $term->term_id, 'ml-slider', true);
311
-
312
- // update the slide
313
- wp_update_post(array(
314
- 'ID' => $id,
315
- 'post_excerpt' => $fields['post_excerpt'],
316
- 'menu_order' => $fields['menu_order']
317
- ));
318
-
319
- // store the URL as a meta field against the attachment
320
- if (get_post_meta($id, 'ml-slider_url')) {
321
- if ($fields['url'] == '') {
322
- delete_post_meta($id, 'ml-slider_url');
323
- } else {
324
- update_post_meta($id, 'ml-slider_url', $fields['url']);
325
- }
326
- } else {
327
- add_post_meta($id, 'ml-slider_url', $fields['url'], true);
328
- }
329
-
330
- // store the new window setting as a meta field against the attachment
331
- if (isset($fields['new_window']) && $fields['new_window'] == 'on') {
332
- if (get_post_meta($id, 'ml-slider_new_window')) {
333
- update_post_meta($id, 'ml-slider_new_window', 'true');
334
- } else {
335
- add_post_meta($id, 'ml-slider_new_window', 'true', true);
336
- }
337
- } else {
338
- if (get_post_meta($id, 'ml-slider_new_window')) {
339
- delete_post_meta($id, 'ml-slider_new_window');
340
- }
341
- }
342
-
343
- // add a new image size for the current slider
344
- add_image_size('ml-slider-slide', $this->slider->get_setting('width'), $this->slider->get_setting('height'), true);
345
- $file = get_attached_file($id);
346
- // ask WordPress to resize our slides for us
347
- wp_update_attachment_metadata($id, wp_generate_attachment_metadata($id, $file));
348
- }
349
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
350
  }
351
 
352
  /**
353
- * Delete a slider
354
  */
355
- private function handle_delete_slider() {
356
- if (isset($_GET['delete'])) {
357
- $slide = array(
358
- 'ID' => intVal($_GET['delete']),
359
- 'post_status' => 'trash'
360
- );
361
-
362
- wp_update_post($slide);
363
-
364
- // set current slider to first published
365
- $this->set_slider($this->find_slider('date', 'DESC'));
366
- }
367
  }
368
 
369
  /**
@@ -391,58 +396,53 @@ class MetaSliderPlugin {
391
 
392
  return false;
393
  }
394
-
395
-
396
  /**
397
- * Shortcode used to display slideshow
 
398
  *
399
- * @return string HTML output of the shortcode
400
  */
401
- public function register_shortcode($atts) {
402
- extract(shortcode_atts(array(
403
- 'id' => null
404
- ), $atts));
405
-
406
- if ($id == null) {
407
- return;
408
- }
409
-
410
- $slider = get_post($id);
411
-
412
- // check the slider is published
413
- if ($slider->post_status != 'publish') {
414
- return false;
415
- }
416
-
417
- // good to go
418
- $this->set_slider($id);
419
-
420
- switch ($this->slider->get_setting('type')) {
421
- case('coin'):
422
- $slider = new MetaCoinSlider($id);
423
- break;
424
- case('flex'):
425
- $slider = new MetaFlexSlider($id);
426
- break;
427
- case('nivo'):
428
- $slider = new MetaNivoSlider($id);
429
- break;
430
- case('responsive'):
431
- $slider = new MetaResponsiveSlider($id);
432
- break;
433
  }
434
-
435
- $slider->enqueue_scripts();
436
-
437
- return $slider->output();
438
 
 
439
  }
440
 
441
- /**
442
- * /////////////////////////////////////////////////////////////////
443
- * Admin Page
444
- * /////////////////////////////////////////////////////////////////
445
- */
 
 
 
 
 
 
446
 
447
  /**
448
  * Render the admin page (tabs, slides, settings)
@@ -451,12 +451,16 @@ class MetaSliderPlugin {
451
  $this->admin_process();
452
  ?>
453
 
 
 
 
 
454
  <div class="wrap metaslider">
455
  <form accept-charset="UTF-8" action="?page=metaslider&id=<?php echo $this->slider->id ?>" method="post">
456
 
457
  <h2 class="nav-tab-wrapper">
458
  <?php
459
- if ($tabs = $this->get_sliders()) {
460
  foreach ($tabs as $tab) {
461
  if ($tab['active']) {
462
  echo "<div class='nav-tab nav-tab-active'><input type='text' name='title' value='" . $tab['title'] . "' onkeypress='this.style.width = ((this.value.length + 1) * 9) + \"px\"' /></div>";
@@ -477,36 +481,23 @@ class MetaSliderPlugin {
477
  ?>
478
 
479
  <div class="left">
480
- <table class="widefat sortable slides">
481
  <thead>
482
  <tr>
483
- <th style="width: 100px;"><?php _e("Slides", 'metaslider') ?></th>
484
- <th><input class='upload_image_button alignright button-secondary' type='button' value='<?php _e("Add Slide", 'metaslider') ?>' data-uploader_title='<?php _e("Select Slide", 'metaslider') ?>' data-uploader_button_text='<?php _e("Add to slider", 'metaslider') ?>' /></th>
 
 
 
 
 
 
485
  </tr>
486
  </thead>
487
 
488
  <tbody>
489
  <?php
490
- foreach($this->slider->slides as $slide) {
491
- $new_window_checked = $slide['target'] == '_blank' ? 'checked=checked' : '';
492
- $str_caption = __("Caption", 'metaslider');
493
- $str_new_window = __("New Window", 'metaslider');
494
- $str_url = __("URL", 'metaslider');
495
-
496
- echo "<tr class='slide'>";
497
- echo "<td class='col-1'>";
498
- echo "<div style='position: absolute'><a class='delete-slide confirm' href='?page=metaslider&id={$this->slider->id}&deleteSlide={$slide['id']}'>x</a></div>";
499
- echo "<img src='{$slide['thumb']}' width='150px'></td>";
500
- echo "<td class='col-2'>";
501
- echo "<textarea name='attachment[{$slide['id']}][post_excerpt]' placeholder='{$str_caption}'>{$slide['caption']}</textarea>";
502
- echo "<input class='url' type='text' name='attachment[{$slide['id']}][url]' placeholder='{$str_url}' value='{$slide['url']}' />";
503
- echo "<div class='new_window'><label>{$str_new_window}";
504
- echo "<input type='checkbox' name='attachment[{$slide['id']}][new_window]' {$new_window_checked} />";
505
- echo "</label></div>";
506
- echo "<input type='hidden' class='menu_order' name='attachment[{$slide['id']}][menu_order]' value={$slide['menu_order']} />";
507
- echo "</td>";
508
- echo "</tr>";
509
- }
510
  ?>
511
  </tbody>
512
  </table>
@@ -516,41 +507,59 @@ class MetaSliderPlugin {
516
  <table class="widefat settings">
517
  <thead>
518
  <tr>
519
- <th><?php _e("Configuration", 'metaslider') ?></th>
520
- <th>
521
- <input type='submit' value='<?php _e("Save", 'metaslider') ?>' class='alignright button-primary' />
522
- <div class='unsaved tooltip' style='display: none;' title='<?php _e("Unsaved Changes", 'metaslider') ?>'>!</div>
 
523
  </th>
524
  </tr>
525
  </thead>
526
  <tbody>
527
  <tr>
528
- <td colspan='2'>
529
- <div class='slider-lib nivo'>
530
- <label for='nivo' title='Version: 3.2<br />Responsive: Yes<br />Effects: 14<br />Size: 12kb<br />Mobile Friendly: Yes<br />Themes: 4' class='tooltiptop'>NivoSlider</label>
531
- <input class="select-slider" id='nivo' rel='nivo' type='radio' name="settings[type]" <?php if ($this->slider->get_setting('type') == 'nivo') echo 'checked=checked' ?> value='nivo' />
532
- </div>
533
- <div class='slider-lib coin'>
534
- <label for='coin' title='Version: 1.0<br />Responsive: No<br />Effects: 4<br />Size: 8kb<br />Mobile Friendly: Yes' class='tooltiptop'>CoinSlider</label>
535
- <input class="select-slider" id='coin' rel='coin' type='radio' name="settings[type]" <?php if ($this->slider->get_setting('type') == 'coin') echo 'checked=checked' ?> value='coin' />
536
- </div>
537
  <div class='slider-lib flex'>
538
- <label for='flex' title='Version: 2.1<br />Responsive: Yes<br />Effects: 2<br />Size: 17kb<br />Mobile Friendly: Yes' class='tooltiptop'>FlexSlider</label>
539
  <input class="select-slider" id='flex' rel='flex' type='radio' name="settings[type]" <?php if ($this->slider->get_setting('type') == 'flex') echo 'checked=checked' ?> value='flex' />
540
  </div>
541
  <div class='slider-lib responsive'>
542
- <label for='responsive' title='Version: 1.53<br />Responsive: Yes<br />Effects: 1<br />Size: 3kb<br />Mobile Friendly: Yes' class='tooltiptop'>Responsive</label>
543
  <input class="select-slider" id='responsive' rel='responsive' type='radio' name="settings[type]" <?php if ($this->slider->get_setting('type') == 'responsive') echo 'checked=checked' ?> value='responsive' />
544
  </div>
 
 
 
 
 
 
 
 
545
  </td>
546
  </tr>
547
  <tr>
548
- <td class='tooltip' title="<?php _e("Set the initial size for the slides (width x height)", 'metaslider') ?>">
549
  <?php _e("Size", 'metaslider') ?>
550
  </td>
551
  <td>
552
- <input type='text' size='3' name="settings[width]" value='<?php echo $this->slider->get_setting('width') ?>' />px X
553
- <input type='text' size='3' name="settings[height]" value='<?php echo $this->slider->get_setting('height') ?>' />px
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
554
  </td>
555
  </tr>
556
  <tr>
@@ -594,35 +603,68 @@ class MetaSliderPlugin {
594
  </td>
595
  </tr>
596
  <tr>
597
- <td class='tooltip' title="<?php _e("Show slide navigation row", 'metaslider') ?>">
598
- <?php _e("Show Navigation", 'metaslider') ?>
 
 
 
599
  </td>
600
  <td>
601
- <input class='option coin responsive nivo flex' type='checkbox' name="settings[navigation]" <?php if ($this->slider->get_setting('navigation') == 'true') echo 'checked=checked' ?> />
602
  </td>
603
  </tr>
604
  <tr>
605
- <td class='tooltip' title="<?php _e("Show previous and next links", 'metaslider') ?>">
606
- <?php _e("Show Links", 'metaslider') ?>
607
  </td>
608
  <td>
609
- <input class='option responsive nivo flex' type='checkbox' name="settings[links]" <?php if ($this->slider->get_setting('links') == 'true') echo 'checked=checked' ?> />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
610
  </td>
611
  </tr>
612
  <tr>
613
- <td class='tooltip' title="<?php _e("Pause the slideshow when hovering over slider, then resume when no longer hovering", 'metaslider') ?>">
614
- <?php _e("Hover pause", 'metaslider') ?>
 
 
 
 
 
 
 
 
 
615
  </td>
616
  <td>
617
- <input class='option coin flex responsive nivo' type='checkbox' name="settings[hoverPause]" <?php if ($this->slider->get_setting('hoverPause') == 'true') echo 'checked=checked' ?> />
618
  </td>
619
  </tr>
620
  <tr>
621
- <td class='tooltip' title="<?php _e("How long to display each slide, in milliseconds", 'metaslider') ?>">
622
- <?php _e("Slide delay", 'metaslider') ?>
623
  </td>
624
  <td>
625
- <input class='option coin flex responsive nivo' type='text' size='5' name="settings[delay]" value='<?php echo $this->slider->get_setting('delay') ?>' />ms
626
  </td>
627
  </tr>
628
  <tr>
@@ -634,39 +676,35 @@ class MetaSliderPlugin {
634
  </td>
635
  </tr>
636
  <tr>
637
- <td class='tooltip' title="<?php _e("Select the sliding direction", 'metaslider') ?>"><?php _e("Direction", 'metaslider') ?></td>
 
 
638
  <td>
639
- <select class='option flex' name="settings[direction]">
640
- <option value='horizontal' <?php if ($this->slider->get_setting('direction') == 'horizontal') echo 'selected=selected' ?>>Horizontal</option>
641
- <option value='vertical' <?php if ($this->slider->get_setting('direction') == 'vertical') echo 'selected=selected' ?>>Vertical</option>
642
- </select>
643
  </td>
644
  </tr>
645
  <tr>
646
- <td class='tooltip' title="<?php _e("Set the text for the 'previous' direction item", 'metaslider') ?>">
647
- <?php _e("Previous text", 'metaslider') ?>
648
  </td>
649
  <td>
650
- <input class='option flex responsive nivo' type='text' name="settings[prevText]" value='<?php if ($this->slider->get_setting('prevText') != 'false') echo $this->slider->get_setting('prevText') ?>' />
651
  </td>
652
  </tr>
653
  <tr>
654
- <td class='tooltip' title="<?php _e("Set the text for the 'next' direction item", 'metaslider') ?>">
655
- <?php _e("Next text", 'metaslider') ?>
656
  </td>
657
  <td>
658
- <input class='option flex responsive nivo' type='text' name="settings[nextText]" value='<?php if ($this->slider->get_setting('nextText') != 'false') echo $this->slider->get_setting('nextText') ?>' />
659
  </td>
660
  </tr>
661
  <tr>
662
- <td colspan='2' class='highlight'><?php _e("Advanced Settings", 'metaslider') ?></td>
663
- </tr>
664
- <tr>
665
- <td class='tooltip' title="<?php _e("Reverse the animation direction", 'metaslider') ?>">
666
- <?php _e("Reverse", 'metaslider') ?>
667
  </td>
668
  <td>
669
- <input class='option flex' type='checkbox' name="settings[reverse]" <?php if ($this->slider->get_setting('reverse') == 'true') echo 'checked=checked' ?> />
670
  </td>
671
  </tr>
672
  <tr>
@@ -674,8 +712,8 @@ class MetaSliderPlugin {
674
  <?php _e("Number of squares", 'metaslider') ?>
675
  </td>
676
  <td>
677
- <input class='option coin nivo' type='text' size='2' name="settings[spw]" value='<?php echo $this->slider->get_setting('spw') ?>' /> x
678
- <input class='option coin nivo' type='text' size='2' name="settings[sph]" value='<?php echo $this->slider->get_setting('sph') ?>' />
679
  </td>
680
  </tr>
681
  <tr>
@@ -683,41 +721,50 @@ class MetaSliderPlugin {
683
  <?php _e("Number of slices", 'metaslider') ?>
684
  </td>
685
  <td>
686
- <input class='option nivo' type='text' size='2' name="settings[slices]" value='<?php echo $this->slider->get_setting('slices') ?>' />
687
  </td>
688
  </tr>
689
  <tr>
690
- <td class='tooltip' title="<?php _e("Delay beetwen squares in ms", 'metaslider') ?>">
691
- <?php _e("Square delay", 'metaslider') ?>
692
  </td>
693
  <td>
694
- <input class='option coin' type='text' size='5' name="settings[sDelay]" value='<?php echo $this->slider->get_setting('sDelay') ?>' />ms
695
  </td>
696
  </tr>
697
  <tr>
698
- <td class='tooltip' title="<?php _e("Opacity of title and navigation", 'metaslider') ?>">
699
- <?php _e("Opacity", 'metaslider') ?>
700
  </td>
701
  <td>
702
- <input class='option coin' type='text' size='5' name="settings[opacity]" value='<?php echo $this->slider->get_setting('opacity') ?>' />
703
  </td>
704
  </tr>
705
  <tr>
706
- <td class='tooltip' title="<?php _e("Set the fade in speef of the caption", 'metaslider') ?>">
707
- <?php _e("Caption speed", 'metaslider') ?>
708
  </td>
709
  <td>
710
- <input class='option coin' type='text' size='5' name="settings[titleSpeed]" value='<?php echo $this->slider->get_setting('titleSpeed') ?>' />ms
711
  </td>
712
  </tr>
713
  <tr>
714
- <td class='tooltip' title="<?php _e("Set the speed of animations, in milliseconds", 'metaslider') ?>">
715
- <?php _e("Animation speed", 'metaslider') ?>
716
  </td>
717
  <td>
718
- <input class='option flex responsive nivo' type='text' size='5' name="settings[animationSpeed]" value='<?php echo $this->slider->get_setting('animationSpeed') ?>' />ms
719
  </td>
720
  </tr>
 
 
 
 
 
 
 
 
 
721
  <tr>
722
  <td colspan='2' class='highlight'><?php _e("Developer Options", 'metaslider') ?></td>
723
  </tr>
@@ -745,6 +792,11 @@ class MetaSliderPlugin {
745
  <input type='checkbox' name="settings[printJs]" <?php if ($this->slider->get_setting('printJs') == 'true') echo 'checked=checked' ?> />
746
  </td>
747
  </tr>
 
 
 
 
 
748
  </tbody>
749
  </table>
750
 
@@ -772,8 +824,24 @@ class MetaSliderPlugin {
772
 
773
  </table>
774
 
775
- <br />
776
- <a class='alignright button-secondary confirm' href="?page=metaslider&delete=<?php echo $this->slider->id ?>"><?php _e("Delete Slider", 'metaslider') ?></a>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
777
  </div>
778
  </form>
779
  </div>
@@ -782,4 +850,4 @@ class MetaSliderPlugin {
782
  }
783
 
784
  $metaslider = new MetaSliderPlugin();
785
- ?>
3
  * Plugin Name: Meta Slider
4
  * Plugin URI: http://www.metaslider.com
5
  * Description: 4 sliders in 1! Choose from Nivo Slider, Flex Slider, Coin Slider or Responsive Slides.
6
+ * Version: 2.0.2
7
  * Author: Matcha Labs
8
  * Author URI: http://www.matchalabs.com
9
  * License: GPLv2 or later
14
  * GNU General Public License for more details.
15
  */
16
 
17
+ define('METASLIDER_VERSION', '2.0.2');
18
  define('METASLIDER_BASE_URL', plugin_dir_url(__FILE__));
19
  define('METASLIDER_ASSETS_URL', METASLIDER_BASE_URL . 'assets/');
20
  define('METASLIDER_BASE_DIR_LONG', dirname(__FILE__));
21
  define('METASLIDER_INC_DIR', METASLIDER_BASE_DIR_LONG . '/inc/');
22
 
23
+ // include slider classes
24
+ require_once( METASLIDER_INC_DIR . 'slider/metaslider.class.php' );
25
+ require_once( METASLIDER_INC_DIR . 'slider/metaslider.coin.class.php' );
26
+ require_once( METASLIDER_INC_DIR . 'slider/metaslider.flex.class.php' );
27
+ require_once( METASLIDER_INC_DIR . 'slider/metaslider.nivo.class.php' );
28
+ require_once( METASLIDER_INC_DIR . 'slider/metaslider.responsive.class.php' );
29
 
30
+ // include slide classes
31
+ require_once( METASLIDER_INC_DIR . 'slide/metaslide.class.php' );
32
+ require_once( METASLIDER_INC_DIR . 'slide/metaslide.image.class.php' );
33
+
34
+ // include image helper
35
+ require_once( METASLIDER_INC_DIR . 'metaslider.imagehelper.class.php' );
36
+
37
+ /**
38
+ * Register the plugin.
39
+ *
40
+ * Display the administration panel, insert JavaScript etc.
41
+ */
42
  class MetaSliderPlugin {
43
 
44
+ /** Current Slider **/
45
  var $slider = null;
46
 
47
  /**
48
  * Constructor
49
  */
50
  public function __construct() {
51
+ // create the admin menu/page
52
+ add_action('admin_menu', array($this, 'register_admin_menu'), 9553);
53
+
54
+ // register slider post type and taxonomy
55
  add_action('init', array($this, 'register_post_type' ));
56
  add_action('init', array($this, 'register_taxonomy' ));
57
+ add_action('init', array($this, 'load_plugin_textdomain'));
58
+
59
+ // register shortcodes
60
  add_shortcode('metaslider', array($this, 'register_shortcode'));
61
  add_shortcode('ml-slider', array($this, 'register_shortcode')); // backwards compatibility
62
+
63
+ add_filter('media_upload_tabs', array($this,'custom_media_upload_tab_name'), 998);
64
+ add_filter('media_view_strings', array($this, 'custom_media_uploader_tabs'), 5);
65
+ add_action('media_upload_metaslider_pro', array($this, 'metaslider_pro_tab'));
66
+
67
+ $plugin = plugin_basename(__FILE__);
68
+ add_filter("plugin_action_links_{$plugin}", array($this,'upgrade_to_pro') );
69
+
70
+ $this->register_slide_types();
71
+ }
72
+
73
+ /**
74
+ * Add settings link on plugin page
75
+ */
76
+ public function upgrade_to_pro($links) {
77
+ $links[] = '<a href="http://www.metaslider.com/upgrade" target="_blank">' . __("Go Pro", 'metaslider') . '</a>';
78
+ return $links;
79
+ }
80
+
81
+ /**
82
+ * Return the meta slider pro upgrade iFrame
83
+ */
84
+ public function metaslider_pro_tab() {
85
+ return wp_iframe( array($this, 'iframe'));
86
+ }
87
+
88
+ /**
89
+ * Media Manager iframe HTML
90
+ */
91
+ public function iframe() {
92
+ wp_enqueue_style('metaslider-admin-styles', METASLIDER_ASSETS_URL . 'metaslider/admin.css', false, METASLIDER_VERSION);
93
+ wp_enqueue_script('google-font-api', 'http://fonts.googleapis.com/css?family=PT+Sans:400,700|PT+Serif+Caption|PT+Serif:400,700');
94
+
95
+ echo "<p style='text-align: center; font-size: 1.2em;'>Add support for <b>Post Feed</b> Slides, <b>YouTube</b> Slides, <b>HTML</b> Slides & <b>Vimeo</b> Slides</p>";
96
+ echo "<a class='probutton' href='http://www.metaslider.com/upgrade/' target='_blank'>Get <span class='logo'><strong>Meta</strong>Slider</span><span class='super'>Pro</span></a>";
97
+ }
98
+
99
+ /**
100
+ * Register our slide types
101
+ */
102
+ private function register_slide_types() {
103
+ $image = new MetaImageSlide();
104
+ }
105
+
106
+ /**
107
+ * Initialise translations
108
+ */
109
+ public function load_plugin_textdomain() {
110
+ load_plugin_textdomain('metaslider', false, dirname(plugin_basename(__FILE__)) . '/languages/');
111
+ }
112
+
113
+ /**
114
+ * Update the tab options in the media manager
115
+ */
116
+ public function custom_media_uploader_tabs( $strings ) {
117
+ //update strings
118
+ if ((isset($_GET['page']) && $_GET['page'] == 'metaslider')) {
119
+ $strings['insertMediaTitle'] = __("Image", 'metaslider');
120
+ $strings['insertIntoPost'] = __("Add to slider", 'metaslider');
121
+
122
+ // remove options
123
+ if (isset($strings['createGalleryTitle'])) unset($strings['createGalleryTitle']);
124
+ if (isset($strings['insertFromUrlTitle'])) unset($strings['insertFromUrlTitle']);
125
+ }
126
+ return $strings;
127
  }
128
 
129
  /**
130
+ * Add extra tabs to the default wordpress Media Manager iframe
131
+ *
132
+ * @var array existing media manager tabs
133
+ */
134
+ public function custom_media_upload_tab_name( $tabs ) {
135
+ // restrict our tab changes to the meta slider plugin page
136
+ if ((isset($_GET['page']) && $_GET['page'] == 'metaslider') || isset($_GET['tab']) == 'metaslider_pro') {
137
+
138
+ $newtabs = array(
139
+ 'metaslider_pro' => __("More Slide Types", 'metaslider')
140
+ );
141
+
142
+ if (isset($tabs['nextgen'])) unset($tabs['nextgen']);
143
+
144
+ return array_merge( $tabs, $newtabs );
145
+ }
146
+
147
+ return $tabs;
148
+ }
149
+
150
+ /**
151
+ * Rehister admin styles
152
  */
153
  public function register_admin_styles() {
154
+ wp_enqueue_style('metaslider-admin-styles', METASLIDER_ASSETS_URL . 'metaslider/admin.css', false, METASLIDER_VERSION);
155
+ wp_enqueue_style('metaslider-colorbox-styles', METASLIDER_ASSETS_URL . 'colorbox/colorbox.css', false, METASLIDER_VERSION);
156
+ wp_enqueue_style('metaslider-tipsy-styles', METASLIDER_ASSETS_URL . 'tipsy/tipsy.css', false, METASLIDER_VERSION);
157
+
158
+ do_action('metaslider_register_admin_styles');
159
  }
160
+
161
  /**
162
+ * Register admin JavaScript
163
  */
164
  public function register_admin_scripts() {
165
+ if (wp_script_is('wp-auth-check', 'queue')) {
166
+ // meta slider checks for active AJAX requests in order to show the spinner
167
+ // .. but the auth-check runs an AJAX request every 15 seconds
168
+ // deregister the script that displays the login panel if the user becomes logged
169
+ // out at some point
170
+ // todo: implement some more intelligent request checking
171
+ wp_deregister_script('wp-auth-check');
172
+ wp_register_script('wp-auth-check', null); // fix php notice
173
+ }
174
+
175
+ // media library dependencies
176
  wp_enqueue_media();
177
+
178
+ // plugin dependencies
179
  wp_enqueue_script('jquery-ui-core', array('jquery'));
180
  wp_enqueue_script('jquery-ui-sortable', array('jquery', 'jquery-ui-core'));
181
+ wp_enqueue_script('metaslider-colorbox', METASLIDER_ASSETS_URL . 'colorbox/jquery.colorbox-min.js', array('jquery'), METASLIDER_VERSION);
182
+ wp_enqueue_script('metaslider-tipsy', METASLIDER_ASSETS_URL . 'tipsy/jquery.tipsy.js', array('jquery'), METASLIDER_VERSION);
183
+ wp_enqueue_script('metaslider-admin-script', METASLIDER_ASSETS_URL . 'metaslider/admin.js', array('jquery', 'metaslider-tipsy', 'media-upload'), METASLIDER_VERSION);
184
+ wp_enqueue_script('metaslider-admin-addslide', METASLIDER_ASSETS_URL . 'metaslider/image/image.js', array('metaslider-admin-script'), METASLIDER_VERSION);
185
+
186
+ // localise the JS
187
  wp_localize_script( 'metaslider-admin-script', 'metaslider', array(
188
  'url' => __("URL", 'metaslider'),
189
  'caption' => __("Caption", 'metaslider'),
190
  'new_window' => __("New Window", 'metaslider'),
191
+ 'confirm' => __("Are you sure?", 'metaslider'),
192
+ 'ajaxurl' => admin_url( 'admin-ajax.php' ),
193
+ 'iframeurl' => METASLIDER_BASE_URL . 'preview.php'
194
  ));
195
+
196
+ do_action('metaslider_register_admin_scripts');
 
 
 
 
 
197
  }
198
 
199
  /**
200
  * Add the menu page
201
  */
202
  public function register_admin_menu() {
203
+ $title = apply_filters('metaslider_menu_title', "Meta Slider");
204
+
205
+ $page = add_menu_page($title, $title, 'edit_others_posts', 'metaslider', array(
206
  $this, 'render_admin_page'
207
+ ), METASLIDER_ASSETS_URL . 'metaslider/matchalabs.png', 9501);
208
 
209
+ // ensure our JavaScript is only loaded on the Meta Slider admin page
210
+ add_action('admin_print_scripts-' . $page, array($this, 'register_admin_scripts'));
211
+ add_action('admin_print_styles-' . $page, array($this, 'register_admin_styles'));
212
+ add_action('load-' . $page, array($this, 'help_tab'));
213
+ }
214
+
215
+ /**
216
+ *
217
+ */
218
+ public function help_tab () {
219
+ $screen = get_current_screen();
220
+
221
+ // documentation tab
222
+ $screen->add_help_tab( array(
223
+ 'id' => 'documentation',
224
+ 'title' => __('Documentation'),
225
+ 'content' => "<p><a href='http://www.metaslider.com/documentation/' target='blank'>Meta Slider Documentation</a></p>",
226
+ ) );
227
  }
228
 
229
  /**
230
+ * Register ML Slider post type
231
  */
232
  public function register_post_type() {
233
+ register_post_type('ml-slider', array(
234
+ 'query_var' => false,
 
 
 
 
 
 
 
235
  'rewrite' => false
236
+ ));
 
237
  }
238
 
239
  /**
240
+ * Register taxonomy to store slider => slides relationship
241
  */
242
  public function register_taxonomy() {
243
+ register_taxonomy( 'ml-slider', 'attachment', array(
 
 
 
 
 
 
244
  'hierarchical' => true,
245
+ 'public' => false,
 
 
246
  'query_var' => false,
247
+ 'rewrite' => false
248
+ ));
 
 
249
  }
250
 
251
  /**
252
+ * Shortcode used to display slideshow
253
+ *
254
+ * @return string HTML output of the shortcode
255
  */
256
+ public function register_shortcode($atts) {
257
+ extract(shortcode_atts(array('id' => null), $atts));
 
258
 
259
+ if ($id == null) return;
 
 
 
 
 
 
 
 
260
 
261
+ // we have an ID to work with
262
+ $slider = get_post($id);
263
 
264
+ // check the slider is published
265
+ if ($slider->post_status != 'publish') return false;
 
 
 
 
266
 
267
+ // lets go
268
+ $this->set_slider($id);
269
+ $this->slider->enqueue_scripts();
270
+ return $this->slider->render_public_slides();
271
  }
272
 
273
  /**
274
+ * Set the current slider
 
 
 
275
  */
276
+ public function set_slider($id) {
277
+ $type = 'flex';
278
+ $settings = get_post_meta($id, 'ml-slider_settings', true);
279
+
280
+ if (isset($settings['type']) && in_array($settings['type'], array('flex', 'coin', 'nivo', 'responsive'))) {
281
+ $type = $settings['type'];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
282
  }
283
+
284
+ $this->slider = $this->create_slider($type, $id);
285
  }
286
 
287
  /**
288
+ * Create a new slider based on the sliders type setting
289
  */
290
+ private function create_slider($type, $id) {
291
+ switch ($type) {
292
+ case('coin'):
293
+ return new MetaCoinSlider($id);
294
+ case('flex'):
295
+ return new MetaFlexSlider($id);
296
+ case('nivo'):
297
+ return new MetaNivoSlider($id);
298
+ case('responsive'):
299
+ return new MetaResponsiveSlider($id);
300
+ default:
301
+ return new MetaFlexSlider($id);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
302
  }
303
  }
304
 
305
  /**
306
+ * Handle slide uploads/changes
307
  */
308
+ public function admin_process() {
309
+ // default to the latest slider
310
+ $slider_id = $this->find_slider('modified', 'DESC');
311
 
312
+ // delete a slider
313
+ if (isset($_GET['delete'])) {
314
+ $this->delete_slider(intval($_GET['delete']));
315
+ $slider_id = $this->find_slider('date', 'DESC');
 
 
 
 
 
 
 
 
 
 
 
316
  }
 
317
 
318
+ // create a new slider
319
+ if (isset($_GET['add'])) {
320
+ $this->add_slider();
321
+ $slider_id = $this->find_slider('date', 'DESC');
 
 
 
 
 
 
 
322
  }
 
323
 
324
+ if (isset($_REQUEST['id'])) {
325
+ $slider_id = $_REQUEST['id'];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
326
  }
327
+
328
+ $this->set_slider($slider_id);
329
  }
330
 
331
  /**
332
+ * Create a new slider
 
333
  */
334
+ private function add_slider() {
335
+ $defaults = array();
336
+
337
+ // if possible, take a copy of the last edited slider settings in place of default settings
338
+ if ($last_modified = $this->find_slider('modified', 'DESC')) {
339
+ $defaults = get_post_meta($last_modified, 'ml-slider_settings', true);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
340
  }
341
+
342
+ // insert the post
343
+ $id = wp_insert_post(array(
344
+ 'post_title' => __("New Slider", 'metaslider'),
345
+ 'post_status' => 'publish',
346
+ 'post_type' => 'ml-slider'
347
+ ));
348
+
349
+ // use the default settings if we can't find anything more suitable.
350
+ if (empty($defaults)) {
351
+ $slider = new MetaSlider($id);
352
+ $defaults = $slider->get_default_parameters();
353
+ }
354
+
355
+ // insert the post meta
356
+ add_post_meta($id, 'ml-slider_settings', $defaults, true);
357
+
358
+ // create the taxonomy term, the term is the ID of the slider itself
359
+ wp_insert_term($id, 'ml-slider');
360
  }
361
 
362
  /**
363
+ * Delete a slider (send it to trash)
364
  */
365
+ private function delete_slider($id) {
366
+ $slide = array(
367
+ 'ID' => $id,
368
+ 'post_status' => 'trash'
369
+ );
370
+
371
+ wp_update_post($slide);
 
 
 
 
 
372
  }
373
 
374
  /**
396
 
397
  return false;
398
  }
399
+
400
+
401
  /**
402
+ * Get sliders. Returns a nicely formatted array of currently
403
+ * published sliders.
404
  *
405
+ * @return array all published sliders
406
  */
407
+ private function all_meta_sliders() {
408
+ $sliders = false;
409
+
410
+ // list the tabs
411
+ $args = array(
412
+ 'post_type' => 'ml-slider',
413
+ 'post_status' => 'publish',
414
+ 'orderby' => 'date',
415
+ 'order' => 'ASC',
416
+ 'posts_per_page' => -1
417
+ );
418
+
419
+ $the_query = new WP_Query($args);
420
+
421
+ while ($the_query->have_posts()) {
422
+ $the_query->the_post();
423
+ $active = $this->slider->id == $the_query->post->ID ? true : false;
424
+
425
+ $sliders[] = array(
426
+ 'active' => $active,
427
+ 'title' => get_the_title(),
428
+ 'id' => $the_query->post->ID
429
+ );
 
 
 
 
 
 
 
 
 
430
  }
 
 
 
 
431
 
432
+ return $sliders;
433
  }
434
 
435
+ public function get_library_details($version, $responsive, $size, $mobile) {
436
+ $details = __("Version", 'metaslider') . ": " . $version . "<br />";
437
+ $details .= __("Responsive", 'metaslider') . ": ";
438
+ $details .= $responsive ? __("Yes", 'metaslider') : __("No", 'metaslider');
439
+ $details .= "<br />";
440
+ $details .= __("Size", 'metaslider') . ": " . $size . __("kb", 'metaslider') ."<br />";
441
+ $details .= __("Mobile Friendly", 'metaslider') . ": ";
442
+ $details .= $mobile ? __("Yes", 'metaslider') : __("No", 'metaslider') . "<br />";
443
+
444
+ return $details;
445
+ }
446
 
447
  /**
448
  * Render the admin page (tabs, slides, settings)
451
  $this->admin_process();
452
  ?>
453
 
454
+ <script type='text/javascript'>
455
+ var metaslider_slider_id = <?php echo $this->slider->id; ?>;
456
+ </script>
457
+
458
  <div class="wrap metaslider">
459
  <form accept-charset="UTF-8" action="?page=metaslider&id=<?php echo $this->slider->id ?>" method="post">
460
 
461
  <h2 class="nav-tab-wrapper">
462
  <?php
463
+ if ($tabs = $this->all_meta_sliders()) {
464
  foreach ($tabs as $tab) {
465
  if ($tab['active']) {
466
  echo "<div class='nav-tab nav-tab-active'><input type='text' name='title' value='" . $tab['title'] . "' onkeypress='this.style.width = ((this.value.length + 1) * 9) + \"px\"' /></div>";
481
  ?>
482
 
483
  <div class="left">
484
+ <table class="widefat sortable">
485
  <thead>
486
  <tr>
487
+ <th style="width: 100px;">
488
+ <?php _e("Slides", 'metaslider') ?>
489
+ </th>
490
+ <th>
491
+ <a href='#' class='button alignright add-slide' data-editor='content' title='<?php _e("Add Slide", 'metaslider') ?>'>
492
+ <span class='wp-media-buttons-icon'></span> <?php _e("Add Slide", 'metaslider') ?>
493
+ </a>
494
+ </th>
495
  </tr>
496
  </thead>
497
 
498
  <tbody>
499
  <?php
500
+ $this->slider->render_admin_slides();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
501
  ?>
502
  </tbody>
503
  </table>
507
  <table class="widefat settings">
508
  <thead>
509
  <tr>
510
+ <th colspan='2'>
511
+ <span class='configuration'><?php _e("Settings", 'metaslider') ?></span>
512
+ <input class='alignright button button-primary' type='submit' name='save' id='save' value='<?php _e("Save", 'metaslider') ?>' />
513
+ <input class='alignright button button-primary' type='submit' name='preview' id='preview' value='<?php _e("Save & Preview", 'metaslider') ?>' id='quickview' data-slider_id='<?php echo $this->slider->id ?>' data-slider_width='<?php echo $this->slider->get_setting('width') ?>' data-slider_height='<?php echo $this->slider->get_setting('height') ?>' />
514
+ <span class="spinner"></span>
515
  </th>
516
  </tr>
517
  </thead>
518
  <tbody>
519
  <tr>
520
+ <td colspan='2' class='slider-lib-row'>
 
 
 
 
 
 
 
 
521
  <div class='slider-lib flex'>
522
+ <label for='flex' title='<?php echo $this->get_library_details(2.1, true, 17, true); ?>' class='tooltiptop'>FlexSlider</label>
523
  <input class="select-slider" id='flex' rel='flex' type='radio' name="settings[type]" <?php if ($this->slider->get_setting('type') == 'flex') echo 'checked=checked' ?> value='flex' />
524
  </div>
525
  <div class='slider-lib responsive'>
526
+ <label for='responsive' title='<?php echo $this->get_library_details(1.53, true, 3, true); ?>' class='tooltiptop'>Responsive</label>
527
  <input class="select-slider" id='responsive' rel='responsive' type='radio' name="settings[type]" <?php if ($this->slider->get_setting('type') == 'responsive') echo 'checked=checked' ?> value='responsive' />
528
  </div>
529
+ <div class='slider-lib nivo'>
530
+ <label for='nivo' title='<?php echo $this->get_library_details(3.2, true, 12, true); ?>' class='tooltiptop'>NivoSlider</label>
531
+ <input class="select-slider" id='nivo' rel='nivo' type='radio' name="settings[type]" <?php if ($this->slider->get_setting('type') == 'nivo') echo 'checked=checked' ?> value='nivo' />
532
+ </div>
533
+ <div class='slider-lib coin'>
534
+ <label for='coin' title='<?php echo $this->get_library_details(1.0, false, 8, true); ?>' class='tooltiptop'>CoinSlider</label>
535
+ <input class="select-slider" id='coin' rel='coin' type='radio' name="settings[type]" <?php if ($this->slider->get_setting('type') == 'coin') echo 'checked=checked' ?> value='coin' />
536
+ </div>
537
  </td>
538
  </tr>
539
  <tr>
540
+ <td width='40%' class='tooltip' title="<?php _e("Set the initial size for the slides (width x height)", 'metaslider') ?>">
541
  <?php _e("Size", 'metaslider') ?>
542
  </td>
543
  <td>
544
+ <input type='text' size='3' class="width tooltiptop" title='<?php _e("Width", 'metaslider') ?>' name="settings[width]" value='<?php echo $this->slider->get_setting('width') ?>' />px X
545
+ <input type='text' size='3' class="height tooltiptop" title='<?php _e("Height", 'metaslider') ?>' name="settings[height]" value='<?php echo $this->slider->get_setting('height') ?>' />px
546
+ </td>
547
+ </tr>
548
+ <tr>
549
+ <td class='tooltip' title="<?php _e("Center align the slideshow", 'metaslider') ?>">
550
+ <?php _e("Center align", 'metaslider') ?>
551
+ </td>
552
+ <td>
553
+ <input class='option coin responsive nivo flex' type='checkbox' name="settings[center]" <?php if ($this->slider->get_setting('center') == 'true') echo 'checked=checked' ?> />
554
+ </td>
555
+ </tr>
556
+ <tr>
557
+ <td class='tooltip' title="<?php _e("Show slide navigation row", 'metaslider') ?>">
558
+ <?php _e("Controls", 'metaslider') ?>
559
+ </td>
560
+ <td>
561
+ <label class='option responsive nivo flex' ><input type='checkbox' name="settings[navigation]" <?php if ($this->slider->get_setting('navigation') == 'true') echo 'checked=checked' ?> />Pager</label>
562
+ <label class='option coin responsive nivo flex' ><input type='checkbox' name="settings[links]" <?php if ($this->slider->get_setting('links') == 'true') echo 'checked=checked' ?> />Navigation</label>
563
  </td>
564
  </tr>
565
  <tr>
603
  </td>
604
  </tr>
605
  <tr>
606
+ <td colspan='2' class='highlight'><?php _e("Advanced Settings", 'metaslider') ?></td>
607
+ </tr>
608
+ <tr>
609
+ <td class='tooltip' title="<?php _e("Start the slideshow on page load", 'metaslider') ?>">
610
+ <?php _e("Auto play", 'metaslider') ?>
611
  </td>
612
  <td>
613
+ <input class='option responsive nivo flex' type='checkbox' name="settings[autoPlay]" <?php if ($this->slider->get_setting('autoPlay') == 'true') echo 'checked=checked' ?> />
614
  </td>
615
  </tr>
616
  <tr>
617
+ <td class='tooltip' title="<?php _e("Animation easing effect", 'metaslider') ?>">
618
+ <?php _e("Easing", 'metaslider') ?>
619
  </td>
620
  <td>
621
+ <select name="settings[easing]" class='option flex'>
622
+ <?php
623
+ $options = array(
624
+ 'linear','swing','jswing','easeInQuad','easeOutQuad','easeInOutQuad',
625
+ 'easeInCubic','easeOutCubic','easeInOutCubic','easeInQuart',
626
+ 'easeOutQuart','easeInOutQuart','easeInQuint','easeOutQuint',
627
+ 'easeInOutQuint','easeInSine','easeOutSine','easeInOutSine',
628
+ 'easeInExpo','easeOutExpo','easeInOutExpo','easeInCirc','easeOutCirc',
629
+ 'easeInOutCirc','easeInElastic','easeOutElastic','easeInOutElastic',
630
+ 'easeInBack','easeOutBack','easeInOutBack','easeInBounce','easeOutBounce',
631
+ 'easeInOutBounce'
632
+ );
633
+
634
+ foreach ($options as $option) {
635
+ echo "<option value='{$option}'";
636
+ if ($this->slider->get_setting('easing') == $option) {
637
+ echo 'selected=selected';
638
+ }
639
+ echo ">{$option}</option>";
640
+ }
641
+ ?>
642
+ </select>
643
  </td>
644
  </tr>
645
  <tr>
646
+ <td class='tooltip' title="<?php _e("Select the sliding direction", 'metaslider') ?>"><?php _e("Slide direction", 'metaslider') ?></td>
647
+ <td>
648
+ <select class='option flex' name="settings[direction]">
649
+ <option value='horizontal' <?php if ($this->slider->get_setting('direction') == 'horizontal') echo 'selected=selected' ?>><?php _e("Horizontal", 'metaslider') ?></option>
650
+ <option value='vertical' <?php if ($this->slider->get_setting('direction') == 'vertical') echo 'selected=selected' ?>><?php _e("Vertical", 'metaslider') ?></option>
651
+ </select>
652
+ </td>
653
+ </tr>
654
+ <tr>
655
+ <td class='tooltip' title="<?php _e("Smart Crop ensures your responsive slides are cropped to a ratio that results in a consistent slideshow size", 'metaslider') ?>">
656
+ <?php _e("Smart crop", 'metaslider') ?>
657
  </td>
658
  <td>
659
+ <input class='option coin responsive nivo flex' type='checkbox' name="settings[smartCrop]" <?php if ($this->slider->get_setting('smartCrop') !== 'false') echo 'checked=checked' ?> />
660
  </td>
661
  </tr>
662
  <tr>
663
+ <td class='tooltip' title="<?php _e("Display as carousel - when selected the effect and direction options will be ignored.", 'metaslider') ?>">
664
+ <?php _e("Carousel mode", 'metaslider') ?>
665
  </td>
666
  <td>
667
+ <input class='option flex' id='carouselMode' type='checkbox' id='carouselMode' name="settings[carouselMode]" <?php if ($this->slider->get_setting('carouselMode') == 'true') echo 'checked=checked' ?> />
668
  </td>
669
  </tr>
670
  <tr>
676
  </td>
677
  </tr>
678
  <tr>
679
+ <td class='tooltip' title="<?php _e("Pause the slideshow when hovering over slider, then resume when no longer hovering", 'metaslider') ?>">
680
+ <?php _e("Hover pause", 'metaslider') ?>
681
+ </td>
682
  <td>
683
+ <input class='option coin flex responsive nivo' type='checkbox' name="settings[hoverPause]" <?php if ($this->slider->get_setting('hoverPause') == 'true') echo 'checked=checked' ?> />
 
 
 
684
  </td>
685
  </tr>
686
  <tr>
687
+ <td class='tooltip' title="<?php _e("Reverse the animation direction", 'metaslider') ?>">
688
+ <?php _e("Reverse", 'metaslider') ?>
689
  </td>
690
  <td>
691
+ <input class='option flex' type='checkbox' name="settings[reverse]" <?php if ($this->slider->get_setting('reverse') == 'true') echo 'checked=checked' ?> />
692
  </td>
693
  </tr>
694
  <tr>
695
+ <td class='tooltip' title="<?php _e("How long to display each slide, in milliseconds", 'metaslider') ?>">
696
+ <?php _e("Slide delay", 'metaslider') ?>
697
  </td>
698
  <td>
699
+ <input class='option coin flex responsive nivo' type='number' min='500' max='10000' step='100' name="settings[delay]" value='<?php echo $this->slider->get_setting('delay') ?>' /><?php _e("ms", 'metaslider') ?>
700
  </td>
701
  </tr>
702
  <tr>
703
+ <td class='tooltip' title="<?php _e("Set the speed of animations, in milliseconds", 'metaslider') ?>">
704
+ <?php _e("Animation speed", 'metaslider') ?>
 
 
 
705
  </td>
706
  <td>
707
+ <input class='option flex responsive nivo' type='number' min='0' max='2000' step='100' name="settings[animationSpeed]" value='<?php echo $this->slider->get_setting('animationSpeed') ?>' />ms
708
  </td>
709
  </tr>
710
  <tr>
712
  <?php _e("Number of squares", 'metaslider') ?>
713
  </td>
714
  <td>
715
+ <input class='option coin nivo' type='number' min='1' max='20' step='1' name="settings[spw]" value='<?php echo $this->slider->get_setting('spw') ?>' /> x
716
+ <input class='option coin nivo' type='number' min='1' max='20' step='1' name="settings[sph]" value='<?php echo $this->slider->get_setting('sph') ?>' />
717
  </td>
718
  </tr>
719
  <tr>
721
  <?php _e("Number of slices", 'metaslider') ?>
722
  </td>
723
  <td>
724
+ <input class='option nivo' type='number' min='1' max='20' step='1' name="settings[slices]" value='<?php echo $this->slider->get_setting('slices') ?>' />
725
  </td>
726
  </tr>
727
  <tr>
728
+ <td class='tooltip' title="<?php _e("Set the text for the 'previous' direction item", 'metaslider') ?>">
729
+ <?php _e("Previous text", 'metaslider') ?>
730
  </td>
731
  <td>
732
+ <input class='option coin flex responsive nivo' type='text' name="settings[prevText]" value='<?php if ($this->slider->get_setting('prevText') != 'false') echo $this->slider->get_setting('prevText') ?>' />
733
  </td>
734
  </tr>
735
  <tr>
736
+ <td class='tooltip' title="<?php _e("Set the text for the 'next' direction item", 'metaslider') ?>">
737
+ <?php _e("Next text", 'metaslider') ?>
738
  </td>
739
  <td>
740
+ <input class='option coin flex responsive nivo' type='text' name="settings[nextText]" value='<?php if ($this->slider->get_setting('nextText') != 'false') echo $this->slider->get_setting('nextText') ?>' />
741
  </td>
742
  </tr>
743
  <tr>
744
+ <td class='tooltip' title="<?php _e("Delay beetwen squares in ms", 'metaslider') ?>">
745
+ <?php _e("Square delay", 'metaslider') ?>
746
  </td>
747
  <td>
748
+ <input class='option coin' type='number' min='0' max='500' step='10' name="settings[sDelay]" value='<?php echo $this->slider->get_setting('sDelay') ?>' /><?php _e("ms", 'metaslider') ?>
749
  </td>
750
  </tr>
751
  <tr>
752
+ <td class='tooltip' title="<?php _e("Opacity of title and navigation", 'metaslider') ?>">
753
+ <?php _e("Opacity", 'metaslider') ?>
754
  </td>
755
  <td>
756
+ <input class='option coin' type='number' min='0.1' max='1.0' step='0.1' name="settings[opacity]" value='<?php echo $this->slider->get_setting('opacity') ?>' />
757
  </td>
758
  </tr>
759
+ <tr>
760
+ <td class='tooltip' title="<?php _e("Set the fade in speed of the caption", 'metaslider') ?>">
761
+ <?php _e("Caption speed", 'metaslider') ?>
762
+ </td>
763
+ <td>
764
+ <input class='option coin' type='number' min='0' max='10000' step='100' name="settings[titleSpeed]" value='<?php echo $this->slider->get_setting('titleSpeed') ?>' /><?php _e("ms", 'metaslider') ?>
765
+ </td>
766
+ </tr>
767
+
768
  <tr>
769
  <td colspan='2' class='highlight'><?php _e("Developer Options", 'metaslider') ?></td>
770
  </tr>
792
  <input type='checkbox' name="settings[printJs]" <?php if ($this->slider->get_setting('printJs') == 'true') echo 'checked=checked' ?> />
793
  </td>
794
  </tr>
795
+ <tr>
796
+ <td colspan='2'>
797
+ <a class='alignright delete-slider button-secondary confirm' href="?page=metaslider&delete=<?php echo $this->slider->id ?>"><?php _e("Delete Slider", 'metaslider') ?></a>
798
+ </td>
799
+ </tr>
800
  </tbody>
801
  </table>
802
 
824
 
825
  </table>
826
 
827
+ <ul class='info'>
828
+ <li>
829
+ <a href="https://twitter.com/share" class="twitter-share-button" data-url="http://www.metaslider.com" data-text="I'm using Meta Slider, you should check it out!" data-hashtags="metaslider, wordpress, slideshow">Tweet</a>
830
+ <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script> </li>
831
+ <li>
832
+ <div class="g-plusone" data-size="medium" data-href="http://www.metaslider.com"></div>
833
+ <script type="text/javascript">
834
+ (function() {
835
+ var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
836
+ po.src = 'https://apis.google.com/js/plusone.js';
837
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
838
+ })();
839
+ </script>
840
+ </li>
841
+ <li>
842
+ <iframe style='border:none; overflow:hidden; width:96px; height:21px;' src="//www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.metaslider.com&amp;send=false&amp;layout=button_count&amp;width=90&amp;show_faces=false&amp;font&amp;colorscheme=light&amp;action=like&amp;height=21&amp;appId=156668027835524" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:21px;" allowTransparency="true"></iframe>
843
+ </li>
844
+ </ul>
845
  </div>
846
  </form>
847
  </div>
850
  }
851
 
852
  $metaslider = new MetaSliderPlugin();
853
+ ?>
preview.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ define('WP_USE_THEMES', false);
4
+
5
+ require('../../../wp-blog-header.php');
6
+
7
+ if (isset($_GET['slider_id']) && (int)$_GET['slider_id'] > 0) {
8
+ add_filter( 'show_admin_bar', '__return_false' );
9
+ remove_action('init', 'wp_admin_bar_init');
10
+
11
+ $id = intval($_GET['slider_id']);
12
+ echo "<html style='margin-top: 0 !important'><head>";
13
+ echo "</head><body style='overflow: hidden; margin: 0; padding: 0;'>";
14
+ echo do_shortcode("[metaslider id={$id}]");
15
+ wp_footer();
16
+ echo "</body></html>";
17
+ }
18
+
19
+ die();
readme.txt CHANGED
@@ -1,47 +1,41 @@
1
  === Plugin Name ===
2
  Contributors: matchalabs
3
- Tags: wordpress slider,slider,slides,slideshow,wordpress slideshow,image slider,flexslider,flex,flex slider,nivoslider,nivo,nivo slider,responsiveslides,responsive,responsive slides,coinslider,coin,coin slider,slideshow,carousel,responsive slider,slider plugin,vertical slides,ml slider,image rotator,metaslider, meta
4
  Requires at least: 3.5
5
- Tested up to: 3.5
6
- Stable tag: 1.3
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
10
- 4 image sliders in 1! Choose from Nivo Slider, Flex Slider, Coin Slider or Responsive Slides.
11
 
12
  == Description ==
13
- Meta Slider is a flexible, intuitive slideshow administration plugin with that leaves the heavy lifting to a selection of open source jQuery libraries. The choice is yours:
14
 
15
- * Nivo Slider (Responsive, 16 transition effects, 4 themes)
16
- * Flex Slider 2 (Responsive, 2 transition effects)
17
- * Coin Slider (4 transition effects)
18
- * Responsive Slides (Responsive, fade effect only, incredibly light weight!)
19
 
20
- The plugin builds upon standard WordPress functionality wherever possible; slideshows are stored as a custom post type, slides are stored as media files and the relation between the two is stored as taxonomy data.
21
 
22
- http://www.youtube.com/watch?v=uGSEc8dfiPA
 
 
 
23
 
24
- Meta Slider Features:
25
 
26
- * Intuitive administration panel
27
  * Create unlimited slideshows with unlimited number of slides
28
- * Choose slider library from Nivo Slider, Flex Slider 2, Coin Slider or Responsive Slides (per slideshow)
29
- * Add captions to slides
30
- * Add URLs to slides
31
- * Reorder slides with drag and drop
32
- * Create new slides from your Media Library, or upload new images
33
- * Mix & Match! Include as many slideshows on the same page as you want
34
- * Option to include your own CSS
35
  * Lightweight, only the bare minimum in terms of JavaScript and CSS is outputted to your website
36
- * Built in shortcode
 
37
  * Supports localisation
38
 
39
- Slider Features:
40
 
41
- * Total of 18 transition effects
42
- * 4 themes (Nivo Slider)
43
- * Responsive (Nivo Slider, Flex Slider 2, Responsive Slides)
44
- * Adjust slider libary options such as: speed, theme, hover pause, width, height
45
 
46
  Read more and thanks to:
47
 
@@ -50,6 +44,15 @@ Read more and thanks to:
50
  * [http://workshop.rs/projects/coin-slider/](http://workshop.rs/projects/coin-slider/)
51
  * [http://dev7studios.com/nivo-slider/](http://dev7studios.com/nivo-slider/)
52
 
 
 
 
 
 
 
 
 
 
53
  == Installation ==
54
 
55
  1. Upload the `ml-slider` folder to the `/wp-content/plugins/` directory
@@ -58,27 +61,59 @@ Read more and thanks to:
58
 
59
  == Frequently Asked Questions ==
60
 
61
- = How do I include a slideshow directly in my templates? =
62
-
63
- `<?php echo do_shortcode("[metaslider id=#]") ?>`
64
-
65
- = Why are some effects/options greyed out? =
66
-
67
- The effects are enabled/disabled depending on which slider library you have selected.
68
-
69
- For example, flex slider supports the 'Fade' and 'Slide' effect whereas coin slider supports 'Random', 'Swirl', 'Straight' and 'Rain'. Unavailable options are greyed out.
70
 
71
  == Screenshots ==
72
 
73
- 1. Administration panel - overview
74
  2. Nivo Slider example
75
  3. Coin Slider example
76
  4. Flex Slider example
77
- 5. Responsive Slides example
78
  6. Administration panel - selecting slides
79
 
80
  == Changelog ==
81
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
  = 1.3 =
83
  * Renamed to Meta Slider (previously ML Slider)
84
  * Improvement: Admin styling cleaned up
@@ -86,7 +121,7 @@ For example, flex slider supports the 'Fade' and 'Slide' effect whereas coin sli
86
  * Improvement: Plugin localised
87
  * Improvement: Template include PHP code now displayed on slider edit page
88
  * Improvement: jQuery tablednd replaced with jQuery sortable for reordering slides
89
- * Improvement: Open URL in new window option added
90
  * Improvement: max-width css rule added to slider wrapper
91
  * Fix: UTF-8 support in captions (reported by and thanks to: petergluk)
92
  * Fix: JS && encoding error (reported by and thanks to: neefje)
@@ -118,6 +153,3 @@ For example, flex slider supports the 'Fade' and 'Slide' effect whereas coin sli
118
  * Initial version
119
 
120
  == Upgrade Notice ==
121
-
122
- = 1.3 =
123
- As part of this update ML Slider will be renamed to MetaSlider. Your shortcodes and slideshows will be unaffected. If you have customised any CSS you should update your CSS files to reference .metaslider rather than .ml-slider. Check the changelog for updates.
1
  === Plugin Name ===
2
  Contributors: matchalabs
3
+ Tags: wordpress slider,slideshow,wordpress slideshow,image slider,flexslider,flex slider,nivoslider,nivo slider,responsiveslides,responsive,responsive slides,coinslider,coin slider,slideshow,carousel,responsive slider,vertical slides,ml slider,image rotator,metaslider,meta,ajax,metaslider pro
4
  Requires at least: 3.5
5
+ Tested up to: 3.6
6
+ Stable tag: 2.0.1
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
10
+ 4 sliders in 1! Choose from Nivo Slider, Flex Slider, Coin Slider or Responsive Slides.
11
 
12
  == Description ==
 
13
 
14
+ http://www.youtube.com/watch?v=5DgZGVulRRM
 
 
 
15
 
16
+ Meta Slider is a flexible, intuitive slideshow administration plugin that lets you choose between 4 jQuery sliders.
17
 
18
+ * Flex Slider 2 (Responsive, 2 transition effects, carousel mode)
19
+ * Nivo Slider (Responsive, 16 transition effects, 4 themes)
20
+ * Responsive Slides (Responsive, fade effect only, incredibly light weight!)
21
+ * Coin Slider (4 transition effects)
22
 
23
+ Features:
24
 
25
+ * Intuitive, responsive AJAX powered administration panel
26
  * Create unlimited slideshows with unlimited number of slides
27
+ * Change slideshow settings such as: speed, theme, hover pause, width, height, easing
28
+ * Add Captions & URLs to slides
29
+ * Drag & Drop reording
30
+ * Fully integrated with the new WordPress 3.5 Media Manager
 
 
 
31
  * Lightweight, only the bare minimum in terms of JavaScript and CSS is outputted to your website
32
+ * Built in intelligent image cropping
33
+ * Carousel Mode available with Flex Slider
34
  * Supports localisation
35
 
36
+ Meta Slider has been translated into the following languages:
37
 
38
+ * French (thanks to fb-graphiklab)
 
 
 
39
 
40
  Read more and thanks to:
41
 
44
  * [http://workshop.rs/projects/coin-slider/](http://workshop.rs/projects/coin-slider/)
45
  * [http://dev7studios.com/nivo-slider/](http://dev7studios.com/nivo-slider/)
46
 
47
+ Want More? Get the Meta Slider Pro addon pack to add support for:
48
+
49
+ * YouTube slides
50
+ * Vimeo slides
51
+ * HTML slides
52
+ * Dynamic Post Feed Slides (content slider)
53
+
54
+ Find out more at http://www.metaslider.com
55
+
56
  == Installation ==
57
 
58
  1. Upload the `ml-slider` folder to the `/wp-content/plugins/` directory
61
 
62
  == Frequently Asked Questions ==
63
 
64
+ http://www.metaslider.com/documentation/
 
 
 
 
 
 
 
 
65
 
66
  == Screenshots ==
67
 
68
+ 1. Meta Slider - for live demos see http://www.metaslider.com/examples/
69
  2. Nivo Slider example
70
  3. Coin Slider example
71
  4. Flex Slider example
72
+ 5. Carousel Example
73
  6. Administration panel - selecting slides
74
 
75
  == Changelog ==
76
 
77
+ = 2.0.2 =
78
+ * Fix: PHP Error when using slides the same size as the slideshow
79
+
80
+ = 2.0.1 =
81
+ * New feature: French translation pack (thanks to: fb-graphiklab)
82
+ * Fix: Use transparent background on default flexslider theme
83
+ * Fix: Set direction to LTR for flexslider viewport (fix for RTL languages)
84
+ * Fix: Nivoslider HTML Captions
85
+ * Fix: Responsive slides navigation positioning
86
+
87
+ = 2.0 =
88
+ * Fix: Responsive slides navigation styling
89
+ * Fix: Update slide order on save
90
+ * Fix: Smart crop edge cases
91
+ * Fix: Flexslider navigation overflow
92
+
93
+ = 2.0-betaX =
94
+ * Improvement: Error messages exposed in admin is Meta Slider cannot load the slides
95
+ * Improvement: Load default settings if original settings are corrupt/incomplete
96
+ * Fix: Smart Crop ratio
97
+ * Fix: UTF-8 characters in captions (reported by and thanks to: javitopo)
98
+ * Fix: JetPack Photo not loading images (reported by and thanks to: Jason)
99
+ * Fix: Double slash on jQuery easing path
100
+ * Fix: Paragraph tags outputted in JavaScript (reported by and thanks to: CrimsonRaddish)
101
+
102
+ = 2.0-beta =
103
+ * New feature: Preview slideshows in admin control panel
104
+ * New feature: 'Easing' options added to flex slider
105
+ * New feature: 'Carousel mode' option added for flex slider
106
+ * New feature: 'Auto play' option added
107
+ * New feature: 'Smart Crop' setting ensures your slideshow size remains consitent regardless of image dimensions
108
+ * New feature: 'Center align slideshow' option added for all sliders
109
+ * New feature: Coin Slider upgraded to latest version, new options now exposed in Meta Slider
110
+ * New feature: Captions now supported by responsive slides
111
+ * Improvement: Responsive AJAX powered administration screen
112
+ * Improvement: Code refactored
113
+ * Improvement: Flex Slider captions now sit over the slide
114
+ * Fix: Nivo slider invalid markup (reported by and thanks to: nellyshark)
115
+ * Fix: JS && encoding error (reported by and thanks to: neefje)
116
+
117
  = 1.3 =
118
  * Renamed to Meta Slider (previously ML Slider)
119
  * Improvement: Admin styling cleaned up
121
  * Improvement: Plugin localised
122
  * Improvement: Template include PHP code now displayed on slider edit page
123
  * Improvement: jQuery tablednd replaced with jQuery sortable for reordering slides
124
+ * New feature: Open URL in new window option added
125
  * Improvement: max-width css rule added to slider wrapper
126
  * Fix: UTF-8 support in captions (reported by and thanks to: petergluk)
127
  * Fix: JS && encoding error (reported by and thanks to: neefje)
153
  * Initial version
154
 
155
  == Upgrade Notice ==