Version Description
AJAX!
Download this release
Release Info
Developer | a.hoereth |
Plugin | Featured Video Plus |
Version | 1.5 |
Comparing to | |
See all releases |
Code changes from version 1.4 to 1.5
- css/backend-min.css +13 -1
- css/videojs-min.css +1 -0
- featured-video-plus.php +5 -4
- js/backend-min.js +11 -1
- js/backend.js +101 -56
- js/backend_35.js +8 -12
- js/backend_pre35.js +5 -42
- js/backend_settings.js +10 -15
- js/jquery.fitvids_fvp-min.js +3 -10
- js/videojs-min.js +21 -0
- lng/featured-video-plus-de_DE.mo +0 -0
- lng/featured-video-plus-de_DE.po +130 -93
- lng/featured-video-plus.pot +108 -80
- php/backend.php +264 -178
- php/functions.php +3 -3
- php/general.php +28 -13
- php/settings.php +42 -30
- php/upgrade.php +38 -6
- readme.txt +14 -7
- uninstall.php +1 -1
css/backend-min.css
CHANGED
@@ -1 +1,13 @@
|
|
1 |
-
.wp-picker-holder{position:absolute;bottom:2.5em;left:-1em;z-index:1;-webkit-box-shadow:3px 3px 5px #ddd;-moz-box-shadow:3px 3px 5px #ddd;box-shadow:3px 3px 5px #ddd;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
.wp-picker-holder{position:absolute;bottom:2.5em;left:-1em;z-index:1;-webkit-box-shadow:3px 3px 5px #ddd;-moz-box-shadow:3px 3px 5px #ddd;box-shadow:3px 3px 5px #ddd;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
|
2 |
+
.fvp_colorpicker{position:absolute;bottom:0;right:-197px;background-color:#fff;z-index:100;border:1px solid #ccc;}
|
3 |
+
.defaultTextActive{color:#a1a1a1;font-style:italic;}#fvp_activation_notification{border-color:#00adef!important;background-color:whiteSmoke!important;}
|
4 |
+
.fvp_hidden{display:none;}.fvp_notice{-webkit-border-radius:3px;border-radius:3px;border-width:1px;border-style:solid;background-color:white;border-color:gray;margin:.5em 0;padding:.4em .6em .2em;}
|
5 |
+
.fvp_warning{-webkit-border-radius:3px;border-radius:3px;border-width:1px;border-style:solid;background-color:lightYellow;border-color:#E6DB55;margin:.5em 0;padding:.4em .6em .2em;}
|
6 |
+
#featured_video_plus-box textarea{resize:none;width:100%;height:1.1em;line-height:1.1em;font-size:1em;}
|
7 |
+
.fvp_grouplable{width:100px;float:left;padding-top:2px;}.fvp_grouppart1{width:200px;float:left;padding-top:2px;}
|
8 |
+
.fvp_readonly{color:gray!important;}.fvp_invalid{background-color:#FA8072;}.fvp_radio_bumper{float:left;width:100px;}
|
9 |
+
.fvp_input_wrapper{position:relative;}#featured_video_plus-box .fvp_input{padding-right:21px;}
|
10 |
+
.fvp_media_icon{background:transparent no-repeat top left;display:block;width:15px;height:15px;position:absolute;top:4px;right:4px;}
|
11 |
+
.fvp_code_list li{margin-bottom:0;}.box_topright{float:right;width:20px;height:30px;line-height:30px;text-align:center;}
|
12 |
+
.box_topright #fvp_remove{display:block;height:10px;width:10px;margin-top:10px;background:url('/wordpress/wp-admin/images/xit.gif') no-repeat center left;}
|
13 |
+
.box_topright #fvp_remove:hover{background:url('/wordpress/wp-admin/images/xit.gif') no-repeat center right;}
|
css/videojs-min.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.video-js{background-color:#000;position:relative;padding:0;font-size:10px;vertical-align:middle}.video-js .vjs-tech{position:absolute;top:0;left:0;width:100%;height:100%}.video-js:-moz-full-screen{position:absolute}body.vjs-full-window{padding:0;margin:0;height:100%;overflow-y:auto}.video-js.vjs-fullscreen{position:fixed;overflow:hidden;z-index:1000;left:0;top:0;bottom:0;right:0;width:100%!important;height:100%!important;_position:absolute}.video-js:-webkit-full-screen{width:100%!important;height:100%!important}.vjs-poster{margin:0 auto;padding:0;cursor:pointer;position:relative;width:100%;max-height:100%}.video-js .vjs-text-track-display{text-align:center;position:absolute;bottom:4em;left:1em;right:1em;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}.video-js .vjs-text-track{display:none;color:#fff;font-size:1.4em;text-align:center;margin-bottom:.1em;background:#000;background:rgba(0,0,0,0.50)}.video-js .vjs-subtitles{color:#fff}.video-js .vjs-captions{color:#fc6}.vjs-tt-cue{display:block}.vjs-fade-in{visibility:visible!important;opacity:1!important;-webkit-transition:visibility 0s linear 0s,opacity .3s linear;-moz-transition:visibility 0s linear 0s,opacity .3s linear;-ms-transition:visibility 0s linear 0s,opacity .3s linear;-o-transition:visibility 0s linear 0s,opacity .3s linear;transition:visibility 0s linear 0s,opacity .3s linear}.vjs-fade-out{visibility:hidden!important;opacity:0!important;-webkit-transition:visibility 0s linear 1.5s,opacity 1.5s linear;-moz-transition:visibility 0s linear 1.5s,opacity 1.5s linear;-ms-transition:visibility 0s linear 1.5s,opacity 1.5s linear;-o-transition:visibility 0s linear 1.5s,opacity 1.5s linear;transition:visibility 0s linear 1.5s,opacity 1.5s linear}.vjs-default-skin .vjs-controls{position:absolute;bottom:0;left:0;right:0;margin:0;padding:0;height:2.6em;color:#fff;border-top:1px solid #404040;background:#242424;background:-moz-linear-gradient(top,#242424 50%,#1f1f1f 50%,#171717 100%);background:-webkit-gradient(linear,0% 0,0% 100%,color-stop(50%,#242424),color-stop(50%,#1f1f1f),color-stop(100%,#171717));background:-webkit-linear-gradient(top,#242424 50%,#1f1f1f 50%,#171717 100%);background:-o-linear-gradient(top,#242424 50%,#1f1f1f 50%,#171717 100%);background:-ms-linear-gradient(top,#242424 50%,#1f1f1f 50%,#171717 100%);background:linear-gradient(top,#242424 50%,#1f1f1f 50%,#171717 100%);visibility:hidden;opacity:0}.vjs-default-skin .vjs-control{position:relative;float:left;text-align:center;margin:0;padding:0;height:2.6em;width:2.6em}.vjs-default-skin .vjs-control:focus{outline:0}.vjs-default-skin .vjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.vjs-default-skin .vjs-play-control{width:5em;cursor:pointer!important}.vjs-default-skin.vjs-paused .vjs-play-control div{width:15px;height:17px;background:url('video-js.png');margin:.5em auto 0}.vjs-default-skin.vjs-playing .vjs-play-control div{width:15px;height:17px;background:url('video-js.png') -25px 0;margin:.5em auto 0}.vjs-default-skin .vjs-rewind-control{width:5em;cursor:pointer!important}.vjs-default-skin .vjs-rewind-control div{width:19px;height:16px;background:url('video-js.png');margin:.5em auto 0}.vjs-default-skin .vjs-mute-control{width:3.8em;cursor:pointer!important;float:right}.vjs-default-skin .vjs-mute-control div{width:22px;height:16px;background:url('video-js.png') -75px -25px;margin:.5em auto 0}.vjs-default-skin .vjs-mute-control.vjs-vol-0 div{background:url('video-js.png') 0 -25px}.vjs-default-skin .vjs-mute-control.vjs-vol-1 div{background:url('video-js.png') -25px -25px}.vjs-default-skin .vjs-mute-control.vjs-vol-2 div{background:url('video-js.png') -50px -25px}.vjs-default-skin .vjs-volume-control{width:5em;float:right}.vjs-default-skin .vjs-volume-bar{position:relative;width:5em;height:.6em;margin:1em auto 0;cursor:pointer!important;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em;background:#666;background:-moz-linear-gradient(top,#333,#666);background:-webkit-gradient(linear,0% 0,0% 100%,from(#333),to(#666));background:-webkit-linear-gradient(top,#333,#666);background:-o-linear-gradient(top,#333,#666);background:-ms-linear-gradient(top,#333,#666);background:linear-gradient(top,#333,#666)}.vjs-default-skin .vjs-volume-level{position:absolute;top:0;left:0;height:.6em;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em;background:#fff;background:-moz-linear-gradient(top,#fff,#ccc);background:-webkit-gradient(linear,0% 0,0% 100%,from(#fff),to(#ccc));background:-webkit-linear-gradient(top,#fff,#ccc);background:-o-linear-gradient(top,#fff,#ccc);background:-ms-linear-gradient(top,#fff,#ccc);background:linear-gradient(top,#fff,#ccc)}.vjs-default-skin .vjs-volume-handle{position:absolute;top:-0.2em;width:.8em;height:.8em;background:#ccc;left:0;border:1px solid #fff;-moz-border-radius:.6em;-webkit-border-radius:.6em;border-radius:.6em}.vjs-default-skin div.vjs-progress-control{position:absolute;left:4.8em;right:4.8em;height:1.0em;width:auto;top:-1.3em;border-bottom:1px solid #1f1f1f;border-top:1px solid #222;background:#333;background:-moz-linear-gradient(top,#222,#333);background:-webkit-gradient(linear,0% 0,0% 100%,from(#222),to(#333));background:-webkit-linear-gradient(top,#222,#333);background:-o-linear-gradient(top,#333,#222);background:-ms-linear-gradient(top,#333,#222);background:linear-gradient(top,#333,#222)}.vjs-default-skin .vjs-progress-holder{position:relative;cursor:pointer!important;padding:0;margin:0;height:1.0em;-moz-border-radius:.6em;-webkit-border-radius:.6em;border-radius:.6em;background:#111;background:-moz-linear-gradient(top,#111,#262626);background:-webkit-gradient(linear,0% 0,0% 100%,from(#111),to(#262626));background:-webkit-linear-gradient(top,#111,#262626);background:-o-linear-gradient(top,#111,#262626);background:-ms-linear-gradient(top,#111,#262626);background:linear-gradient(top,#111,#262626)}.vjs-default-skin .vjs-progress-holder .vjs-play-progress,.vjs-default-skin .vjs-progress-holder .vjs-load-progress{position:absolute;display:block;height:1.0em;margin:0;padding:0;left:0;top:0;-moz-border-radius:.6em;-webkit-border-radius:.6em;border-radius:.6em}.vjs-default-skin .vjs-play-progress{background:#fff;background:-moz-linear-gradient(top,#fff 0,#d6d6d6 50%,#fff 100%);background:-webkit-gradient(linear,0% 0,0% 100%,color-stop(0%,#fff),color-stop(50%,#d6d6d6),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#fff 0,#d6d6d6 50%,#fff 100%);background:-o-linear-gradient(top,#fff 0,#d6d6d6 50%,#fff 100%);background:-ms-linear-gradient(top,#fff 0,#d6d6d6 50%,#fff 100%);background:linear-gradient(top,#fff 0,#d6d6d6 50%,#fff 100%);background:#efefef;background:-moz-linear-gradient(top,#efefef 0,#f5f5f5 50%,#dbdbdb 50%,#f1f1f1 100%);background:-webkit-gradient(linear,0% 0,0% 100%,color-stop(0%,#efefef),color-stop(50%,#f5f5f5),color-stop(50%,#dbdbdb),color-stop(100%,#f1f1f1));background:-webkit-linear-gradient(top,#efefef 0,#f5f5f5 50%,#dbdbdb 50%,#f1f1f1 100%);background:-o-linear-gradient(top,#efefef 0,#f5f5f5 50%,#dbdbdb 50%,#f1f1f1 100%);background:-ms-linear-gradient(top,#efefef 0,#f5f5f5 50%,#dbdbdb 50%,#f1f1f1 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#efefef',endColorstr='#f1f1f1',GradientType=0);background:linear-gradient(top,#efefef 0,#f5f5f5 50%,#dbdbdb 50%,#f1f1f1 100%)}.vjs-default-skin .vjs-load-progress{opacity:.8;background:#666;background:-moz-linear-gradient(top,#666,#333);background:-webkit-gradient(linear,0% 0,0% 100%,from(#666),to(#333));background:-webkit-linear-gradient(top,#666,#333);background:-o-linear-gradient(top,#666,#333);background:-ms-linear-gradient(top,#666,#333);background:linear-gradient(top,#666,#333)}.vjs-default-skin div.vjs-seek-handle{position:absolute;width:16px;height:16px;margin-top:-0.3em;left:0;top:0;background:url('video-js.png') 0 -50px;-moz-border-radius:.8em;-webkit-border-radius:.8em;border-radius:.8em;-webkit-box-shadow:0 2px 4px 0 #000;-moz-box-shadow:0 2px 4px 0 #000;box-shadow:0 2px 4px 0 #000}.vjs-default-skin .vjs-time-controls{position:absolute;right:0;height:1.0em;width:4.8em;top:-1.3em;border-bottom:1px solid #1f1f1f;border-top:1px solid #222;background-color:#333;font-size:1em;line-height:1.0em;font-weight:normal;font-family:Helvetica,Arial,sans-serif;background:#333;background:-moz-linear-gradient(top,#222,#333);background:-webkit-gradient(linear,0% 0,0% 100%,from(#222),to(#333));background:-webkit-linear-gradient(top,#222,#333);background:-o-linear-gradient(top,#333,#222);background:-ms-linear-gradient(top,#333,#222);background:linear-gradient(top,#333,#222)}.vjs-default-skin .vjs-current-time{left:0}.vjs-default-skin .vjs-duration{right:0;display:none}.vjs-default-skin .vjs-remaining-time{right:0}.vjs-time-divider{display:none}.vjs-default-skin .vjs-time-control{font-size:1em;line-height:1;font-weight:normal;font-family:Helvetica,Arial,sans-serif}.vjs-default-skin .vjs-time-control span{line-height:25px}.vjs-secondary-controls{float:right}.vjs-default-skin .vjs-fullscreen-control{width:3.8em;cursor:pointer!important;float:right}.vjs-default-skin .vjs-fullscreen-control div{width:16px;height:16px;background:url('video-js.png') -50px 0;margin:.5em auto 0}.vjs-default-skin.vjs-fullscreen .vjs-fullscreen-control div{background:url('video-js.png') -75px 0}.vjs-default-skin .vjs-big-play-button{display:block;z-index:2;position:absolute;top:50%;left:50%;width:8.0em;height:8.0em;margin:-42px 0 0 -42px;text-align:center;vertical-align:center;cursor:pointer!important;border:.2em solid #fff;opacity:.95;-webkit-border-radius:25px;-moz-border-radius:25px;border-radius:25px;background:#454545;background:-moz-linear-gradient(top,#454545 0,#232323 50%,#161616 50%,#3f3f3f 100%);background:-webkit-gradient(linear,0% 0,0% 100%,color-stop(0%,#454545),color-stop(50%,#232323),color-stop(50%,#161616),color-stop(100%,#3f3f3f));background:-webkit-linear-gradient(top,#454545 0,#232323 50%,#161616 50%,#3f3f3f 100%);background:-o-linear-gradient(top,#454545 0,#232323 50%,#161616 50%,#3f3f3f 100%);background:-ms-linear-gradient(top,#454545 0,#232323 50%,#161616 50%,#3f3f3f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#454545',endColorstr='#3f3f3f',GradientType=0);background:linear-gradient(top,#454545 0,#232323 50%,#161616 50%,#3f3f3f 100%);-webkit-box-shadow:4px 4px 8px #000;-moz-box-shadow:4px 4px 8px #000;box-shadow:4px 4px 8px #000}.vjs-default-skin div.vjs-big-play-button:hover{-webkit-box-shadow:0 0 80px #fff;-moz-box-shadow:0 0 80px #fff;box-shadow:0 0 80px #fff}.vjs-default-skin div.vjs-big-play-button span{position:absolute;top:50%;left:50%;display:block;width:35px;height:42px;margin:-20px 0 0 -15px;background:url('video-js.png') -100px 0}.vjs-loading-spinner{display:none;position:absolute;top:50%;left:50%;width:55px;height:55px;margin:-28px 0 0 -28px;-webkit-animation-name:rotatethis;-webkit-animation-duration:1s;-webkit-animation-iteration-count:infinite;-webkit-animation-timing-function:linear;-moz-animation-name:rotatethis;-moz-animation-duration:1s;-moz-animation-iteration-count:infinite;-moz-animation-timing-function:linear}@-webkit-keyframes rotatethis{0%{-webkit-transform:scale(0.6) rotate(0deg)}12.5%{-webkit-transform:scale(0.6) rotate(0deg)}12.51%{-webkit-transform:scale(0.6) rotate(45deg)}25%{-webkit-transform:scale(0.6) rotate(45deg)}25.01%{-webkit-transform:scale(0.6) rotate(90deg)}37.5%{-webkit-transform:scale(0.6) rotate(90deg)}37.51%{-webkit-transform:scale(0.6) rotate(135deg)}50%{-webkit-transform:scale(0.6) rotate(135deg)}50.01%{-webkit-transform:scale(0.6) rotate(180deg)}62.5%{-webkit-transform:scale(0.6) rotate(180deg)}62.51%{-webkit-transform:scale(0.6) rotate(225deg)}75%{-webkit-transform:scale(0.6) rotate(225deg)}75.01%{-webkit-transform:scale(0.6) rotate(270deg)}87.5%{-webkit-transform:scale(0.6) rotate(270deg)}87.51%{-webkit-transform:scale(0.6) rotate(315deg)}100%{-webkit-transform:scale(0.6) rotate(315deg)}}@-moz-keyframes rotatethis{0%{-moz-transform:scale(0.6) rotate(0deg)}12.5%{-moz-transform:scale(0.6) rotate(0deg)}12.51%{-moz-transform:scale(0.6) rotate(45deg)}25%{-moz-transform:scale(0.6) rotate(45deg)}25.01%{-moz-transform:scale(0.6) rotate(90deg)}37.5%{-moz-transform:scale(0.6) rotate(90deg)}37.51%{-moz-transform:scale(0.6) rotate(135deg)}50%{-moz-transform:scale(0.6) rotate(135deg)}50.01%{-moz-transform:scale(0.6) rotate(180deg)}62.5%{-moz-transform:scale(0.6) rotate(180deg)}62.51%{-moz-transform:scale(0.6) rotate(225deg)}75%{-moz-transform:scale(0.6) rotate(225deg)}75.01%{-moz-transform:scale(0.6) rotate(270deg)}87.5%{-moz-transform:scale(0.6) rotate(270deg)}87.51%{-moz-transform:scale(0.6) rotate(315deg)}100%{-moz-transform:scale(0.6) rotate(315deg)}}div.vjs-loading-spinner .ball1{opacity:.12;position:absolute;left:20px;top:0;width:13px;height:13px;background:#fff;border-radius:13px;-webkit-border-radius:13px;-moz-border-radius:13px;border:1px solid #ccc}div.vjs-loading-spinner .ball2{opacity:.25;position:absolute;left:34px;top:6px;width:13px;height:13px;background:#fff;border-radius:13px;-webkit-border-radius:13px;-moz-border-radius:13px;border:1px solid #ccc}div.vjs-loading-spinner .ball3{opacity:.37;position:absolute;left:40px;top:20px;width:13px;height:13px;background:#fff;border-radius:13px;-webkit-border-radius:13px;-moz-border-radius:13px;border:1px solid #ccc}div.vjs-loading-spinner .ball4{opacity:.50;position:absolute;left:34px;top:34px;width:13px;height:13px;background:#fff;border-radius:10px;-webkit-border-radius:10px;-moz-border-radius:15px;border:1px solid #ccc}div.vjs-loading-spinner .ball5{opacity:.62;position:absolute;left:20px;top:40px;width:13px;height:13px;background:#fff;border-radius:13px;-webkit-border-radius:13px;-moz-border-radius:13px;border:1px solid #ccc}div.vjs-loading-spinner .ball6{opacity:.75;position:absolute;left:6px;top:34px;width:13px;height:13px;background:#fff;border-radius:13px;-webkit-border-radius:13px;-moz-border-radius:13px;border:1px solid #ccc}div.vjs-loading-spinner .ball7{opacity:.87;position:absolute;left:0;top:20px;width:13px;height:13px;background:#fff;border-radius:13px;-webkit-border-radius:13px;-moz-border-radius:13px;border:1px solid #ccc}div.vjs-loading-spinner .ball8{opacity:1.00;position:absolute;left:6px;top:6px;width:13px;height:13px;background:#fff;border-radius:13px;-webkit-border-radius:13px;-moz-border-radius:13px;border:1px solid #ccc}.vjs-default-skin .vjs-menu-button{float:right;margin:.2em .5em 0 0;padding:0;width:3em;height:2em;cursor:pointer!important;border:1px solid #111;-moz-border-radius:.3em;-webkit-border-radius:.3em;border-radius:.3em;background:#4d4d4d;background:-moz-linear-gradient(top,#4d4d4d 0,#3f3f3f 50%,#333 50%,#252525 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#4d4d4d),color-stop(50%,#3f3f3f),color-stop(50%,#333),color-stop(100%,#252525));background:-webkit-linear-gradient(top,#4d4d4d 0,#3f3f3f 50%,#333 50%,#252525 100%);background:-o-linear-gradient(top,#4d4d4d 0,#3f3f3f 50%,#333 50%,#252525 100%);background:-ms-linear-gradient(top,#4d4d4d 0,#3f3f3f 50%,#333 50%,#252525 100%);background:linear-gradient(top,#4d4d4d 0,#3f3f3f 50%,#333 50%,#252525 100%)}.vjs-default-skin .vjs-menu-button div{background:url('video-js.png') 0 -75px no-repeat;width:16px;height:16px;margin:.2em auto 0;padding:0}.vjs-default-skin .vjs-menu-button ul{display:none;opacity:.8;padding:0;margin:0;position:absolute;width:10em;bottom:2em;max-height:15em;left:-3.5em;background-color:#111;border:2px solid #333;-moz-border-radius:.7em;-webkit-border-radius:1em;border-radius:.5em;-webkit-box-shadow:0 2px 4px 0 #000;-moz-box-shadow:0 2px 4px 0 #000;box-shadow:0 2px 4px 0 #000;overflow:auto}.vjs-default-skin .vjs-menu-button:focus ul,.vjs-default-skin .vjs-menu-button:hover ul{display:block;list-style:none}.vjs-default-skin .vjs-menu-button ul li{list-style:none;margin:0;padding:.3em 0 .3em 20px;line-height:1.4em;font-size:1.2em;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;text-align:left}.vjs-default-skin .vjs-menu-button ul li.vjs-selected{text-decoration:underline;background:url('video-js.png') -125px -50px no-repeat}.vjs-default-skin .vjs-menu-button ul li:focus,.vjs-default-skin .vjs-menu-button ul li:hover,.vjs-default-skin .vjs-menu-button ul li.vjs-selected:focus,.vjs-default-skin .vjs-menu-button ul li.vjs-selected:hover{background-color:#ccc;color:#111;outline:0}.vjs-default-skin .vjs-menu-button ul li.vjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em 0;color:#fff;font-weight:bold;cursor:default;background:#4d4d4d;background:-moz-linear-gradient(top,#4d4d4d 0,#3f3f3f 50%,#333 50%,#252525 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#4d4d4d),color-stop(50%,#3f3f3f),color-stop(50%,#333),color-stop(100%,#252525));background:-webkit-linear-gradient(top,#4d4d4d 0,#3f3f3f 50%,#333 50%,#252525 100%);background:-o-linear-gradient(top,#4d4d4d 0,#3f3f3f 50%,#333 50%,#252525 100%);background:-ms-linear-gradient(top,#4d4d4d 0,#3f3f3f 50%,#333 50%,#252525 100%);background:linear-gradient(top,#4d4d4d 0,#3f3f3f 50%,#333 50%,#252525 100%)}.vjs-default-skin .vjs-captions-button div{background-position:-25px -75px}.vjs-default-skin .vjs-chapters-button div{background-position:-100px -75px}.vjs-default-skin .vjs-chapters-button ul{width:20em;left:-8.5em}
|
featured-video-plus.php
CHANGED
@@ -4,7 +4,7 @@ Plugin Name: Featured Video Plus
|
|
4 |
Plugin URI: https://github.com/ahoereth/featured-video-plus
|
5 |
Description: Add Featured Videos to your posts and pages.
|
6 |
Author: Alexander Höreth
|
7 |
-
Version: 1.
|
8 |
Author URI: http://ahoereth.yrnxt.com
|
9 |
License: GPL2
|
10 |
|
@@ -27,7 +27,7 @@ License: GPL2
|
|
27 |
*/
|
28 |
|
29 |
if (!defined('FVP_VERSION'))
|
30 |
-
define('FVP_VERSION', '1.
|
31 |
|
32 |
// symlink proof
|
33 |
$pathinfo = pathinfo(dirname(plugin_basename(__FILE__)));
|
@@ -60,8 +60,9 @@ if( is_admin() ) {
|
|
60 |
add_action( 'admin_init', 'featured_video_plus_upgrade' );
|
61 |
|
62 |
// admin meta box
|
63 |
-
add_action('admin_menu',
|
64 |
-
add_action('save_post',
|
|
|
65 |
|
66 |
// enqueue admin scripts and styles
|
67 |
add_action('admin_enqueue_scripts', array( &$featured_video_plus_backend, 'enqueue' ) );
|
4 |
Plugin URI: https://github.com/ahoereth/featured-video-plus
|
5 |
Description: Add Featured Videos to your posts and pages.
|
6 |
Author: Alexander Höreth
|
7 |
+
Version: 1.5
|
8 |
Author URI: http://ahoereth.yrnxt.com
|
9 |
License: GPL2
|
10 |
|
27 |
*/
|
28 |
|
29 |
if (!defined('FVP_VERSION'))
|
30 |
+
define('FVP_VERSION', '1.5');
|
31 |
|
32 |
// symlink proof
|
33 |
$pathinfo = pathinfo(dirname(plugin_basename(__FILE__)));
|
60 |
add_action( 'admin_init', 'featured_video_plus_upgrade' );
|
61 |
|
62 |
// admin meta box
|
63 |
+
add_action('admin_menu', array( &$featured_video_plus_backend, 'metabox_register' ) );
|
64 |
+
add_action('save_post', array( &$featured_video_plus_backend, 'metabox_save' ) );
|
65 |
+
add_action('wp_ajax_fvp_ajax', array( &$featured_video_plus_backend, 'ajax' ) );
|
66 |
|
67 |
// enqueue admin scripts and styles
|
68 |
add_action('admin_enqueue_scripts', array( &$featured_video_plus_backend, 'enqueue' ) );
|
js/backend-min.js
CHANGED
@@ -1 +1,11 @@
|
|
1 |
-
jQuery(document).ready(function(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
jQuery(document).ready(function(a){function g(){a.trim(a("#fvp_video").val())==a.trim(a("#fvp_sec").val())?(a("#fvp_sec").addClass("fvp_invalid"),a("#fvp_localvideo_notdistinct_warning").slideDown("fast")):(a("#fvp_localvideo_notdistinct_warning").slideUp("fast"),a("#fvp_sec").removeClass("fvp_invalid"))}a("#fvp_video,#fvp_sec").blur(function(){var b=a(this);b.val(a.trim(b.val()));d=b.val();if(0===d.length||d==fvp_backend_data.default_value||d==fvp_backend_data.default_value_sec)b.addClass("defaultTextActive"),
|
2 |
+
b.is("#fvp_video")?b.val(fvp_backend_data.default_value):b.val(fvp_backend_data.default_value_sec);b.trigger("autosize");b.val()!=b.siblings(".fvp_mirror").val()&&(bg=b.siblings(".fvp_video_choose").children(".fvp_media_icon").css("backgroundImage"),b.siblings(".fvp_video_choose").children(".fvp_media_icon").css("backgroundImage","url('"+fvp_backend_data.loading_gif+"')"),a("#fvp_current_video").css({backgroundImage:"url('"+fvp_backend_data.loading_gif+"')",width:"256px",height:"144px"}),a.post(ajaxurl,
|
3 |
+
{action:"fvp_ajax",id:a("#post_ID").val(),fvp_nonce:a("#fvp_nonce").val(),fvp_video:a("#fvp_video").val(),fvp_sec:a("#fvp_sec").val()},function(c){b.siblings(".fvp_mirror").val(b.val());b.siblings(".fvp_video_choose").children(".fvp_media_icon").css("backgroundImage",bg);"removed"==c.typ?a("#fvp_current_video").html("").css({backgroundImage:"",width:"",height:""}):c.valid?(a("#fvp_current_video").html(c.video),b.css("backgroundColor","#00FF00").animate({backgroundColor:"white"},500,function(){b.css("backgroundColor",
|
4 |
+
"")}),a("#fvp_help_notice").slideUp("fast")):b.addClass("fvp_invalid")},"json"))});a(".fvp_input").focus(function(){d=a(this).val();if(d==fvp_backend_data.default_value||d==fvp_backend_data.default_value_sec)a(this).removeClass("defaultTextActive"),a(this).val("")});a(".fvp_input").autosize().trigger("blur").keypress(function(a){13==a.keyCode&&a.preventDefault()});a(".fvp_input").click(function(){a(this).select()});if(0<a("#fvp_video").length){var d=a("#fvp_video").val();if(0===d.length||d==fvp_backend_data.default_value||
|
5 |
+
!d.match(fvp_backend_data.wp_upload_dir.replace(/\//g,"\\/")))a("#fvp_sec").val(fvp_backend_data.default_value_sec),a("#fvp_sec_wrapper").hide()}a("#fvp_video").bind("change paste keyup",function(){var b=setTimeout,c=a(this),c=a.trim(c.val());a.trim(a("#fvp_sec").val());a("#fvp_help_notice").slideDown("fast");if(0===c.length||c==fvp_backend_data.default_value)a("#fvp_video").removeClass("fvp_invalid"),a("#fvp_sec").val(fvp_backend_data.default_value_sec).blur(),a("#fvp_sec_wrapper").slideUp("fast"),
|
6 |
+
a("#fvp_localvideo_format_warning").slideUp("fast");c.match(fvp_backend_data.wp_upload_dir.replace(/\//g,"\\/"))?(c=/^.*\/(.*)\.(.*)$/g.exec(c),"webm"==c[2]||"mp4"==c[2]||"ogg"==c[2]||"ogv"==c[2]?(a("#fvp_sec_wrapper").slideDown("fast"),a("#fvp_video").removeClass("fvp_invalid"),a("#fvp_localvideo_format_warning").slideUp("fast")):(a("#fvp_sec").val(fvp_backend_data.default_value_sec).blur(),a("#fvp_sec_wrapper").slideUp("fast"),a("#fvp_video").addClass("fvp_invalid"),a("#fvp_localvideo_format_warning").slideDown("fast",
|
7 |
+
"linear")),g()):(a("#fvp_sec_wrapper").slideUp("fast"),a("#fvp_video").removeClass("fvp_invalid"),a("#fvp_localvideo_format_warning").slideUp("fast"));b(void 0,200)});a("#fvp_sec").bind("change paste keyup",function(){var b=setTimeout,c=a(this),c=a.trim(c.val());a.trim(a("#fvp_video").val());if(0===c.length||c==fvp_backend_data.default_value)a("#fvp_localvideo_format_warning").slideUp("fast"),a("#fvp_sec").removeClass("fvp_invalid");c.match(fvp_backend_data.wp_upload_dir.replace(/\//g,"\\/"))?(c=
|
8 |
+
/^.*\/(.*)\.(.*)$/g.exec(c),"webm"==c[2]||"mp4"==c[2]||"ogg"==c[2]||"ogv"==c[2]?(a("#fvp_sec").removeClass("fvp_invalid"),a("#fvp_localvideo_format_warning").slideUp("fast"),g()):(a("#fvp_sec").addClass("fvp_invalid"),a("#fvp_localvideo_format_warning").slideDown("fast"))):0!==c.length&&(a("#fvp_sec").addClass("fvp_invalid"),a("#fvp_localvideo_notdistinct_warning").slideDown("fast"));b(void 0,200)});a("#fvp_set_featimg_link").removeClass("fvp_hidden");a("#fvp_set_featimg_input").addClass("fvp_hidden");
|
9 |
+
a("#fvp_set_featimg_link, #fvp_warning_set_featimg").click(function(){a("#fvp_set_featimg").attr("checked",!0);a.post(ajaxurl,{action:"fvp_ajax",id:a("#post_ID").val(),fvp_nonce:a("#fvp_nonce").val(),fvp_video:a("#fvp_video").val(),fvp_sec:a("#fvp_sec").val()},function(b){a("#postimagediv .inside").html(b.img);a("#fvp_set_featimg_link, #fvp_featimg_warning").slideUp().addClass("fvp_hidden")},"json");return!1});a("#remove-post-thumbnail").click(function(){a("#fvp_set_featimg_link, #fvp_featimg_warning").slideDown().removeClass("fvp_hidden")});
|
10 |
+
a("#set-post-thumbnail").click(function(){a("#fvp_featimg_box_warning").addClass("fvp_hidden")});a("#fvp_help_toggle").bind("click",function(){a("#contextual-help-link").trigger("click")});var e,f;f={frame:function(){if(this._frame)return this._frame;this._frame=wp.media({title:e.data("title"),library:{type:"video"},button:{text:e.data("button")},multiple:!1});this._frame.on("open",this.updateFrame).state("library").on("select",this.select);return this._frame},select:function(){var b=this.get("selection");
|
11 |
+
a(e.data("target")).val(b.pluck("url")).trigger("autosize").change().removeClass("defaultTextActive")},updateFrame:function(){},init:function(){a("#wpbody").on("click",".fvp_video_choose",function(b){b.preventDefault();e=a(this).closest(".fvp_input_wrapper");f.frame().open()})}};1==fvp_backend_data.wp_35&&f.init()});
|
js/backend.js
CHANGED
@@ -1,22 +1,53 @@
|
|
1 |
jQuery(document).ready(function($){
|
2 |
|
3 |
/**
|
4 |
-
* Set input field values to default on blur if empty
|
5 |
* @since 1.0
|
6 |
*/
|
7 |
-
$(
|
8 |
-
|
9 |
-
|
|
|
|
|
|
|
10 |
if((value.length === 0) ||
|
11 |
(value == fvp_backend_data.default_value ) ||
|
12 |
(value == fvp_backend_data.default_value_sec) ){
|
13 |
-
|
14 |
-
if(
|
15 |
-
|
16 |
else
|
17 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
}
|
19 |
-
$(this).trigger('autosize');
|
20 |
});
|
21 |
|
22 |
/**
|
@@ -37,10 +68,9 @@ jQuery(document).ready(function($){
|
|
37 |
* @see http://www.jacklmoore.com/autosize
|
38 |
* @since 1.0
|
39 |
*/
|
40 |
-
$(".fvp_input").autosize().trigger("blur").keypress(function(event) {
|
41 |
-
if (event.keyCode == 13)
|
42 |
event.preventDefault();
|
43 |
-
}
|
44 |
});
|
45 |
|
46 |
/**
|
@@ -55,10 +85,12 @@ jQuery(document).ready(function($){
|
|
55 |
* hide secondary input initially
|
56 |
* @since 1.2
|
57 |
*/
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
|
|
|
|
62 |
}
|
63 |
|
64 |
/**
|
@@ -76,33 +108,33 @@ jQuery(document).ready(function($){
|
|
76 |
function handleVideoInput( obj ) {
|
77 |
var value = $.trim(obj.val());
|
78 |
var sec = $.trim($('#fvp_sec').val());
|
79 |
-
$("#fvp_help_notice").
|
80 |
|
81 |
if ( value.length === 0 || value == fvp_backend_data.default_value ) {
|
82 |
-
$("#fvp_video").css('backgroundColor', 'white');
|
83 |
$("#fvp_sec").val( fvp_backend_data.default_value_sec ).blur();
|
84 |
-
$("#fvp_sec_wrapper").
|
85 |
-
$("#fvp_localvideo_format_warning").
|
86 |
}
|
87 |
|
88 |
if ( value.match( fvp_backend_data.wp_upload_dir.replace(/\//g, "\\\/") ) ) {
|
89 |
var file_extension = /^.*\/(.*)\.(.*)$/g;
|
90 |
var match = file_extension.exec(value);
|
91 |
if ( match[2] == 'webm' || match[2] == 'mp4' || match[2] == 'ogg' || match[2] == 'ogv' ) {
|
92 |
-
$("#fvp_sec_wrapper").
|
93 |
-
$("#fvp_video").css('backgroundColor', 'white');
|
94 |
-
$("#fvp_localvideo_format_warning").
|
95 |
} else {
|
96 |
$("#fvp_sec").val( fvp_backend_data.default_value_sec ).blur();
|
97 |
-
$("#fvp_sec_wrapper").
|
98 |
-
$("#fvp_video").css('backgroundColor', 'lightYellow');
|
99 |
-
$("#fvp_localvideo_format_warning").
|
100 |
}
|
101 |
distinctContent();
|
102 |
} else {
|
103 |
-
$("#fvp_sec_wrapper").
|
104 |
-
$("#fvp_video").css('backgroundColor', 'white');
|
105 |
-
$("#fvp_localvideo_format_warning").
|
106 |
}
|
107 |
}
|
108 |
|
@@ -123,25 +155,24 @@ jQuery(document).ready(function($){
|
|
123 |
var prim = $.trim($('#fvp_video').val());
|
124 |
|
125 |
if ( value.length === 0 || value == fvp_backend_data.default_value ) {
|
126 |
-
$("#fvp_localvideo_format_warning").
|
127 |
-
$("#fvp_sec").css('backgroundColor', 'white');
|
128 |
}
|
129 |
|
130 |
if ( value.match( fvp_backend_data.wp_upload_dir.replace(/\//g, "\\\/") ) ) {
|
131 |
var file_extension = /^.*\/(.*)\.(.*)$/g;
|
132 |
var match = file_extension.exec(value);
|
133 |
if ( match[2] == 'webm' || match[2] == 'mp4' || match[2] == 'ogg' || match[2] == 'ogv' ) {
|
|
|
|
|
134 |
distinctContent();
|
135 |
-
$("#fvp_sec").css('backgroundColor', 'white');
|
136 |
-
$("#fvp_localvideo_format_warning").hide('fast');
|
137 |
} else {
|
138 |
-
|
139 |
-
$("#
|
140 |
-
$("#fvp_localvideo_format_warning").show('fast');
|
141 |
}
|
142 |
} else if (value.length !== 0) {
|
143 |
-
$("#fvp_sec").css('backgroundColor', 'lightYellow');
|
144 |
-
$("#fvp_localvideo_notdistinct_warning").
|
145 |
}
|
146 |
|
147 |
}
|
@@ -151,12 +182,12 @@ jQuery(document).ready(function($){
|
|
151 |
* @since 1.2
|
152 |
*/
|
153 |
function distinctContent() {
|
154 |
-
if ( $('#fvp_video').val() == $('#fvp_sec').val() ) {
|
155 |
-
$("#fvp_sec").css('backgroundColor', 'lightYellow');
|
156 |
-
$("#fvp_localvideo_notdistinct_warning").
|
157 |
} else {
|
158 |
-
$("#fvp_localvideo_notdistinct_warning").
|
159 |
-
$("#fvp_sec").css('backgroundColor', 'white');
|
160 |
}
|
161 |
}
|
162 |
|
@@ -164,18 +195,30 @@ jQuery(document).ready(function($){
|
|
164 |
* set featured image link and featured image requirement warning
|
165 |
* @since 1.1
|
166 |
*/
|
167 |
-
$("#fvp_set_featimg_link").
|
168 |
-
$("#fvp_set_featimg_input").
|
169 |
|
170 |
$("#fvp_set_featimg_link, #fvp_warning_set_featimg").click(function() {
|
171 |
$("#fvp_set_featimg").attr('checked', true);
|
172 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
173 |
return false;
|
174 |
});
|
175 |
|
176 |
$("#remove-post-thumbnail").click(function() {
|
177 |
-
|
178 |
-
$("#fvp_featimg_box_warning").removeClass("fvp_hidden");
|
179 |
});
|
180 |
|
181 |
$("#set-post-thumbnail").click(function() {
|
@@ -190,14 +233,6 @@ jQuery(document).ready(function($){
|
|
190 |
$('#contextual-help-link').trigger('click');
|
191 |
});
|
192 |
|
193 |
-
|
194 |
-
/**
|
195 |
-
* Button in the top right of the Featured Video box. Planned for a feature release.
|
196 |
-
*
|
197 |
-
* @since 1.#
|
198 |
-
*/
|
199 |
-
//$('#featured_video_plus-box .handlediv').after('<div class="box_topright"><a href="#" id="fvp_remove" title="Remove Featured Video"><br /></div></div>');
|
200 |
-
|
201 |
/**
|
202 |
* Making use of the WordPress 3.5 Media Manager
|
203 |
*
|
@@ -251,6 +286,16 @@ jQuery(document).ready(function($){
|
|
251 |
}
|
252 |
};
|
253 |
|
|
|
254 |
if(fvp_backend_data.wp_35 == 1)
|
255 |
mediaControl.init();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
256 |
});
|
1 |
jQuery(document).ready(function($){
|
2 |
|
3 |
/**
|
4 |
+
* Set input field values to default on blur if empty and ajax submit if changed
|
5 |
* @since 1.0
|
6 |
*/
|
7 |
+
$('#fvp_video,#fvp_sec').blur(function() {
|
8 |
+
var t = $(this); // required to make use of it in ajax callback
|
9 |
+
|
10 |
+
t.val( $.trim( t.val()) );
|
11 |
+
|
12 |
+
value = t.val();
|
13 |
if((value.length === 0) ||
|
14 |
(value == fvp_backend_data.default_value ) ||
|
15 |
(value == fvp_backend_data.default_value_sec) ){
|
16 |
+
t.addClass("defaultTextActive");
|
17 |
+
if( t.is('#fvp_video') )
|
18 |
+
t.val( fvp_backend_data.default_value );
|
19 |
else
|
20 |
+
t.val( fvp_backend_data.default_value_sec );
|
21 |
+
}
|
22 |
+
t.trigger('autosize');
|
23 |
+
|
24 |
+
if( t.val() != t.siblings('.fvp_mirror').val() ) {
|
25 |
+
bg = t.siblings('.fvp_video_choose').children('.fvp_media_icon').css('backgroundImage');
|
26 |
+
t.siblings('.fvp_video_choose').children('.fvp_media_icon').css('backgroundImage', "url('"+fvp_backend_data.loading_gif+"')");
|
27 |
+
$('#fvp_current_video').css({'backgroundImage':"url('"+fvp_backend_data.loading_gif+"')",'width':'256px','height':'144px'});
|
28 |
+
$.post( ajaxurl,
|
29 |
+
{
|
30 |
+
'action' : 'fvp_ajax',
|
31 |
+
'id' : $('#post_ID').val(),
|
32 |
+
'fvp_nonce' : $('#fvp_nonce').val(),
|
33 |
+
'fvp_video' : $('#fvp_video').val(),
|
34 |
+
'fvp_sec' : $('#fvp_sec').val()
|
35 |
+
},
|
36 |
+
function(data) {
|
37 |
+
t.siblings('.fvp_mirror').val( t.val() );
|
38 |
+
t.siblings('.fvp_video_choose').children('.fvp_media_icon').css('backgroundImage', bg);
|
39 |
+
if(data.typ == 'removed')
|
40 |
+
$('#fvp_current_video').html('').css({'backgroundImage':'','width':'','height':''});
|
41 |
+
else
|
42 |
+
if(data.valid) {
|
43 |
+
$('#fvp_current_video').html(data.video);
|
44 |
+
t.css('backgroundColor','#00FF00').animate({'backgroundColor':'white'}, 500, function() { t.css('backgroundColor',''); });
|
45 |
+
$("#fvp_help_notice").slideUp('fast');
|
46 |
+
} else
|
47 |
+
t.addClass('fvp_invalid');
|
48 |
+
}, "json"
|
49 |
+
);
|
50 |
}
|
|
|
51 |
});
|
52 |
|
53 |
/**
|
68 |
* @see http://www.jacklmoore.com/autosize
|
69 |
* @since 1.0
|
70 |
*/
|
71 |
+
$(".fvp_input").autosize().trigger("blur").keypress(function(event) {
|
72 |
+
if (event.keyCode == 13) // enter
|
73 |
event.preventDefault();
|
|
|
74 |
});
|
75 |
|
76 |
/**
|
85 |
* hide secondary input initially
|
86 |
* @since 1.2
|
87 |
*/
|
88 |
+
if ($("#fvp_video").length > 0){
|
89 |
+
var value = $("#fvp_video").val();
|
90 |
+
if ( value.length === 0 || value == fvp_backend_data.default_value || !value.match( fvp_backend_data.wp_upload_dir.replace(/\//g, "\\\/") ) ) {
|
91 |
+
$("#fvp_sec").val( fvp_backend_data.default_value_sec );
|
92 |
+
$("#fvp_sec_wrapper").hide();
|
93 |
+
}
|
94 |
}
|
95 |
|
96 |
/**
|
108 |
function handleVideoInput( obj ) {
|
109 |
var value = $.trim(obj.val());
|
110 |
var sec = $.trim($('#fvp_sec').val());
|
111 |
+
$("#fvp_help_notice").slideDown('fast');
|
112 |
|
113 |
if ( value.length === 0 || value == fvp_backend_data.default_value ) {
|
114 |
+
$("#fvp_video").removeClass('fvp_invalid'); //css('backgroundColor', 'white');
|
115 |
$("#fvp_sec").val( fvp_backend_data.default_value_sec ).blur();
|
116 |
+
$("#fvp_sec_wrapper").slideUp('fast');
|
117 |
+
$("#fvp_localvideo_format_warning").slideUp('fast');
|
118 |
}
|
119 |
|
120 |
if ( value.match( fvp_backend_data.wp_upload_dir.replace(/\//g, "\\\/") ) ) {
|
121 |
var file_extension = /^.*\/(.*)\.(.*)$/g;
|
122 |
var match = file_extension.exec(value);
|
123 |
if ( match[2] == 'webm' || match[2] == 'mp4' || match[2] == 'ogg' || match[2] == 'ogv' ) {
|
124 |
+
$("#fvp_sec_wrapper").slideDown('fast');
|
125 |
+
$("#fvp_video").removeClass('fvp_invalid'); //.css('backgroundColor', 'white');
|
126 |
+
$("#fvp_localvideo_format_warning").slideUp('fast');
|
127 |
} else {
|
128 |
$("#fvp_sec").val( fvp_backend_data.default_value_sec ).blur();
|
129 |
+
$("#fvp_sec_wrapper").slideUp('fast');
|
130 |
+
$("#fvp_video").addClass('fvp_invalid'); //css('backgroundColor', 'lightYellow');
|
131 |
+
$("#fvp_localvideo_format_warning").slideDown('fast', 'linear');
|
132 |
}
|
133 |
distinctContent();
|
134 |
} else {
|
135 |
+
$("#fvp_sec_wrapper").slideUp('fast');
|
136 |
+
$("#fvp_video").removeClass('fvp_invalid'); //.css('backgroundColor', 'white');
|
137 |
+
$("#fvp_localvideo_format_warning").slideUp('fast');
|
138 |
}
|
139 |
}
|
140 |
|
155 |
var prim = $.trim($('#fvp_video').val());
|
156 |
|
157 |
if ( value.length === 0 || value == fvp_backend_data.default_value ) {
|
158 |
+
$("#fvp_localvideo_format_warning").slideUp('fast');
|
159 |
+
$("#fvp_sec").removeClass('fvp_invalid'); //.css('backgroundColor', 'white');
|
160 |
}
|
161 |
|
162 |
if ( value.match( fvp_backend_data.wp_upload_dir.replace(/\//g, "\\\/") ) ) {
|
163 |
var file_extension = /^.*\/(.*)\.(.*)$/g;
|
164 |
var match = file_extension.exec(value);
|
165 |
if ( match[2] == 'webm' || match[2] == 'mp4' || match[2] == 'ogg' || match[2] == 'ogv' ) {
|
166 |
+
$("#fvp_sec").removeClass('fvp_invalid'); //.css('backgroundColor', 'white');
|
167 |
+
$("#fvp_localvideo_format_warning").slideUp('fast');
|
168 |
distinctContent();
|
|
|
|
|
169 |
} else {
|
170 |
+
$("#fvp_sec").addClass('fvp_invalid'); //.css('backgroundColor', 'lightYellow');
|
171 |
+
$("#fvp_localvideo_format_warning").slideDown('fast');
|
|
|
172 |
}
|
173 |
} else if (value.length !== 0) {
|
174 |
+
$("#fvp_sec").addClass('fvp_invalid'); //.css('backgroundColor', 'lightYellow');
|
175 |
+
$("#fvp_localvideo_notdistinct_warning").slideDown('fast');
|
176 |
}
|
177 |
|
178 |
}
|
182 |
* @since 1.2
|
183 |
*/
|
184 |
function distinctContent() {
|
185 |
+
if ( $.trim( $('#fvp_video').val() ) == $.trim( $('#fvp_sec').val() ) ) {
|
186 |
+
$("#fvp_sec").addClass('fvp_invalid'); //.css('backgroundColor', 'lightYellow');
|
187 |
+
$("#fvp_localvideo_notdistinct_warning").slideDown('fast');
|
188 |
} else {
|
189 |
+
$("#fvp_localvideo_notdistinct_warning").slideUp('fast');
|
190 |
+
$("#fvp_sec").removeClass('fvp_invalid'); //.css('backgroundColor', 'white');
|
191 |
}
|
192 |
}
|
193 |
|
195 |
* set featured image link and featured image requirement warning
|
196 |
* @since 1.1
|
197 |
*/
|
198 |
+
$("#fvp_set_featimg_link").removeClass('fvp_hidden');
|
199 |
+
$("#fvp_set_featimg_input").addClass('fvp_hidden');
|
200 |
|
201 |
$("#fvp_set_featimg_link, #fvp_warning_set_featimg").click(function() {
|
202 |
$("#fvp_set_featimg").attr('checked', true);
|
203 |
+
//$("#fvp_set_featimg").closest("form").submit();
|
204 |
+
$.post( ajaxurl,
|
205 |
+
{
|
206 |
+
'action' : 'fvp_ajax',
|
207 |
+
'id' : $('#post_ID').val(),
|
208 |
+
'fvp_nonce' : $('#fvp_nonce').val(),
|
209 |
+
'fvp_video' : $('#fvp_video').val(),
|
210 |
+
'fvp_sec' : $('#fvp_sec').val()
|
211 |
+
},
|
212 |
+
function (data) {
|
213 |
+
$('#postimagediv .inside').html(data.img);
|
214 |
+
$("#fvp_set_featimg_link, #fvp_featimg_warning").slideUp().addClass("fvp_hidden");
|
215 |
+
}, "json"
|
216 |
+
);
|
217 |
return false;
|
218 |
});
|
219 |
|
220 |
$("#remove-post-thumbnail").click(function() {
|
221 |
+
$("#fvp_set_featimg_link, #fvp_featimg_warning").slideDown().removeClass("fvp_hidden");
|
|
|
222 |
});
|
223 |
|
224 |
$("#set-post-thumbnail").click(function() {
|
233 |
$('#contextual-help-link').trigger('click');
|
234 |
});
|
235 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
236 |
/**
|
237 |
* Making use of the WordPress 3.5 Media Manager
|
238 |
*
|
286 |
}
|
287 |
};
|
288 |
|
289 |
+
// Media Manager was implemented in WordPress 3.5
|
290 |
if(fvp_backend_data.wp_35 == 1)
|
291 |
mediaControl.init();
|
292 |
+
|
293 |
+
|
294 |
+
/**
|
295 |
+
* Button in the top right of the Featured Video box. Planned for a feature release.
|
296 |
+
*
|
297 |
+
* @since 1.#
|
298 |
+
*/
|
299 |
+
//$('#featured_video_plus-box .handlediv').after('<div class="box_topright"><a href="#" id="fvp_remove" title="Remove Featured Video"><br /></div></div>');
|
300 |
+
|
301 |
});
|
js/backend_35.js
CHANGED
@@ -1,30 +1,26 @@
|
|
1 |
// >=WordPress 3.5
|
2 |
jQuery(document).ready(function($){
|
3 |
-
|
4 |
defaultColor: '#00adef',
|
5 |
hide: true,
|
6 |
palettes: new Array('#00adef', '#ff9933', '#c9ff23', '#ff0179', '#ffffff')
|
7 |
-
};
|
8 |
-
$('#fvp-settings-vimeo-color').wpColorPicker(vimeo_options);
|
9 |
|
10 |
-
|
11 |
defaultColor: '#f7fffd',
|
12 |
hide: true,
|
13 |
palettes: new Array('#E02C72', '#92ADE0', '#E8D9AC', '#C2E165', '#FF0099', '#CFCFCF')
|
14 |
-
};
|
15 |
-
$('#fvp-settings-dailymotion-foreground').wpColorPicker(dm_foreground_options);
|
16 |
|
17 |
-
|
18 |
defaultColor: '#ffc300',
|
19 |
hide: true,
|
20 |
palettes: new Array('#BF4B78', '#A2ACBF', '#FFF6D9', '#809443', '#C9A1FF', '#834596')
|
21 |
-
};
|
22 |
-
$('#fvp-settings-dailymotion-highlight').wpColorPicker(dm_highlight_options);
|
23 |
|
24 |
-
|
25 |
defaultColor: '#171d1b',
|
26 |
hide: true,
|
27 |
palettes: new Array('#260F18', '#202226', '#493D27', '#232912', '#052880', '#000000')
|
28 |
-
};
|
29 |
-
$('#fvp-settings-dailymotion-background').wpColorPicker(dm_background_options);
|
30 |
});
|
1 |
// >=WordPress 3.5
|
2 |
jQuery(document).ready(function($){
|
3 |
+
$('#fvp-settings-vimeo-color').wpColorPicker({
|
4 |
defaultColor: '#00adef',
|
5 |
hide: true,
|
6 |
palettes: new Array('#00adef', '#ff9933', '#c9ff23', '#ff0179', '#ffffff')
|
7 |
+
});
|
|
|
8 |
|
9 |
+
$('#fvp-settings-dailymotion-foreground').wpColorPicker({
|
10 |
defaultColor: '#f7fffd',
|
11 |
hide: true,
|
12 |
palettes: new Array('#E02C72', '#92ADE0', '#E8D9AC', '#C2E165', '#FF0099', '#CFCFCF')
|
13 |
+
});
|
|
|
14 |
|
15 |
+
$('#fvp-settings-dailymotion-highlight').wpColorPicker({
|
16 |
defaultColor: '#ffc300',
|
17 |
hide: true,
|
18 |
palettes: new Array('#BF4B78', '#A2ACBF', '#FFF6D9', '#809443', '#C9A1FF', '#834596')
|
19 |
+
});
|
|
|
20 |
|
21 |
+
$('#fvp-settings-dailymotion-background').wpColorPicker({
|
22 |
defaultColor: '#171d1b',
|
23 |
hide: true,
|
24 |
palettes: new Array('#260F18', '#202226', '#493D27', '#232912', '#052880', '#000000')
|
25 |
+
});
|
|
|
26 |
});
|
js/backend_pre35.js
CHANGED
@@ -1,53 +1,16 @@
|
|
1 |
// <WordPress 3.5
|
2 |
jQuery(document).ready(function($){
|
3 |
-
$('
|
4 |
-
|
5 |
-
|
6 |
-
$('#fvp-settings-vimeo-color').click(function() {
|
7 |
-
$('#fvp-settings-vimeo-colorpicker').fadeIn();
|
8 |
});
|
9 |
-
|
10 |
$(document).mousedown(function() {
|
11 |
-
$('
|
12 |
var display = $(this).css('display');
|
13 |
if ( display == 'block' )
|
14 |
$(this).fadeOut();
|
15 |
});
|
16 |
-
$('#fvp-settings-dailymotion-foreground-colorpicker').each(function() {
|
17 |
-
var display = $(this).css('display');
|
18 |
-
if ( display == 'block' )
|
19 |
-
$(this).fadeOut();
|
20 |
-
});
|
21 |
-
$('#fvp-settings-dailymotion-background-colorpicker').each(function() {
|
22 |
-
var display = $(this).css('display');
|
23 |
-
if ( display == 'block' )
|
24 |
-
$(this).fadeOut();
|
25 |
-
});
|
26 |
-
$('#fvp-settings-dailymotion-highlight-colorpicker').each(function() {
|
27 |
-
var display = $(this).css('display');
|
28 |
-
if ( display == 'block' )
|
29 |
-
$(this).fadeOut();
|
30 |
-
});
|
31 |
-
});
|
32 |
-
|
33 |
-
|
34 |
-
$('#fvp-settings-dailymotion-foreground-colorpicker').hide();
|
35 |
-
$('#fvp-settings-dailymotion-foreground-colorpicker').farbtastic('#fvp-settings-dailymotion-foreground');
|
36 |
-
$('#fvp-settings-dailymotion-foreground').click(function() {
|
37 |
-
$('#fvp-settings-dailymotion-foreground-colorpicker').fadeIn();
|
38 |
-
});
|
39 |
-
|
40 |
-
$('#fvp-settings-dailymotion-background-colorpicker').hide();
|
41 |
-
$('#fvp-settings-dailymotion-background-colorpicker').farbtastic('#fvp-settings-dailymotion-background');
|
42 |
-
$('#fvp-settings-dailymotion-background').click(function() {
|
43 |
-
$('#fvp-settings-dailymotion-background-colorpicker').fadeIn();
|
44 |
});
|
45 |
-
|
46 |
-
|
47 |
-
$('#fvp-settings-dailymotion-highlight-colorpicker').hide();
|
48 |
-
$('#fvp-settings-dailymotion-highlight-colorpicker').farbtastic('#fvp-settings-dailymotion-highlight');
|
49 |
-
$('#fvp-settings-dailymotion-highlight').click(function() {
|
50 |
-
$('#fvp-settings-dailymotion-highlight-colorpicker').fadeIn();
|
51 |
});
|
52 |
-
|
53 |
});
|
1 |
// <WordPress 3.5
|
2 |
jQuery(document).ready(function($){
|
3 |
+
$('.fvp_colorpicker').hide().each(function() {
|
4 |
+
$(this).farbtastic($(this).siblings('.fvp_colorpicker_input'));
|
|
|
|
|
|
|
5 |
});
|
|
|
6 |
$(document).mousedown(function() {
|
7 |
+
$('.fvp_colorpicker').each(function() {
|
8 |
var display = $(this).css('display');
|
9 |
if ( display == 'block' )
|
10 |
$(this).fadeOut();
|
11 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
});
|
13 |
+
$('.fvp_colorpicker_input').click(function() {
|
14 |
+
$(this).siblings('.fvp_colorpicker').fadeIn();
|
|
|
|
|
|
|
|
|
15 |
});
|
|
|
16 |
});
|
js/backend_settings.js
CHANGED
@@ -1,35 +1,30 @@
|
|
1 |
jQuery(document).ready(function($){
|
2 |
-
|
3 |
$('.fvp_toggle_input .fvp_toggle').bind('click change', function() {
|
4 |
var input = $(this).closest('.fvp_toggle_input').children('.fvp_input');
|
5 |
-
|
6 |
-
if ($(this).attr('checked')) {
|
7 |
input.attr('readonly', 'true').addClass('fvp_readonly');
|
8 |
-
|
9 |
input.removeAttr('readonly').removeClass('fvp_readonly');
|
10 |
-
}
|
11 |
});
|
12 |
|
13 |
$('#fvp-settings-youtube-color').click(function() {
|
14 |
-
if
|
15 |
$('#youtube_logoinput_wrapper').fadeOut('slow', function() { $(this).addClass( 'fvp_hidden'); } );
|
16 |
-
|
17 |
$('#youtube_logoinput_wrapper').fadeIn( 'slow', function() { $(this).removeClass('fvp_hidden'); } );
|
18 |
-
}
|
19 |
});
|
20 |
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
|
25 |
if( $('#fvp-settings-width-auto:checked').length == 1 )
|
26 |
$('#fvp-settings-align-1').closest('tr').hide();
|
27 |
|
28 |
$('#fvp-settings-width-auto').click(function() {
|
29 |
-
if( $('#fvp-settings-width-auto:checked').length == 1 )
|
30 |
$('#fvp-settings-align-1').closest('tr').fadeOut('slow');
|
31 |
-
|
32 |
-
$('#fvp-settings-align-1').closest('tr').fadeIn('slow');
|
33 |
-
}
|
34 |
});
|
35 |
});
|
1 |
jQuery(document).ready(function($){
|
|
|
2 |
$('.fvp_toggle_input .fvp_toggle').bind('click change', function() {
|
3 |
var input = $(this).closest('.fvp_toggle_input').children('.fvp_input');
|
4 |
+
if ($(this).attr('checked'))
|
|
|
5 |
input.attr('readonly', 'true').addClass('fvp_readonly');
|
6 |
+
else
|
7 |
input.removeAttr('readonly').removeClass('fvp_readonly');
|
|
|
8 |
});
|
9 |
|
10 |
$('#fvp-settings-youtube-color').click(function() {
|
11 |
+
if($('#fvp-settings-youtube-color:checked').length == 1)
|
12 |
$('#youtube_logoinput_wrapper').fadeOut('slow', function() { $(this).addClass( 'fvp_hidden'); } );
|
13 |
+
else
|
14 |
$('#youtube_logoinput_wrapper').fadeIn( 'slow', function() { $(this).removeClass('fvp_hidden'); } );
|
|
|
15 |
});
|
16 |
|
17 |
+
$('#fvp_help_toggle').bind( 'click', function() {
|
18 |
+
$('#contextual-help-link').trigger('click');
|
19 |
+
});
|
20 |
|
21 |
if( $('#fvp-settings-width-auto:checked').length == 1 )
|
22 |
$('#fvp-settings-align-1').closest('tr').hide();
|
23 |
|
24 |
$('#fvp-settings-width-auto').click(function() {
|
25 |
+
if( $('#fvp-settings-width-auto:checked').length == 1 )
|
26 |
$('#fvp-settings-align-1').closest('tr').fadeOut('slow');
|
27 |
+
else
|
28 |
+
$('#fvp-settings-align-1').closest('tr').fadeIn( 'slow');
|
|
|
29 |
});
|
30 |
});
|
js/jquery.fitvids_fvp-min.js
CHANGED
@@ -1,10 +1,3 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
*
|
4 |
-
* Copyright 2011, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com
|
5 |
-
* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/
|
6 |
-
* Released under the WTFPL license - http://sam.zoy.org/wtfpl/
|
7 |
-
*
|
8 |
-
* Date: Thu Sept 01 18:00:00 2011 -0500
|
9 |
-
*/
|
10 |
-
(function(a){a.fn.fitVids=function(b){var c={customSelector:null};var e=document.createElement("div"),d=document.getElementsByTagName("base")[0]||document.getElementsByTagName("script")[0];e.className="fit-vids-style";e.innerHTML="­<style> .fluid-width-video-wrapper { width: 100%; position: relative; padding: 0; } .fluid-width-video-wrapper iframe, .fluid-width-video-wrapper object, .fluid-width-video-wrapper embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } </style>";d.parentNode.insertBefore(e,d);if(b){a.extend(c,b)}return this.each(function(){var f=["iframe[src*='player.vimeo.com']","iframe[src*='www.youtube.com']","iframe[src*='www.youtube-nocookie.com']","iframe[src*='www.kickstarter.com']","iframe[src*='www.liveleak.com']","iframe[src*='www.prochan.com']","object","embed"];if(c.customSelector){f.push(c.customSelector)}var g=a(this).find(f.join(","));g.each(function(){var l=a(this);if(this.tagName.toLowerCase()==="embed"&&l.parent("object").length||l.parent(".fluid-width-video-wrapper").length){return}var h=(this.tagName.toLowerCase()==="object"||(l.attr("height")&&!isNaN(parseInt(l.attr("height"),10))))?parseInt(l.attr("height"),10):l.height(),i=!isNaN(parseInt(l.attr("width"),10))?parseInt(l.attr("width"),10):l.width(),j=h/i;if(!l.attr("id")){var k="fitvid"+Math.floor(Math.random()*999999);l.attr("id",k)}l.wrap('<div class="fluid-width-video-wrapper"></div>').parent(".fluid-width-video-wrapper").css("padding-top",(j*100)+"%");l.removeAttr("height").removeAttr("width")})})}})(jQuery);jQuery(document).ready(function(a){a(".featured_video_plus").fitVids()});
|
1 |
+
(function(d){d.fn.fitVids=function(e){var c={customSelector:null},b=document.createElement("div"),f=document.getElementsByTagName("base")[0]||document.getElementsByTagName("script")[0];b.className="fit-vids-style";b.innerHTML="­<style> .fluid-width-video-wrapper { width: 100%; position: relative; padding: 0; } .fluid-width-video-wrapper iframe, .fluid-width-video-wrapper object, .fluid-width-video-wrapper embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } </style>";
|
2 |
+
f.parentNode.insertBefore(b,f);e&&d.extend(c,e);return this.each(function(){var b="iframe[src*='player.vimeo.com'] iframe[src*='www.youtube.com'] iframe[src*='www.youtube-nocookie.com'] iframe[src*='www.kickstarter.com'] iframe[src*='www.liveleak.com'] iframe[src*='www.prochan.com'] object embed".split(" ");c.customSelector&&b.push(c.customSelector);d(this).find(b.join(",")).each(function(){var a=d(this);if(!("embed"===this.tagName.toLowerCase()&&a.parent("object").length||a.parent(".fluid-width-video-wrapper").length)){var b=
|
3 |
+
"object"===this.tagName.toLowerCase()||a.attr("height")&&!isNaN(parseInt(a.attr("height"),10))?parseInt(a.attr("height"),10):a.height(),c=!isNaN(parseInt(a.attr("width"),10))?parseInt(a.attr("width"),10):a.width(),b=b/c;a.attr("id")||(c="fitvid"+Math.floor(999999*Math.random()),a.attr("id",c));a.wrap('<div class="fluid-width-video-wrapper"></div>').parent(".fluid-width-video-wrapper").css("padding-top",100*b+"%");a.removeAttr("height").removeAttr("width")}})})}})(jQuery);jQuery(document).ready(function(d){d(".featured_video_plus").fitVids()});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
js/videojs-min.js
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*!
|
2 |
+
Video.js - HTML5 Video Player
|
3 |
+
Version 3.2.0
|
4 |
+
|
5 |
+
LGPL v3 LICENSE INFO
|
6 |
+
This file is part of Video.js. Copyright 2011 Zencoder, Inc.
|
7 |
+
|
8 |
+
Video.js is free software: you can redistribute it and/or modify
|
9 |
+
it under the terms of the GNU Lesser General Public License as published by
|
10 |
+
the Free Software Foundation, either version 3 of the License, or
|
11 |
+
(at your option) any later version.
|
12 |
+
|
13 |
+
Video.js is distributed in the hope that it will be useful,
|
14 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16 |
+
GNU Lesser General Public License for more details.
|
17 |
+
|
18 |
+
You should have received a copy of the GNU Lesser General Public License
|
19 |
+
along with Video.js. If not, see <http://www.gnu.org/licenses/>.
|
20 |
+
*/
|
21 |
+
(function(window,undefined){var document=window.document;document.createElement("video");document.createElement("audio");var VideoJS=function(id,addOptions,ready){var tag;if(typeof id=="string"){if(id.indexOf("#")===0){id=id.slice(1)}if(_V_.players[id]){return _V_.players[id]}else{tag=_V_.el(id)}}else{tag=id}if(!tag||!tag.nodeName){throw new TypeError("The element or ID supplied is not valid. (VideoJS)")}return tag.player||new _V_.Player(tag,addOptions,ready)},_V_=VideoJS,CDN_VERSION="c";VideoJS.players={};VideoJS.options={techOrder:["html5","flash"],html5:{},flash:{swf:"http://vjs.zencdn.net/c/video-js.swf"},width:"auto",height:"auto",defaultVolume:0,components:{posterImage:{},textTrackDisplay:{},loadingSpinner:{},bigPlayButton:{},controlBar:{}}};if(CDN_VERSION!="GENERATED_CDN_VSN"){_V_.options.flash.swf="http://vjs.zencdn.net/"+CDN_VERSION+"/video-js.swf"}_V_.merge=function(obj1,obj2,safe){if(!obj2){obj2={}}for(var attrname in obj2){if(obj2.hasOwnProperty(attrname)&&(!safe||!obj1.hasOwnProperty(attrname))){obj1[attrname]=obj2[attrname]}}return obj1};_V_.extend=function(obj){this.merge(this,obj,true)};_V_.extend({tech:{},controlSets:{},isIE:function(){return !+"\v1"},isFF:function(){return !!_V_.ua.match("Firefox")},isIPad:function(){return navigator.userAgent.match(/iPad/i)!==null},isIPhone:function(){return navigator.userAgent.match(/iPhone/i)!==null},isIOS:function(){return VideoJS.isIPhone()||VideoJS.isIPad()},iOSVersion:function(){var match=navigator.userAgent.match(/OS (\d+)_/i);if(match&&match[1]){return match[1]}},isAndroid:function(){return navigator.userAgent.match(/Android.*AppleWebKit/i)!==null},androidVersion:function(){var match=navigator.userAgent.match(/Android (\d+)\./i);if(match&&match[1]){return match[1]}},testVid:document.createElement("video"),ua:navigator.userAgent,support:{},each:function(arr,fn){if(!arr||arr.length===0){return}for(var i=0,j=arr.length;i<j;i++){fn.call(this,arr[i],i)}},eachProp:function(obj,fn){if(!obj){return}for(var name in obj){if(obj.hasOwnProperty(name)){fn.call(this,name,obj[name])}}},el:function(id){return document.getElementById(id)},createElement:function(tagName,attributes){var el=document.createElement(tagName),attrname;for(attrname in attributes){if(attributes.hasOwnProperty(attrname)){if(attrname.indexOf("-")!==-1){el.setAttribute(attrname,attributes[attrname])}else{el[attrname]=attributes[attrname]}}}return el},insertFirst:function(node,parent){if(parent.firstChild){parent.insertBefore(node,parent.firstChild)}else{parent.appendChild(node)}},addClass:function(element,classToAdd){if((" "+element.className+" ").indexOf(" "+classToAdd+" ")==-1){element.className=element.className===""?classToAdd:element.className+" "+classToAdd}},removeClass:function(element,classToRemove){if(element.className.indexOf(classToRemove)==-1){return}var classNames=element.className.split(" ");classNames.splice(classNames.indexOf(classToRemove),1);element.className=classNames.join(" ")},remove:function(item,array){if(!array){return}var i=array.indexOf(item);if(i!=-1){return array.splice(i,1)}},blockTextSelection:function(){document.body.focus();document.onselectstart=function(){return false}},unblockTextSelection:function(){document.onselectstart=function(){return true}},formatTime:function(seconds,guide){guide=guide||seconds;var s=Math.floor(seconds%60),m=Math.floor(seconds/60%60),h=Math.floor(seconds/3600),gm=Math.floor(guide/60%60),gh=Math.floor(guide/3600);h=(h>0||gh>0)?h+":":"";m=(((h||gm>=10)&&m<10)?"0"+m:m)+":";s=(s<10)?"0"+s:s;return h+m+s},uc:function(string){return string.charAt(0).toUpperCase()+string.slice(1)},getRelativePosition:function(x,relativeElement){return Math.max(0,Math.min(1,(x-_V_.findPosX(relativeElement))/relativeElement.offsetWidth))},getComputedStyleValue:function(element,style){return window.getComputedStyle(element,null).getPropertyValue(style)},trim:function(string){return string.toString().replace(/^\s+/,"").replace(/\s+$/,"")},round:function(num,dec){if(!dec){dec=0}return Math.round(num*Math.pow(10,dec))/Math.pow(10,dec)},isEmpty:function(object){for(var prop in object){return false}return true},createTimeRange:function(start,end){return{length:1,start:function(){return start},end:function(){return end}}},cache:{},guid:1,expando:"vdata"+(new Date).getTime(),getData:function(elem){var id=elem[_V_.expando];if(!id){id=elem[_V_.expando]=_V_.guid++;_V_.cache[id]={}}return _V_.cache[id]},removeData:function(elem){var id=elem[_V_.expando];if(!id){return}delete _V_.cache[id];try{delete elem[_V_.expando]}catch(e){if(elem.removeAttribute){elem.removeAttribute(_V_.expando)}else{elem[_V_.expando]=null}}},proxy:function(context,fn,uid){if(!fn.guid){fn.guid=_V_.guid++}var ret=function(){return fn.apply(context,arguments)};ret.guid=(uid)?uid+"_"+fn.guid:fn.guid;return ret},get:function(url,onSuccess,onError){var local=(url.indexOf("file:")==0||(window.location.href.indexOf("file:")==0&&url.indexOf("http:")==-1));if(typeof XMLHttpRequest=="undefined"){XMLHttpRequest=function(){try{return new ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(e){}try{return new ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(f){}try{return new ActiveXObject("Msxml2.XMLHTTP")}catch(g){}throw new Error("This browser does not support XMLHttpRequest.")}}var request=new XMLHttpRequest();try{request.open("GET",url)}catch(e){_V_.log("VideoJS XMLHttpRequest (open)",e);return false}request.onreadystatechange=_V_.proxy(this,function(){if(request.readyState==4){if(request.status==200||local&&request.status==0){onSuccess(request.responseText)}else{if(onError){onError()}}}});try{request.send()}catch(e){_V_.log("VideoJS XMLHttpRequest (send)",e);if(onError){onError(e)}}},setLocalStorage:function(key,value){var localStorage=window.localStorage||false;if(!localStorage){return}try{localStorage[key]=value}catch(e){if(e.code==22||e.code==1014){_V_.log("LocalStorage Full (VideoJS)",e)}else{_V_.log("LocalStorage Error (VideoJS)",e)}}},getAbsoluteURL:function(url){if(!url.match(/^https?:\/\//)){url=_V_.createElement("div",{innerHTML:'<a href="'+url+'">x</a>'}).firstChild.href}return url}});_V_.log=function(){_V_.log.history=_V_.log.history||[];_V_.log.history.push(arguments);if(window.console){arguments.callee=arguments.callee.caller;var newarr=[].slice.call(arguments);(typeof console.log==="object"?_V_.log.apply.call(console.log,console,newarr):console.log.apply(console,newarr))}};(function(b){function c(){}for(var d="assert,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,timeStamp,profile,profileEnd,time,timeEnd,trace,warn".split(","),a;a=d.pop();){b[a]=b[a]||c}})((function(){try{console.log();return window.console}catch(err){return window.console={}}})());if("getBoundingClientRect" in document.documentElement){_V_.findPosX=function(el){var box;try{box=el.getBoundingClientRect()}catch(e){}if(!box){return 0}var docEl=document.documentElement,body=document.body,clientLeft=docEl.clientLeft||body.clientLeft||0,scrollLeft=window.pageXOffset||body.scrollLeft,left=box.left+scrollLeft-clientLeft;return left}}else{_V_.findPosX=function(el){var curleft=el.offsetLeft;while(el=obj.offsetParent){if(el.className.indexOf("video-js")==-1){}else{}curleft+=el.offsetLeft}return curleft}}(function(){var initializing=false,fnTest=/xyz/.test(function(){xyz})?/\b_super\b/:/.*/;_V_.Class=function(){};_V_.Class.extend=function(prop){var _super=this.prototype;initializing=true;var prototype=new this();initializing=false;for(var name in prop){prototype[name]=typeof prop[name]=="function"&&typeof _super[name]=="function"&&fnTest.test(prop[name])?(function(name,fn){return function(){var tmp=this._super;this._super=_super[name];var ret=fn.apply(this,arguments);this._super=tmp;return ret}})(name,prop[name]):prop[name]}function Class(){if(!initializing&&this.init){return this.init.apply(this,arguments)}else{if(!initializing){return arguments.callee.prototype.init()}}}Class.prototype=prototype;Class.constructor=Class;Class.extend=arguments.callee;return Class}})();_V_.Component=_V_.Class.extend({init:function(player,options){this.player=player;options=this.options=_V_.merge(this.options||{},options);if(options.el){this.el=options.el}else{this.el=this.createElement()}this.initComponents()},destroy:function(){},createElement:function(type,attrs){return _V_.createElement(type||"div",attrs)},buildCSSClass:function(){return""},initComponents:function(){var options=this.options;if(options&&options.components){this.eachProp(options.components,function(name,opts){var tempAdd=this.proxy(function(){this[name]=this.addComponent(name,opts)});if(opts.loadEvent){this.one(opts.loadEvent,tempAdd)}else{tempAdd()}})}},addComponent:function(name,options){var component,componentClass;if(typeof name=="string"){options=options||{};componentClass=options.componentClass||_V_.uc(name);component=new _V_[componentClass](this.player||this,options)}else{component=name}this.el.appendChild(component.el);return component},removeComponent:function(component){this.el.removeChild(component.el)},show:function(){this.el.style.display="block"},hide:function(){this.el.style.display="none"},fadeIn:function(){this.removeClass("vjs-fade-out");this.addClass("vjs-fade-in")},fadeOut:function(){this.removeClass("vjs-fade-in");this.addClass("vjs-fade-out")},lockShowing:function(){var style=this.el.style;style.display="block";style.opacity=1;style.visiblity="visible"},unlockShowing:function(){var style=this.el.style;style.display="";style.opacity="";style.visiblity=""},addClass:function(classToAdd){_V_.addClass(this.el,classToAdd)},removeClass:function(classToRemove){_V_.removeClass(this.el,classToRemove)},addEvent:function(type,fn,uid){return _V_.addEvent(this.el,type,_V_.proxy(this,fn))},removeEvent:function(type,fn){return _V_.removeEvent(this.el,type,fn)},triggerEvent:function(type,e){return _V_.triggerEvent(this.el,type,e)},one:function(type,fn){_V_.one(this.el,type,_V_.proxy(this,fn))},ready:function(fn){if(!fn){return this}if(this.isReady){fn.call(this)}else{if(this.readyQueue===undefined){this.readyQueue=[]}this.readyQueue.push(fn)}return this},triggerReady:function(){this.isReady=true;if(this.readyQueue&&this.readyQueue.length>0){this.each(this.readyQueue,function(fn){fn.call(this)});this.readyQueue=[];this.triggerEvent("ready")}},each:function(arr,fn){_V_.each.call(this,arr,fn)},eachProp:function(obj,fn){_V_.eachProp.call(this,obj,fn)},extend:function(obj){_V_.merge(this,obj)},proxy:function(fn,uid){return _V_.proxy(this,fn,uid)}});_V_.Control=_V_.Component.extend({buildCSSClass:function(){return"vjs-control "+this._super()}});_V_.ControlBar=_V_.Component.extend({options:{loadEvent:"play",components:{playToggle:{},fullscreenToggle:{},currentTimeDisplay:{},timeDivider:{},durationDisplay:{},remainingTimeDisplay:{},progressControl:{},volumeControl:{},muteToggle:{}}},init:function(player,options){this._super(player,options);player.addEvent("play",this.proxy(function(){this.fadeIn();this.player.addEvent("mouseover",this.proxy(this.fadeIn));this.player.addEvent("mouseout",this.proxy(this.fadeOut))}))},createElement:function(){return _V_.createElement("div",{className:"vjs-controls"})},fadeIn:function(){this._super();this.player.triggerEvent("controlsvisible")},fadeOut:function(){this._super();this.player.triggerEvent("controlshidden")},lockShowing:function(){this.el.style.opacity="1"}});_V_.Button=_V_.Control.extend({init:function(player,options){this._super(player,options);this.addEvent("click",this.onClick);this.addEvent("focus",this.onFocus);this.addEvent("blur",this.onBlur)},createElement:function(type,attrs){attrs=_V_.merge({className:this.buildCSSClass(),innerHTML:'<div><span class="vjs-control-text">'+(this.buttonText||"Need Text")+"</span></div>",role:"button",tabIndex:0},attrs);return this._super(type,attrs)},onClick:function(){},onFocus:function(){_V_.addEvent(document,"keyup",_V_.proxy(this,this.onKeyPress))},onKeyPress:function(event){if(event.which==32||event.which==13){event.preventDefault();this.onClick()}},onBlur:function(){_V_.removeEvent(document,"keyup",_V_.proxy(this,this.onKeyPress))}});_V_.PlayButton=_V_.Button.extend({buttonText:"Play",buildCSSClass:function(){return"vjs-play-button "+this._super()},onClick:function(){this.player.play()}});_V_.PauseButton=_V_.Button.extend({buttonText:"Pause",buildCSSClass:function(){return"vjs-pause-button "+this._super()},onClick:function(){this.player.pause()}});_V_.PlayToggle=_V_.Button.extend({buttonText:"Play",init:function(player,options){this._super(player,options);player.addEvent("play",_V_.proxy(this,this.onPlay));player.addEvent("pause",_V_.proxy(this,this.onPause))},buildCSSClass:function(){return"vjs-play-control "+this._super()},onClick:function(){if(this.player.paused()){this.player.play()}else{this.player.pause()}},onPlay:function(){_V_.removeClass(this.el,"vjs-paused");_V_.addClass(this.el,"vjs-playing")},onPause:function(){_V_.removeClass(this.el,"vjs-playing");_V_.addClass(this.el,"vjs-paused")}});_V_.FullscreenToggle=_V_.Button.extend({buttonText:"Fullscreen",buildCSSClass:function(){return"vjs-fullscreen-control "+this._super()},onClick:function(){if(!this.player.isFullScreen){this.player.requestFullScreen()}else{this.player.cancelFullScreen()}}});_V_.BigPlayButton=_V_.Button.extend({init:function(player,options){this._super(player,options);player.addEvent("play",_V_.proxy(this,this.hide));player.addEvent("ended",_V_.proxy(this,this.show))},createElement:function(){return this._super("div",{className:"vjs-big-play-button",innerHTML:"<span></span>"})},onClick:function(){if(this.player.currentTime()){this.player.currentTime(0)}this.player.play()}});_V_.LoadingSpinner=_V_.Component.extend({init:function(player,options){this._super(player,options);player.addEvent("canplay",_V_.proxy(this,this.hide));player.addEvent("canplaythrough",_V_.proxy(this,this.hide));player.addEvent("playing",_V_.proxy(this,this.hide));player.addEvent("seeking",_V_.proxy(this,this.show));player.addEvent("error",_V_.proxy(this,this.show));player.addEvent("waiting",_V_.proxy(this,this.show))},createElement:function(){var classNameSpinner,innerHtmlSpinner;if(typeof this.player.el.style.WebkitBorderRadius=="string"||typeof this.player.el.style.MozBorderRadius=="string"||typeof this.player.el.style.KhtmlBorderRadius=="string"||typeof this.player.el.style.borderRadius=="string"){classNameSpinner="vjs-loading-spinner";innerHtmlSpinner="<div class='ball1'></div><div class='ball2'></div><div class='ball3'></div><div class='ball4'></div><div class='ball5'></div><div class='ball6'></div><div class='ball7'></div><div class='ball8'></div>"}else{classNameSpinner="vjs-loading-spinner-fallback";innerHtmlSpinner=""}return this._super("div",{className:classNameSpinner,innerHTML:innerHtmlSpinner})}});_V_.CurrentTimeDisplay=_V_.Component.extend({init:function(player,options){this._super(player,options);player.addEvent("timeupdate",_V_.proxy(this,this.updateContent))},createElement:function(){var el=this._super("div",{className:"vjs-current-time vjs-time-controls vjs-control"});this.content=_V_.createElement("div",{className:"vjs-current-time-display",innerHTML:"0:00"});el.appendChild(_V_.createElement("div").appendChild(this.content));return el},updateContent:function(){var time=(this.player.scrubbing)?this.player.values.currentTime:this.player.currentTime();this.content.innerHTML=_V_.formatTime(time,this.player.duration())}});_V_.DurationDisplay=_V_.Component.extend({init:function(player,options){this._super(player,options);player.addEvent("timeupdate",_V_.proxy(this,this.updateContent))},createElement:function(){var el=this._super("div",{className:"vjs-duration vjs-time-controls vjs-control"});this.content=_V_.createElement("div",{className:"vjs-duration-display",innerHTML:"0:00"});el.appendChild(_V_.createElement("div").appendChild(this.content));return el},updateContent:function(){if(this.player.duration()){this.content.innerHTML=_V_.formatTime(this.player.duration())}}});_V_.TimeDivider=_V_.Component.extend({createElement:function(){return this._super("div",{className:"vjs-time-divider",innerHTML:"<div><span>/</span></div>"})}});_V_.RemainingTimeDisplay=_V_.Component.extend({init:function(player,options){this._super(player,options);player.addEvent("timeupdate",_V_.proxy(this,this.updateContent))},createElement:function(){var el=this._super("div",{className:"vjs-remaining-time vjs-time-controls vjs-control"});this.content=_V_.createElement("div",{className:"vjs-remaining-time-display",innerHTML:"-0:00"});el.appendChild(_V_.createElement("div").appendChild(this.content));return el},updateContent:function(){if(this.player.duration()){this.content.innerHTML="-"+_V_.formatTime(this.player.remainingTime())}}});_V_.Slider=_V_.Component.extend({init:function(player,options){this._super(player,options);player.addEvent(this.playerEvent,_V_.proxy(this,this.update));this.addEvent("mousedown",this.onMouseDown);this.addEvent("focus",this.onFocus);this.addEvent("blur",this.onBlur);this.player.addEvent("controlsvisible",this.proxy(this.update));this.update()},createElement:function(type,attrs){attrs=_V_.merge({role:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},attrs);return this._super(type,attrs)},onMouseDown:function(event){event.preventDefault();_V_.blockTextSelection();_V_.addEvent(document,"mousemove",_V_.proxy(this,this.onMouseMove));_V_.addEvent(document,"mouseup",_V_.proxy(this,this.onMouseUp));this.onMouseMove(event)},onMouseUp:function(event){_V_.unblockTextSelection();_V_.removeEvent(document,"mousemove",this.onMouseMove,false);_V_.removeEvent(document,"mouseup",this.onMouseUp,false);this.update()},update:function(){var barProgress,progress=this.getPercent();handle=this.handle,bar=this.bar;if(isNaN(progress)){progress=0}barProgress=progress;if(handle){var box=this.el,boxWidth=box.offsetWidth,handleWidth=handle.el.offsetWidth,handlePercent=(handleWidth)?handleWidth/boxWidth:0,boxAdjustedPercent=1-handlePercent;adjustedProgress=progress*boxAdjustedPercent,barProgress=adjustedProgress+(handlePercent/2);handle.el.style.left=_V_.round(adjustedProgress*100,2)+"%"}bar.el.style.width=_V_.round(barProgress*100,2)+"%"},calculateDistance:function(event){var box=this.el,boxX=_V_.findPosX(box),boxW=box.offsetWidth,handle=this.handle;if(handle){var handleW=handle.el.offsetWidth;boxX=boxX+(handleW/2);boxW=boxW-handleW}return Math.max(0,Math.min(1,(event.pageX-boxX)/boxW))},onFocus:function(event){_V_.addEvent(document,"keyup",_V_.proxy(this,this.onKeyPress))},onKeyPress:function(event){if(event.which==37){event.preventDefault();this.stepBack()}else{if(event.which==39){event.preventDefault();this.stepForward()}}},onBlur:function(event){_V_.removeEvent(document,"keyup",_V_.proxy(this,this.onKeyPress))}});_V_.ProgressControl=_V_.Component.extend({options:{components:{seekBar:{}}},createElement:function(){return this._super("div",{className:"vjs-progress-control vjs-control"})}});_V_.SeekBar=_V_.Slider.extend({options:{components:{loadProgressBar:{},bar:{componentClass:"PlayProgressBar"},handle:{componentClass:"SeekHandle"}}},playerEvent:"timeupdate",init:function(player,options){this._super(player,options)},createElement:function(){return this._super("div",{className:"vjs-progress-holder"})},getPercent:function(){return this.player.currentTime()/this.player.duration()},onMouseDown:function(event){this._super(event);this.player.scrubbing=true;this.videoWasPlaying=!this.player.paused();this.player.pause()},onMouseMove:function(event){var newTime=this.calculateDistance(event)*this.player.duration();if(newTime==this.player.duration()){newTime=newTime-0.1}this.player.currentTime(newTime)},onMouseUp:function(event){this._super(event);this.player.scrubbing=false;if(this.videoWasPlaying){this.player.play()}},stepForward:function(){this.player.currentTime(this.player.currentTime()+1)},stepBack:function(){this.player.currentTime(this.player.currentTime()-1)}});_V_.LoadProgressBar=_V_.Component.extend({init:function(player,options){this._super(player,options);player.addEvent("progress",_V_.proxy(this,this.update))},createElement:function(){return this._super("div",{className:"vjs-load-progress",innerHTML:'<span class="vjs-control-text">Loaded: 0%</span>'})},update:function(){if(this.el.style){this.el.style.width=_V_.round(this.player.bufferedPercent()*100,2)+"%"}}});_V_.PlayProgressBar=_V_.Component.extend({createElement:function(){return this._super("div",{className:"vjs-play-progress",innerHTML:'<span class="vjs-control-text">Progress: 0%</span>'})}});_V_.SeekHandle=_V_.Component.extend({createElement:function(){return this._super("div",{className:"vjs-seek-handle",innerHTML:'<span class="vjs-control-text">00:00</span>'})}});_V_.VolumeControl=_V_.Component.extend({options:{components:{volumeBar:{}}},createElement:function(){return this._super("div",{className:"vjs-volume-control vjs-control"})}});_V_.VolumeBar=_V_.Slider.extend({options:{components:{bar:{componentClass:"VolumeLevel"},handle:{componentClass:"VolumeHandle"}}},playerEvent:"volumechange",createElement:function(){return this._super("div",{className:"vjs-volume-bar"})},onMouseMove:function(event){this.player.volume(this.calculateDistance(event))},getPercent:function(){return this.player.volume()},stepForward:function(){this.player.volume(this.player.volume()+0.1)},stepBack:function(){this.player.volume(this.player.volume()-0.1)}});_V_.VolumeLevel=_V_.Component.extend({createElement:function(){return this._super("div",{className:"vjs-volume-level",innerHTML:'<span class="vjs-control-text"></span>'})}});_V_.VolumeHandle=_V_.Component.extend({createElement:function(){return this._super("div",{className:"vjs-volume-handle",innerHTML:'<span class="vjs-control-text"></span>'})}});_V_.MuteToggle=_V_.Button.extend({init:function(player,options){this._super(player,options);player.addEvent("volumechange",_V_.proxy(this,this.update))},createElement:function(){return this._super("div",{className:"vjs-mute-control vjs-control",innerHTML:'<div><span class="vjs-control-text">Mute</span></div>'})},onClick:function(event){this.player.muted(this.player.muted()?false:true)},update:function(event){var vol=this.player.volume(),level=3;if(vol==0||this.player.muted()){level=0}else{if(vol<0.33){level=1}else{if(vol<0.67){level=2}}}_V_.each.call(this,[0,1,2,3],function(i){_V_.removeClass(this.el,"vjs-vol-"+i)});_V_.addClass(this.el,"vjs-vol-"+level)}});_V_.PosterImage=_V_.Button.extend({init:function(player,options){this._super(player,options);if(!this.player.options.poster){this.hide()}player.addEvent("play",_V_.proxy(this,this.hide))},createElement:function(){return _V_.createElement("img",{className:"vjs-poster",src:this.player.options.poster,tabIndex:-1})},onClick:function(){this.player.play()}});_V_.Menu=_V_.Component.extend({init:function(player,options){this._super(player,options)},addItem:function(component){this.addComponent(component);component.addEvent("click",this.proxy(function(){this.unlockShowing()}))},createElement:function(){return this._super("ul",{className:"vjs-menu"})}});_V_.MenuItem=_V_.Button.extend({init:function(player,options){this._super(player,options);if(options.selected){this.addClass("vjs-selected")}},createElement:function(type,attrs){return this._super("li",_V_.merge({className:"vjs-menu-item",innerHTML:this.options.label},attrs))},onClick:function(){this.selected(true)},selected:function(selected){if(selected){this.addClass("vjs-selected")}else{this.removeClass("vjs-selected")}}});if(!Array.prototype.indexOf){Array.prototype.indexOf=function(searchElement){if(this===void 0||this===null){throw new TypeError()}var t=Object(this);var len=t.length>>>0;if(len===0){return -1}var n=0;if(arguments.length>0){n=Number(arguments[1]);if(n!==n){n=0}else{if(n!==0&&n!==(1/0)&&n!==-(1/0)){n=(n>0||-1)*Math.floor(Math.abs(n))}}}if(n>=len){return -1}var k=n>=0?n:Math.max(len-Math.abs(n),0);for(;k<len;k++){if(k in t&&t[k]===searchElement){return k}}return -1}}_V_.extend({addEvent:function(elem,type,fn){var data=_V_.getData(elem),handlers;if(data&&!data.handler){data.handler=function(event){event=_V_.fixEvent(event);var handlers=_V_.getData(elem).events[event.type];if(handlers){var handlersCopy=[];_V_.each(handlers,function(handler,i){handlersCopy[i]=handler});for(var i=0,l=handlersCopy.length;i<l;i++){handlersCopy[i].call(elem,event)}}}}if(!data.events){data.events={}}handlers=data.events[type];if(!handlers){handlers=data.events[type]=[];if(document.addEventListener){elem.addEventListener(type,data.handler,false)}else{if(document.attachEvent){elem.attachEvent("on"+type,data.handler)}}}if(!fn.guid){fn.guid=_V_.guid++}handlers.push(fn)},removeEvent:function(elem,type,fn){var data=_V_.getData(elem),handlers;if(!data.events){return}if(!type){for(type in data.events){_V_.cleanUpEvents(elem,type)}return}handlers=data.events[type];if(!handlers){return}if(fn&&fn.guid){for(var i=0;i<handlers.length;i++){if(handlers[i].guid===fn.guid){handlers.splice(i--,1)}}}_V_.cleanUpEvents(elem,type)},cleanUpEvents:function(elem,type){var data=_V_.getData(elem);if(data.events[type].length===0){delete data.events[type];if(document.removeEventListener){elem.removeEventListener(type,data.handler,false)}else{if(document.detachEvent){elem.detachEvent("on"+type,data.handler)}}}if(_V_.isEmpty(data.events)){delete data.events;delete data.handler}if(_V_.isEmpty(data)){_V_.removeData(elem)}},fixEvent:function(event){if(event[_V_.expando]){return event}var originalEvent=event;event=new _V_.Event(originalEvent);for(var i=_V_.Event.props.length,prop;i;){prop=_V_.Event.props[--i];event[prop]=originalEvent[prop]}if(!event.target){event.target=event.srcElement||document}if(event.target.nodeType===3){event.target=event.target.parentNode}if(!event.relatedTarget&&event.fromElement){event.relatedTarget=event.fromElement===event.target?event.toElement:event.fromElement}if(event.pageX==null&&event.clientX!=null){var eventDocument=event.target.ownerDocument||document,doc=eventDocument.documentElement,body=eventDocument.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc&&doc.clientLeft||body&&body.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc&&doc.clientTop||body&&body.clientTop||0)}if(event.which==null&&(event.charCode!=null||event.keyCode!=null)){event.which=event.charCode!=null?event.charCode:event.keyCode}if(!event.metaKey&&event.ctrlKey){event.metaKey=event.ctrlKey}if(!event.which&&event.button!==undefined){event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)))}return event},triggerEvent:function(elem,event){var data=_V_.getData(elem),parent=elem.parentNode||elem.ownerDocument,type=event.type||event,handler;if(data){handler=data.handler}event=typeof event==="object"?event[_V_.expando]?event:new _V_.Event(type,event):new _V_.Event(type);event.type=type;if(handler){handler.call(elem,event)}event.result=undefined;event.target=elem},one:function(elem,type,fn){_V_.addEvent(elem,type,function(){_V_.removeEvent(elem,type,arguments.callee);fn.apply(this,arguments)})}});_V_.Event=function(src,props){if(src&&src.type){this.originalEvent=src;this.type=src.type;this.isDefaultPrevented=(src.defaultPrevented||src.returnValue===false||src.getPreventDefault&&src.getPreventDefault())?returnTrue:returnFalse}else{this.type=src}if(props){_V_.merge(this,props)}this.timeStamp=(new Date).getTime();this[_V_.expando]=true};_V_.Event.prototype={preventDefault:function(){this.isDefaultPrevented=returnTrue;var e=this.originalEvent;if(!e){return}if(e.preventDefault){e.preventDefault()}else{e.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=returnTrue;var e=this.originalEvent;if(!e){return}if(e.stopPropagation){e.stopPropagation()}e.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=returnTrue;this.stopPropagation()},isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse};_V_.Event.props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" ");function returnTrue(){return true}function returnFalse(){return false}var JSON;if(!JSON){JSON={}}(function(){var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;if(typeof JSON.parse!=="function"){JSON.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==="object"){for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v}else{delete value[k]}}}}return reviver.call(holder,key,value)}text=String(text);cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})}if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){j=eval("("+text+")");return typeof reviver==="function"?walk({"":j},""):j}throw new SyntaxError("JSON.parse")}}}());_V_.Player=_V_.Component.extend({init:function(tag,addOptions,ready){this.tag=tag;var el=this.el=_V_.createElement("div"),options=this.options={},width=options.width=tag.getAttribute("width"),height=options.height=tag.getAttribute("height"),initWidth=width||300,initHeight=height||150;tag.player=el.player=this;this.ready(ready);tag.parentNode.insertBefore(el,tag);el.appendChild(tag);el.id=this.id=tag.id;el.className=tag.className;tag.id+="_html5_api";tag.className="vjs-tech";_V_.players[el.id]=this;el.setAttribute("width",initWidth);el.setAttribute("height",initHeight);el.style.width=initWidth+"px";el.style.height=initHeight+"px";tag.removeAttribute("width");tag.removeAttribute("height");_V_.merge(options,_V_.options);_V_.merge(options,this.getVideoTagSettings());_V_.merge(options,addOptions);tag.removeAttribute("controls");tag.removeAttribute("poster");if(tag.hasChildNodes()){for(var i=0,j=tag.childNodes;i<j.length;i++){if(j[i].nodeName=="SOURCE"||j[i].nodeName=="TRACK"){tag.removeChild(j[i])}}}this.values={};this.addClass("vjs-paused");this.addEvent("ended",this.onEnded);this.addEvent("play",this.onPlay);this.addEvent("pause",this.onPause);this.addEvent("progress",this.onProgress);this.addEvent("error",this.onError);if(options.controls){this.ready(function(){this.initComponents()})}this.textTracks=[];if(options.tracks&&options.tracks.length>0){this.addTextTracks(options.tracks)}if(!options.sources||options.sources.length==0){for(var i=0,j=options.techOrder;i<j.length;i++){var techName=j[i],tech=_V_[techName];if(tech.isSupported()){this.loadTech(techName);break}}}else{this.src(options.sources)}},values:{},destroy:function(){this.stopTrackingProgress();this.stopTrackingCurrentTime();_V_.players[this.id]=null;delete _V_.players[this.id];this.tech.destroy();this.el.parentNode.removeChild(this.el)},createElement:function(type,options){},getVideoTagSettings:function(){var options={sources:[],tracks:[]};options.src=this.tag.getAttribute("src");options.controls=this.tag.getAttribute("controls")!==null;options.poster=this.tag.getAttribute("poster");options.preload=this.tag.getAttribute("preload");options.autoplay=this.tag.getAttribute("autoplay")!==null;options.loop=this.tag.getAttribute("loop")!==null;options.muted=this.tag.getAttribute("muted")!==null;if(this.tag.hasChildNodes()){for(var c,i=0,j=this.tag.childNodes;i<j.length;i++){c=j[i];if(c.nodeName=="SOURCE"){options.sources.push({src:c.getAttribute("src"),type:c.getAttribute("type"),media:c.getAttribute("media"),title:c.getAttribute("title")})}if(c.nodeName=="TRACK"){options.tracks.push({src:c.getAttribute("src"),kind:c.getAttribute("kind"),srclang:c.getAttribute("srclang"),label:c.getAttribute("label"),"default":c.getAttribute("default")!==null,title:c.getAttribute("title")})}}}return options},loadTech:function(techName,source){if(this.tech){this.unloadTech()}else{if(techName!="html5"&&this.tag){this.el.removeChild(this.tag);this.tag=false}}this.techName=techName;this.isReady=false;var techReady=function(){this.player.triggerReady();if(!this.support.progressEvent){this.player.manualProgressOn()}if(!this.support.timeupdateEvent){this.player.manualTimeUpdatesOn()}};var techOptions=_V_.merge({source:source,parentEl:this.el},this.options[techName]);if(source){if(source.src==this.values.src&&this.values.currentTime>0){techOptions.startTime=this.values.currentTime}this.values.src=source.src}this.tech=new _V_[techName](this,techOptions);this.tech.ready(techReady)},unloadTech:function(){this.tech.destroy();if(this.manualProgress){this.manualProgressOff()}if(this.manualTimeUpdates){this.manualTimeUpdatesOff()}this.tech=false},manualProgressOn:function(){this.manualProgress=true;this.trackProgress();this.tech.addEvent("progress",function(){this.removeEvent("progress",arguments.callee);this.support.progressEvent=true;this.player.manualProgressOff()})},manualProgressOff:function(){this.manualProgress=false;this.stopTrackingProgress()},trackProgress:function(){this.progressInterval=setInterval(_V_.proxy(this,function(){if(this.values.bufferEnd<this.buffered().end(0)){this.triggerEvent("progress")}else{if(this.bufferedPercent()==1){this.stopTrackingProgress();this.triggerEvent("progress")}}}),500)},stopTrackingProgress:function(){clearInterval(this.progressInterval)},manualTimeUpdatesOn:function(){this.manualTimeUpdates=true;this.addEvent("play",this.trackCurrentTime);this.addEvent("pause",this.stopTrackingCurrentTime);this.tech.addEvent("timeupdate",function(){this.removeEvent("timeupdate",arguments.callee);this.support.timeupdateEvent=true;this.player.manualTimeUpdatesOff()})},manualTimeUpdatesOff:function(){this.manualTimeUpdates=false;this.stopTrackingCurrentTime();this.removeEvent("play",this.trackCurrentTime);this.removeEvent("pause",this.stopTrackingCurrentTime)},trackCurrentTime:function(){if(this.currentTimeInterval){this.stopTrackingCurrentTime()}this.currentTimeInterval=setInterval(_V_.proxy(this,function(){this.triggerEvent("timeupdate")}),250)},stopTrackingCurrentTime:function(){clearInterval(this.currentTimeInterval)},onEnded:function(){if(this.options.loop){this.currentTime(0);this.play()}else{this.pause();this.currentTime(0);this.pause()}},onPlay:function(){_V_.removeClass(this.el,"vjs-paused");_V_.addClass(this.el,"vjs-playing")},onPause:function(){_V_.removeClass(this.el,"vjs-playing");_V_.addClass(this.el,"vjs-paused")},onProgress:function(){if(this.bufferedPercent()==1){this.triggerEvent("loadedalldata")}},onError:function(e){_V_.log("Video Error",e)},techCall:function(method,arg){if(!this.tech.isReady){this.tech.ready(function(){this[method](arg)})}else{try{this.tech[method](arg)}catch(e){_V_.log(e)}}},techGet:function(method){if(this.tech.isReady){try{return this.tech[method]()}catch(e){if(this.tech[method]===undefined){_V_.log("Video.js: "+method+" method not defined for "+this.techName+" playback technology.",e)}else{if(e.name=="TypeError"){_V_.log("Video.js: "+method+" unavailable on "+this.techName+" playback technology element.",e);this.tech.isReady=false}else{_V_.log(e)}}}}return},play:function(){this.techCall("play");return this},pause:function(){this.techCall("pause");return this},paused:function(){return(this.techGet("paused")===false)?false:true},currentTime:function(seconds){if(seconds!==undefined){this.values.lastSetCurrentTime=seconds;this.techCall("setCurrentTime",seconds);if(this.manualTimeUpdates){this.triggerEvent("timeupdate")}return this}return this.values.currentTime=(this.techGet("currentTime")||0)},duration:function(){return parseFloat(this.techGet("duration"))},remainingTime:function(){return this.duration()-this.currentTime()},buffered:function(){var buffered=this.techGet("buffered"),start=0,end=this.values.bufferEnd=this.values.bufferEnd||0,timeRange;if(buffered&&buffered.length>0&&buffered.end(0)!==end){end=buffered.end(0);this.values.bufferEnd=end}return _V_.createTimeRange(start,end)},bufferedPercent:function(){return(this.duration())?this.buffered().end(0)/this.duration():0},volume:function(percentAsDecimal){var vol;if(percentAsDecimal!==undefined){vol=Math.max(0,Math.min(1,parseFloat(percentAsDecimal)));this.values.volume=vol;this.techCall("setVolume",vol);_V_.setLocalStorage("volume",vol);return this}vol=parseFloat(this.techGet("volume"));return(isNaN(vol))?1:vol},muted:function(muted){if(muted!==undefined){this.techCall("setMuted",muted);return this}return this.techGet("muted")||false},width:function(width,skipListeners){if(width!==undefined){this.el.width=width;this.el.style.width=width+"px";if(!skipListeners){this.triggerEvent("resize")}return this}return parseInt(this.el.getAttribute("width"))},height:function(height){if(height!==undefined){this.el.height=height;this.el.style.height=height+"px";this.triggerEvent("resize");return this}return parseInt(this.el.getAttribute("height"))},size:function(width,height){return this.width(width,true).height(height)},supportsFullScreen:function(){return this.techGet("supportsFullScreen")||false},requestFullScreen:function(){var requestFullScreen=_V_.support.requestFullScreen;this.isFullScreen=true;if(requestFullScreen){_V_.addEvent(document,requestFullScreen.eventName,this.proxy(function(){this.isFullScreen=document[requestFullScreen.isFullScreen];if(this.isFullScreen==false){_V_.removeEvent(document,requestFullScreen.eventName,arguments.callee)}this.triggerEvent("fullscreenchange")}));if(this.tech.support.fullscreenResize===false&&this.options.flash.iFrameMode!=true){this.pause();this.unloadTech();_V_.addEvent(document,requestFullScreen.eventName,this.proxy(function(){_V_.removeEvent(document,requestFullScreen.eventName,arguments.callee);this.loadTech(this.techName,{src:this.values.src})}));this.el[requestFullScreen.requestFn]()}else{this.el[requestFullScreen.requestFn]()}}else{if(this.tech.supportsFullScreen()){this.triggerEvent("fullscreenchange");this.techCall("enterFullScreen")}else{this.triggerEvent("fullscreenchange");this.enterFullWindow()}}return this},cancelFullScreen:function(){var requestFullScreen=_V_.support.requestFullScreen;this.isFullScreen=false;if(requestFullScreen){if(this.tech.support.fullscreenResize===false&&this.options.flash.iFrameMode!=true){this.pause();this.unloadTech();_V_.addEvent(document,requestFullScreen.eventName,this.proxy(function(){_V_.removeEvent(document,requestFullScreen.eventName,arguments.callee);this.loadTech(this.techName,{src:this.values.src})}));document[requestFullScreen.cancelFn]()}else{document[requestFullScreen.cancelFn]()}}else{if(this.tech.supportsFullScreen()){this.techCall("exitFullScreen");this.triggerEvent("fullscreenchange")}else{this.exitFullWindow();this.triggerEvent("fullscreenchange")}}return this},enterFullWindow:function(){this.isFullWindow=true;this.docOrigOverflow=document.documentElement.style.overflow;_V_.addEvent(document,"keydown",_V_.proxy(this,this.fullWindowOnEscKey));document.documentElement.style.overflow="hidden";_V_.addClass(document.body,"vjs-full-window");_V_.addClass(this.el,"vjs-fullscreen");this.triggerEvent("enterFullWindow")},fullWindowOnEscKey:function(event){if(event.keyCode==27){if(this.isFullScreen==true){this.cancelFullScreen()}else{this.exitFullWindow()}}},exitFullWindow:function(){this.isFullWindow=false;_V_.removeEvent(document,"keydown",this.fullWindowOnEscKey);document.documentElement.style.overflow=this.docOrigOverflow;_V_.removeClass(document.body,"vjs-full-window");_V_.removeClass(this.el,"vjs-fullscreen");this.triggerEvent("exitFullWindow")},selectSource:function(sources){for(var i=0,j=this.options.techOrder;i<j.length;i++){var techName=j[i],tech=_V_[techName];if(tech.isSupported()){for(var a=0,b=sources;a<b.length;a++){var source=b[a];if(tech.canPlaySource.call(this,source)){return{source:source,tech:techName}}}}}return false},src:function(source){if(source instanceof Array){var sourceTech=this.selectSource(source),source,techName;if(sourceTech){source=sourceTech.source;techName=sourceTech.tech;if(techName==this.techName){this.src(source)}else{this.loadTech(techName,source)}}else{_V_.log("No compatible source and playback technology were found.")}}else{if(source instanceof Object){if(_V_[this.techName].canPlaySource(source)){this.src(source.src)}else{this.src([source])}}else{this.values.src=source;if(!this.isReady){this.ready(function(){this.src(source)})}else{this.techCall("src",source);if(this.options.preload=="auto"){this.load()}if(this.options.autoplay){this.play()}}}}return this},load:function(){this.techCall("load");return this},currentSrc:function(){return this.techGet("currentSrc")||this.values.src||""},preload:function(value){if(value!==undefined){this.techCall("setPreload",value);this.options.preload=value;return this}return this.techGet("preload")},autoplay:function(value){if(value!==undefined){this.techCall("setAutoplay",value);this.options.autoplay=value;return this}return this.techGet("autoplay",value)},loop:function(value){if(value!==undefined){this.techCall("setLoop",value);this.options.loop=value;return this}return this.techGet("loop")},controls:function(){return this.options.controls},poster:function(){return this.techGet("poster")},error:function(){return this.techGet("error")},ended:function(){return this.techGet("ended")}});(function(){var requestFn,cancelFn,eventName,isFullScreen,playerProto=_V_.Player.prototype;if(document.cancelFullscreen!==undefined){requestFn="requestFullscreen";cancelFn="exitFullscreen";eventName="fullscreenchange";isFullScreen="fullScreen"}else{_V_.each(["moz","webkit"],function(prefix){if((prefix!="moz"||document.mozFullScreenEnabled)&&document[prefix+"CancelFullScreen"]!==undefined){requestFn=prefix+"RequestFullScreen";cancelFn=prefix+"CancelFullScreen";eventName=prefix+"fullscreenchange";if(prefix=="webkit"){isFullScreen=prefix+"IsFullScreen"}else{isFullScreen=prefix+"FullScreen"}}})}if(requestFn){_V_.support.requestFullScreen={requestFn:requestFn,cancelFn:cancelFn,eventName:eventName,isFullScreen:isFullScreen}}})();_V_.PlaybackTech=_V_.Component.extend({init:function(player,options){},onClick:function(){if(this.player.options.controls){_V_.PlayToggle.prototype.onClick.call(this)}}});_V_.apiMethods="play,pause,paused,currentTime,setCurrentTime,duration,buffered,volume,setVolume,muted,setMuted,width,height,supportsFullScreen,enterFullScreen,src,load,currentSrc,preload,setPreload,autoplay,setAutoplay,loop,setLoop,error,networkState,readyState,seeking,initialTime,startOffsetTime,played,seekable,ended,videoTracks,audioTracks,videoWidth,videoHeight,textTracks,defaultPlaybackRate,playbackRate,mediaGroup,controller,controls,defaultMuted".split(",");_V_.each(_V_.apiMethods,function(methodName){_V_.PlaybackTech.prototype[methodName]=function(){throw new Error("The '"+methodName+"' method is not available on the playback technology's API")}});_V_.html5=_V_.PlaybackTech.extend({init:function(player,options,ready){this.player=player;this.el=this.createElement();this.ready(ready);this.addEvent("click",this.proxy(this.onClick));var source=options.source;if(source&&this.el.currentSrc==source.src){player.triggerEvent("loadstart")}else{if(source){this.el.src=source.src}}player.ready(function(){if(this.options.autoplay&&this.paused()){this.tag.poster=null;this.play()}});this.setupTriggers();this.triggerReady()},destroy:function(){this.player.tag=false;this.removeTriggers();this.el.parentNode.removeChild(this.el)},createElement:function(){var html5=_V_.html5,player=this.player,el=player.tag,newEl;if(!el||this.support.movingElementInDOM===false){if(el){player.el.removeChild(el)}newEl=_V_.createElement("video",{id:el.id||player.el.id+"_html5_api",className:el.className||"vjs-tech"});el=newEl;_V_.insertFirst(el,player.el)}_V_.each(["autoplay","preload","loop","muted"],function(attr){if(player.options[attr]!==null){el[attr]=player.options[attr]}},this);return el},setupTriggers:function(){_V_.each.call(this,_V_.html5.events,function(type){_V_.addEvent(this.el,type,_V_.proxy(this.player,this.eventHandler))})},removeTriggers:function(){_V_.each.call(this,_V_.html5.events,function(type){_V_.removeEvent(this.el,type,_V_.proxy(this.player,this.eventHandler))})},eventHandler:function(e){e.stopPropagation();this.triggerEvent(e)},play:function(){this.el.play()},pause:function(){this.el.pause()},paused:function(){return this.el.paused},currentTime:function(){return this.el.currentTime},setCurrentTime:function(seconds){try{this.el.currentTime=seconds}catch(e){_V_.log(e,"Video isn't ready. (VideoJS)")}},duration:function(){return this.el.duration||0},buffered:function(){return this.el.buffered},volume:function(){return this.el.volume},setVolume:function(percentAsDecimal){this.el.volume=percentAsDecimal},muted:function(){return this.el.muted},setMuted:function(muted){this.el.muted=muted},width:function(){return this.el.offsetWidth},height:function(){return this.el.offsetHeight},supportsFullScreen:function(){if(typeof this.el.webkitEnterFullScreen=="function"){if(!navigator.userAgent.match("Chrome")&&!navigator.userAgent.match("Mac OS X 10.5")){return true}}return false},enterFullScreen:function(){try{this.el.webkitEnterFullScreen()}catch(e){if(e.code==11){_V_.log("VideoJS: Video not ready.")}}},src:function(src){this.el.src=src},load:function(){this.el.load()},currentSrc:function(){return this.el.currentSrc},preload:function(){return this.el.preload},setPreload:function(val){this.el.preload=val},autoplay:function(){return this.el.autoplay},setAutoplay:function(val){this.el.autoplay=val},loop:function(){return this.el.loop},setLoop:function(val){this.el.loop=val},error:function(){return this.el.error},seeking:function(){return this.el.seeking},ended:function(){return this.el.ended},controls:function(){return this.player.options.controls},defaultMuted:function(){return this.el.defaultMuted}});_V_.html5.isSupported=function(){return !!document.createElement("video").canPlayType};_V_.html5.canPlaySource=function(srcObj){return !!document.createElement("video").canPlayType(srcObj.type)};_V_.html5.events="loadstart,suspend,abort,error,emptied,stalled,loadedmetadata,loadeddata,canplay,canplaythrough,playing,waiting,seeking,seeked,ended,durationchange,timeupdate,progress,play,pause,ratechange,volumechange".split(",");_V_.html5.prototype.support={fullscreen:(typeof _V_.testVid.webkitEnterFullScreen!==undefined)?(!_V_.ua.match("Chrome")&&!_V_.ua.match("Mac OS X 10.5")?true:false):false,movingElementInDOM:!_V_.isIOS()};if(_V_.isAndroid()){if(_V_.androidVersion()<3){document.createElement("video").constructor.prototype.canPlayType=function(type){return(type&&type.toLowerCase().indexOf("video/mp4")!=-1)?"maybe":""}}}_V_.flash=_V_.PlaybackTech.extend({init:function(player,options){this.player=player;var source=options.source,parentEl=options.parentEl,placeHolder=this.el=_V_.createElement("div",{id:parentEl.id+"_temp_flash"}),objId=player.el.id+"_flash_api",playerOptions=player.options,flashVars=_V_.merge({readyFunction:"_V_.flash.onReady",eventProxyFunction:"_V_.flash.onEvent",errorEventProxyFunction:"_V_.flash.onError",autoplay:playerOptions.autoplay,preload:playerOptions.preload,loop:playerOptions.loop,muted:playerOptions.muted},options.flashVars),params=_V_.merge({wmode:"opaque",bgcolor:"#000000"},options.params),attributes=_V_.merge({id:objId,name:objId,"class":"vjs-tech"},options.attributes);if(source){flashVars.src=encodeURIComponent(_V_.getAbsoluteURL(source.src))}_V_.insertFirst(placeHolder,parentEl);if(options.startTime){this.ready(function(){this.load();this.play();this.currentTime(options.startTime)})}if(options.iFrameMode==true&&!_V_.isFF){var iFrm=_V_.createElement("iframe",{id:objId+"_iframe",name:objId+"_iframe",className:"vjs-tech",scrolling:"no",marginWidth:0,marginHeight:0,frameBorder:0});flashVars.readyFunction="ready";flashVars.eventProxyFunction="events";flashVars.errorEventProxyFunction="errors";_V_.addEvent(iFrm,"load",_V_.proxy(this,function(){var iDoc,objTag,swfLoc,iWin=iFrm.contentWindow,varString="";iDoc=iFrm.contentDocument?iFrm.contentDocument:iFrm.contentWindow.document;iDoc.write(_V_.flash.getEmbedCode(options.swf,flashVars,params,attributes));iWin.player=this.player;iWin.ready=_V_.proxy(this.player,function(currSwf){var el=iDoc.getElementById(currSwf),player=this,tech=player.tech;tech.el=el;_V_.addEvent(el,"click",tech.proxy(tech.onClick));_V_.flash.checkReady(tech)});iWin.events=_V_.proxy(this.player,function(swfID,eventName,other){var player=this;if(player&&player.techName=="flash"){player.triggerEvent(eventName)}});iWin.errors=_V_.proxy(this.player,function(swfID,eventName){_V_.log("Flash Error",eventName)})}));placeHolder.parentNode.replaceChild(iFrm,placeHolder)}else{_V_.flash.embed(options.swf,placeHolder,flashVars,params,attributes)}},destroy:function(){this.el.parentNode.removeChild(this.el)},play:function(){this.el.vjs_play()},pause:function(){this.el.vjs_pause()},src:function(src){src=_V_.getAbsoluteURL(src);this.el.vjs_src(src);if(this.player.autoplay()){var tech=this;setTimeout(function(){tech.play()},0)}},load:function(){this.el.vjs_load()},poster:function(){this.el.vjs_getProperty("poster")},buffered:function(){return _V_.createTimeRange(0,this.el.vjs_getProperty("buffered"))},supportsFullScreen:function(){return false},enterFullScreen:function(){return false}});(function(){var api=_V_.flash.prototype,readWrite="preload,currentTime,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted".split(","),readOnly="error,currentSrc,networkState,readyState,seeking,initialTime,duration,startOffsetTime,paused,played,seekable,ended,videoTracks,audioTracks,videoWidth,videoHeight,textTracks".split(","),callOnly="load,play,pause".split(",");createSetter=function(attr){var attrUpper=attr.charAt(0).toUpperCase()+attr.slice(1);api["set"+attrUpper]=function(val){return this.el.vjs_setProperty(attr,val)}},createGetter=function(attr){api[attr]=function(){return this.el.vjs_getProperty(attr)}};_V_.each(readWrite,function(attr){createGetter(attr);createSetter(attr)});_V_.each(readOnly,function(attr){createGetter(attr)})})();_V_.flash.isSupported=function(){return _V_.flash.version()[0]>=10};_V_.flash.canPlaySource=function(srcObj){if(srcObj.type in _V_.flash.prototype.support.formats){return"maybe"}};_V_.flash.prototype.support={formats:{"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"},progressEvent:false,timeupdateEvent:false,fullscreenResize:false,parentResize:!(_V_.ua.match("Firefox"))};_V_.flash.onReady=function(currSwf){var el=_V_.el(currSwf);var player=el.player||el.parentNode.player,tech=player.tech;el.player=player;tech.el=el;tech.addEvent("click",tech.onClick);_V_.flash.checkReady(tech)};_V_.flash.checkReady=function(tech){if(tech.el.vjs_getProperty){tech.triggerReady()}else{setTimeout(function(){_V_.flash.checkReady(tech)},50)}};_V_.flash.onEvent=function(swfID,eventName){var player=_V_.el(swfID).player;player.triggerEvent(eventName)};_V_.flash.onError=function(swfID,err){var player=_V_.el(swfID).player;player.triggerEvent("error");_V_.log("Flash Error",err,swfID)};_V_.flash.version=function(){var version="0,0,0";try{version=new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(e){try{if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){version=(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}}catch(e){}}return version.split(",")};_V_.flash.embed=function(swf,placeHolder,flashVars,params,attributes){var code=_V_.flash.getEmbedCode(swf,flashVars,params,attributes),obj=_V_.createElement("div",{innerHTML:code}).childNodes[0],par=placeHolder.parentNode;placeHolder.parentNode.replaceChild(obj,placeHolder);if(_V_.isIE()){var newObj=par.childNodes[0];setTimeout(function(){newObj.style.display="block"},1000)}return obj};_V_.flash.getEmbedCode=function(swf,flashVars,params,attributes){var objTag='<object type="application/x-shockwave-flash"',flashVarsString="",paramsString="";attrsString="";if(flashVars){_V_.eachProp(flashVars,function(key,val){flashVarsString+=(key+"="+val+"&")})}params=_V_.merge({movie:swf,flashvars:flashVarsString,allowScriptAccess:"always",allowNetworking:"all"},params);_V_.eachProp(params,function(key,val){paramsString+='<param name="'+key+'" value="'+val+'" />'});attributes=_V_.merge({data:swf,width:"100%",height:"100%"},attributes);_V_.eachProp(attributes,function(key,val){attrsString+=(key+'="'+val+'" ')});return objTag+attrsString+">"+paramsString+"</object>"};_V_.merge(_V_.Player.prototype,{addTextTracks:function(trackObjects){var tracks=this.textTracks=(this.textTracks)?this.textTracks:[],i=0,j=trackObjects.length,track,Kind;for(;i<j;i++){Kind=_V_.uc(trackObjects[i].kind||"subtitles");track=new _V_[Kind+"Track"](this,trackObjects[i]);tracks.push(track);if(track["default"]){this.ready(_V_.proxy(track,track.show))}}return this},showTextTrack:function(id,disableSameKind){var tracks=this.textTracks,i=0,j=tracks.length,track,showTrack,kind;for(;i<j;i++){track=tracks[i];if(track.id===id){track.show();showTrack=track}else{if(disableSameKind&&track.kind==disableSameKind&&track.mode>0){track.disable()}}}kind=(showTrack)?showTrack.kind:((disableSameKind)?disableSameKind:false);if(kind){this.triggerEvent(kind+"trackchange")}return this}});_V_.Track=_V_.Component.extend({init:function(player,options){this._super(player,options);_V_.merge(this,{id:options.id||("vjs_"+options.kind+"_"+options.language+"_"+_V_.guid++),src:options.src,"default":options["default"],title:options.title,language:options.srclang,label:options.label,cues:[],activeCues:[],readyState:0,mode:0})},createElement:function(){return this._super("div",{className:"vjs-"+this.kind+" vjs-text-track"})},show:function(){this.activate();this.mode=2;this._super()},hide:function(){this.activate();this.mode=1;this._super()},disable:function(){if(this.mode==2){this.hide()}this.deactivate();this.mode=0},activate:function(){if(this.readyState==0){this.load()}if(this.mode==0){this.player.addEvent("timeupdate",this.proxy(this.update,this.id));this.player.addEvent("ended",this.proxy(this.reset,this.id));if(this.kind=="captions"||this.kind=="subtitles"){this.player.textTrackDisplay.addComponent(this)}}},deactivate:function(){this.player.removeEvent("timeupdate",this.proxy(this.update,this.id));this.player.removeEvent("ended",this.proxy(this.reset,this.id));this.reset();this.player.textTrackDisplay.removeComponent(this)},load:function(){if(this.readyState==0){this.readyState=1;_V_.get(this.src,this.proxy(this.parseCues),this.proxy(this.onError))}},onError:function(err){this.error=err;this.readyState=3;this.triggerEvent("error")},parseCues:function(srcContent){var cue,time,text,lines=srcContent.split("\n"),line="",id;for(var i=1,j=lines.length;i<j;i++){line=_V_.trim(lines[i]);if(line){if(line.indexOf("-->")==-1){id=line;line=_V_.trim(lines[++i])}else{id=this.cues.length}cue={id:id,index:this.cues.length};time=line.split(" --> ");cue.startTime=this.parseCueTime(time[0]);cue.endTime=this.parseCueTime(time[1]);text=[];while(lines[++i]&&(line=_V_.trim(lines[i]))){text.push(line)}cue.text=text.join("<br/>");this.cues.push(cue)}}this.readyState=2;this.triggerEvent("loaded")},parseCueTime:function(timeText){var parts=timeText.split(":"),time=0,hours,minutes,other,seconds,ms,flags;if(parts.length==3){hours=parts[0];minutes=parts[1];other=parts[2]}else{hours=0;minutes=parts[0];other=parts[1]}other=other.split(/\s+/);seconds=other.splice(0,1)[0];seconds=seconds.split(/\.|,/);ms=parseFloat(seconds[1]);seconds=seconds[0];time+=parseFloat(hours)*3600;time+=parseFloat(minutes)*60;time+=parseFloat(seconds);if(ms){time+=ms/1000}return time},update:function(){if(this.cues.length>0){var time=this.player.currentTime();if(this.prevChange===undefined||time<this.prevChange||this.nextChange<=time){var cues=this.cues,newNextChange=this.player.duration(),newPrevChange=0,reverse=false,newCues=[],firstActiveIndex,lastActiveIndex,html="",cue,i,j;if(time>=this.nextChange||this.nextChange===undefined){i=(this.firstActiveIndex!==undefined)?this.firstActiveIndex:0}else{reverse=true;i=(this.lastActiveIndex!==undefined)?this.lastActiveIndex:cues.length-1}while(true){cue=cues[i];if(cue.endTime<=time){newPrevChange=Math.max(newPrevChange,cue.endTime);if(cue.active){cue.active=false}}else{if(time<cue.startTime){newNextChange=Math.min(newNextChange,cue.startTime);if(cue.active){cue.active=false}if(!reverse){break}}else{if(reverse){newCues.splice(0,0,cue);if(lastActiveIndex===undefined){lastActiveIndex=i}firstActiveIndex=i}else{newCues.push(cue);if(firstActiveIndex===undefined){firstActiveIndex=i}lastActiveIndex=i}newNextChange=Math.min(newNextChange,cue.endTime);newPrevChange=Math.max(newPrevChange,cue.startTime);cue.active=true}}if(reverse){if(i===0){break}else{i--}}else{if(i===cues.length-1){break}else{i++}}}this.activeCues=newCues;this.nextChange=newNextChange;this.prevChange=newPrevChange;this.firstActiveIndex=firstActiveIndex;this.lastActiveIndex=lastActiveIndex;this.updateDisplay();this.triggerEvent("cuechange")}}},updateDisplay:function(){var cues=this.activeCues,html="",i=0,j=cues.length;for(;i<j;i++){html+="<span class='vjs-tt-cue'>"+cues[i].text+"</span>"}this.el.innerHTML=html},reset:function(){this.nextChange=0;this.prevChange=this.player.duration();this.firstActiveIndex=0;this.lastActiveIndex=0}});_V_.CaptionsTrack=_V_.Track.extend({kind:"captions"});_V_.SubtitlesTrack=_V_.Track.extend({kind:"subtitles"});_V_.ChaptersTrack=_V_.Track.extend({kind:"chapters"});_V_.TextTrackDisplay=_V_.Component.extend({createElement:function(){return this._super("div",{className:"vjs-text-track-display"})}});_V_.TextTrackMenuItem=_V_.MenuItem.extend({init:function(player,options){var track=this.track=options.track;options.label=track.label;options.selected=track["default"];this._super(player,options);this.player.addEvent(track.kind+"trackchange",_V_.proxy(this,this.update))},onClick:function(){this._super();this.player.showTextTrack(this.track.id,this.track.kind)},update:function(){if(this.track.mode==2){this.selected(true)}else{this.selected(false)}}});_V_.OffTextTrackMenuItem=_V_.TextTrackMenuItem.extend({init:function(player,options){options.track={kind:options.kind,player:player,label:"Off"};this._super(player,options)},onClick:function(){this._super();this.player.showTextTrack(this.track.id,this.track.kind)},update:function(){var tracks=this.player.textTracks,i=0,j=tracks.length,track,off=true;for(;i<j;i++){track=tracks[i];if(track.kind==this.track.kind&&track.mode==2){off=false}}if(off){this.selected(true)}else{this.selected(false)}}});_V_.TextTrackButton=_V_.Button.extend({init:function(player,options){this._super(player,options);this.menu=this.createMenu();if(this.items.length===0){this.hide()}},createMenu:function(){var menu=new _V_.Menu(this.player);menu.el.appendChild(_V_.createElement("li",{className:"vjs-menu-title",innerHTML:_V_.uc(this.kind)}));menu.addItem(new _V_.OffTextTrackMenuItem(this.player,{kind:this.kind}));this.items=this.createItems();this.each(this.items,function(item){menu.addItem(item)});this.addComponent(menu);return menu},createItems:function(){var items=[];this.each(this.player.textTracks,function(track){if(track.kind===this.kind){items.push(new _V_.TextTrackMenuItem(this.player,{track:track}))}});return items},buildCSSClass:function(){return this.className+" vjs-menu-button "+this._super()},onFocus:function(){this.menu.lockShowing();_V_.one(this.menu.el.childNodes[this.menu.el.childNodes.length-1],"blur",this.proxy(function(){this.menu.unlockShowing()}))},onBlur:function(){},onClick:function(){this.one("mouseout",this.proxy(function(){this.menu.unlockShowing();this.el.blur()}))}});_V_.CaptionsButton=_V_.TextTrackButton.extend({kind:"captions",buttonText:"Captions",className:"vjs-captions-button"});_V_.SubtitlesButton=_V_.TextTrackButton.extend({kind:"subtitles",buttonText:"Subtitles",className:"vjs-subtitles-button"});_V_.ChaptersButton=_V_.TextTrackButton.extend({kind:"chapters",buttonText:"Chapters",className:"vjs-chapters-button",createItems:function(chaptersTrack){var items=[];this.each(this.player.textTracks,function(track){if(track.kind===this.kind){items.push(new _V_.TextTrackMenuItem(this.player,{track:track}))}});return items},createMenu:function(){var tracks=this.player.textTracks,i=0,j=tracks.length,track,chaptersTrack,items=this.items=[];for(;i<j;i++){track=tracks[i];if(track.kind==this.kind&&track["default"]){if(track.readyState<2){this.chaptersTrack=track;track.addEvent("loaded",this.proxy(this.createMenu));return}else{chaptersTrack=track;break}}}var menu=this.menu=new _V_.Menu(this.player);menu.el.appendChild(_V_.createElement("li",{className:"vjs-menu-title",innerHTML:_V_.uc(this.kind)}));if(chaptersTrack){var cues=chaptersTrack.cues,i=0,j=cues.length,cue,mi;for(;i<j;i++){cue=cues[i];mi=new _V_.ChaptersTrackMenuItem(this.player,{track:chaptersTrack,cue:cue});items.push(mi);menu.addComponent(mi)}}this.addComponent(menu);if(this.items.length>0){this.show()}return menu}});_V_.ChaptersTrackMenuItem=_V_.MenuItem.extend({init:function(player,options){var track=this.track=options.track,cue=this.cue=options.cue,currentTime=player.currentTime();options.label=cue.text;options.selected=(cue.startTime<=currentTime&¤tTime<cue.endTime);this._super(player,options);track.addEvent("cuechange",_V_.proxy(this,this.update))},onClick:function(){this._super();this.player.currentTime(this.cue.startTime);this.update(this.cue.startTime)},update:function(time){var cue=this.cue,currentTime=this.player.currentTime();if(cue.startTime<=currentTime&¤tTime<cue.endTime){this.selected(true)}else{this.selected(false)}}});_V_.merge(_V_.ControlBar.prototype.options.components,{subtitlesButton:{},captionsButton:{},chaptersButton:{}});_V_.autoSetup=function(){var options,vid,player,vids=document.getElementsByTagName("video");if(vids&&vids.length>0){for(var i=0,j=vids.length;i<j;i++){vid=vids[i];if(vid&&vid.getAttribute){if(vid.player===undefined){options=vid.getAttribute("data-setup");if(options!==null){options=JSON.parse(options||"{}");player=_V_(vid,options)}}}else{_V_.autoSetupTimeout(1);break}}}else{if(!_V_.windowLoaded){_V_.autoSetupTimeout(1)}}};_V_.autoSetupTimeout=function(wait){setTimeout(_V_.autoSetup,wait)};_V_.addEvent(window,"load",function(){_V_.windowLoaded=true});_V_.autoSetup();window.VideoJS=window._V_=VideoJS})(window);
|
lng/featured-video-plus-de_DE.mo
CHANGED
Binary file
|
lng/featured-video-plus-de_DE.po
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: featured-video-plus 1.3 de_DE\n"
|
4 |
-
"POT-Creation-Date: 2013-03-
|
5 |
-
"PO-Revision-Date: 2013-03-
|
6 |
"Last-Translator: Alexander Höreth <a.hoereth@gmail.com>\n"
|
7 |
"Language-Team: a.hoereth <a.hoereth@gmail.com>\n"
|
8 |
"Language: de_DE\n"
|
@@ -23,16 +23,16 @@ msgstr "Video URL"
|
|
23 |
msgid "Fallback: same video, different format"
|
24 |
msgstr "Fallback: gleiche Video, anderes Format"
|
25 |
|
26 |
-
#: php/backend.php:
|
27 |
-
#: php/backend.php:
|
28 |
msgid "Featured Video"
|
29 |
msgstr "Beitragsvideo"
|
30 |
|
31 |
-
#: php/backend.php:
|
32 |
msgid "Outdated WordPress Version"
|
33 |
msgstr "Veraltete WordPress Version"
|
34 |
|
35 |
-
#: php/backend.php:
|
36 |
#, php-format
|
37 |
msgid ""
|
38 |
"There is WordPress 3.5 out there! The plugin supports older versions way "
|
@@ -41,74 +41,74 @@ msgstr ""
|
|
41 |
"Es gibt schon WordPress 3.5! Das Plugin unterstützt alle Versionen ab 3.1 - "
|
42 |
"aber %s ist wirklich zu alt!"
|
43 |
|
44 |
-
#: php/backend.php:
|
45 |
msgid "Set Featured Video"
|
46 |
msgstr "Beitragsvideo festlegen"
|
47 |
|
48 |
-
#: php/backend.php:
|
49 |
msgid "Set featured video"
|
50 |
msgstr "Beitragsvideo festlegen"
|
51 |
|
52 |
-
#: php/backend.php:
|
53 |
msgid "Set Featured Video Fallback"
|
54 |
msgstr "Beitragsvideo-Ersatz festlegen"
|
55 |
|
56 |
-
#: php/backend.php:
|
57 |
msgid "Set featured video fallback"
|
58 |
msgstr "Beitragsvideo Fallback festlegen"
|
59 |
|
60 |
-
#: php/backend.php:
|
61 |
msgid "Supported Video Formats"
|
62 |
msgstr "Unterstützte Videoformate"
|
63 |
|
64 |
-
#: php/backend.php:
|
65 |
msgid "or"
|
66 |
msgstr "oder"
|
67 |
|
68 |
-
#: php/backend.php:
|
69 |
msgid "More information"
|
70 |
msgstr "Mehr Informationen"
|
71 |
|
72 |
-
#: php/backend.php:
|
73 |
msgid "Fallback Video"
|
74 |
msgstr "Fallback Video"
|
75 |
|
76 |
-
#: php/backend.php:
|
77 |
msgid ""
|
78 |
"The two input fields should contain the same video but in distinct formats."
|
79 |
msgstr ""
|
80 |
"Die zwei Eingabefelder sollen das gleiche Video in unterschiedlichen "
|
81 |
"Formaten enthalten."
|
82 |
|
83 |
-
#: php/backend.php:
|
84 |
msgid "Hint"
|
85 |
msgstr "Hinweis"
|
86 |
|
87 |
-
#: php/backend.php:
|
88 |
#, php-format
|
89 |
msgid "Take a look into the %sContextual Help%s."
|
90 |
msgstr "Wirf einen Blick in die %sHilfe%s."
|
91 |
|
92 |
-
#: php/backend.php:
|
93 |
msgid "Featured Image"
|
94 |
msgstr ""
|
95 |
|
96 |
-
#: php/backend.php:
|
97 |
msgid ""
|
98 |
"For automatically displaying the Featured Video a Featured Image is required."
|
99 |
msgstr ""
|
100 |
"Um das Artikelvideo automatisch im Theme anzeigen zu können, muss ein "
|
101 |
"Artikelbild festgelegt werden."
|
102 |
|
103 |
-
#: php/backend.php:
|
104 |
msgid "Set as Featured Image"
|
105 |
msgstr "Als Beitragsbild festlegen"
|
106 |
|
107 |
-
#: php/backend.php:
|
108 |
msgid "The current theme does not support Featured Images"
|
109 |
msgstr "Das aktuelle Theme nutzt keine Beitragsbilder."
|
110 |
|
111 |
-
#: php/backend.php:
|
112 |
#, php-format
|
113 |
msgid ""
|
114 |
"To display Featured Videos you need to use the <code>Shortcode</code> or "
|
@@ -120,7 +120,7 @@ msgstr ""
|
|
120 |
"diese Warnung zu verstecken, deaktiviere "<em>Artikelbilder ersetzen</"
|
121 |
"em>" in deinen %sMedien Einstellungen%s."
|
122 |
|
123 |
-
#: php/backend.php:
|
124 |
#, php-format
|
125 |
msgid ""
|
126 |
"To use local videos, copy the <code>Link To Media File</code> from your "
|
@@ -129,7 +129,7 @@ msgstr ""
|
|
129 |
"Um lokale Videos zu nutzen, kopiere den <code>Link zur Medien-Datei</code> "
|
130 |
"aus deiner %sMediathek%s und füge ihn in das Textfeld ein."
|
131 |
|
132 |
-
#: php/backend.php:
|
133 |
#, php-format
|
134 |
msgid ""
|
135 |
"To use local videos, copy the <code>File URL</code> from your %sMedia Library"
|
@@ -138,7 +138,7 @@ msgstr ""
|
|
138 |
"Um lokale Videos zu nutzen, kopiere die <code>Datei-URL</code> aus deiner "
|
139 |
"%sMediathek%s und füge sie in das Textfeld ein."
|
140 |
|
141 |
-
#: php/backend.php:
|
142 |
msgid ""
|
143 |
"The second text field is intended to hold the URL to the same video in a "
|
144 |
"different format. It will be used as fallback if the primary file can not be "
|
@@ -148,11 +148,11 @@ msgstr ""
|
|
148 |
"Videoformat gedacht. Dieses zweite Video wird dann als Fallback benutzt, "
|
149 |
"falls das erste Video nicht kompatibel ist."
|
150 |
|
151 |
-
#: php/backend.php:
|
152 |
msgid "Converting your videos"
|
153 |
msgstr "Videos konvertieren"
|
154 |
|
155 |
-
#: php/backend.php:
|
156 |
#, php-format
|
157 |
msgid ""
|
158 |
"Take a look at the %sMiro Video Converter%s. It is open source, lightweight "
|
@@ -161,11 +161,11 @@ msgstr ""
|
|
161 |
"Schau dir den %sMiro Video Converter%s an. Er is Open Source, klein, einfach "
|
162 |
"zu verwenden und mit Windows, Mac und Linux kompatibel."
|
163 |
|
164 |
-
#: php/backend.php:
|
165 |
msgid "Fixing upload errors"
|
166 |
msgstr "Videoupload Fehler beheben"
|
167 |
|
168 |
-
#: php/backend.php:
|
169 |
#, php-format
|
170 |
msgid ""
|
171 |
"Read %sthis%s on how to increase the <strong>maximum file upload size</"
|
@@ -174,7 +174,7 @@ msgstr ""
|
|
174 |
"Lies %sdas hier%s, um zu erfahren, wie man das <strong>Dateigrößenlimit</"
|
175 |
"strong> erhöht."
|
176 |
|
177 |
-
#: php/backend.php:
|
178 |
#, php-format
|
179 |
msgid ""
|
180 |
"WordPress by default does not support <code>webM</code>. The plugin "
|
@@ -185,11 +185,11 @@ msgstr ""
|
|
185 |
"aktiviert die unterstützung, aber manchmal reicht das noch nicht. %sHier%s "
|
186 |
"gibt es mehr Informationen."
|
187 |
|
188 |
-
#: php/backend.php:
|
189 |
msgid "Flash Fallback"
|
190 |
msgstr "Flash Fallback"
|
191 |
|
192 |
-
#: php/backend.php:
|
193 |
#, php-format
|
194 |
msgid ""
|
195 |
"The video player, %sVIDEOJS%s, features an Adobe Flash fallback. All you "
|
@@ -198,7 +198,7 @@ msgstr ""
|
|
198 |
"Der Video Player, %sVIDEOJS%s, bietet einen Adobe Flash Fallback. Du musst "
|
199 |
"einfach nur ein <code>mp4</code>-Video einbinden."
|
200 |
|
201 |
-
#: php/backend.php:
|
202 |
msgid ""
|
203 |
"These are some of the tested URL formats. Everything in bold is required, "
|
204 |
"everything in brackets is optional."
|
@@ -206,11 +206,11 @@ msgstr ""
|
|
206 |
"Das hier sind einige getestete URL Formate. Alles fettgedruckte ist "
|
207 |
"notwendig, alles in Klammern optional."
|
208 |
|
209 |
-
#: php/backend.php:
|
210 |
msgid "Local Media"
|
211 |
msgstr "Lokale Medien"
|
212 |
|
213 |
-
#: php/backend.php:
|
214 |
msgid "Valid URLs"
|
215 |
msgstr "Video URLs"
|
216 |
|
@@ -234,17 +234,21 @@ msgstr "Videogröße"
|
|
234 |
msgid "Video Align"
|
235 |
msgstr "Video-Ausrichtung"
|
236 |
|
|
|
|
|
|
|
|
|
237 |
#: php/settings.php:28
|
238 |
-
msgid "YouTube
|
239 |
-
msgstr "YouTube
|
240 |
|
241 |
#: php/settings.php:29
|
242 |
-
msgid "Vimeo
|
243 |
-
msgstr "Vimeo
|
244 |
|
245 |
#: php/settings.php:30
|
246 |
-
msgid "Dailymotion
|
247 |
-
msgstr "Dailymotion
|
248 |
|
249 |
#: php/settings.php:31
|
250 |
msgid "Support"
|
@@ -275,7 +279,7 @@ msgid "yes"
|
|
275 |
msgstr "ja"
|
276 |
|
277 |
#: php/settings.php:62 php/settings.php:88 php/settings.php:111
|
278 |
-
#: php/settings.php:121 php/settings.php:142
|
279 |
msgid "default"
|
280 |
msgstr "default"
|
281 |
|
@@ -338,75 +342,93 @@ msgstr "zentriert"
|
|
338 |
msgid "right"
|
339 |
msgstr "rechts"
|
340 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
341 |
#: php/settings.php:165
|
342 |
-
msgid "
|
343 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
344 |
|
345 |
-
#: php/settings.php:
|
346 |
msgid "Light Theme"
|
347 |
msgstr "Helles Design"
|
348 |
|
349 |
-
#: php/settings.php:184
|
350 |
-
msgid "Info"
|
351 |
-
msgstr "Info"
|
352 |
-
|
353 |
#: php/settings.php:185
|
354 |
msgid "Fullscreen Button"
|
355 |
msgstr "Vollbildschalter"
|
356 |
|
357 |
-
#: php/settings.php:
|
|
|
|
|
|
|
|
|
358 |
msgid "Related Videos"
|
359 |
msgstr "Verwandte Videos"
|
360 |
|
361 |
-
#: php/settings.php:
|
362 |
msgid "White Progressbar"
|
363 |
msgstr "Weißer Fortschrittsbalken"
|
364 |
|
365 |
-
#: php/settings.php:
|
366 |
msgid "Logo"
|
367 |
msgstr "Logo"
|
368 |
|
369 |
-
#: php/settings.php:
|
370 |
msgid "Portrait"
|
371 |
msgstr "Portrait"
|
372 |
|
373 |
-
#: php/settings.php:
|
374 |
msgid "Title"
|
375 |
msgstr "Titel"
|
376 |
|
377 |
-
#: php/settings.php:
|
378 |
msgid "Byline"
|
379 |
msgstr "Author"
|
380 |
|
381 |
-
#: php/settings.php:
|
382 |
msgid "Color"
|
383 |
msgstr "Farbe"
|
384 |
|
385 |
-
#: php/settings.php:
|
386 |
msgid "Vimeo Plus Videos might ignore these settings."
|
387 |
msgstr "Vimeo Plus Videos können diese Einstellungen ignorieren."
|
388 |
|
389 |
-
#: php/settings.php:
|
390 |
msgid "Videoinfo"
|
391 |
msgstr "Videoinfo"
|
392 |
|
393 |
-
#: php/settings.php:
|
394 |
msgid "Syndication Key"
|
395 |
msgstr "Syndication Schlüssel"
|
396 |
|
397 |
-
#: php/settings.php:
|
398 |
msgid "Foreground"
|
399 |
msgstr "Vordergrund"
|
400 |
|
401 |
-
#: php/settings.php:
|
402 |
msgid "Highlight"
|
403 |
msgstr "Hervorhebung"
|
404 |
|
405 |
-
#: php/settings.php:
|
406 |
msgid "Background"
|
407 |
msgstr "Hintergrund"
|
408 |
|
409 |
-
#: php/settings.php:
|
410 |
#, php-format
|
411 |
msgid ""
|
412 |
"If you have found a bug or are missing a specific video service, please "
|
@@ -417,7 +439,7 @@ msgstr ""
|
|
417 |
"vermisst, %ssag bescheid%s; Ansonsten, wenn dir das Plugin gefällt, bitte "
|
418 |
"%sbewerte es!%s"
|
419 |
|
420 |
-
#: php/settings.php:
|
421 |
msgid ""
|
422 |
"The plugin logs it's version, the WordPress version and WordPress language "
|
423 |
"for internal statistics. Those help for future plugin development."
|
@@ -425,7 +447,7 @@ msgstr ""
|
|
425 |
"Das Plugin speichert seine Version, die WordPress Version und WordPress "
|
426 |
"Spracheinstellung für eigene Statistiken."
|
427 |
|
428 |
-
#: php/settings.php:
|
429 |
msgid ""
|
430 |
"No personal user information is being collected. Still, you can easily Opt-"
|
431 |
"Out and have the data deleted:"
|
@@ -433,11 +455,11 @@ msgstr ""
|
|
433 |
"Es werden keine persönlichen Nutzerinformationen gespeichert. Wenn du willst "
|
434 |
"kannst du dich abmelden und deine Daten werden gelöscht:"
|
435 |
|
436 |
-
#: php/settings.php:
|
437 |
msgid "Displays the video in its default size."
|
438 |
msgstr "Stellt das Video in seiner Standardgröße dar."
|
439 |
|
440 |
-
#: php/settings.php:
|
441 |
msgid ""
|
442 |
"Displays the video with an width of 300 pixel. Height will be fitted to the "
|
443 |
"aspect ratio."
|
@@ -445,11 +467,11 @@ msgstr ""
|
|
445 |
"Stellt das Video mit einer breite von 300 Pixeln dar. Die Höhe wird "
|
446 |
"automatisch angepasst, so dass das Seitenverhältniss erhalten bleibt."
|
447 |
|
448 |
-
#: php/settings.php:
|
449 |
msgid "Displays the video with an fixed width and height."
|
450 |
msgstr "Stellt das Video mit fester Breite und Höhe dar."
|
451 |
|
452 |
-
#: php/settings.php:
|
453 |
#, php-format
|
454 |
msgid ""
|
455 |
"All parameters are optional. If %s the current post's id will be used. %s is "
|
@@ -461,7 +483,7 @@ msgstr ""
|
|
461 |
"full) oder ein Array mit zwei Stellen (Breite und Höhe); Zum Beispiel array"
|
462 |
"(32,32)."
|
463 |
|
464 |
-
#: php/settings.php:
|
465 |
#, php-format
|
466 |
msgid ""
|
467 |
"The functions are implemented corresponding to the original %sfunctions%s: "
|
@@ -472,53 +494,65 @@ msgstr ""
|
|
472 |
"sollten genauso genutzt werden können und sich genauso verhalten. Schau dir "
|
473 |
"für mehr Informationen den WordPress Codex an:"
|
474 |
|
475 |
-
#: php/settings.php:
|
476 |
msgid "PHP-Functions"
|
477 |
msgstr "PHP-Funktionen"
|
478 |
|
479 |
-
#: php/upgrade.php:
|
|
|
480 |
msgid "Featured Video Plus was <strong>upgraded</strong>."
|
481 |
msgstr "Featured Video Plus wurde <strong>aktualisiert</strong>."
|
482 |
|
483 |
-
#: php/upgrade.php:
|
484 |
#, php-format
|
485 |
msgid ""
|
486 |
-
"%s
|
487 |
-
"
|
488 |
-
"PHP functions for developers."
|
489 |
msgstr ""
|
490 |
-
"%s
|
491 |
-
"
|
492 |
-
"
|
493 |
|
494 |
-
#: php/upgrade.php:
|
|
|
495 |
#, php-format
|
496 |
msgid "If you like the plugin, please %srate it%s."
|
497 |
msgstr "Wenn dir das Plugin gefällt, bitte %sbewerte es%s."
|
498 |
|
499 |
-
#: php/upgrade.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
500 |
#, php-format
|
501 |
msgid ""
|
502 |
-
"%s features a seamless WP3.5 Media Manager integration,
|
503 |
-
"for YouTube and Dailymotion, more
|
504 |
-
"internationalization."
|
505 |
msgstr ""
|
506 |
-
"%s integriert den <strong>WP3.5 Media Manager</strong> nahtlos,
|
507 |
-
"links für YouTube und Dailymotion(#t=4m2s), mehr Einstellungen
|
508 |
-
"Internationalisierung."
|
509 |
|
510 |
-
#: php/upgrade.php:
|
511 |
#, php-format
|
512 |
msgid ""
|
513 |
"%s features support for <strong>Local Videos</strong>, a seamless WP3.5 "
|
514 |
-
"Media Manager integration, time-links (#t=4m2s) for
|
515 |
-
"and many more customization settings."
|
516 |
msgstr ""
|
517 |
"%s integriert unterstützung für <strong>lokale Videos</strong>, den neuen "
|
518 |
-
"WP3.5 Media Manager, time-links (#t=4m2s)
|
519 |
-
"viele neue Einstellungsmöglichkeiten."
|
520 |
|
521 |
-
#: php/upgrade.php:
|
522 |
#, php-format
|
523 |
msgid ""
|
524 |
"Featured Video Plus is <strong>ready to use</strong>. There is a new box on "
|
@@ -529,6 +563,9 @@ msgstr ""
|
|
529 |
"Einträge gibt es eine neue Box um Artikelvideos hinzuzufügen. Außerdem: "
|
530 |
"<strong>Schau in deine %sMedien Einstellungen%s</strong>."
|
531 |
|
|
|
|
|
|
|
532 |
#~ msgid ""
|
533 |
#~ "%s features more customization settings, internationalization, better "
|
534 |
#~ "error handling and experimental LiveLeak integration."
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: featured-video-plus 1.3 de_DE\n"
|
4 |
+
"POT-Creation-Date: 2013-03-22 17:41+0100\n"
|
5 |
+
"PO-Revision-Date: 2013-03-22 17:46+0100\n"
|
6 |
"Last-Translator: Alexander Höreth <a.hoereth@gmail.com>\n"
|
7 |
"Language-Team: a.hoereth <a.hoereth@gmail.com>\n"
|
8 |
"Language: de_DE\n"
|
23 |
msgid "Fallback: same video, different format"
|
24 |
msgstr "Fallback: gleiche Video, anderes Format"
|
25 |
|
26 |
+
#: php/backend.php:92 php/backend.php:701 php/backend.php:708
|
27 |
+
#: php/backend.php:725 php/backend.php:727
|
28 |
msgid "Featured Video"
|
29 |
msgstr "Beitragsvideo"
|
30 |
|
31 |
+
#: php/backend.php:123
|
32 |
msgid "Outdated WordPress Version"
|
33 |
msgstr "Veraltete WordPress Version"
|
34 |
|
35 |
+
#: php/backend.php:123
|
36 |
#, php-format
|
37 |
msgid ""
|
38 |
"There is WordPress 3.5 out there! The plugin supports older versions way "
|
41 |
"Es gibt schon WordPress 3.5! Das Plugin unterstützt alle Versionen ab 3.1 - "
|
42 |
"aber %s ist wirklich zu alt!"
|
43 |
|
44 |
+
#: php/backend.php:134
|
45 |
msgid "Set Featured Video"
|
46 |
msgstr "Beitragsvideo festlegen"
|
47 |
|
48 |
+
#: php/backend.php:134
|
49 |
msgid "Set featured video"
|
50 |
msgstr "Beitragsvideo festlegen"
|
51 |
|
52 |
+
#: php/backend.php:143
|
53 |
msgid "Set Featured Video Fallback"
|
54 |
msgstr "Beitragsvideo-Ersatz festlegen"
|
55 |
|
56 |
+
#: php/backend.php:143
|
57 |
msgid "Set featured video fallback"
|
58 |
msgstr "Beitragsvideo Fallback festlegen"
|
59 |
|
60 |
+
#: php/backend.php:152 php/backend.php:654
|
61 |
msgid "Supported Video Formats"
|
62 |
msgstr "Unterstützte Videoformate"
|
63 |
|
64 |
+
#: php/backend.php:152
|
65 |
msgid "or"
|
66 |
msgstr "oder"
|
67 |
|
68 |
+
#: php/backend.php:152 php/backend.php:653
|
69 |
msgid "More information"
|
70 |
msgstr "Mehr Informationen"
|
71 |
|
72 |
+
#: php/backend.php:157
|
73 |
msgid "Fallback Video"
|
74 |
msgstr "Fallback Video"
|
75 |
|
76 |
+
#: php/backend.php:157
|
77 |
msgid ""
|
78 |
"The two input fields should contain the same video but in distinct formats."
|
79 |
msgstr ""
|
80 |
"Die zwei Eingabefelder sollen das gleiche Video in unterschiedlichen "
|
81 |
"Formaten enthalten."
|
82 |
|
83 |
+
#: php/backend.php:164
|
84 |
msgid "Hint"
|
85 |
msgstr "Hinweis"
|
86 |
|
87 |
+
#: php/backend.php:164
|
88 |
#, php-format
|
89 |
msgid "Take a look into the %sContextual Help%s."
|
90 |
msgstr "Wirf einen Blick in die %sHilfe%s."
|
91 |
|
92 |
+
#: php/backend.php:170 php/settings.php:404
|
93 |
msgid "Featured Image"
|
94 |
msgstr ""
|
95 |
|
96 |
+
#: php/backend.php:170
|
97 |
msgid ""
|
98 |
"For automatically displaying the Featured Video a Featured Image is required."
|
99 |
msgstr ""
|
100 |
"Um das Artikelvideo automatisch im Theme anzeigen zu können, muss ein "
|
101 |
"Artikelbild festgelegt werden."
|
102 |
|
103 |
+
#: php/backend.php:175
|
104 |
msgid "Set as Featured Image"
|
105 |
msgstr "Als Beitragsbild festlegen"
|
106 |
|
107 |
+
#: php/backend.php:179 php/settings.php:70
|
108 |
msgid "The current theme does not support Featured Images"
|
109 |
msgstr "Das aktuelle Theme nutzt keine Beitragsbilder."
|
110 |
|
111 |
+
#: php/backend.php:179
|
112 |
#, php-format
|
113 |
msgid ""
|
114 |
"To display Featured Videos you need to use the <code>Shortcode</code> or "
|
120 |
"diese Warnung zu verstecken, deaktiviere "<em>Artikelbilder ersetzen</"
|
121 |
"em>" in deinen %sMedien Einstellungen%s."
|
122 |
|
123 |
+
#: php/backend.php:648
|
124 |
#, php-format
|
125 |
msgid ""
|
126 |
"To use local videos, copy the <code>Link To Media File</code> from your "
|
129 |
"Um lokale Videos zu nutzen, kopiere den <code>Link zur Medien-Datei</code> "
|
130 |
"aus deiner %sMediathek%s und füge ihn in das Textfeld ein."
|
131 |
|
132 |
+
#: php/backend.php:649
|
133 |
#, php-format
|
134 |
msgid ""
|
135 |
"To use local videos, copy the <code>File URL</code> from your %sMedia Library"
|
138 |
"Um lokale Videos zu nutzen, kopiere die <code>Datei-URL</code> aus deiner "
|
139 |
"%sMediathek%s und füge sie in das Textfeld ein."
|
140 |
|
141 |
+
#: php/backend.php:653
|
142 |
msgid ""
|
143 |
"The second text field is intended to hold the URL to the same video in a "
|
144 |
"different format. It will be used as fallback if the primary file can not be "
|
148 |
"Videoformat gedacht. Dieses zweite Video wird dann als Fallback benutzt, "
|
149 |
"falls das erste Video nicht kompatibel ist."
|
150 |
|
151 |
+
#: php/backend.php:656
|
152 |
msgid "Converting your videos"
|
153 |
msgstr "Videos konvertieren"
|
154 |
|
155 |
+
#: php/backend.php:657
|
156 |
#, php-format
|
157 |
msgid ""
|
158 |
"Take a look at the %sMiro Video Converter%s. It is open source, lightweight "
|
161 |
"Schau dir den %sMiro Video Converter%s an. Er is Open Source, klein, einfach "
|
162 |
"zu verwenden und mit Windows, Mac und Linux kompatibel."
|
163 |
|
164 |
+
#: php/backend.php:658
|
165 |
msgid "Fixing upload errors"
|
166 |
msgstr "Videoupload Fehler beheben"
|
167 |
|
168 |
+
#: php/backend.php:660
|
169 |
#, php-format
|
170 |
msgid ""
|
171 |
"Read %sthis%s on how to increase the <strong>maximum file upload size</"
|
174 |
"Lies %sdas hier%s, um zu erfahren, wie man das <strong>Dateigrößenlimit</"
|
175 |
"strong> erhöht."
|
176 |
|
177 |
+
#: php/backend.php:661
|
178 |
#, php-format
|
179 |
msgid ""
|
180 |
"WordPress by default does not support <code>webM</code>. The plugin "
|
185 |
"aktiviert die unterstützung, aber manchmal reicht das noch nicht. %sHier%s "
|
186 |
"gibt es mehr Informationen."
|
187 |
|
188 |
+
#: php/backend.php:663
|
189 |
msgid "Flash Fallback"
|
190 |
msgstr "Flash Fallback"
|
191 |
|
192 |
+
#: php/backend.php:664
|
193 |
#, php-format
|
194 |
msgid ""
|
195 |
"The video player, %sVIDEOJS%s, features an Adobe Flash fallback. All you "
|
198 |
"Der Video Player, %sVIDEOJS%s, bietet einen Adobe Flash Fallback. Du musst "
|
199 |
"einfach nur ein <code>mp4</code>-Video einbinden."
|
200 |
|
201 |
+
#: php/backend.php:668
|
202 |
msgid ""
|
203 |
"These are some of the tested URL formats. Everything in bold is required, "
|
204 |
"everything in brackets is optional."
|
206 |
"Das hier sind einige getestete URL Formate. Alles fettgedruckte ist "
|
207 |
"notwendig, alles in Klammern optional."
|
208 |
|
209 |
+
#: php/backend.php:701 php/backend.php:725
|
210 |
msgid "Local Media"
|
211 |
msgstr "Lokale Medien"
|
212 |
|
213 |
+
#: php/backend.php:708 php/backend.php:727
|
214 |
msgid "Valid URLs"
|
215 |
msgstr "Video URLs"
|
216 |
|
234 |
msgid "Video Align"
|
235 |
msgstr "Video-Ausrichtung"
|
236 |
|
237 |
+
#: php/settings.php:27
|
238 |
+
msgid "Local Video Options"
|
239 |
+
msgstr "Lokale Videos"
|
240 |
+
|
241 |
#: php/settings.php:28
|
242 |
+
msgid "YouTube Options"
|
243 |
+
msgstr "YouTube Optionen"
|
244 |
|
245 |
#: php/settings.php:29
|
246 |
+
msgid "Vimeo Options"
|
247 |
+
msgstr "Vimeo Optionen"
|
248 |
|
249 |
#: php/settings.php:30
|
250 |
+
msgid "Dailymotion Options"
|
251 |
+
msgstr "Dailymotion Optionen"
|
252 |
|
253 |
#: php/settings.php:31
|
254 |
msgid "Support"
|
279 |
msgstr "ja"
|
280 |
|
281 |
#: php/settings.php:62 php/settings.php:88 php/settings.php:111
|
282 |
+
#: php/settings.php:121 php/settings.php:142
|
283 |
msgid "default"
|
284 |
msgstr "default"
|
285 |
|
342 |
msgid "right"
|
343 |
msgstr "rechts"
|
344 |
|
345 |
+
#: php/settings.php:161
|
346 |
+
msgid "Use CDN"
|
347 |
+
msgstr "Nutze CDN"
|
348 |
+
|
349 |
+
#: php/settings.php:162
|
350 |
+
msgid "Include JS"
|
351 |
+
msgstr "JS einbinden"
|
352 |
+
|
353 |
+
#: php/settings.php:163
|
354 |
+
msgid "Include CSS"
|
355 |
+
msgstr "CSS einbinden"
|
356 |
+
|
357 |
#: php/settings.php:165
|
358 |
+
msgid ""
|
359 |
+
"Disabling JS and/or CSS will break the local video player. Disable only when "
|
360 |
+
"you want to replace VideoJS with a different script and know what you are "
|
361 |
+
"doing."
|
362 |
+
msgstr ""
|
363 |
+
"JS und/oder CSS einbindung ist für die richtige Darstellung von lokalen "
|
364 |
+
"Videos notwendig. Nutze diese funktionen nur wenn du VideoJS durch ein "
|
365 |
+
"anderes Skript austauschen willst und weißt was du tust."
|
366 |
|
367 |
+
#: php/settings.php:184
|
368 |
msgid "Light Theme"
|
369 |
msgstr "Helles Design"
|
370 |
|
|
|
|
|
|
|
|
|
371 |
#: php/settings.php:185
|
372 |
msgid "Fullscreen Button"
|
373 |
msgstr "Vollbildschalter"
|
374 |
|
375 |
+
#: php/settings.php:193
|
376 |
+
msgid "Info"
|
377 |
+
msgstr "Info"
|
378 |
+
|
379 |
+
#: php/settings.php:195
|
380 |
msgid "Related Videos"
|
381 |
msgstr "Verwandte Videos"
|
382 |
|
383 |
+
#: php/settings.php:196
|
384 |
msgid "White Progressbar"
|
385 |
msgstr "Weißer Fortschrittsbalken"
|
386 |
|
387 |
+
#: php/settings.php:198 php/settings.php:250
|
388 |
msgid "Logo"
|
389 |
msgstr "Logo"
|
390 |
|
391 |
+
#: php/settings.php:219
|
392 |
msgid "Portrait"
|
393 |
msgstr "Portrait"
|
394 |
|
395 |
+
#: php/settings.php:220
|
396 |
msgid "Title"
|
397 |
msgstr "Titel"
|
398 |
|
399 |
+
#: php/settings.php:221
|
400 |
msgid "Byline"
|
401 |
msgstr "Author"
|
402 |
|
403 |
+
#: php/settings.php:224
|
404 |
msgid "Color"
|
405 |
msgstr "Farbe"
|
406 |
|
407 |
+
#: php/settings.php:228
|
408 |
msgid "Vimeo Plus Videos might ignore these settings."
|
409 |
msgstr "Vimeo Plus Videos können diese Einstellungen ignorieren."
|
410 |
|
411 |
+
#: php/settings.php:251
|
412 |
msgid "Videoinfo"
|
413 |
msgstr "Videoinfo"
|
414 |
|
415 |
+
#: php/settings.php:252
|
416 |
msgid "Syndication Key"
|
417 |
msgstr "Syndication Schlüssel"
|
418 |
|
419 |
+
#: php/settings.php:256
|
420 |
msgid "Foreground"
|
421 |
msgstr "Vordergrund"
|
422 |
|
423 |
+
#: php/settings.php:261
|
424 |
msgid "Highlight"
|
425 |
msgstr "Hervorhebung"
|
426 |
|
427 |
+
#: php/settings.php:266
|
428 |
msgid "Background"
|
429 |
msgstr "Hintergrund"
|
430 |
|
431 |
+
#: php/settings.php:283
|
432 |
#, php-format
|
433 |
msgid ""
|
434 |
"If you have found a bug or are missing a specific video service, please "
|
439 |
"vermisst, %ssag bescheid%s; Ansonsten, wenn dir das Plugin gefällt, bitte "
|
440 |
"%sbewerte es!%s"
|
441 |
|
442 |
+
#: php/settings.php:289
|
443 |
msgid ""
|
444 |
"The plugin logs it's version, the WordPress version and WordPress language "
|
445 |
"for internal statistics. Those help for future plugin development."
|
447 |
"Das Plugin speichert seine Version, die WordPress Version und WordPress "
|
448 |
"Spracheinstellung für eigene Statistiken."
|
449 |
|
450 |
+
#: php/settings.php:291
|
451 |
msgid ""
|
452 |
"No personal user information is being collected. Still, you can easily Opt-"
|
453 |
"Out and have the data deleted:"
|
455 |
"Es werden keine persönlichen Nutzerinformationen gespeichert. Wenn du willst "
|
456 |
"kannst du dich abmelden und deine Daten werden gelöscht:"
|
457 |
|
458 |
+
#: php/settings.php:380
|
459 |
msgid "Displays the video in its default size."
|
460 |
msgstr "Stellt das Video in seiner Standardgröße dar."
|
461 |
|
462 |
+
#: php/settings.php:384
|
463 |
msgid ""
|
464 |
"Displays the video with an width of 300 pixel. Height will be fitted to the "
|
465 |
"aspect ratio."
|
467 |
"Stellt das Video mit einer breite von 300 Pixeln dar. Die Höhe wird "
|
468 |
"automatisch angepasst, so dass das Seitenverhältniss erhalten bleibt."
|
469 |
|
470 |
+
#: php/settings.php:388
|
471 |
msgid "Displays the video with an fixed width and height."
|
472 |
msgstr "Stellt das Video mit fester Breite und Höhe dar."
|
473 |
|
474 |
+
#: php/settings.php:401
|
475 |
#, php-format
|
476 |
msgid ""
|
477 |
"All parameters are optional. If %s the current post's id will be used. %s is "
|
483 |
"full) oder ein Array mit zwei Stellen (Breite und Höhe); Zum Beispiel array"
|
484 |
"(32,32)."
|
485 |
|
486 |
+
#: php/settings.php:404
|
487 |
#, php-format
|
488 |
msgid ""
|
489 |
"The functions are implemented corresponding to the original %sfunctions%s: "
|
494 |
"sollten genauso genutzt werden können und sich genauso verhalten. Schau dir "
|
495 |
"für mehr Informationen den WordPress Codex an:"
|
496 |
|
497 |
+
#: php/settings.php:427 php/settings.php:450
|
498 |
msgid "PHP-Functions"
|
499 |
msgstr "PHP-Funktionen"
|
500 |
|
501 |
+
#: php/upgrade.php:153 php/upgrade.php:164 php/upgrade.php:175
|
502 |
+
#: php/upgrade.php:186
|
503 |
msgid "Featured Video Plus was <strong>upgraded</strong>."
|
504 |
msgstr "Featured Video Plus wurde <strong>aktualisiert</strong>."
|
505 |
|
506 |
+
#: php/upgrade.php:153
|
507 |
#, php-format
|
508 |
msgid ""
|
509 |
+
"%s <strong>ajax</strong>ifies the Featured Video box and introduces new "
|
510 |
+
"options (especially for the local video player)."
|
|
|
511 |
msgstr ""
|
512 |
+
"In %s wurde die Featured Video box überarbeitet und unterstützt nun AJAX. "
|
513 |
+
"Außerdem gibt es neue Optionen in den Medieneinstellungen, besonders für den "
|
514 |
+
"lokalen Videoplayer."
|
515 |
|
516 |
+
#: php/upgrade.php:153 php/upgrade.php:164 php/upgrade.php:175
|
517 |
+
#: php/upgrade.php:186
|
518 |
#, php-format
|
519 |
msgid "If you like the plugin, please %srate it%s."
|
520 |
msgstr "Wenn dir das Plugin gefällt, bitte %sbewerte es%s."
|
521 |
|
522 |
+
#: php/upgrade.php:164
|
523 |
+
#, php-format
|
524 |
+
msgid ""
|
525 |
+
"%s features a seamless <strong>WP3.5 Media Manager</strong> integration, an "
|
526 |
+
"all new <strong>ajax</strong>ified metabox, time-links (#t=4m2s) for YouTube "
|
527 |
+
"and Dailymotion, new PHP functions for developers and more."
|
528 |
+
msgstr ""
|
529 |
+
"%s integriert den <strong>WP3.5 Media Manager</strong> nahtlos, unterstützt "
|
530 |
+
"nun AJAX, bietet time-links für YouTube und Dailymotion(#t=4m2s), einige "
|
531 |
+
"neue Einstellungen und neue PHP Funktionen für Entwickler."
|
532 |
+
|
533 |
+
#: php/upgrade.php:175
|
534 |
#, php-format
|
535 |
msgid ""
|
536 |
+
"%s features a seamless WP3.5 Media Manager integration, an ajaxified "
|
537 |
+
"metabox, time-links (#t=4m2s) for YouTube and Dailymotion, more "
|
538 |
+
"customization settings and internationalization."
|
539 |
msgstr ""
|
540 |
+
"%s integriert den <strong>WP3.5 Media Manager</strong> nahtlos, bringt AJAX, "
|
541 |
+
"bietet time-links für YouTube und Dailymotion(#t=4m2s), mehr Einstellungen "
|
542 |
+
"und Internationalisierung."
|
543 |
|
544 |
+
#: php/upgrade.php:186
|
545 |
#, php-format
|
546 |
msgid ""
|
547 |
"%s features support for <strong>Local Videos</strong>, a seamless WP3.5 "
|
548 |
+
"Media Manager integration, an ajaxified metabox, time-links (#t=4m2s) for "
|
549 |
+
"YouTube and Dailymotion and many more customization settings."
|
550 |
msgstr ""
|
551 |
"%s integriert unterstützung für <strong>lokale Videos</strong>, den neuen "
|
552 |
+
"WP3.5 Media Manager, eine überarbeitete AJAX-Metabox, time-links (#t=4m2s) "
|
553 |
+
"für YouTube und Dailymotion und viele neue Einstellungsmöglichkeiten."
|
554 |
|
555 |
+
#: php/upgrade.php:198
|
556 |
#, php-format
|
557 |
msgid ""
|
558 |
"Featured Video Plus is <strong>ready to use</strong>. There is a new box on "
|
563 |
"Einträge gibt es eine neue Box um Artikelvideos hinzuzufügen. Außerdem: "
|
564 |
"<strong>Schau in deine %sMedien Einstellungen%s</strong>."
|
565 |
|
566 |
+
#~ msgid "VIDEOJS Player Options"
|
567 |
+
#~ msgstr "VIDEOJS Player Optionen"
|
568 |
+
|
569 |
#~ msgid ""
|
570 |
#~ "%s features more customization settings, internationalization, better "
|
571 |
#~ "error handling and experimental LiveLeak integration."
|
lng/featured-video-plus.pot
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: featured-video-plus 1.3\n"
|
4 |
-
"POT-Creation-Date: 2013-03-
|
5 |
-
"PO-Revision-Date: 2013-03-
|
6 |
"Last-Translator: Alexander Höreth <a.hoereth@gmail.com>\n"
|
7 |
"Language-Team: a.hoereth <a.hoereth@gmail.com>\n"
|
8 |
"Language: en\n"
|
@@ -23,86 +23,86 @@ msgstr ""
|
|
23 |
msgid "Fallback: same video, different format"
|
24 |
msgstr ""
|
25 |
|
26 |
-
#: php/backend.php:
|
27 |
-
#: php/backend.php:
|
28 |
msgid "Featured Video"
|
29 |
msgstr ""
|
30 |
|
31 |
-
#: php/backend.php:
|
32 |
msgid "Outdated WordPress Version"
|
33 |
msgstr ""
|
34 |
|
35 |
-
#: php/backend.php:
|
36 |
#, php-format
|
37 |
msgid ""
|
38 |
"There is WordPress 3.5 out there! The plugin supports older versions way "
|
39 |
"back to 3.1 - but %s is defenitly to old!"
|
40 |
msgstr ""
|
41 |
|
42 |
-
#: php/backend.php:
|
43 |
msgid "Set Featured Video"
|
44 |
msgstr ""
|
45 |
|
46 |
-
#: php/backend.php:
|
47 |
msgid "Set featured video"
|
48 |
msgstr ""
|
49 |
|
50 |
-
#: php/backend.php:
|
51 |
msgid "Set Featured Video Fallback"
|
52 |
msgstr ""
|
53 |
|
54 |
-
#: php/backend.php:
|
55 |
msgid "Set featured video fallback"
|
56 |
msgstr ""
|
57 |
|
58 |
-
#: php/backend.php:
|
59 |
msgid "Supported Video Formats"
|
60 |
msgstr ""
|
61 |
|
62 |
-
#: php/backend.php:
|
63 |
msgid "or"
|
64 |
msgstr ""
|
65 |
|
66 |
-
#: php/backend.php:
|
67 |
msgid "More information"
|
68 |
msgstr ""
|
69 |
|
70 |
-
#: php/backend.php:
|
71 |
msgid "Fallback Video"
|
72 |
msgstr ""
|
73 |
|
74 |
-
#: php/backend.php:
|
75 |
msgid ""
|
76 |
"The two input fields should contain the same video but in distinct formats."
|
77 |
msgstr ""
|
78 |
|
79 |
-
#: php/backend.php:
|
80 |
msgid "Hint"
|
81 |
msgstr ""
|
82 |
|
83 |
-
#: php/backend.php:
|
84 |
#, php-format
|
85 |
msgid "Take a look into the %sContextual Help%s."
|
86 |
msgstr ""
|
87 |
|
88 |
-
#: php/backend.php:
|
89 |
msgid "Featured Image"
|
90 |
msgstr ""
|
91 |
|
92 |
-
#: php/backend.php:
|
93 |
msgid ""
|
94 |
"For automatically displaying the Featured Video a Featured Image is required."
|
95 |
msgstr ""
|
96 |
|
97 |
-
#: php/backend.php:
|
98 |
msgid "Set as Featured Image"
|
99 |
msgstr ""
|
100 |
|
101 |
-
#: php/backend.php:
|
102 |
msgid "The current theme does not support Featured Images"
|
103 |
msgstr ""
|
104 |
|
105 |
-
#: php/backend.php:
|
106 |
#, php-format
|
107 |
msgid ""
|
108 |
"To display Featured Videos you need to use the <code>Shortcode</code> or "
|
@@ -110,50 +110,50 @@ msgid ""
|
|
110 |
"Featured Images</em>" in the %sMedia Settings%s."
|
111 |
msgstr ""
|
112 |
|
113 |
-
#: php/backend.php:
|
114 |
#, php-format
|
115 |
msgid ""
|
116 |
"To use local videos, copy the <code>Link To Media File</code> from your "
|
117 |
"%sMedia Library%s and paste it into the text field."
|
118 |
msgstr ""
|
119 |
|
120 |
-
#: php/backend.php:
|
121 |
#, php-format
|
122 |
msgid ""
|
123 |
"To use local videos, copy the <code>File URL</code> from your %sMedia Library"
|
124 |
"%s and paste it into the text field."
|
125 |
msgstr ""
|
126 |
|
127 |
-
#: php/backend.php:
|
128 |
msgid ""
|
129 |
"The second text field is intended to hold the URL to the same video in a "
|
130 |
"different format. It will be used as fallback if the primary file can not be "
|
131 |
"played."
|
132 |
msgstr ""
|
133 |
|
134 |
-
#: php/backend.php:
|
135 |
msgid "Converting your videos"
|
136 |
msgstr ""
|
137 |
|
138 |
-
#: php/backend.php:
|
139 |
#, php-format
|
140 |
msgid ""
|
141 |
"Take a look at the %sMiro Video Converter%s. It is open source, lightweight "
|
142 |
"and compatible with Windows, Mac and Linux."
|
143 |
msgstr ""
|
144 |
|
145 |
-
#: php/backend.php:
|
146 |
msgid "Fixing upload errors"
|
147 |
msgstr ""
|
148 |
|
149 |
-
#: php/backend.php:
|
150 |
#, php-format
|
151 |
msgid ""
|
152 |
"Read %sthis%s on how to increase the <strong>maximum file upload size</"
|
153 |
"strong>."
|
154 |
msgstr ""
|
155 |
|
156 |
-
#: php/backend.php:
|
157 |
#, php-format
|
158 |
msgid ""
|
159 |
"WordPress by default does not support <code>webM</code>. The plugin "
|
@@ -161,28 +161,28 @@ msgid ""
|
|
161 |
"you can get more information on this."
|
162 |
msgstr ""
|
163 |
|
164 |
-
#: php/backend.php:
|
165 |
msgid "Flash Fallback"
|
166 |
msgstr ""
|
167 |
|
168 |
-
#: php/backend.php:
|
169 |
#, php-format
|
170 |
msgid ""
|
171 |
"The video player, %sVIDEOJS%s, features an Adobe Flash fallback. All you "
|
172 |
"need to do is provide an <code>mp4</code>-video."
|
173 |
msgstr ""
|
174 |
|
175 |
-
#: php/backend.php:
|
176 |
msgid ""
|
177 |
"These are some of the tested URL formats. Everything in bold is required, "
|
178 |
"everything in brackets is optional."
|
179 |
msgstr ""
|
180 |
|
181 |
-
#: php/backend.php:
|
182 |
msgid "Local Media"
|
183 |
msgstr ""
|
184 |
|
185 |
-
#: php/backend.php:
|
186 |
msgid "Valid URLs"
|
187 |
msgstr ""
|
188 |
|
@@ -206,16 +206,20 @@ msgstr ""
|
|
206 |
msgid "Video Align"
|
207 |
msgstr ""
|
208 |
|
|
|
|
|
|
|
|
|
209 |
#: php/settings.php:28
|
210 |
-
msgid "YouTube
|
211 |
msgstr ""
|
212 |
|
213 |
#: php/settings.php:29
|
214 |
-
msgid "Vimeo
|
215 |
msgstr ""
|
216 |
|
217 |
#: php/settings.php:30
|
218 |
-
msgid "Dailymotion
|
219 |
msgstr ""
|
220 |
|
221 |
#: php/settings.php:31
|
@@ -242,7 +246,7 @@ msgid "yes"
|
|
242 |
msgstr ""
|
243 |
|
244 |
#: php/settings.php:62 php/settings.php:88 php/settings.php:111
|
245 |
-
#: php/settings.php:121 php/settings.php:142
|
246 |
msgid "default"
|
247 |
msgstr ""
|
248 |
|
@@ -295,75 +299,90 @@ msgstr ""
|
|
295 |
msgid "right"
|
296 |
msgstr ""
|
297 |
|
298 |
-
#: php/settings.php:
|
299 |
-
msgid "
|
300 |
msgstr ""
|
301 |
|
302 |
-
#: php/settings.php:
|
303 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
304 |
msgstr ""
|
305 |
|
306 |
#: php/settings.php:184
|
307 |
-
msgid "
|
308 |
msgstr ""
|
309 |
|
310 |
#: php/settings.php:185
|
311 |
msgid "Fullscreen Button"
|
312 |
msgstr ""
|
313 |
|
314 |
-
#: php/settings.php:
|
|
|
|
|
|
|
|
|
315 |
msgid "Related Videos"
|
316 |
msgstr ""
|
317 |
|
318 |
-
#: php/settings.php:
|
319 |
msgid "White Progressbar"
|
320 |
msgstr ""
|
321 |
|
322 |
-
#: php/settings.php:
|
323 |
msgid "Logo"
|
324 |
msgstr ""
|
325 |
|
326 |
-
#: php/settings.php:
|
327 |
msgid "Portrait"
|
328 |
msgstr ""
|
329 |
|
330 |
-
#: php/settings.php:
|
331 |
msgid "Title"
|
332 |
msgstr ""
|
333 |
|
334 |
-
#: php/settings.php:
|
335 |
msgid "Byline"
|
336 |
msgstr ""
|
337 |
|
338 |
-
#: php/settings.php:
|
339 |
msgid "Color"
|
340 |
msgstr ""
|
341 |
|
342 |
-
#: php/settings.php:
|
343 |
msgid "Vimeo Plus Videos might ignore these settings."
|
344 |
msgstr ""
|
345 |
|
346 |
-
#: php/settings.php:
|
347 |
msgid "Videoinfo"
|
348 |
msgstr ""
|
349 |
|
350 |
-
#: php/settings.php:
|
351 |
msgid "Syndication Key"
|
352 |
msgstr ""
|
353 |
|
354 |
-
#: php/settings.php:
|
355 |
msgid "Foreground"
|
356 |
msgstr ""
|
357 |
|
358 |
-
#: php/settings.php:
|
359 |
msgid "Highlight"
|
360 |
msgstr ""
|
361 |
|
362 |
-
#: php/settings.php:
|
363 |
msgid "Background"
|
364 |
msgstr ""
|
365 |
|
366 |
-
#: php/settings.php:
|
367 |
#, php-format
|
368 |
msgid ""
|
369 |
"If you have found a bug or are missing a specific video service, please "
|
@@ -371,33 +390,33 @@ msgid ""
|
|
371 |
"Please %srate it!%s"
|
372 |
msgstr ""
|
373 |
|
374 |
-
#: php/settings.php:
|
375 |
msgid ""
|
376 |
"The plugin logs it's version, the WordPress version and WordPress language "
|
377 |
"for internal statistics. Those help for future plugin development."
|
378 |
msgstr ""
|
379 |
|
380 |
-
#: php/settings.php:
|
381 |
msgid ""
|
382 |
"No personal user information is being collected. Still, you can easily Opt-"
|
383 |
"Out and have the data deleted:"
|
384 |
msgstr ""
|
385 |
|
386 |
-
#: php/settings.php:
|
387 |
msgid "Displays the video in its default size."
|
388 |
msgstr ""
|
389 |
|
390 |
-
#: php/settings.php:
|
391 |
msgid ""
|
392 |
"Displays the video with an width of 300 pixel. Height will be fitted to the "
|
393 |
"aspect ratio."
|
394 |
msgstr ""
|
395 |
|
396 |
-
#: php/settings.php:
|
397 |
msgid "Displays the video with an fixed width and height."
|
398 |
msgstr ""
|
399 |
|
400 |
-
#: php/settings.php:
|
401 |
#, php-format
|
402 |
msgid ""
|
403 |
"All parameters are optional. If %s the current post's id will be used. %s is "
|
@@ -405,7 +424,7 @@ msgid ""
|
|
405 |
"representing width and height in pixels, e.g. array(32,32)."
|
406 |
msgstr ""
|
407 |
|
408 |
-
#: php/settings.php:
|
409 |
#, php-format
|
410 |
msgid ""
|
411 |
"The functions are implemented corresponding to the original %sfunctions%s: "
|
@@ -413,44 +432,53 @@ msgid ""
|
|
413 |
"WordPress Codex for further guidance:"
|
414 |
msgstr ""
|
415 |
|
416 |
-
#: php/settings.php:
|
417 |
msgid "PHP-Functions"
|
418 |
msgstr ""
|
419 |
|
420 |
-
#: php/upgrade.php:
|
|
|
421 |
msgid "Featured Video Plus was <strong>upgraded</strong>."
|
422 |
msgstr ""
|
423 |
|
424 |
-
#: php/upgrade.php:
|
425 |
#, php-format
|
426 |
msgid ""
|
427 |
-
"%s
|
428 |
-
"
|
429 |
-
"PHP functions for developers."
|
430 |
msgstr ""
|
431 |
|
432 |
-
#: php/upgrade.php:
|
|
|
433 |
#, php-format
|
434 |
msgid "If you like the plugin, please %srate it%s."
|
435 |
msgstr ""
|
436 |
|
437 |
-
#: php/upgrade.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
438 |
#, php-format
|
439 |
msgid ""
|
440 |
-
"%s features a seamless WP3.5 Media Manager integration,
|
441 |
-
"for YouTube and Dailymotion, more
|
442 |
-
"internationalization."
|
443 |
msgstr ""
|
444 |
|
445 |
-
#: php/upgrade.php:
|
446 |
#, php-format
|
447 |
msgid ""
|
448 |
"%s features support for <strong>Local Videos</strong>, a seamless WP3.5 "
|
449 |
-
"Media Manager integration, time-links (#t=4m2s) for
|
450 |
-
"and many more customization settings."
|
451 |
msgstr ""
|
452 |
|
453 |
-
#: php/upgrade.php:
|
454 |
#, php-format
|
455 |
msgid ""
|
456 |
"Featured Video Plus is <strong>ready to use</strong>. There is a new box on "
|
1 |
msgid ""
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: featured-video-plus 1.3\n"
|
4 |
+
"POT-Creation-Date: 2013-03-22 17:41+0100\n"
|
5 |
+
"PO-Revision-Date: 2013-03-22 17:41+0100\n"
|
6 |
"Last-Translator: Alexander Höreth <a.hoereth@gmail.com>\n"
|
7 |
"Language-Team: a.hoereth <a.hoereth@gmail.com>\n"
|
8 |
"Language: en\n"
|
23 |
msgid "Fallback: same video, different format"
|
24 |
msgstr ""
|
25 |
|
26 |
+
#: php/backend.php:92 php/backend.php:701 php/backend.php:708
|
27 |
+
#: php/backend.php:725 php/backend.php:727
|
28 |
msgid "Featured Video"
|
29 |
msgstr ""
|
30 |
|
31 |
+
#: php/backend.php:123
|
32 |
msgid "Outdated WordPress Version"
|
33 |
msgstr ""
|
34 |
|
35 |
+
#: php/backend.php:123
|
36 |
#, php-format
|
37 |
msgid ""
|
38 |
"There is WordPress 3.5 out there! The plugin supports older versions way "
|
39 |
"back to 3.1 - but %s is defenitly to old!"
|
40 |
msgstr ""
|
41 |
|
42 |
+
#: php/backend.php:134
|
43 |
msgid "Set Featured Video"
|
44 |
msgstr ""
|
45 |
|
46 |
+
#: php/backend.php:134
|
47 |
msgid "Set featured video"
|
48 |
msgstr ""
|
49 |
|
50 |
+
#: php/backend.php:143
|
51 |
msgid "Set Featured Video Fallback"
|
52 |
msgstr ""
|
53 |
|
54 |
+
#: php/backend.php:143
|
55 |
msgid "Set featured video fallback"
|
56 |
msgstr ""
|
57 |
|
58 |
+
#: php/backend.php:152 php/backend.php:654
|
59 |
msgid "Supported Video Formats"
|
60 |
msgstr ""
|
61 |
|
62 |
+
#: php/backend.php:152
|
63 |
msgid "or"
|
64 |
msgstr ""
|
65 |
|
66 |
+
#: php/backend.php:152 php/backend.php:653
|
67 |
msgid "More information"
|
68 |
msgstr ""
|
69 |
|
70 |
+
#: php/backend.php:157
|
71 |
msgid "Fallback Video"
|
72 |
msgstr ""
|
73 |
|
74 |
+
#: php/backend.php:157
|
75 |
msgid ""
|
76 |
"The two input fields should contain the same video but in distinct formats."
|
77 |
msgstr ""
|
78 |
|
79 |
+
#: php/backend.php:164
|
80 |
msgid "Hint"
|
81 |
msgstr ""
|
82 |
|
83 |
+
#: php/backend.php:164
|
84 |
#, php-format
|
85 |
msgid "Take a look into the %sContextual Help%s."
|
86 |
msgstr ""
|
87 |
|
88 |
+
#: php/backend.php:170 php/settings.php:404
|
89 |
msgid "Featured Image"
|
90 |
msgstr ""
|
91 |
|
92 |
+
#: php/backend.php:170
|
93 |
msgid ""
|
94 |
"For automatically displaying the Featured Video a Featured Image is required."
|
95 |
msgstr ""
|
96 |
|
97 |
+
#: php/backend.php:175
|
98 |
msgid "Set as Featured Image"
|
99 |
msgstr ""
|
100 |
|
101 |
+
#: php/backend.php:179 php/settings.php:70
|
102 |
msgid "The current theme does not support Featured Images"
|
103 |
msgstr ""
|
104 |
|
105 |
+
#: php/backend.php:179
|
106 |
#, php-format
|
107 |
msgid ""
|
108 |
"To display Featured Videos you need to use the <code>Shortcode</code> or "
|
110 |
"Featured Images</em>" in the %sMedia Settings%s."
|
111 |
msgstr ""
|
112 |
|
113 |
+
#: php/backend.php:648
|
114 |
#, php-format
|
115 |
msgid ""
|
116 |
"To use local videos, copy the <code>Link To Media File</code> from your "
|
117 |
"%sMedia Library%s and paste it into the text field."
|
118 |
msgstr ""
|
119 |
|
120 |
+
#: php/backend.php:649
|
121 |
#, php-format
|
122 |
msgid ""
|
123 |
"To use local videos, copy the <code>File URL</code> from your %sMedia Library"
|
124 |
"%s and paste it into the text field."
|
125 |
msgstr ""
|
126 |
|
127 |
+
#: php/backend.php:653
|
128 |
msgid ""
|
129 |
"The second text field is intended to hold the URL to the same video in a "
|
130 |
"different format. It will be used as fallback if the primary file can not be "
|
131 |
"played."
|
132 |
msgstr ""
|
133 |
|
134 |
+
#: php/backend.php:656
|
135 |
msgid "Converting your videos"
|
136 |
msgstr ""
|
137 |
|
138 |
+
#: php/backend.php:657
|
139 |
#, php-format
|
140 |
msgid ""
|
141 |
"Take a look at the %sMiro Video Converter%s. It is open source, lightweight "
|
142 |
"and compatible with Windows, Mac and Linux."
|
143 |
msgstr ""
|
144 |
|
145 |
+
#: php/backend.php:658
|
146 |
msgid "Fixing upload errors"
|
147 |
msgstr ""
|
148 |
|
149 |
+
#: php/backend.php:660
|
150 |
#, php-format
|
151 |
msgid ""
|
152 |
"Read %sthis%s on how to increase the <strong>maximum file upload size</"
|
153 |
"strong>."
|
154 |
msgstr ""
|
155 |
|
156 |
+
#: php/backend.php:661
|
157 |
#, php-format
|
158 |
msgid ""
|
159 |
"WordPress by default does not support <code>webM</code>. The plugin "
|
161 |
"you can get more information on this."
|
162 |
msgstr ""
|
163 |
|
164 |
+
#: php/backend.php:663
|
165 |
msgid "Flash Fallback"
|
166 |
msgstr ""
|
167 |
|
168 |
+
#: php/backend.php:664
|
169 |
#, php-format
|
170 |
msgid ""
|
171 |
"The video player, %sVIDEOJS%s, features an Adobe Flash fallback. All you "
|
172 |
"need to do is provide an <code>mp4</code>-video."
|
173 |
msgstr ""
|
174 |
|
175 |
+
#: php/backend.php:668
|
176 |
msgid ""
|
177 |
"These are some of the tested URL formats. Everything in bold is required, "
|
178 |
"everything in brackets is optional."
|
179 |
msgstr ""
|
180 |
|
181 |
+
#: php/backend.php:701 php/backend.php:725
|
182 |
msgid "Local Media"
|
183 |
msgstr ""
|
184 |
|
185 |
+
#: php/backend.php:708 php/backend.php:727
|
186 |
msgid "Valid URLs"
|
187 |
msgstr ""
|
188 |
|
206 |
msgid "Video Align"
|
207 |
msgstr ""
|
208 |
|
209 |
+
#: php/settings.php:27
|
210 |
+
msgid "Local Video Options"
|
211 |
+
msgstr ""
|
212 |
+
|
213 |
#: php/settings.php:28
|
214 |
+
msgid "YouTube Options"
|
215 |
msgstr ""
|
216 |
|
217 |
#: php/settings.php:29
|
218 |
+
msgid "Vimeo Options"
|
219 |
msgstr ""
|
220 |
|
221 |
#: php/settings.php:30
|
222 |
+
msgid "Dailymotion Options"
|
223 |
msgstr ""
|
224 |
|
225 |
#: php/settings.php:31
|
246 |
msgstr ""
|
247 |
|
248 |
#: php/settings.php:62 php/settings.php:88 php/settings.php:111
|
249 |
+
#: php/settings.php:121 php/settings.php:142
|
250 |
msgid "default"
|
251 |
msgstr ""
|
252 |
|
299 |
msgid "right"
|
300 |
msgstr ""
|
301 |
|
302 |
+
#: php/settings.php:161
|
303 |
+
msgid "Use CDN"
|
304 |
msgstr ""
|
305 |
|
306 |
+
#: php/settings.php:162
|
307 |
+
msgid "Include JS"
|
308 |
+
msgstr ""
|
309 |
+
|
310 |
+
#: php/settings.php:163
|
311 |
+
msgid "Include CSS"
|
312 |
+
msgstr ""
|
313 |
+
|
314 |
+
#: php/settings.php:165
|
315 |
+
msgid ""
|
316 |
+
"Disabling JS and/or CSS will break the local video player. Disable only when "
|
317 |
+
"you want to replace VideoJS with a different script and know what you are "
|
318 |
+
"doing."
|
319 |
msgstr ""
|
320 |
|
321 |
#: php/settings.php:184
|
322 |
+
msgid "Light Theme"
|
323 |
msgstr ""
|
324 |
|
325 |
#: php/settings.php:185
|
326 |
msgid "Fullscreen Button"
|
327 |
msgstr ""
|
328 |
|
329 |
+
#: php/settings.php:193
|
330 |
+
msgid "Info"
|
331 |
+
msgstr ""
|
332 |
+
|
333 |
+
#: php/settings.php:195
|
334 |
msgid "Related Videos"
|
335 |
msgstr ""
|
336 |
|
337 |
+
#: php/settings.php:196
|
338 |
msgid "White Progressbar"
|
339 |
msgstr ""
|
340 |
|
341 |
+
#: php/settings.php:198 php/settings.php:250
|
342 |
msgid "Logo"
|
343 |
msgstr ""
|
344 |
|
345 |
+
#: php/settings.php:219
|
346 |
msgid "Portrait"
|
347 |
msgstr ""
|
348 |
|
349 |
+
#: php/settings.php:220
|
350 |
msgid "Title"
|
351 |
msgstr ""
|
352 |
|
353 |
+
#: php/settings.php:221
|
354 |
msgid "Byline"
|
355 |
msgstr ""
|
356 |
|
357 |
+
#: php/settings.php:224
|
358 |
msgid "Color"
|
359 |
msgstr ""
|
360 |
|
361 |
+
#: php/settings.php:228
|
362 |
msgid "Vimeo Plus Videos might ignore these settings."
|
363 |
msgstr ""
|
364 |
|
365 |
+
#: php/settings.php:251
|
366 |
msgid "Videoinfo"
|
367 |
msgstr ""
|
368 |
|
369 |
+
#: php/settings.php:252
|
370 |
msgid "Syndication Key"
|
371 |
msgstr ""
|
372 |
|
373 |
+
#: php/settings.php:256
|
374 |
msgid "Foreground"
|
375 |
msgstr ""
|
376 |
|
377 |
+
#: php/settings.php:261
|
378 |
msgid "Highlight"
|
379 |
msgstr ""
|
380 |
|
381 |
+
#: php/settings.php:266
|
382 |
msgid "Background"
|
383 |
msgstr ""
|
384 |
|
385 |
+
#: php/settings.php:283
|
386 |
#, php-format
|
387 |
msgid ""
|
388 |
"If you have found a bug or are missing a specific video service, please "
|
390 |
"Please %srate it!%s"
|
391 |
msgstr ""
|
392 |
|
393 |
+
#: php/settings.php:289
|
394 |
msgid ""
|
395 |
"The plugin logs it's version, the WordPress version and WordPress language "
|
396 |
"for internal statistics. Those help for future plugin development."
|
397 |
msgstr ""
|
398 |
|
399 |
+
#: php/settings.php:291
|
400 |
msgid ""
|
401 |
"No personal user information is being collected. Still, you can easily Opt-"
|
402 |
"Out and have the data deleted:"
|
403 |
msgstr ""
|
404 |
|
405 |
+
#: php/settings.php:380
|
406 |
msgid "Displays the video in its default size."
|
407 |
msgstr ""
|
408 |
|
409 |
+
#: php/settings.php:384
|
410 |
msgid ""
|
411 |
"Displays the video with an width of 300 pixel. Height will be fitted to the "
|
412 |
"aspect ratio."
|
413 |
msgstr ""
|
414 |
|
415 |
+
#: php/settings.php:388
|
416 |
msgid "Displays the video with an fixed width and height."
|
417 |
msgstr ""
|
418 |
|
419 |
+
#: php/settings.php:401
|
420 |
#, php-format
|
421 |
msgid ""
|
422 |
"All parameters are optional. If %s the current post's id will be used. %s is "
|
424 |
"representing width and height in pixels, e.g. array(32,32)."
|
425 |
msgstr ""
|
426 |
|
427 |
+
#: php/settings.php:404
|
428 |
#, php-format
|
429 |
msgid ""
|
430 |
"The functions are implemented corresponding to the original %sfunctions%s: "
|
432 |
"WordPress Codex for further guidance:"
|
433 |
msgstr ""
|
434 |
|
435 |
+
#: php/settings.php:427 php/settings.php:450
|
436 |
msgid "PHP-Functions"
|
437 |
msgstr ""
|
438 |
|
439 |
+
#: php/upgrade.php:153 php/upgrade.php:164 php/upgrade.php:175
|
440 |
+
#: php/upgrade.php:186
|
441 |
msgid "Featured Video Plus was <strong>upgraded</strong>."
|
442 |
msgstr ""
|
443 |
|
444 |
+
#: php/upgrade.php:153
|
445 |
#, php-format
|
446 |
msgid ""
|
447 |
+
"%s <strong>ajax</strong>ifies the Featured Video box and introduces new "
|
448 |
+
"options (especially for the local video player)."
|
|
|
449 |
msgstr ""
|
450 |
|
451 |
+
#: php/upgrade.php:153 php/upgrade.php:164 php/upgrade.php:175
|
452 |
+
#: php/upgrade.php:186
|
453 |
#, php-format
|
454 |
msgid "If you like the plugin, please %srate it%s."
|
455 |
msgstr ""
|
456 |
|
457 |
+
#: php/upgrade.php:164
|
458 |
+
#, php-format
|
459 |
+
msgid ""
|
460 |
+
"%s features a seamless <strong>WP3.5 Media Manager</strong> integration, an "
|
461 |
+
"all new <strong>ajax</strong>ified metabox, time-links (#t=4m2s) for YouTube "
|
462 |
+
"and Dailymotion, new PHP functions for developers and more."
|
463 |
+
msgstr ""
|
464 |
+
|
465 |
+
#: php/upgrade.php:175
|
466 |
#, php-format
|
467 |
msgid ""
|
468 |
+
"%s features a seamless WP3.5 Media Manager integration, an ajaxified "
|
469 |
+
"metabox, time-links (#t=4m2s) for YouTube and Dailymotion, more "
|
470 |
+
"customization settings and internationalization."
|
471 |
msgstr ""
|
472 |
|
473 |
+
#: php/upgrade.php:186
|
474 |
#, php-format
|
475 |
msgid ""
|
476 |
"%s features support for <strong>Local Videos</strong>, a seamless WP3.5 "
|
477 |
+
"Media Manager integration, an ajaxified metabox, time-links (#t=4m2s) for "
|
478 |
+
"YouTube and Dailymotion and many more customization settings."
|
479 |
msgstr ""
|
480 |
|
481 |
+
#: php/upgrade.php:198
|
482 |
#, php-format
|
483 |
msgid ""
|
484 |
"Featured Video Plus is <strong>ready to use</strong>. There is a new box on "
|
php/backend.php
CHANGED
@@ -68,14 +68,16 @@ class featured_video_plus_backend {
|
|
68 |
$upload_dir = wp_upload_dir();
|
69 |
wp_localize_script( 'fvp_backend', 'fvp_backend_data', array(
|
70 |
'wp_upload_dir' => $upload_dir['baseurl'],
|
|
|
71 |
'default_value' => $this->default_value,
|
72 |
'default_value_sec' => $this->default_value_sec,
|
73 |
'wp_35' => $wp_35
|
74 |
) );
|
75 |
}
|
76 |
|
77 |
-
|
78 |
-
|
|
|
79 |
}
|
80 |
|
81 |
/**
|
@@ -112,7 +114,7 @@ class featured_video_plus_backend {
|
|
112 |
$has_post_video = has_post_video($post_id);
|
113 |
|
114 |
$options = get_option( 'fvp-settings' );
|
115 |
-
$meta =
|
116 |
|
117 |
echo "\n\n\n<!-- Featured Video Plus Metabox -->\n";
|
118 |
|
@@ -120,15 +122,18 @@ class featured_video_plus_backend {
|
|
120 |
if( get_bloginfo('version') < 3.1 )
|
121 |
printf ('<div class="fvp_warning"><p class="description"><strong>'.__('Outdated WordPress Version', 'featured-video-plus').':</strong> '.__('There is WordPress 3.5 out there! The plugin supports older versions way back to 3.1 - but %s is defenitly to old!', 'featured-video-plus').'</p></div>', get_bloginfo('version') );
|
122 |
|
123 |
-
//
|
|
|
124 |
if( $has_post_video )
|
125 |
-
echo
|
|
|
126 |
|
127 |
// input box containing the featured video URL
|
128 |
$legal= isset($meta['valid']) && !$meta['valid'] ? ' fvp_invalid' : '';
|
129 |
-
$full = $meta['prov'] == 'local' ? wp_get_attachment_url($meta['id']) : isset($meta['full']) ? $meta['full'] : $this->default_value;
|
130 |
echo '<div class="fvp_input_wrapper" data-title="'.__('Set Featured Video', 'featured-video-plus').'" data-button="'.__('Set featured video', 'featured-video-plus').'" data-target="#fvp_video">'."\n\t";
|
131 |
echo '<textarea class="fvp_input'.$legal.'" id="fvp_video" name="fvp_video" type="text">' . $full . '</textarea>' . "\n\t";
|
|
|
132 |
if( !(get_bloginfo('version') < 3.5) )
|
133 |
echo '<a href="#" class="fvp_video_choose"><span class="fvp_media_icon" style="background-image: url(\''.get_bloginfo('wpurl').'/wp-admin/images/media-button.png\');"></span></a>'."\n";
|
134 |
echo "</div>\n";
|
@@ -137,6 +142,7 @@ class featured_video_plus_backend {
|
|
137 |
$class = !isset($meta['sec']) || empty($meta['sec']) ? ' defaultTextActive' : '';
|
138 |
echo '<div class="fvp_input_wrapper" id="fvp_sec_wrapper" data-title="'.__('Set Featured Video Fallback', 'featured-video-plus').'" data-button="'.__('Set featured video fallback', 'featured-video-plus').'" data-target="#fvp_sec">'."\n\t";
|
139 |
echo '<textarea class="fvp_input'.$class.'" id="fvp_sec" name="fvp_sec" type="text">' . $sec . '</textarea>' . "\n\t";
|
|
|
140 |
if( !(get_bloginfo('version') < 3.5) )
|
141 |
echo '<a href="#" class="fvp_video_choose"><span class="fvp_media_icon" style="background-image: url(\''.get_bloginfo('wpurl').'/wp-admin/images/media-button.png\');"></span></a>'."\n";
|
142 |
echo "</div>\n";
|
@@ -157,8 +163,7 @@ class featured_video_plus_backend {
|
|
157 |
echo "<div id=\"fvp_help_notice\" class=\"fvp_notice".$class."\">\n\t<p class=\"description\">\n\t\t";
|
158 |
echo '<span style="font-weight: bold;">'.__('Hint', 'featured-video-plus').':</span> '.sprintf(__('Take a look into the %sContextual Help%s.', 'featured-video-plus'), '<a href="#contextual-help'.$wrap.'" id="fvp_help_toggle">', '</a>');
|
159 |
echo "\n\t</p>\n</div>\n";
|
160 |
-
|
161 |
-
<?php
|
162 |
// no featured image warning
|
163 |
$class = $has_featimg || !$has_post_video || (isset($options['overwrite']) && !$options['overwrite']) ? ' fvp_hidden' : '';
|
164 |
echo '<div id="fvp_featimg_warning" class="fvp_notice'.$class.'">'."\n\t".'<p class="description">';
|
@@ -166,8 +171,8 @@ class featured_video_plus_backend {
|
|
166 |
echo "</p>\n</div>\n";
|
167 |
|
168 |
// set as featured image
|
169 |
-
$class = $meta['prov'] == 'local' || !$has_post_video || ($has_featimg && $featimg_is_fvp) ? ' class="fvp_hidden"' : '';
|
170 |
-
printf('<p id="fvp_set_featimg_box"'.$class.'>'."\n\t".'<span id="fvp_set_featimg_input">'."\n\t\t".'<input id="fvp_set_featimg" name="fvp_set_featimg" type="checkbox" value="set_featimg" />'."\n\t\t".'<label for="fvp_set_featimg"> %s</label>'."\n\t".'</span>'."\n\t".'<a
|
171 |
|
172 |
// current theme does not support Featured Images
|
173 |
if( !current_theme_supports('post-thumbnails') && $options['overwrite'] )
|
@@ -183,120 +188,206 @@ class featured_video_plus_backend {
|
|
183 |
*
|
184 |
* @param int $post_id
|
185 |
*/
|
186 |
-
public function metabox_save($post_id
|
187 |
|
188 |
if (( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) || // Autosave, do nothing
|
189 |
( defined( 'DOING_AJAX' ) && DOING_AJAX ) || // AJAX? Not used here
|
190 |
( !current_user_can( 'edit_post', $post_id ) ) || // Check user permissions
|
191 |
-
( false !== wp_is_post_revision( $post_id ) )
|
192 |
-
( ( isset($_POST['fvp_nonce']) && // WP Form submitted..
|
193 |
-
!wp_verify_nonce( $_POST['fvp_nonce'], FVP_NAME ) ) && // ..and wrong nonce?
|
194 |
-
!is_string($set_featimg) )
|
195 |
) return;
|
196 |
|
197 |
-
|
198 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
199 |
|
200 |
-
|
|
|
201 |
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
|
|
|
|
|
|
|
|
|
|
206 |
|
207 |
-
|
|
|
|
|
208 |
|
209 |
-
|
210 |
-
|
211 |
-
$this->delete_featured_video_image($post_id, $meta);
|
212 |
|
|
|
|
|
|
|
|
|
|
|
213 |
|
214 |
-
|
215 |
-
|
216 |
-
|
|
|
|
|
|
|
|
|
|
|
217 |
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
if( ($video == $meta['full']) &&
|
222 |
-
(!$set_featimg) &&
|
223 |
-
(empty($sec) || ( isset($meta['sec']) && $meta['sec'] == $sec ) ) )
|
224 |
-
return;
|
225 |
|
226 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
227 |
|
228 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
229 |
$local = wp_upload_dir();
|
230 |
-
preg_match('/(vimeo|youtu|dailymotion|liveleak|'.preg_quote($local['baseurl'], '/').')/i', $
|
231 |
-
if( isset($
|
232 |
-
$
|
233 |
-
else
|
234 |
|
235 |
-
switch ($
|
236 |
|
237 |
// local video
|
238 |
case $local['baseurl']:
|
239 |
-
$ext = pathinfo( $
|
240 |
if( !isset($ext) || ($ext != 'mp4' && $ext != 'ogv' && $ext != 'webm' && $ext != 'ogg') ) return; // wrong extension
|
241 |
|
242 |
-
$
|
243 |
-
$
|
244 |
|
245 |
if( !empty($sec) ) {
|
246 |
-
preg_match('/(' . preg_quote($local['baseurl'], '/') . ')/i', $sec, $
|
247 |
$ext2 = pathinfo( $sec, PATHINFO_EXTENSION );
|
248 |
-
if ( isset($
|
249 |
-
($ext2 == 'mp4' || $ext2 == 'ogv' || $ext2 == 'webm' || $ext2 == 'ogg'))
|
250 |
-
$
|
251 |
-
|
|
|
252 |
}
|
253 |
|
254 |
break;
|
255 |
|
256 |
// youtube.com
|
257 |
case 'youtu':
|
258 |
-
$
|
259 |
case 'youtube':
|
260 |
// domain 11 char ID time-link parameter
|
261 |
$pattern = '#(?:https?\:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com(?:\/embed\/|\/v\/|\/watch\?v=|\/watch\?.+&v=))([\w-]{11})#x';
|
262 |
-
preg_match($pattern, $
|
263 |
-
if( !isset($
|
264 |
break;
|
265 |
|
266 |
-
$video_id = $
|
267 |
|
268 |
// access API
|
269 |
$response = wp_remote_get( 'http://youtube.com/get_video_info?video_id=' . $video_id );
|
270 |
if( is_wp_error( $response ) )
|
271 |
break;
|
272 |
-
parse_str( $response['body'], $
|
273 |
-
if( isset($
|
274 |
break;
|
275 |
|
276 |
// extract info of a time-link
|
277 |
-
preg_match('/t=(?:(\d+)m)?(?:(\d+)s)?/', $
|
278 |
if( !empty($attr[1] ) || !empty($attr[2]) ) {
|
279 |
$min = !empty($attr[1]) ? $attr[1]*60 : 0;
|
280 |
$sek = !empty($attr[2]) ? $attr[2] : 0;
|
281 |
-
$
|
282 |
} else {
|
283 |
-
preg_match('/start=(\d+)/', $
|
284 |
if( !empty($attr[1] ) )
|
285 |
-
$
|
286 |
else
|
287 |
-
$
|
288 |
}
|
289 |
|
290 |
// generate video metadata
|
291 |
-
$
|
292 |
-
'
|
293 |
-
'
|
294 |
-
'
|
295 |
-
'
|
296 |
-
'
|
297 |
-
'
|
298 |
-
'
|
299 |
-
'
|
|
|
|
|
|
|
300 |
);
|
301 |
|
302 |
break;
|
@@ -305,15 +396,15 @@ class featured_video_plus_backend {
|
|
305 |
case 'vimeo':
|
306 |
// domain video ID
|
307 |
$pattern = '#(?:https?://)?(?:\w+.)?vimeo.com/(?:video/|moogaloop\.swf\?clip_id=)?(\w+)#x';
|
308 |
-
preg_match($pattern, $
|
309 |
-
$video_id = $
|
310 |
|
311 |
// access API: http://developer.vimeo.com/apis/simple
|
312 |
$response = wp_remote_get( 'http://vimeo.com/api/v2/video/' . $video_id . '.php' );
|
313 |
if( is_wp_error( $response ) || (isset($response['response']['code']) && $response['response']['code'] == '404') )
|
314 |
break;
|
315 |
// title, description, upload_date, thumbnail_large, user_name, tags
|
316 |
-
$
|
317 |
|
318 |
// extract info of a time-link
|
319 |
/*preg_match('/#t=((?:\d+m)?(?:\d+s)?)/', $video, $attr);
|
@@ -321,15 +412,17 @@ class featured_video_plus_backend {
|
|
321 |
$video_attr = $attr[1];*/
|
322 |
|
323 |
// generate video metadata
|
324 |
-
$
|
325 |
-
'
|
326 |
-
'
|
327 |
-
'
|
328 |
-
'
|
329 |
-
'
|
330 |
-
'
|
331 |
-
'
|
332 |
-
'
|
|
|
|
|
333 |
);
|
334 |
|
335 |
break;
|
@@ -337,46 +430,49 @@ class featured_video_plus_backend {
|
|
337 |
// dailymotion.com
|
338 |
case 'dailymotion':
|
339 |
// domain video ID
|
340 |
-
preg_match('/dailymotion.com\/(?:embed\/)?video\/([^_#\?]+)/', $
|
341 |
-
if( !isset($
|
342 |
break;
|
343 |
|
344 |
-
$video_id = $
|
345 |
|
346 |
// access API: http://www.dailymotion.com/doc/api/obj-video.html
|
347 |
$url = 'https://api.dailymotion.com/video/'.$video_id.'?fields=title,description,created_time,owner.screenname,tags,thumbnail_url,thumbnail_large_url,url,aspect_ratio';
|
348 |
$request = new WP_Http;
|
349 |
-
$
|
350 |
-
if( is_wp_error($
|
351 |
break;
|
352 |
-
$
|
353 |
-
if( !isset($
|
354 |
break;
|
355 |
|
356 |
// extract info of a time-link
|
357 |
-
preg_match('/t=(?:(\d+)m)?(?:(\d+)s)?/', $
|
358 |
if( !empty($attr[1] ) || !empty($attr[2]) ) {
|
359 |
$min = !empty($attr[1]) ? $attr[1]*60 : 0;
|
360 |
$sek = !empty($attr[2]) ? $attr[2] : 0;
|
361 |
-
$
|
362 |
} else {
|
363 |
-
preg_match('/start=(\d+)/', $
|
364 |
if( !empty($attr[1] ) )
|
365 |
-
$
|
366 |
else
|
367 |
-
$
|
368 |
}
|
369 |
|
370 |
// generate video metadata
|
371 |
-
$
|
372 |
-
'
|
373 |
-
'
|
374 |
-
'
|
375 |
-
'
|
376 |
-
'
|
377 |
-
'
|
378 |
-
'
|
379 |
-
'
|
|
|
|
|
|
|
380 |
);
|
381 |
|
382 |
break;
|
@@ -386,12 +482,12 @@ class featured_video_plus_backend {
|
|
386 |
// source url and other metadata from the source code.
|
387 |
case 'liveleak': // view-source:http://www.liveleak.com/view?i=45f_1358105976&ajax=1
|
388 |
// domain video ID
|
389 |
-
preg_match('/(?:http:\/\/)?(?:www\.)?liveleak.com\/view\?i=([\d\w]{3}_\d{10})/', $
|
390 |
-
if( !isset($
|
391 |
break;
|
392 |
|
393 |
// no API, get stripped down version of the full website
|
394 |
-
$response = wp_remote_get( 'http://liveleak.com/view?i='.$
|
395 |
if( is_wp_error( $response ) )
|
396 |
break;
|
397 |
|
@@ -403,28 +499,30 @@ class featured_video_plus_backend {
|
|
403 |
$llmeta = explode(',', $llmeta[2]);
|
404 |
foreach( $llmeta as $line ) {
|
405 |
$thisline = explode(': ', $line);
|
406 |
-
$
|
407 |
}
|
408 |
|
409 |
preg_match('#class="section_title".*>([\s\w]+)</span>#', $response['body'], $title);
|
410 |
preg_match('#id="body_text".*><p>(.*)<\/p><\/#', $response['body'], $desc);
|
411 |
-
$
|
412 |
|
413 |
-
$
|
414 |
-
'
|
|
|
|
|
415 |
'description' => isset($desc[1]) ? $desc[1] : '',
|
416 |
-
'filename' => sanitize_file_name($
|
417 |
'timestamp' => time(),
|
418 |
-
'author' => '', // <strong>By:</strong> <a href="http://www.liveleak.com/c/k-doe">k-doe</a>
|
419 |
-
'tags' => '', // <strong>Tags:</strong> <a href="browse?q=Drive By">Drive By</a>, <a href="browse?q=Fire Extinguisher">Fire Extinguisher</a><br />
|
420 |
-
'img' => isset($
|
421 |
'url' => 'http://liveleak.com/view?i='.$video_data[1]
|
422 |
);
|
423 |
break;
|
424 |
}
|
425 |
|
426 |
// if the regex fails the video is provided by prochan, not LL
|
427 |
-
$
|
428 |
$type = 'iframe';
|
429 |
|
430 |
// prochan.com (only implemented as used by liveleak
|
@@ -433,76 +531,64 @@ class featured_video_plus_backend {
|
|
433 |
preg_match('#<iframe.*src="(?:http://)?(?:www\.)?prochan.com/embed\?f=([\d\w]{3}_\d{10})".*></iframe>#', $response['body'], $proframe);
|
434 |
if( !isset($proframe[1]) )
|
435 |
break;
|
436 |
-
$
|
|
|
|
|
|
|
437 |
}
|
438 |
break;
|
439 |
}
|
|
|
|
|
440 |
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
$
|
456 |
-
|
457 |
-
|
458 |
-
'post_name' => $video_info['filename']
|
459 |
-
);
|
460 |
-
|
461 |
-
// pull external img to local server and add to media library
|
462 |
-
include_once( FVP_DIR . 'php/somatic_attach_external_image.php' );
|
463 |
-
$video_img = somatic_attach_external_image($video_info['img'], $post_id, false, $video_info['filename'], $video_img_data);
|
464 |
-
|
465 |
-
// generate picture metadata
|
466 |
-
$video_img_meta = wp_get_attachment_metadata( $video_img );
|
467 |
-
$video_img_meta['image_meta'] = array(
|
468 |
-
'aperture' => 0,
|
469 |
-
'credit' => $video_id,
|
470 |
-
'camera' => $video_prov,
|
471 |
-
'caption' => $video_info['description'],
|
472 |
-
'created_timestamp' => $video_info['timestamp'],
|
473 |
-
'copyright' => $video_info['author'],
|
474 |
-
'focal_length' => 0,
|
475 |
-
'iso' => 0,
|
476 |
-
'shutter_speed' => 0,
|
477 |
-
'title' => $video_info['title']
|
478 |
-
);
|
479 |
-
|
480 |
-
// save picture metadata
|
481 |
-
wp_update_attachment_metadata($video_img, $video_img_meta);
|
482 |
-
update_post_meta( $video_img, '_fvp_image', $video_prov . '?' . $video_id );
|
483 |
-
}
|
484 |
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
489 |
|
|
|
|
|
|
|
490 |
}
|
491 |
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
'sec_id'=> isset($video_sec_id) && !empty($video_sec_id) ? $video_sec_id : '',
|
497 |
-
'img' => isset($video_img) ? $video_img : '',
|
498 |
-
'prov' => isset($video_prov) ? $video_prov : '',
|
499 |
-
'attr' => isset($video_attr) ? $video_attr : '',
|
500 |
-
'valid' => $valid
|
501 |
-
);
|
502 |
-
|
503 |
-
update_post_meta( $post_id, '_fvp_video', serialize($meta) );
|
504 |
|
505 |
-
return;
|
506 |
}
|
507 |
|
508 |
/**
|
@@ -512,7 +598,7 @@ class featured_video_plus_backend {
|
|
512 |
* @since 1.4
|
513 |
*/
|
514 |
function delete_featured_video_image($post_id, $meta) {
|
515 |
-
|
516 |
|
517 |
// Unset featured image if it is from this video
|
518 |
delete_post_meta( $post_id, '_thumbnail_id', $meta['img'] );
|
68 |
$upload_dir = wp_upload_dir();
|
69 |
wp_localize_script( 'fvp_backend', 'fvp_backend_data', array(
|
70 |
'wp_upload_dir' => $upload_dir['baseurl'],
|
71 |
+
'loading_gif' => get_admin_url(null,'images/loading.gif'),
|
72 |
'default_value' => $this->default_value,
|
73 |
'default_value_sec' => $this->default_value_sec,
|
74 |
'wp_35' => $wp_35
|
75 |
) );
|
76 |
}
|
77 |
|
78 |
+
if( ($hook_suffix == 'options-media.php') || ($hook_suffix == 'post.php' && isset($_GET['post'])) )
|
79 |
+
wp_enqueue_style( 'fvp_backend', FVP_URL . 'css/backend-min.css', array(), FVP_VERSION ); // production
|
80 |
+
//wp_enqueue_style( 'fvp_backend', FVP_URL . 'css/backend.css', array(), FVP_VERSION ); // development
|
81 |
}
|
82 |
|
83 |
/**
|
114 |
$has_post_video = has_post_video($post_id);
|
115 |
|
116 |
$options = get_option( 'fvp-settings' );
|
117 |
+
$meta = get_post_meta($post_id, '_fvp_video', true);
|
118 |
|
119 |
echo "\n\n\n<!-- Featured Video Plus Metabox -->\n";
|
120 |
|
122 |
if( get_bloginfo('version') < 3.1 )
|
123 |
printf ('<div class="fvp_warning"><p class="description"><strong>'.__('Outdated WordPress Version', 'featured-video-plus').':</strong> '.__('There is WordPress 3.5 out there! The plugin supports older versions way back to 3.1 - but %s is defenitly to old!', 'featured-video-plus').'</p></div>', get_bloginfo('version') );
|
124 |
|
125 |
+
// current featured video
|
126 |
+
echo '<div id="fvp_current_video" style="background: no-repeat center center;">'; //url(\''.get_admin_url(null,'images/loading.gif').'\')
|
127 |
if( $has_post_video )
|
128 |
+
echo get_the_post_video( $post_id, array(256,144) );
|
129 |
+
echo '</div>'."\n\n";
|
130 |
|
131 |
// input box containing the featured video URL
|
132 |
$legal= isset($meta['valid']) && !$meta['valid'] ? ' fvp_invalid' : '';
|
133 |
+
$full = isset($meta['prov']) && $meta['prov'] == 'local' ? wp_get_attachment_url($meta['id']) : isset($meta['full']) ? $meta['full'] : $this->default_value;
|
134 |
echo '<div class="fvp_input_wrapper" data-title="'.__('Set Featured Video', 'featured-video-plus').'" data-button="'.__('Set featured video', 'featured-video-plus').'" data-target="#fvp_video">'."\n\t";
|
135 |
echo '<textarea class="fvp_input'.$legal.'" id="fvp_video" name="fvp_video" type="text">' . $full . '</textarea>' . "\n\t";
|
136 |
+
echo '<input type="hidden" class="fvp_mirror" value="'.$full."\" />\n\t";
|
137 |
if( !(get_bloginfo('version') < 3.5) )
|
138 |
echo '<a href="#" class="fvp_video_choose"><span class="fvp_media_icon" style="background-image: url(\''.get_bloginfo('wpurl').'/wp-admin/images/media-button.png\');"></span></a>'."\n";
|
139 |
echo "</div>\n";
|
142 |
$class = !isset($meta['sec']) || empty($meta['sec']) ? ' defaultTextActive' : '';
|
143 |
echo '<div class="fvp_input_wrapper" id="fvp_sec_wrapper" data-title="'.__('Set Featured Video Fallback', 'featured-video-plus').'" data-button="'.__('Set featured video fallback', 'featured-video-plus').'" data-target="#fvp_sec">'."\n\t";
|
144 |
echo '<textarea class="fvp_input'.$class.'" id="fvp_sec" name="fvp_sec" type="text">' . $sec . '</textarea>' . "\n\t";
|
145 |
+
echo '<input type="hidden" class="fvp_mirror" value="'.$sec."\" />\n\t";
|
146 |
if( !(get_bloginfo('version') < 3.5) )
|
147 |
echo '<a href="#" class="fvp_video_choose"><span class="fvp_media_icon" style="background-image: url(\''.get_bloginfo('wpurl').'/wp-admin/images/media-button.png\');"></span></a>'."\n";
|
148 |
echo "</div>\n";
|
163 |
echo "<div id=\"fvp_help_notice\" class=\"fvp_notice".$class."\">\n\t<p class=\"description\">\n\t\t";
|
164 |
echo '<span style="font-weight: bold;">'.__('Hint', 'featured-video-plus').':</span> '.sprintf(__('Take a look into the %sContextual Help%s.', 'featured-video-plus'), '<a href="#contextual-help'.$wrap.'" id="fvp_help_toggle">', '</a>');
|
165 |
echo "\n\t</p>\n</div>\n";
|
166 |
+
|
|
|
167 |
// no featured image warning
|
168 |
$class = $has_featimg || !$has_post_video || (isset($options['overwrite']) && !$options['overwrite']) ? ' fvp_hidden' : '';
|
169 |
echo '<div id="fvp_featimg_warning" class="fvp_notice'.$class.'">'."\n\t".'<p class="description">';
|
171 |
echo "</p>\n</div>\n";
|
172 |
|
173 |
// set as featured image
|
174 |
+
$class = isset($meta['prov']) && $meta['prov'] == 'local' || !$has_post_video || ($has_featimg && $featimg_is_fvp) ? ' class="fvp_hidden"' : '';
|
175 |
+
printf('<p id="fvp_set_featimg_box"'.$class.'>'."\n\t".'<span id="fvp_set_featimg_input">'."\n\t\t".'<input id="fvp_set_featimg" name="fvp_set_featimg" type="checkbox" value="set_featimg" />'."\n\t\t".'<label for="fvp_set_featimg"> %s</label>'."\n\t".'</span>'."\n\t".'<a class="fvp_hidden" id="fvp_set_featimg_link" href="#">%s</a>'."\n".'</p>'."\n", __('Set as Featured Image', 'featured-video-plus'), __('Set as Featured Image', 'featured-video-plus') );
|
176 |
|
177 |
// current theme does not support Featured Images
|
178 |
if( !current_theme_supports('post-thumbnails') && $options['overwrite'] )
|
188 |
*
|
189 |
* @param int $post_id
|
190 |
*/
|
191 |
+
public function metabox_save($post_id){
|
192 |
|
193 |
if (( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) || // Autosave, do nothing
|
194 |
( defined( 'DOING_AJAX' ) && DOING_AJAX ) || // AJAX? Not used here
|
195 |
( !current_user_can( 'edit_post', $post_id ) ) || // Check user permissions
|
196 |
+
( false !== wp_is_post_revision( $post_id ) ) // Return if it's a post revision
|
|
|
|
|
|
|
197 |
) return;
|
198 |
|
199 |
+
$post = array(
|
200 |
+
'id' => $post_id,
|
201 |
+
'fvp_nonce' => isset($_POST['fvp_nonce']) ? $_POST['fvp_nonce'] : '',
|
202 |
+
'fvp_set_featimg' => isset($_POST['fvp_set_featimg']) ? $_POST['fvp_set_featimg'] : '',
|
203 |
+
'fvp_video' => isset($_POST['fvp_video']) ? $_POST['fvp_video'] : '',
|
204 |
+
'fvp_sec' => isset($_POST['fvp_sec']) ? $_POST['fvp_sec'] : ''
|
205 |
+
);
|
206 |
+
$this->save($post);
|
207 |
|
208 |
+
return;
|
209 |
+
}
|
210 |
|
211 |
+
public function ajax() {
|
212 |
+
$post = array(
|
213 |
+
'id' => $_POST['id'],
|
214 |
+
'fvp_nonce' => isset($_POST['fvp_nonce']) ? $_POST['fvp_nonce'] : '',
|
215 |
+
'fvp_set_featimg' => isset($_POST['fvp_set_featimg']) ? $_POST['fvp_set_featimg'] : '',
|
216 |
+
'fvp_video' => isset($_POST['fvp_video']) ? $_POST['fvp_video'] : '',
|
217 |
+
'fvp_sec' => isset($_POST['fvp_sec']) ? $_POST['fvp_sec'] : ''
|
218 |
+
);
|
219 |
+
$meta = $this->save($post);
|
220 |
|
221 |
+
if(isset($meta['id'])) {
|
222 |
+
if( has_post_video($post['id']) )
|
223 |
+
$video = get_the_post_video( $post['id'], array(256,144) );
|
224 |
|
225 |
+
if( has_post_thumbnail($post['id']) )
|
226 |
+
$img = _wp_post_thumbnail_html( get_post_thumbnail_id($post['id']), $post['id'] );
|
|
|
227 |
|
228 |
+
echo json_encode(array( 'typ' => 'updated', 'valid' => $meta['valid'], 'video' => $video, 'img' => $img ));
|
229 |
+
} else
|
230 |
+
echo json_encode(array( 'typ' => 'removed' ));
|
231 |
+
die();
|
232 |
+
}
|
233 |
|
234 |
+
/**
|
235 |
+
* Used for processing an (AJAX) save request.
|
236 |
+
*
|
237 |
+
* @since 1.5
|
238 |
+
*
|
239 |
+
* @see http://codex.wordpress.org/Function_Reference/update_post_meta
|
240 |
+
*/
|
241 |
+
function save($post) {
|
242 |
|
243 |
+
if( ( isset($post['fvp_nonce']) && // WP Form submitted..
|
244 |
+
!wp_verify_nonce( $post['fvp_nonce'], FVP_NAME ) ) )
|
245 |
+
return false;
|
|
|
|
|
|
|
|
|
246 |
|
247 |
+
// get fvp_video post meta data
|
248 |
+
$meta = get_post_meta($post['id'], '_fvp_video', true);
|
249 |
+
|
250 |
+
// video is empty or default value
|
251 |
+
if( !isset($post['fvp_video']) || empty($post['fvp_video']) || $post['fvp_video'] == $this->default_value )
|
252 |
+
$url = '';
|
253 |
+
else $url = trim($post['fvp_video']);
|
254 |
+
|
255 |
+
// fallback video is empty or default value
|
256 |
+
if( !isset($post['fvp_sec']) || empty($post['fvp_sec']) || $post['fvp_sec'] == $this->default_value_sec )
|
257 |
+
$sec = '';
|
258 |
+
else $sec = trim($post['fvp_sec']);
|
259 |
+
|
260 |
+
// neither primary nor fallback did change OR primary is and was empty
|
261 |
+
// AND we do not want to set
|
262 |
+
if( ( ( isset($meta['full']) && $url == $meta['full'] && $sec == $meta['sec'] ) ||
|
263 |
+
( !isset($meta['full']) && empty($url) ) ) &&
|
264 |
+
( isset($post['fvp_set_featimg']) && !empty($post['fvp_set_featimg']) ) )
|
265 |
+
return false;
|
266 |
+
|
267 |
+
// there was a video and we want to delete it
|
268 |
+
if( isset($meta['full']) && empty($url) ) {
|
269 |
+
delete_post_meta( $post['id'], '_fvp_video' );
|
270 |
+
$this->delete_featured_video_image($post['id'], $meta);
|
271 |
+
return false;
|
272 |
+
}
|
273 |
+
|
274 |
+
$data = $this->get_video_data($url, $sec);
|
275 |
|
276 |
+
$valid = true;
|
277 |
+
if( !isset($data['id']) ) {
|
278 |
+
$meta['valid'] = false;
|
279 |
+
$meta['full'] = $url;
|
280 |
+
$meta['sec' ] = $sec;
|
281 |
+
} else {
|
282 |
+
|
283 |
+
// Do we have a screen capture to pull?
|
284 |
+
if( isset($data['img']) && !empty($data['img']) ) {
|
285 |
+
$this->delete_featured_video_image( $post['id'], $meta );
|
286 |
+
$img = $this->set_featured_video_image( $post['id'], $data );
|
287 |
+
}
|
288 |
+
|
289 |
+
$meta = array(
|
290 |
+
'full' => isset($data['url']) && !empty($data['url']) ? $data['url'] : $url,
|
291 |
+
'id' => isset($data['id']) ? $data['id'] : '',
|
292 |
+
'sec' => isset($data['sec']) ? $data['sec'] : '',
|
293 |
+
'sec_id'=> isset($data['sec_id']) && !empty($data['sec_id']) ? $data['sec_id'] : '',
|
294 |
+
'img' => isset($img) ? $img : '',
|
295 |
+
'prov' => isset($data['provider']) ? $data['provider'] : '',
|
296 |
+
'time' => isset($data['time']) ? $data['time'] : '',
|
297 |
+
'valid' => $valid
|
298 |
+
);
|
299 |
+
|
300 |
+
}
|
301 |
+
|
302 |
+
update_post_meta( $post['id'], '_fvp_video', $meta );
|
303 |
+
|
304 |
+
return $meta;
|
305 |
+
}
|
306 |
+
|
307 |
+
/**
|
308 |
+
* Returns an array containing video information like id provider imgurl etc
|
309 |
+
* Code existing since 1.0, got it own function in 1.5
|
310 |
+
*
|
311 |
+
* @since 1.5
|
312 |
+
*
|
313 |
+
* @param string video a video url
|
314 |
+
*/
|
315 |
+
function get_video_data($url, $sec = '') {
|
316 |
$local = wp_upload_dir();
|
317 |
+
preg_match('/(vimeo|youtu|dailymotion|liveleak|'.preg_quote($local['baseurl'], '/').')/i', $url, $prov_data);
|
318 |
+
if( isset($prov_data[1]) )
|
319 |
+
$provider = $prov_data[1];
|
320 |
+
else return false;
|
321 |
|
322 |
+
switch ($provider) {
|
323 |
|
324 |
// local video
|
325 |
case $local['baseurl']:
|
326 |
+
$ext = pathinfo( $url, PATHINFO_EXTENSION );
|
327 |
if( !isset($ext) || ($ext != 'mp4' && $ext != 'ogv' && $ext != 'webm' && $ext != 'ogg') ) return; // wrong extension
|
328 |
|
329 |
+
$data['id'] = $this->get_post_by_url($url);
|
330 |
+
$data['provider'] = 'local';
|
331 |
|
332 |
if( !empty($sec) ) {
|
333 |
+
preg_match('/(' . preg_quote($local['baseurl'], '/') . ')/i', $sec, $sec_prov_data);
|
334 |
$ext2 = pathinfo( $sec, PATHINFO_EXTENSION );
|
335 |
+
if ( isset($sec_prov_data[1]) && isset($ext2) && $sec_prov_data[1] == $provider && $ext != $ext2 &&
|
336 |
+
($ext2 == 'mp4' || $ext2 == 'ogv' || $ext2 == 'webm' || $ext2 == 'ogg')) {
|
337 |
+
$data['sec_id'] = $this->get_post_by_url($sec);
|
338 |
+
$data['sec'] = $sec;
|
339 |
+
}
|
340 |
}
|
341 |
|
342 |
break;
|
343 |
|
344 |
// youtube.com
|
345 |
case 'youtu':
|
346 |
+
$provider = 'youtube';
|
347 |
case 'youtube':
|
348 |
// domain 11 char ID time-link parameter
|
349 |
$pattern = '#(?:https?\:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com(?:\/embed\/|\/v\/|\/watch\?v=|\/watch\?.+&v=))([\w-]{11})#x';
|
350 |
+
preg_match($pattern, $url, $url_data);
|
351 |
+
if( !isset($url_data[1]) )
|
352 |
break;
|
353 |
|
354 |
+
$video_id = $url_data[1];
|
355 |
|
356 |
// access API
|
357 |
$response = wp_remote_get( 'http://youtube.com/get_video_info?video_id=' . $video_id );
|
358 |
if( is_wp_error( $response ) )
|
359 |
break;
|
360 |
+
parse_str( $response['body'], $result );
|
361 |
+
if( isset($result['status']) && $result['status'] == 'fail' )
|
362 |
break;
|
363 |
|
364 |
// extract info of a time-link
|
365 |
+
preg_match('/t=(?:(\d+)m)?(?:(\d+)s)?/', $url, $attr);
|
366 |
if( !empty($attr[1] ) || !empty($attr[2]) ) {
|
367 |
$min = !empty($attr[1]) ? $attr[1]*60 : 0;
|
368 |
$sek = !empty($attr[2]) ? $attr[2] : 0;
|
369 |
+
$video_time = $min + $sek;
|
370 |
} else {
|
371 |
+
preg_match('/start=(\d+)/', $url, $attr);
|
372 |
if( !empty($attr[1] ) )
|
373 |
+
$video_time = $attr[1];
|
374 |
else
|
375 |
+
$video_time = 0;
|
376 |
}
|
377 |
|
378 |
// generate video metadata
|
379 |
+
$data = array(
|
380 |
+
'id' => $video_id,
|
381 |
+
'provider' => $provider,
|
382 |
+
'time' => $video_time,
|
383 |
+
'title' => $result['title'],
|
384 |
+
'description' => $result['keywords'],
|
385 |
+
'filename' => sanitize_file_name($result['title']),
|
386 |
+
'timestamp' => $result['timestamp'],
|
387 |
+
'author' => $result['author'],
|
388 |
+
'tags' => $result['keywords'],
|
389 |
+
'img' => ( isset($result['iurlmaxres']) && !empty($result['iurlmaxres']) ) ? $result['iurlmaxres'] : 'http://img.youtube.com/vi/' . $video_id . '/0.jpg',
|
390 |
+
'url' => ( $video_time > 0 ) ? 'http://youtu.be/'.$video_id.'#t='.floor($video_time/60).'m'.($video_time%60).'s' : 'http://youtu.be/'.$video_id
|
391 |
);
|
392 |
|
393 |
break;
|
396 |
case 'vimeo':
|
397 |
// domain video ID
|
398 |
$pattern = '#(?:https?://)?(?:\w+.)?vimeo.com/(?:video/|moogaloop\.swf\?clip_id=)?(\w+)#x';
|
399 |
+
preg_match($pattern, $url, $url_data);
|
400 |
+
$video_id = $url_data[1];
|
401 |
|
402 |
// access API: http://developer.vimeo.com/apis/simple
|
403 |
$response = wp_remote_get( 'http://vimeo.com/api/v2/video/' . $video_id . '.php' );
|
404 |
if( is_wp_error( $response ) || (isset($response['response']['code']) && $response['response']['code'] == '404') )
|
405 |
break;
|
406 |
// title, description, upload_date, thumbnail_large, user_name, tags
|
407 |
+
$result = unserialize( $response['body'] );
|
408 |
|
409 |
// extract info of a time-link
|
410 |
/*preg_match('/#t=((?:\d+m)?(?:\d+s)?)/', $video, $attr);
|
412 |
$video_attr = $attr[1];*/
|
413 |
|
414 |
// generate video metadata
|
415 |
+
$data = array(
|
416 |
+
'id' => $video_id,
|
417 |
+
'provider' => $provider,
|
418 |
+
'title' => $result[0]['title'],
|
419 |
+
'description' => $result[0]['description'],
|
420 |
+
'filename' => sanitize_file_name( $result[0]['title'] ),
|
421 |
+
'timestamp' => strtotime( $result[0]['upload_date'] ),
|
422 |
+
'author' => $result[0]['user_name'],
|
423 |
+
'tags' => $result[0]['tags'],
|
424 |
+
'img' => $result[0]['thumbnail_large'],
|
425 |
+
'url' => $result[0]['url']
|
426 |
);
|
427 |
|
428 |
break;
|
430 |
// dailymotion.com
|
431 |
case 'dailymotion':
|
432 |
// domain video ID
|
433 |
+
preg_match('/dailymotion.com\/(?:embed\/)?video\/([^_#\?]+)/', $url, $url_data);
|
434 |
+
if( !isset($url_data[1]) )
|
435 |
break;
|
436 |
|
437 |
+
$video_id = $url_data[1];
|
438 |
|
439 |
// access API: http://www.dailymotion.com/doc/api/obj-video.html
|
440 |
$url = 'https://api.dailymotion.com/video/'.$video_id.'?fields=title,description,created_time,owner.screenname,tags,thumbnail_url,thumbnail_large_url,url,aspect_ratio';
|
441 |
$request = new WP_Http;
|
442 |
+
$response = $request->request( $url, array( 'method' => 'GET', 'sslverify' => false) );
|
443 |
+
if( is_wp_error($response) )
|
444 |
break;
|
445 |
+
$result = json_decode($response['body'], true);
|
446 |
+
if( !isset($result) || (isset($result['error']['code']) && ($result['error']['code'] == 501 || $result['error']['code'] == 400) ) )
|
447 |
break;
|
448 |
|
449 |
// extract info of a time-link
|
450 |
+
preg_match('/t=(?:(\d+)m)?(?:(\d+)s)?/', $url, $attr);
|
451 |
if( !empty($attr[1] ) || !empty($attr[2]) ) {
|
452 |
$min = !empty($attr[1]) ? $attr[1]*60 : 0;
|
453 |
$sek = !empty($attr[2]) ? $attr[2] : 0;
|
454 |
+
$video_time = $min + $sek;
|
455 |
} else {
|
456 |
+
preg_match('/start=(\d+)/', $url, $attr);
|
457 |
if( !empty($attr[1] ) )
|
458 |
+
$video_time = $attr[1];
|
459 |
else
|
460 |
+
$video_time = 0;
|
461 |
}
|
462 |
|
463 |
// generate video metadata
|
464 |
+
$data = array(
|
465 |
+
'id' => $video_id,
|
466 |
+
'provider' => $provider,
|
467 |
+
'time' => $video_time,
|
468 |
+
'title' => $result['title'],
|
469 |
+
'description' => $result['description'],
|
470 |
+
'filename' => sanitize_file_name($result['title']),
|
471 |
+
'timestamp' => $result['created_time'],
|
472 |
+
'author' => $result['owner.screenname'],
|
473 |
+
'tags' => implode(', ', $result['tags']),
|
474 |
+
'img' => ( isset($result['thumbnail_url']) && !empty($result['thumbnail_url']) ) ? $result['thumbnail_url'] : $result['thumbnail_large_url'],
|
475 |
+
'url' => 'http://dailymotion.com/video/'.$video_id. ( $video_time>0 ? '#t='.floor($video_time/60).'m'.($video_time%60).'s' : '')
|
476 |
);
|
477 |
|
478 |
break;
|
482 |
// source url and other metadata from the source code.
|
483 |
case 'liveleak': // view-source:http://www.liveleak.com/view?i=45f_1358105976&ajax=1
|
484 |
// domain video ID
|
485 |
+
preg_match('/(?:http:\/\/)?(?:www\.)?liveleak.com\/view\?i=([\d\w]{3}_\d{10})/', $url, $url_data);
|
486 |
+
if( !isset($url_data[1]) )
|
487 |
break;
|
488 |
|
489 |
// no API, get stripped down version of the full website
|
490 |
+
$response = wp_remote_get( 'http://liveleak.com/view?i='.$url_data[1].'&ajax=1');
|
491 |
if( is_wp_error( $response ) )
|
492 |
break;
|
493 |
|
499 |
$llmeta = explode(',', $llmeta[2]);
|
500 |
foreach( $llmeta as $line ) {
|
501 |
$thisline = explode(': ', $line);
|
502 |
+
$result[trim($thisline[0])] = trim($thisline[1]);
|
503 |
}
|
504 |
|
505 |
preg_match('#class="section_title".*>([\s\w]+)</span>#', $response['body'], $title);
|
506 |
preg_match('#id="body_text".*><p>(.*)<\/p><\/#', $response['body'], $desc);
|
507 |
+
$result['title'] = isset($title[1]) ? $title[1] : '';
|
508 |
|
509 |
+
$data = array(
|
510 |
+
'id' => $video_id,
|
511 |
+
'provider' => $provider,
|
512 |
+
'title' => $result['title'],
|
513 |
'description' => isset($desc[1]) ? $desc[1] : '',
|
514 |
+
'filename' => sanitize_file_name($result['title']),
|
515 |
'timestamp' => time(),
|
516 |
+
//'author' => '', // <strong>By:</strong> <a href="http://www.liveleak.com/c/k-doe">k-doe</a>
|
517 |
+
//'tags' => '', // <strong>Tags:</strong> <a href="browse?q=Drive By">Drive By</a>, <a href="browse?q=Fire Extinguisher">Fire Extinguisher</a><br />
|
518 |
+
'img' => isset($result['image']) ? trim($result['image'],"\"") : '',
|
519 |
'url' => 'http://liveleak.com/view?i='.$video_data[1]
|
520 |
);
|
521 |
break;
|
522 |
}
|
523 |
|
524 |
// if the regex fails the video is provided by prochan, not LL
|
525 |
+
$provider = 'prochan';
|
526 |
$type = 'iframe';
|
527 |
|
528 |
// prochan.com (only implemented as used by liveleak
|
531 |
preg_match('#<iframe.*src="(?:http://)?(?:www\.)?prochan.com/embed\?f=([\d\w]{3}_\d{10})".*></iframe>#', $response['body'], $proframe);
|
532 |
if( !isset($proframe[1]) )
|
533 |
break;
|
534 |
+
$data = array(
|
535 |
+
'id' => $proframe[1],
|
536 |
+
'provider' => $provider
|
537 |
+
);
|
538 |
}
|
539 |
break;
|
540 |
}
|
541 |
+
return isset($data) ? $data : false;
|
542 |
+
}
|
543 |
|
544 |
+
/**
|
545 |
+
* Pulls the new featured image picture to local and sets it as featured image.
|
546 |
+
* Since 1.0, got it own function in 1.5
|
547 |
+
*
|
548 |
+
* @since 1.5
|
549 |
+
*/
|
550 |
+
function set_featured_video_image($post_id, $data) {
|
551 |
+
// Is this screen capture already existing in our media library?
|
552 |
+
$img = $this->featured_video_plus->get_post_by_custom_meta('_fvp_image', $data['provider'] . '?' . $data['id']);
|
553 |
+
if( !isset($img) ) {
|
554 |
+
|
555 |
+
// Generate attachment post metadata
|
556 |
+
$img_data = array(
|
557 |
+
'post_content' => $data['description'],
|
558 |
+
'post_title' => $data['title'],
|
559 |
+
'post_name' => $data['filename']
|
560 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
561 |
|
562 |
+
// pull external img to local server and add to media library
|
563 |
+
include_once( FVP_DIR . 'php/somatic_attach_external_image.php' );
|
564 |
+
$img = somatic_attach_external_image($data['img'], $post_id, false, $data['filename'], $img_data);
|
565 |
+
|
566 |
+
// generate picture metadata
|
567 |
+
$img_meta = wp_get_attachment_metadata( $img );
|
568 |
+
$img_meta['image_meta'] = array(
|
569 |
+
'aperture' => 0,
|
570 |
+
'credit' => $data['id'],
|
571 |
+
'camera' => $data['provider'],
|
572 |
+
'caption' => $data['description'],
|
573 |
+
'created_timestamp' => $data['timestamp'],
|
574 |
+
'copyright' => $data['author'],
|
575 |
+
'focal_length' => 0,
|
576 |
+
'iso' => 0,
|
577 |
+
'shutter_speed' => 0,
|
578 |
+
'title' => $data['title']
|
579 |
+
);
|
580 |
|
581 |
+
// save picture metadata
|
582 |
+
wp_update_attachment_metadata($img, $img_meta);
|
583 |
+
update_post_meta( $img, '_fvp_image', $data['provider'] . '?' . $data['id'] );
|
584 |
}
|
585 |
|
586 |
+
if( (get_bloginfo('version') >= 3.1) && // set_post_thumbnail was added in 3.1
|
587 |
+
( (!has_post_thumbnail( $post_id )) ||
|
588 |
+
($set_featimg) ) )
|
589 |
+
set_post_thumbnail( $post_id, $img );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
590 |
|
591 |
+
return $img;
|
592 |
}
|
593 |
|
594 |
/**
|
598 |
* @since 1.4
|
599 |
*/
|
600 |
function delete_featured_video_image($post_id, $meta) {
|
601 |
+
if(!isset($meta['img'])) return false;
|
602 |
|
603 |
// Unset featured image if it is from this video
|
604 |
delete_post_meta( $post_id, '_thumbnail_id', $meta['img'] );
|
php/functions.php
CHANGED
@@ -39,7 +39,7 @@ function get_the_post_video($post_id = null, $size = null) {
|
|
39 |
function has_post_video($post_id = null){
|
40 |
$post_id = ( null === $post_id ) ? get_the_ID() : $post_id;
|
41 |
|
42 |
-
$meta =
|
43 |
if( !isset($meta) || empty($meta['id']) )
|
44 |
return false;
|
45 |
|
@@ -56,7 +56,7 @@ function has_post_video($post_id = null){
|
|
56 |
function get_the_post_video_image_url($post_id = null) {
|
57 |
$post_id = ( null === $post_id ) ? get_the_ID() : $post_id;
|
58 |
|
59 |
-
$meta =
|
60 |
if( !isset($meta) || empty($meta['id']) )
|
61 |
return false;
|
62 |
|
@@ -75,7 +75,7 @@ function get_the_post_video_image_url($post_id = null) {
|
|
75 |
* @param size
|
76 |
*/
|
77 |
function get_the_post_video_image($post_id = null, $size = null) {
|
78 |
-
$meta =
|
79 |
if( !isset($meta) || empty($meta['id']) )
|
80 |
return false;
|
81 |
|
39 |
function has_post_video($post_id = null){
|
40 |
$post_id = ( null === $post_id ) ? get_the_ID() : $post_id;
|
41 |
|
42 |
+
$meta = get_post_meta( $post_id, '_fvp_video', true );
|
43 |
if( !isset($meta) || empty($meta['id']) )
|
44 |
return false;
|
45 |
|
56 |
function get_the_post_video_image_url($post_id = null) {
|
57 |
$post_id = ( null === $post_id ) ? get_the_ID() : $post_id;
|
58 |
|
59 |
+
$meta = get_post_meta( $post_id, '_fvp_video', true );
|
60 |
if( !isset($meta) || empty($meta['id']) )
|
61 |
return false;
|
62 |
|
75 |
* @param size
|
76 |
*/
|
77 |
function get_the_post_video_image($post_id = null, $size = null) {
|
78 |
+
$meta = get_post_meta( $post_id, '_fvp_video', true );
|
79 |
if( !isset($meta) || empty($meta['id']) )
|
80 |
return false;
|
81 |
|
php/general.php
CHANGED
@@ -20,12 +20,18 @@ class featured_video_plus {
|
|
20 |
public function enqueue($hook_suffix) {
|
21 |
// just required on post.php
|
22 |
if( !is_admin() || ( $hook_suffix == 'post.php' && isset($_GET['post']) ) ) {
|
|
|
23 |
|
24 |
// http://videojs.com/
|
25 |
-
|
26 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
|
28 |
-
$options = get_option( 'fvp-settings' );
|
29 |
if( $options['sizing']['wmode'] == 'auto' )
|
30 |
wp_enqueue_script('fvp_fitvids', FVP_URL . 'js/jquery.fitvids_fvp-min.js', array( 'jquery' ), FVP_VERSION, true ); // production
|
31 |
//wp_enqueue_script('fvp_fitvids', FVP_URL . 'js/jquery.fitvids_fvp.js', array( 'jquery' ), FVP_VERSION, true ); // development
|
@@ -48,7 +54,7 @@ class featured_video_plus {
|
|
48 |
if( !has_post_video($post_id) )
|
49 |
return false;
|
50 |
|
51 |
-
$meta =
|
52 |
$options= get_option( 'fvp-settings' );
|
53 |
|
54 |
$size = $this->get_size($size);
|
@@ -72,7 +78,7 @@ class featured_video_plus {
|
|
72 |
$embed = "\n\t".'<video class="video-js vjs-default-skin" controls preload="auto" width="'.$width.'" height="'.$height.'" data-setup="{}">'; // poster="'.$featimg.'" data-setup="{}"
|
73 |
$embed .= "\n\t\t".'<source src="' . $a . '" type="video/'.$ext.'">';
|
74 |
|
75 |
-
if( isset($meta['sec_id']) && !empty($meta['sec_id']) ) {
|
76 |
$b = wp_get_attachment_url($meta['sec_id']);
|
77 |
$ext2 = pathinfo( $b, PATHINFO_EXTENSION );
|
78 |
$ext2 = $ext2 == 'ogv' ? 'ogg' : $ext2;
|
@@ -96,8 +102,9 @@ class featured_video_plus {
|
|
96 |
$youtube['logo'] = isset($options['youtube']['logo']) ? $options['youtube']['logo'] : 1;
|
97 |
$youtube['rel'] = isset($options['youtube']['rel']) ? $options['youtube']['rel'] : 1;
|
98 |
$youtube['fs'] = isset($options['youtube']['fs']) ? $options['youtube']['fs'] : 1;
|
|
|
99 |
|
100 |
-
$src = 'http://www.youtube.com/embed/'.$meta['id'].'?theme='.$youtube['theme'].'&color='.$youtube['color'].'&showinfo='.$youtube['info'].'&modestbranding='.$youtube['logo'].'&origin='.esc_attr(home_url()).'&rel='.$youtube['rel'].'&fs='.$youtube['fs'].'&start='.$meta['
|
101 |
$embed = "\n\t" . '<iframe width="'.$width.'" height="'.$height.'" src="'.$src.'" type="text/html" frameborder="0"></iframe>' . "\n";
|
102 |
break;
|
103 |
|
@@ -110,7 +117,7 @@ class featured_video_plus {
|
|
110 |
$dm['syndication'] = isset($options['dailymotion']['syndication']) ? $options['dailymotion']['syndication'] : '';
|
111 |
$dm['synd'] = !empty($dm['syndication']) ? '&syndication='.$dm['syndication'] : '';
|
112 |
|
113 |
-
$dm['src'] = 'http://www.dailymotion.com/embed/video/'.$meta['id'].'?logo='.$dm['logo'].'&hideInfos='.$dm['hideinfo'].'&foreground=%23'.$dm['foreground'].'&highlight=%23'.$dm['highlight'].'&background=%23'.$dm['background'].$dm['synd'].'&start='.$meta['
|
114 |
$embed = "\n" . '<iframe width="'.$width.'" height="'.$height.'" src="'.$dm['src'].'" frameborder="0"></iframe>' . "\n";
|
115 |
break;
|
116 |
|
@@ -182,13 +189,21 @@ class featured_video_plus {
|
|
182 |
* @param string $meta_key which meta_key to look for
|
183 |
* @param string $meta_value which meta_value to look for
|
184 |
*/
|
185 |
-
function get_post_by_custom_meta($meta_key, $meta_value) {
|
186 |
global $wpdb;
|
187 |
-
$
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
192 |
}
|
193 |
|
194 |
/**
|
20 |
public function enqueue($hook_suffix) {
|
21 |
// just required on post.php
|
22 |
if( !is_admin() || ( $hook_suffix == 'post.php' && isset($_GET['post']) ) ) {
|
23 |
+
$options = get_option( 'fvp-settings' );
|
24 |
|
25 |
// http://videojs.com/
|
26 |
+
if( $options['local']['videojs']['js'] )
|
27 |
+
if( $options['local']['videojs']['cdn'] )
|
28 |
+
wp_enqueue_script( 'videojs', 'http://vjs.zencdn.net/c/video.js', array(), FVP_VERSION, false );
|
29 |
+
else wp_enqueue_script( 'videojs', FVP_URL . 'js/videojs-min.js', array(), FVP_VERSION, false );
|
30 |
+
if( $options['local']['videojs']['css'] )
|
31 |
+
if( $options['local']['videojs']['cdn'] )
|
32 |
+
wp_enqueue_style( 'videojs', 'http://vjs.zencdn.net/c/video-js.css', array(), FVP_VERSION, false );
|
33 |
+
else wp_enqueue_style( 'videojs', FVP_URL . 'css/videojs-min.css', array(), FVP_VERSION, false );
|
34 |
|
|
|
35 |
if( $options['sizing']['wmode'] == 'auto' )
|
36 |
wp_enqueue_script('fvp_fitvids', FVP_URL . 'js/jquery.fitvids_fvp-min.js', array( 'jquery' ), FVP_VERSION, true ); // production
|
37 |
//wp_enqueue_script('fvp_fitvids', FVP_URL . 'js/jquery.fitvids_fvp.js', array( 'jquery' ), FVP_VERSION, true ); // development
|
54 |
if( !has_post_video($post_id) )
|
55 |
return false;
|
56 |
|
57 |
+
$meta = get_post_meta($post_id, '_fvp_video', true);
|
58 |
$options= get_option( 'fvp-settings' );
|
59 |
|
60 |
$size = $this->get_size($size);
|
78 |
$embed = "\n\t".'<video class="video-js vjs-default-skin" controls preload="auto" width="'.$width.'" height="'.$height.'" data-setup="{}">'; // poster="'.$featimg.'" data-setup="{}"
|
79 |
$embed .= "\n\t\t".'<source src="' . $a . '" type="video/'.$ext.'">';
|
80 |
|
81 |
+
if( isset($meta['sec_id']) && !empty($meta['sec_id']) && $meta['sec_id'] != $meta['id'] ) {
|
82 |
$b = wp_get_attachment_url($meta['sec_id']);
|
83 |
$ext2 = pathinfo( $b, PATHINFO_EXTENSION );
|
84 |
$ext2 = $ext2 == 'ogv' ? 'ogg' : $ext2;
|
102 |
$youtube['logo'] = isset($options['youtube']['logo']) ? $options['youtube']['logo'] : 1;
|
103 |
$youtube['rel'] = isset($options['youtube']['rel']) ? $options['youtube']['rel'] : 1;
|
104 |
$youtube['fs'] = isset($options['youtube']['fs']) ? $options['youtube']['fs'] : 1;
|
105 |
+
$youtube['wmode'] = isset($options['youtube']['wmode']) && $options['youtube']['wmode'] != 'auto' ? '&wmode='.$options['youtube']['wmode'] : '';
|
106 |
|
107 |
+
$src = 'http://www.youtube.com/embed/'.$meta['id'].'?theme='.$youtube['theme'].$youtube['wmode'].'&color='.$youtube['color'].'&showinfo='.$youtube['info'].'&modestbranding='.$youtube['logo'].'&origin='.esc_attr(home_url()).'&rel='.$youtube['rel'].'&fs='.$youtube['fs'].'&start='.$meta['time'].$autoplay;
|
108 |
$embed = "\n\t" . '<iframe width="'.$width.'" height="'.$height.'" src="'.$src.'" type="text/html" frameborder="0"></iframe>' . "\n";
|
109 |
break;
|
110 |
|
117 |
$dm['syndication'] = isset($options['dailymotion']['syndication']) ? $options['dailymotion']['syndication'] : '';
|
118 |
$dm['synd'] = !empty($dm['syndication']) ? '&syndication='.$dm['syndication'] : '';
|
119 |
|
120 |
+
$dm['src'] = 'http://www.dailymotion.com/embed/video/'.$meta['id'].'?logo='.$dm['logo'].'&hideInfos='.$dm['hideinfo'].'&foreground=%23'.$dm['foreground'].'&highlight=%23'.$dm['highlight'].'&background=%23'.$dm['background'].$dm['synd'].'&start='.$meta['time'].$autoplay;
|
121 |
$embed = "\n" . '<iframe width="'.$width.'" height="'.$height.'" src="'.$dm['src'].'" frameborder="0"></iframe>' . "\n";
|
122 |
break;
|
123 |
|
189 |
* @param string $meta_key which meta_key to look for
|
190 |
* @param string $meta_value which meta_value to look for
|
191 |
*/
|
192 |
+
function get_post_by_custom_meta($meta_key, $meta_value = null) {
|
193 |
global $wpdb;
|
194 |
+
if( $meta_value !== null ) {
|
195 |
+
$prepared = $wpdb->prepare(
|
196 |
+
"SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key=%s AND meta_value=%s LIMIT 1",
|
197 |
+
$meta_key, $meta_value
|
198 |
+
);
|
199 |
+
return $wpdb->get_var( $prepared );
|
200 |
+
} else {
|
201 |
+
$prepared = $wpdb->prepare(
|
202 |
+
"SELECT post_id FROM {$wpdb->postmeta} WHERE meta_key=%s",
|
203 |
+
$meta_key
|
204 |
+
);
|
205 |
+
return $wpdb->get_col( $prepared );
|
206 |
+
}
|
207 |
}
|
208 |
|
209 |
/**
|
php/settings.php
CHANGED
@@ -24,10 +24,10 @@ class featured_video_plus_settings {
|
|
24 |
add_settings_field('fvp-settings-autoplay', __('Autoplay', 'featured-video-plus'), array( &$this, 'settings_autoplay' ), 'media', 'fvp-settings-section');
|
25 |
add_settings_field('fvp-settings-sizing', __('Video Sizing', 'featured-video-plus'), array( &$this, 'settings_sizing' ), 'media', 'fvp-settings-section');
|
26 |
add_settings_field('fvp-settings-align', __('Video Align', 'featured-video-plus'), array( &$this, 'settings_align' ), 'media', 'fvp-settings-section');
|
27 |
-
|
28 |
-
add_settings_field('fvp-settings-youtube', __('YouTube
|
29 |
-
add_settings_field('fvp-settings-vimeo', __('Vimeo
|
30 |
-
add_settings_field('fvp-settings-dailymotion', __('Dailymotion
|
31 |
add_settings_field('fvp-settings-rate', __('Support', 'featured-video-plus'), array( &$this, 'settings_rate' ), 'media', 'fvp-settings-section');
|
32 |
|
33 |
register_setting('media', 'fvp-settings', array( &$this, 'settings_save' ));
|
@@ -144,26 +144,26 @@ if( !current_theme_supports('post-thumbnails') )
|
|
144 |
|
145 |
<?php }
|
146 |
/**
|
147 |
-
* Displays the settings
|
148 |
*
|
149 |
* @see https://github.com/zencoder/video-js/blob/master/docs/skins.md
|
150 |
* @see http://jlofstedt.com/moonify/
|
151 |
* @see http://videojs.com/
|
152 |
-
* @since 1.
|
153 |
-
*
|
154 |
-
* NOTE: NOT IN USE YET!
|
155 |
*/
|
156 |
-
function
|
157 |
$options = get_option( 'fvp-settings' );
|
158 |
-
$videojs['
|
|
|
|
|
159 |
|
160 |
-
|
161 |
-
<input type="
|
162 |
-
<input type="
|
|
|
163 |
|
164 |
-
|
165 |
-
|
166 |
-
}
|
167 |
|
168 |
/**
|
169 |
* Displays the settings to style the YouTube video player.
|
@@ -173,17 +173,26 @@ if( !current_theme_supports('post-thumbnails') )
|
|
173 |
*/
|
174 |
function settings_youtube() {
|
175 |
$options = get_option( 'fvp-settings' );
|
176 |
-
$youtube['theme']
|
177 |
-
$youtube['color']
|
|
|
178 |
$youtube['info'] = isset($options['youtube']['info']) ? $options['youtube']['info'] : 1;
|
179 |
$youtube['logo'] = isset($options['youtube']['logo']) ? $options['youtube']['logo'] : 1;
|
180 |
-
$youtube['rel'] = isset($options['youtube']['rel']) ? $options['youtube']['rel']
|
181 |
-
$youtube['fs'] = isset($options['youtube']['fs']) ? $options['youtube']['fs']
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
182 |
|
183 |
-
<input type="checkbox" name="fvp-settings[youtube][
|
184 |
-
<input type="checkbox" name="fvp-settings[youtube][info]" id="fvp-settings-youtube-info" value="true" <?php checked( 1, $youtube['info'], 1 ) ?>/><label for="fvp-settings-youtube-info"> <?php _e('Info', 'featured-video-plus'); ?></label>
|
185 |
-
<input type="checkbox" name="fvp-settings[youtube][fs]" id="fvp-settings-youtube-fs" value="true" <?php checked( 1, $youtube['fs'], 1 ) ?>/><label for="fvp-settings-youtube-fs"> <?php _e('Fullscreen Button', 'featured-video-plus'); ?></label>
|
186 |
-
<input type="checkbox" name="fvp-settings[youtube][rel]" id="fvp-settings-youtube-rel" value="true" <?php checked( 1, $youtube['rel'], 1 ) ?>/><label for="fvp-settings-youtube-rel"> <?php _e('Related Videos', 'featured-video-plus'); ?></label>
|
187 |
<input type="checkbox" name="fvp-settings[youtube][color]" id="fvp-settings-youtube-color" value="white" <?php checked( 'white', $youtube['color'], 1 ) ?>/><label for="fvp-settings-youtube-color"> <?php _e('White Progressbar', 'featured-video-plus'); ?></label>
|
188 |
<span id="youtube_logoinput_wrapper"<?php if($youtube['color'] != 'red') echo ' class="fvp_hidden"'; ?>>
|
189 |
<input type="checkbox" name="fvp-settings[youtube][logo]" id="fvp-settings-youtube-logo" value="true" <?php checked( 1, $youtube['logo'], 1 ) ?>/><label for="fvp-settings-youtube-logo"> <?php _e('Logo', 'featured-video-plus'); ?></label>
|
@@ -211,7 +220,7 @@ if( !current_theme_supports('post-thumbnails') )
|
|
211 |
<input type="checkbox" name="fvp-settings[vimeo][title]" id="fvp-settings-vimeo-2" value="display" <?php checked( 1, $vimeo['title'], 1 ) ?>/><label for="fvp-settings-vimeo-2"> <?php _e('Title', 'featured-video-plus'); ?></label>
|
212 |
<input type="checkbox" name="fvp-settings[vimeo][byline]" id="fvp-settings-vimeo-3" value="display" <?php checked( 1, $vimeo['byline'], 1 ) ?>/><label for="fvp-settings-vimeo-3"> <?php _e('Byline', 'featured-video-plus'); ?></label>
|
213 |
<span class="color-picker" style="position: relative;<?php if( wp_style_is( 'wp-color-picker', 'done' ) ) echo ' top: .6em;'; ?>" >
|
214 |
-
<input type="text" name="fvp-settings[vimeo][color]" id="fvp-settings-vimeo-color" value="#<?php echo $vimeo['color'] ?>" data-default-color="#00adef" />
|
215 |
<label for="fvp-settings-vimeo-color" style="display: none;"> <?php _e('Color', 'featured-video-plus'); ?></label>
|
216 |
<?php if( !wp_style_is('wp-color-picker', 'registered' ) ) { ?><div class="fvp_colorpicker" id="fvp-settings-vimeo-colorpicker"></div><?php } ?>
|
217 |
</span>
|
@@ -243,17 +252,17 @@ if( !current_theme_supports('post-thumbnails') )
|
|
243 |
<input type="text" name="fvp-settings[dailymotion][synd]" id="fvp-settings-dailymotion-synd" value="<?php echo $dailymotion['synd']; ?>" size="6" /> <label for="fvp-settings-dailymotion-synd"> <?php _e('Syndication Key', 'featured-video-plus'); ?></label>
|
244 |
<br />
|
245 |
<span class="color-picker" style="position: relative;<?php if( wp_style_is( 'wp-color-picker', 'done' ) ) echo ' top: .6em;'; ?>" >
|
246 |
-
<input type="text" name="fvp-settings[dailymotion][foreground]" id="fvp-settings-dailymotion-foreground" value="#<?php echo $dailymotion['foreground'] ?>" data-default-color="#f7fffd" />
|
247 |
<label for="fvp-settings-dailymotion-foreground" style="display: none;"> <?php _e('Foreground', 'featured-video-plus'); ?></label>
|
248 |
<?php if( !wp_style_is('wp-color-picker', 'registered' ) ) { ?><div class="fvp_colorpicker" id="fvp-settings-dailymotion-foreground-colorpicker"></div><?php } ?>
|
249 |
</span>
|
250 |
<span class="color-picker" style="position: relative;<?php if( wp_style_is( 'wp-color-picker', 'done' ) ) echo ' top: .6em;'; ?>" >
|
251 |
-
<input type="text" name="fvp-settings[dailymotion][highlight]" id="fvp-settings-dailymotion-highlight" value="#<?php echo $dailymotion['highlight'] ?>" data-default-color="#ffc300" />
|
252 |
<label for="fvp-settings-dailymotion-highlight" style="display: none;"> <?php _e('Highlight', 'featured-video-plus'); ?></label>
|
253 |
<?php if( !wp_style_is('wp-color-picker', 'registered' ) ) { ?><div class="fvp_colorpicker" id="fvp-settings-dailymotion-highlight-colorpicker"></div><?php } ?>
|
254 |
</span>
|
255 |
<span class="color-picker" style="position: relative;<?php if( wp_style_is( 'wp-color-picker', 'done' ) ) echo ' top: .6em;'; ?>" >
|
256 |
-
<input type="text" name="fvp-settings[dailymotion][background]" id="fvp-settings-dailymotion-background" value="#<?php echo $dailymotion['background'] ?>" data-default-color="#171d1b" />
|
257 |
<label for="fvp-settings-dailymotion-background" style="display: none;"> <?php _e('Background', 'featured-video-plus'); ?></label>
|
258 |
<?php if( !wp_style_is('wp-color-picker', 'registered' ) ) { ?><div class="fvp_colorpicker" id="fvp-settings-dailymotion-background-colorpicker"></div><?php } ?>
|
259 |
</span>
|
@@ -315,12 +324,15 @@ if( !current_theme_supports('post-thumbnails') )
|
|
315 |
// Autoplay
|
316 |
$options['autoplay'] = isset($input['autoplay']) && $input['autoplay'] == 'true' ? 1 : 0;
|
317 |
|
318 |
-
//
|
319 |
-
|
|
|
|
|
320 |
|
321 |
// YouTube
|
322 |
$options['youtube']['theme'] = isset($input['youtube']['theme']) && ( $input['youtube']['theme'] == 'light' ) ? 'light' : 'dark';
|
323 |
$options['youtube']['color'] = isset($input['youtube']['color']) && ( $input['youtube']['color'] == 'white' ) ? 'white' : 'red';
|
|
|
324 |
$options['youtube']['info'] = isset($input['youtube']['info']) && ( $input['youtube']['info'] == 'true' ) ? 1 : 0;
|
325 |
$options['youtube']['logo'] = isset($input['youtube']['logo']) && ( $input['youtube']['logo'] == 'true' ) ? 1 : 0;
|
326 |
$options['youtube']['rel'] = isset($input['youtube']['rel']) && ( $input['youtube']['rel'] == 'true' ) ? 1 : 0;
|
24 |
add_settings_field('fvp-settings-autoplay', __('Autoplay', 'featured-video-plus'), array( &$this, 'settings_autoplay' ), 'media', 'fvp-settings-section');
|
25 |
add_settings_field('fvp-settings-sizing', __('Video Sizing', 'featured-video-plus'), array( &$this, 'settings_sizing' ), 'media', 'fvp-settings-section');
|
26 |
add_settings_field('fvp-settings-align', __('Video Align', 'featured-video-plus'), array( &$this, 'settings_align' ), 'media', 'fvp-settings-section');
|
27 |
+
add_settings_field('fvp-settings-local', __('Local Video Options', 'featured-video-plus'), array( &$this, 'settings_local' ), 'media', 'fvp-settings-section');
|
28 |
+
add_settings_field('fvp-settings-youtube', __('YouTube Options', 'featured-video-plus'), array( &$this, 'settings_youtube' ), 'media', 'fvp-settings-section');
|
29 |
+
add_settings_field('fvp-settings-vimeo', __('Vimeo Options', 'featured-video-plus'), array( &$this, 'settings_vimeo' ), 'media', 'fvp-settings-section');
|
30 |
+
add_settings_field('fvp-settings-dailymotion', __('Dailymotion Options', 'featured-video-plus'), array( &$this, 'settings_dailymotion' ),'media', 'fvp-settings-section');
|
31 |
add_settings_field('fvp-settings-rate', __('Support', 'featured-video-plus'), array( &$this, 'settings_rate' ), 'media', 'fvp-settings-section');
|
32 |
|
33 |
register_setting('media', 'fvp-settings', array( &$this, 'settings_save' ));
|
144 |
|
145 |
<?php }
|
146 |
/**
|
147 |
+
* Displays the settings for local videos
|
148 |
*
|
149 |
* @see https://github.com/zencoder/video-js/blob/master/docs/skins.md
|
150 |
* @see http://jlofstedt.com/moonify/
|
151 |
* @see http://videojs.com/
|
152 |
+
* @since 1.5
|
|
|
|
|
153 |
*/
|
154 |
+
function settings_local() {
|
155 |
$options = get_option( 'fvp-settings' );
|
156 |
+
$videojs['js'] = isset($options['local']['videojs']['js']) ? $options['local']['videojs']['js'] : true;
|
157 |
+
$videojs['css'] = isset($options['local']['videojs']['css']) ? $options['local']['videojs']['css'] : true;
|
158 |
+
$videojs['cdn'] = isset($options['local']['videojs']['cdn']) ? $options['local']['videojs']['cdn'] : false; ?>
|
159 |
|
160 |
+
VideoJS:
|
161 |
+
<input type="checkbox" name="fvp-settings[local][videojs][cdn]" id="fvp-settings-local-videojs-cdn" value="true" <?php checked( true, $videojs['cdn'], 1 ) ?>/><label for="fvp-settings-local-videojs-cdn"> <?php _e('Use CDN', 'featured-video-plus'); ?></label>
|
162 |
+
<input type="checkbox" name="fvp-settings[local][videojs][js]" id="fvp-settings-local-videojs-js" value="true" <?php checked( true, $videojs['js'], 1 ) ?>/><label for="fvp-settings-local-videojs-js"> <?php _e('Include JS', 'featured-video-plus'); ?></label>
|
163 |
+
<input type="checkbox" name="fvp-settings[local][videojs][css]" id="fvp-settings-local-videojs-css" value="true" <?php checked( true, $videojs['css'], 1 ) ?>/><label for="fvp-settings-local-videojs-css"> <?php _e('Include CSS', 'featured-video-plus'); ?></label>
|
164 |
|
165 |
+
<p class="description"><?php _e('Disabling JS and/or CSS will break the local video player. Disable only when you want to replace VideoJS with a different script and know what you are doing.', 'featured-video-plus'); ?></p>
|
166 |
+
<?php }
|
|
|
167 |
|
168 |
/**
|
169 |
* Displays the settings to style the YouTube video player.
|
173 |
*/
|
174 |
function settings_youtube() {
|
175 |
$options = get_option( 'fvp-settings' );
|
176 |
+
$youtube['theme'] = isset($options['youtube']['theme']) ? $options['youtube']['theme'] : 'dark';
|
177 |
+
$youtube['color'] = isset($options['youtube']['color']) ? $options['youtube']['color'] : 'red';
|
178 |
+
$youtube['wmode'] = isset($options['youtube']['wmode']) ? $options['youtube']['wmode'] : 'auto';
|
179 |
$youtube['info'] = isset($options['youtube']['info']) ? $options['youtube']['info'] : 1;
|
180 |
$youtube['logo'] = isset($options['youtube']['logo']) ? $options['youtube']['logo'] : 1;
|
181 |
+
$youtube['rel'] = isset($options['youtube']['rel']) ? $options['youtube']['rel'] : 1;
|
182 |
+
$youtube['fs'] = isset($options['youtube']['fs']) ? $options['youtube']['fs'] : 1; ?>
|
183 |
+
|
184 |
+
<input type="checkbox" name="fvp-settings[youtube][theme]" id="fvp-settings-youtube-theme" value="light" <?php checked( 'light', $youtube['theme'], 1 ) ?>/><label for="fvp-settings-youtube-theme"> <?php _e('Light Theme', 'featured-video-plus'); ?></label>
|
185 |
+
<input type="checkbox" name="fvp-settings[youtube][fs]" id="fvp-settings-youtube-fs" value="true" <?php checked( 1, $youtube['fs'], 1 ) ?>/><label for="fvp-settings-youtube-fs"> <?php _e('Fullscreen Button', 'featured-video-plus'); ?></label>
|
186 |
+
<select name="fvp-settings[youtube][wmode]" id="fvp-settings-youtube-wmode" size="1">
|
187 |
+
<option<?php selected($youtube['wmode'],'auto'); ?>>auto</option>
|
188 |
+
<option<?php selected($youtube['wmode'],'transparent'); ?>>transparent</option>
|
189 |
+
<option<?php selected($youtube['wmode'],'opaque'); ?>>opaque</option>
|
190 |
+
</select>
|
191 |
+
<label for="fvp-settings-youtube-wmode">"wmode"</label>
|
192 |
+
<br />
|
193 |
+
<input type="checkbox" name="fvp-settings[youtube][info]" id="fvp-settings-youtube-info" value="true" <?php checked( 1, $youtube['info'], 1 ) ?>/><label for="fvp-settings-youtube-info"> <?php _e('Info', 'featured-video-plus'); ?></label>
|
194 |
|
195 |
+
<input type="checkbox" name="fvp-settings[youtube][rel]" id="fvp-settings-youtube-rel" value="true" <?php checked( 1, $youtube['rel'], 1 ) ?>/><label for="fvp-settings-youtube-rel"> <?php _e('Related Videos', 'featured-video-plus'); ?></label>
|
|
|
|
|
|
|
196 |
<input type="checkbox" name="fvp-settings[youtube][color]" id="fvp-settings-youtube-color" value="white" <?php checked( 'white', $youtube['color'], 1 ) ?>/><label for="fvp-settings-youtube-color"> <?php _e('White Progressbar', 'featured-video-plus'); ?></label>
|
197 |
<span id="youtube_logoinput_wrapper"<?php if($youtube['color'] != 'red') echo ' class="fvp_hidden"'; ?>>
|
198 |
<input type="checkbox" name="fvp-settings[youtube][logo]" id="fvp-settings-youtube-logo" value="true" <?php checked( 1, $youtube['logo'], 1 ) ?>/><label for="fvp-settings-youtube-logo"> <?php _e('Logo', 'featured-video-plus'); ?></label>
|
220 |
<input type="checkbox" name="fvp-settings[vimeo][title]" id="fvp-settings-vimeo-2" value="display" <?php checked( 1, $vimeo['title'], 1 ) ?>/><label for="fvp-settings-vimeo-2"> <?php _e('Title', 'featured-video-plus'); ?></label>
|
221 |
<input type="checkbox" name="fvp-settings[vimeo][byline]" id="fvp-settings-vimeo-3" value="display" <?php checked( 1, $vimeo['byline'], 1 ) ?>/><label for="fvp-settings-vimeo-3"> <?php _e('Byline', 'featured-video-plus'); ?></label>
|
222 |
<span class="color-picker" style="position: relative;<?php if( wp_style_is( 'wp-color-picker', 'done' ) ) echo ' top: .6em;'; ?>" >
|
223 |
+
<input type="text" name="fvp-settings[vimeo][color]" id="fvp-settings-vimeo-color" class="fvp_colorpicker_input" value="#<?php echo $vimeo['color'] ?>" data-default-color="#00adef" />
|
224 |
<label for="fvp-settings-vimeo-color" style="display: none;"> <?php _e('Color', 'featured-video-plus'); ?></label>
|
225 |
<?php if( !wp_style_is('wp-color-picker', 'registered' ) ) { ?><div class="fvp_colorpicker" id="fvp-settings-vimeo-colorpicker"></div><?php } ?>
|
226 |
</span>
|
252 |
<input type="text" name="fvp-settings[dailymotion][synd]" id="fvp-settings-dailymotion-synd" value="<?php echo $dailymotion['synd']; ?>" size="6" /> <label for="fvp-settings-dailymotion-synd"> <?php _e('Syndication Key', 'featured-video-plus'); ?></label>
|
253 |
<br />
|
254 |
<span class="color-picker" style="position: relative;<?php if( wp_style_is( 'wp-color-picker', 'done' ) ) echo ' top: .6em;'; ?>" >
|
255 |
+
<input type="text" name="fvp-settings[dailymotion][foreground]" id="fvp-settings-dailymotion-foreground" class="fvp_colorpicker_input" value="#<?php echo $dailymotion['foreground'] ?>" data-default-color="#f7fffd" />
|
256 |
<label for="fvp-settings-dailymotion-foreground" style="display: none;"> <?php _e('Foreground', 'featured-video-plus'); ?></label>
|
257 |
<?php if( !wp_style_is('wp-color-picker', 'registered' ) ) { ?><div class="fvp_colorpicker" id="fvp-settings-dailymotion-foreground-colorpicker"></div><?php } ?>
|
258 |
</span>
|
259 |
<span class="color-picker" style="position: relative;<?php if( wp_style_is( 'wp-color-picker', 'done' ) ) echo ' top: .6em;'; ?>" >
|
260 |
+
<input type="text" name="fvp-settings[dailymotion][highlight]" id="fvp-settings-dailymotion-highlight" class="fvp_colorpicker_input" value="#<?php echo $dailymotion['highlight'] ?>" data-default-color="#ffc300" />
|
261 |
<label for="fvp-settings-dailymotion-highlight" style="display: none;"> <?php _e('Highlight', 'featured-video-plus'); ?></label>
|
262 |
<?php if( !wp_style_is('wp-color-picker', 'registered' ) ) { ?><div class="fvp_colorpicker" id="fvp-settings-dailymotion-highlight-colorpicker"></div><?php } ?>
|
263 |
</span>
|
264 |
<span class="color-picker" style="position: relative;<?php if( wp_style_is( 'wp-color-picker', 'done' ) ) echo ' top: .6em;'; ?>" >
|
265 |
+
<input type="text" name="fvp-settings[dailymotion][background]" id="fvp-settings-dailymotion-background" class="fvp_colorpicker_input" value="#<?php echo $dailymotion['background'] ?>" data-default-color="#171d1b" />
|
266 |
<label for="fvp-settings-dailymotion-background" style="display: none;"> <?php _e('Background', 'featured-video-plus'); ?></label>
|
267 |
<?php if( !wp_style_is('wp-color-picker', 'registered' ) ) { ?><div class="fvp_colorpicker" id="fvp-settings-dailymotion-background-colorpicker"></div><?php } ?>
|
268 |
</span>
|
324 |
// Autoplay
|
325 |
$options['autoplay'] = isset($input['autoplay']) && $input['autoplay'] == 'true' ? 1 : 0;
|
326 |
|
327 |
+
// Local
|
328 |
+
$options['local']['videojs']['js'] = isset( $input['local']['videojs']['js'] ) ? true : false;
|
329 |
+
$options['local']['videojs']['css'] = isset( $input['local']['videojs']['css'] ) ? true : false;
|
330 |
+
$options['local']['videojs']['cdn'] = isset( $input['local']['videojs']['cdn'] ) ? true : false;
|
331 |
|
332 |
// YouTube
|
333 |
$options['youtube']['theme'] = isset($input['youtube']['theme']) && ( $input['youtube']['theme'] == 'light' ) ? 'light' : 'dark';
|
334 |
$options['youtube']['color'] = isset($input['youtube']['color']) && ( $input['youtube']['color'] == 'white' ) ? 'white' : 'red';
|
335 |
+
$options['youtube']['wmode'] = isset($input['youtube']['wmode']) ? $input['youtube']['wmode'] : 'auto';
|
336 |
$options['youtube']['info'] = isset($input['youtube']['info']) && ( $input['youtube']['info'] == 'true' ) ? 1 : 0;
|
337 |
$options['youtube']['logo'] = isset($input['youtube']['logo']) && ( $input['youtube']['logo'] == 'true' ) ? 1 : 0;
|
338 |
$options['youtube']['rel'] = isset($input['youtube']['rel']) && ( $input['youtube']['rel'] == 'true' ) ? 1 : 0;
|
php/upgrade.php
CHANGED
@@ -77,14 +77,35 @@ function featured_video_plus_upgrade() {
|
|
77 |
case '1.3':
|
78 |
$notice = isset($notice) ? $notice : 'upgrade_13';
|
79 |
|
80 |
-
$options['autoplay'] = 0;
|
81 |
-
$options['youtube']['logo'] = 1;
|
82 |
-
$options['dailymotion']['syndication'] = '';
|
83 |
$options['out'] = 0;
|
|
|
|
|
|
|
84 |
|
85 |
$options['align'] = $options['sizing']['wmode'] == 'auto' ? 'center' : $options['sizing']['align'];
|
86 |
unset( $options['sizing']['align'] );
|
87 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
// *************************************************************
|
89 |
$options['version'] = FVP_VERSION;
|
90 |
$options['reged' ] = false;
|
@@ -122,6 +143,17 @@ class featured_video_plus_notices {
|
|
122 |
$this->pluginpage = 'http://wordpress.org/extend/plugins/featured-video-plus#plugin-title';
|
123 |
}
|
124 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
/**
|
126 |
* Upgrade notification 1.3 to current version
|
127 |
*
|
@@ -129,7 +161,7 @@ class featured_video_plus_notices {
|
|
129 |
*/
|
130 |
function upgrade_13() {
|
131 |
echo "\n" . '<div class="updated" id="fvp_activation_notification"><p>';
|
132 |
-
printf(__('Featured Video Plus was <strong>upgraded</strong>.', 'featured-video-plus').' '.__('%s features a seamless <strong>WP3.5 Media Manager</strong> integration, time-links (#t=4m2s) for YouTube and Dailymotion,
|
133 |
echo "</p></div>\n";
|
134 |
}
|
135 |
|
@@ -140,7 +172,7 @@ class featured_video_plus_notices {
|
|
140 |
*/
|
141 |
function upgrade_12() {
|
142 |
echo "\n" . '<div class="updated" id="fvp_activation_notification"><p>';
|
143 |
-
printf(__('Featured Video Plus was <strong>upgraded</strong>.', 'featured-video-plus').' '.__('%s features a seamless WP3.5 Media Manager integration, time-links (#t=4m2s) for YouTube and Dailymotion, more customization settings and internationalization.', 'featured-video-plus').' '.__('If you like the plugin, please %srate it%s.', 'featured-video-plus'), '<strong>Version '.FVP_VERSION.'</strong>', '<a href="'.$this->pluginpage.'" target="_blank">', '</a>');
|
144 |
echo "</p></div>\n";
|
145 |
}
|
146 |
|
@@ -151,7 +183,7 @@ class featured_video_plus_notices {
|
|
151 |
*/
|
152 |
function upgrade_11() {
|
153 |
echo "\n" . '<div class="updated" id="fvp_activation_notification"><p>';
|
154 |
-
printf(__('Featured Video Plus was <strong>upgraded</strong>.', 'featured-video-plus').' '.__('%s features support for <strong>Local Videos</strong>, a seamless WP3.5 Media Manager integration, time-links (#t=4m2s) for YouTube and Dailymotion and many more customization settings.', 'featured-video-plus').' '.__('If you like the plugin, please %srate it%s.', 'featured-video-plus'), '<strong>Version '.FVP_VERSION.'</strong>', '<a href="'.$this->pluginpage.'" traget="_blank">','</a>');
|
155 |
echo "</p></div>\n";
|
156 |
}
|
157 |
|
77 |
case '1.3':
|
78 |
$notice = isset($notice) ? $notice : 'upgrade_13';
|
79 |
|
|
|
|
|
|
|
80 |
$options['out'] = 0;
|
81 |
+
$options['autoplay'] = 0;
|
82 |
+
$options['youtube']['logo'] = 1;
|
83 |
+
$options['dailymotion']['syndication'] = '';
|
84 |
|
85 |
$options['align'] = $options['sizing']['wmode'] == 'auto' ? 'center' : $options['sizing']['align'];
|
86 |
unset( $options['sizing']['align'] );
|
87 |
|
88 |
+
case '1.4':
|
89 |
+
$notice = isset($notice) ? $notice : 'upgrade_14';
|
90 |
+
|
91 |
+
$options['youtube']['wmode'] = 'auto';
|
92 |
+
$options['local']['videojs']['js'] = true;
|
93 |
+
$options['local']['videojs']['css'] = true;
|
94 |
+
$options['local']['videojs']['cdn'] = false;
|
95 |
+
unset($options['videojs']);
|
96 |
+
|
97 |
+
// update video data ('attr' to 'time') and fix serialization
|
98 |
+
$ids = $GLOBALS['featured_video_plus']->get_post_by_custom_meta('_fvp_video');
|
99 |
+
foreach( $ids as $id ) {
|
100 |
+
$meta = maybe_unserialize(get_post_meta( $id, '_fvp_video', true ));
|
101 |
+
if( isset( $meta['attr'] ) ) {
|
102 |
+
$meta['time'] = $meta['attr'];
|
103 |
+
unset($meta['attr']);
|
104 |
+
update_post_meta($id, '_fvp_video', $meta);
|
105 |
+
}
|
106 |
+
}
|
107 |
+
|
108 |
+
|
109 |
// *************************************************************
|
110 |
$options['version'] = FVP_VERSION;
|
111 |
$options['reged' ] = false;
|
143 |
$this->pluginpage = 'http://wordpress.org/extend/plugins/featured-video-plus#plugin-title';
|
144 |
}
|
145 |
|
146 |
+
/**
|
147 |
+
* Upgrade notification 1.4 to current version
|
148 |
+
*
|
149 |
+
* @since 1.5
|
150 |
+
*/
|
151 |
+
function upgrade_14() {
|
152 |
+
echo "\n" . '<div class="updated" id="fvp_activation_notification"><p>';
|
153 |
+
printf(__('Featured Video Plus was <strong>upgraded</strong>.', 'featured-video-plus').' '.__('%s <strong>ajax</strong>ifies the Featured Video box and introduces new options (especially for the local video player).', 'featured-video-plus').' '.__('If you like the plugin, please %srate it%s.', 'featured-video-plus'), '<strong>Version '.FVP_VERSION.'</strong>', '<a href="'.$this->pluginpage.'" target="_blank">', '</a>');
|
154 |
+
echo "</p></div>\n";
|
155 |
+
}
|
156 |
+
|
157 |
/**
|
158 |
* Upgrade notification 1.3 to current version
|
159 |
*
|
161 |
*/
|
162 |
function upgrade_13() {
|
163 |
echo "\n" . '<div class="updated" id="fvp_activation_notification"><p>';
|
164 |
+
printf(__('Featured Video Plus was <strong>upgraded</strong>.', 'featured-video-plus').' '.__('%s features a seamless <strong>WP3.5 Media Manager</strong> integration, an all new <strong>ajax</strong>ified metabox, time-links (#t=4m2s) for YouTube and Dailymotion, new PHP functions for developers and more.', 'featured-video-plus').' '.__('If you like the plugin, please %srate it%s.', 'featured-video-plus'), '<strong>Version '.FVP_VERSION.'</strong>', '<a href="'.$this->pluginpage.'" target="_blank">', '</a>');
|
165 |
echo "</p></div>\n";
|
166 |
}
|
167 |
|
172 |
*/
|
173 |
function upgrade_12() {
|
174 |
echo "\n" . '<div class="updated" id="fvp_activation_notification"><p>';
|
175 |
+
printf(__('Featured Video Plus was <strong>upgraded</strong>.', 'featured-video-plus').' '.__('%s features a seamless WP3.5 Media Manager integration, an ajaxified metabox, time-links (#t=4m2s) for YouTube and Dailymotion, more customization settings and internationalization.', 'featured-video-plus').' '.__('If you like the plugin, please %srate it%s.', 'featured-video-plus'), '<strong>Version '.FVP_VERSION.'</strong>', '<a href="'.$this->pluginpage.'" target="_blank">', '</a>');
|
176 |
echo "</p></div>\n";
|
177 |
}
|
178 |
|
183 |
*/
|
184 |
function upgrade_11() {
|
185 |
echo "\n" . '<div class="updated" id="fvp_activation_notification"><p>';
|
186 |
+
printf(__('Featured Video Plus was <strong>upgraded</strong>.', 'featured-video-plus').' '.__('%s features support for <strong>Local Videos</strong>, a seamless WP3.5 Media Manager integration, an ajaxified metabox, time-links (#t=4m2s) for YouTube and Dailymotion and many more customization settings.', 'featured-video-plus').' '.__('If you like the plugin, please %srate it%s.', 'featured-video-plus'), '<strong>Version '.FVP_VERSION.'</strong>', '<a href="'.$this->pluginpage.'" traget="_blank">','</a>');
|
187 |
echo "</p></div>\n";
|
188 |
}
|
189 |
|
readme.txt
CHANGED
@@ -2,30 +2,30 @@
|
|
2 |
Contributors: a.hoereth
|
3 |
Plugin Name: Featured Video Plus
|
4 |
Plugin URI: https://github.com/ahoereth/featured-video-plus
|
5 |
-
Tags: featured
|
6 |
Author: Alexander Höreth
|
7 |
Author URI: http://ahoereth.yrnxt.com/
|
8 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=a%2ehoereth%40gmail%2ecom
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
Requires at least: 3.1
|
12 |
-
Tested up to: 3.5
|
13 |
-
Stable tag: 1.
|
14 |
|
15 |
Add Featured Videos to your posts and pages. Works like magic with most themes which use Featured Images. Local Media, YouTube, Vimeo, Dailymotion.
|
16 |
|
17 |
== Description ==
|
18 |
*A picture is worth a thousand words. How many words is a video worth?*
|
19 |
|
20 |
-
This plugin enables you to define Featured Videos
|
21 |
|
22 |
-
1. If your theme already makes use of
|
23 |
2. insert the `[featured-video-plus]`-__Shortcode__ in your posts or
|
24 |
-
3. manually use the __PHP functions__ in your theme's source files.
|
25 |
|
26 |
Beside your __Local Videos__ (`mp4`, `webM` & `ogg/ogv`) you can use videos from __YouTube__, __Vimeo__ and __Dailymotion__. If you miss a certain video platform: [Leave me a note](http://wordpress.org/support/plugin/featured-video-plus). For YouTube and Dailymotion the plugin also features [time-links](http://support.google.com/youtube/bin/answer.py?hl=en&answer=116618).
|
27 |
|
28 |
-
The plugin adds customization options to your Media Settings. Beside aesthetic individualizations for each video platform's player you can turn off automatic integration, turn on autoplay, define your Dailymotion Syndication Key and tweak video sizing. By default videos try to dynamically fit their parent containers width.
|
29 |
|
30 |
= Shortcode =
|
31 |
|
@@ -58,6 +58,10 @@ The plugin is ready to go. Now edit your posts and add video links to the "Featu
|
|
58 |
|
59 |
|
60 |
== Changelog ==
|
|
|
|
|
|
|
|
|
61 |
|
62 |
= 1.4: 2013-03-15 =
|
63 |
* __WP 3.5 Media Manager__ seamless integrated
|
@@ -92,6 +96,9 @@ The plugin is ready to go. Now edit your posts and add video links to the "Featu
|
|
92 |
|
93 |
== Upgrade Notice ==
|
94 |
|
|
|
|
|
|
|
95 |
= 1.4 =
|
96 |
WP3.5 Media Manager, time-links...
|
97 |
|
2 |
Contributors: a.hoereth
|
3 |
Plugin Name: Featured Video Plus
|
4 |
Plugin URI: https://github.com/ahoereth/featured-video-plus
|
5 |
+
Tags: featured, post, video, image, thumbnail, html5, flash, youtube, vimeo, dailymotion, mp4, webm, ogg, embed, ajax
|
6 |
Author: Alexander Höreth
|
7 |
Author URI: http://ahoereth.yrnxt.com/
|
8 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=a%2ehoereth%40gmail%2ecom
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
Requires at least: 3.1
|
12 |
+
Tested up to: 3.5.1
|
13 |
+
Stable tag: 1.5
|
14 |
|
15 |
Add Featured Videos to your posts and pages. Works like magic with most themes which use Featured Images. Local Media, YouTube, Vimeo, Dailymotion.
|
16 |
|
17 |
== Description ==
|
18 |
*A picture is worth a thousand words. How many words is a video worth?*
|
19 |
|
20 |
+
This plugin enables you to define Featured Videos, which, if set, take the place of Featured Images. There are three ways to get the videos onto your page:
|
21 |
|
22 |
+
1. If your theme already makes use of [Featured Images](http://codex.wordpress.org/Post_Thumbnails), these will in most themes __automatically__ be replaced by your Featured Videos if available. Alternatively you can
|
23 |
2. insert the `[featured-video-plus]`-__Shortcode__ in your posts or
|
24 |
+
3. manually make use of the __PHP functions__ in your theme's source files.
|
25 |
|
26 |
Beside your __Local Videos__ (`mp4`, `webM` & `ogg/ogv`) you can use videos from __YouTube__, __Vimeo__ and __Dailymotion__. If you miss a certain video platform: [Leave me a note](http://wordpress.org/support/plugin/featured-video-plus). For YouTube and Dailymotion the plugin also features [time-links](http://support.google.com/youtube/bin/answer.py?hl=en&answer=116618).
|
27 |
|
28 |
+
The plugin adds customization options to your Media Settings. Beside aesthetic individualizations for each video platform's player you can turn off automatic integration, turn on autoplay, define your Dailymotion Syndication Key and tweak video sizing. By default videos try to dynamically fit their parent containers width. Take a look at *Settings -> Media*.
|
29 |
|
30 |
= Shortcode =
|
31 |
|
58 |
|
59 |
|
60 |
== Changelog ==
|
61 |
+
= 1.5: 2013-03-22 =
|
62 |
+
* __AJAX__-ified the Featured Video box - just like Featured Images
|
63 |
+
* Added options for a) disabling VideoJS JS/CSS, b) enabling VideoJS CDN and c) YouTube `wmode`
|
64 |
+
* Plugin no longer breaks WP image editor ([*](http://wordpress.org/support/topic/breaks-image-scaling-shows-nan))
|
65 |
|
66 |
= 1.4: 2013-03-15 =
|
67 |
* __WP 3.5 Media Manager__ seamless integrated
|
96 |
|
97 |
== Upgrade Notice ==
|
98 |
|
99 |
+
= 1.5 =
|
100 |
+
AJAX!
|
101 |
+
|
102 |
= 1.4 =
|
103 |
WP3.5 Media Manager, time-links...
|
104 |
|
uninstall.php
CHANGED
@@ -14,7 +14,7 @@ foreach( $post_types as $post_type )
|
|
14 |
if( $post_type != 'attachment' ) {
|
15 |
$allposts = get_posts('numberposts=-1&post_type=' . $post_type . '&post_status=any');
|
16 |
foreach( $allposts as $post ) {
|
17 |
-
$meta =
|
18 |
wp_delete_attachment( $meta['img'] );
|
19 |
delete_post_meta($meta['img'], '_fvp_image');
|
20 |
delete_post_meta($post->ID, '_fvp_video');
|
14 |
if( $post_type != 'attachment' ) {
|
15 |
$allposts = get_posts('numberposts=-1&post_type=' . $post_type . '&post_status=any');
|
16 |
foreach( $allposts as $post ) {
|
17 |
+
$meta = get_post_meta( $post->ID, '_fvp_video', true );
|
18 |
wp_delete_attachment( $meta['img'] );
|
19 |
delete_post_meta($meta['img'], '_fvp_image');
|
20 |
delete_post_meta($post->ID, '_fvp_video');
|