Featured Video Plus - Version 2.1.0

Version Description

Only upgrade when using WordPress 3.7 or higher! Check your media settings after upgrading.

Download this release

Release Info

Developer a.hoereth
Plugin Icon 128x128 Featured Video Plus
Version 2.1.0
Comparing to
See all releases

Code changes from version 2.0.3 to 2.1.0

CHANGELOG.md CHANGED
@@ -1,6 +1,19 @@
1
  # Changelog #
2
 
3
- ## 2.0.0, 2.0.1, 2.0.2, 2.0.3: 2015-06-01 ##
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  * __Requires WordPress 3.7 or higher now!__ This reflects versions of WordPress which are "officially" [supported](https://codex.wordpress.org/Supported_Versions). The plugin will from now on try to stick to supporting all versions listed there.
5
  * Major code refactor which results in many bugs scrubbed.
6
  * Support for raw embed codes and [all WordPress core media providers](https://codex.wordpress.org/Embeds#Okay.2C_So_What_Sites_Can_I_Embed_From.3F).
1
  # Changelog #
2
 
3
+ ## 2.1.0: 2015-06-11 ##
4
+ * Display options are now chained using OR - if one of them holds, the replace mode is used.
5
+ * Added `always use replace mode when viewing single posts and pages` option, was implicitly true since 2.0.0. ([*](https://wordpress.org/support/topic/featured-video-overrides-featured-image)).
6
+ * Fixed undefined warnings when using `WP_DEBUG` ([*](https://wordpress.org/support/topic/debug-error-16)).
7
+ * Fixed double-wrapped .post-thumbnails ([*](https://wordpress.org/support/topic/video-no-longer-appearing)).
8
+ * Lazy loading a video no longer breaks other videos. ([*](https://wordpress.org/support/topic/blank-screen-after-the-video-is-played))
9
+
10
+ ## 2.0.3: 2015-06-01 ##
11
+ * Remove usage of PHP short array syntax in order to support PHP versions lower than 5.4 ([*](https://wordpress.org/support/topic/bug-on-version-201))
12
+
13
+ ## 2.0.2: 2015-06-01 ##
14
+ * Fixed undefined warnings when saving posts with fresh featured videos.
15
+
16
+ ## 2.0.0 & 2.0.1: 2015-06-01 ##
17
  * __Requires WordPress 3.7 or higher now!__ This reflects versions of WordPress which are "officially" [supported](https://codex.wordpress.org/Supported_Versions). The plugin will from now on try to stick to supporting all versions listed there.
18
  * Major code refactor which results in many bugs scrubbed.
19
  * Support for raw embed codes and [all WordPress core media providers](https://codex.wordpress.org/Embeds#Okay.2C_So_What_Sites_Can_I_Embed_From.3F).
README.md CHANGED
@@ -79,8 +79,10 @@ When editing your theme's sourcecode keep in mind that a future update through W
79
 
80
  ## Upgrade Notice ##
81
 
82
- ### 2.0.3 ###
83
- Only upgrade when using WordPress 3.7 or higher! Big refactor with support for more video providers.
84
 
 
 
85
 
86
 
79
 
80
  ## Upgrade Notice ##
81
 
82
+ ### 2.1.0 ###
83
+ Only upgrade when using WordPress 3.7 or higher! Check your media settings after upgrading.
84
 
85
+ ### 2.0.3 ###
86
+ Only upgrade when using WordPress 3.7 or higher!
87
 
88
 
featured-video-plus.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Featured Video Plus
4
  Plugin URI: http://yrnxt.com/wordpress/featured-video-plus/
5
  Description: Add Featured Videos to your posts and pages.
6
- Version: 2.0.3
7
  Author: Alexander Höreth
8
  Author URI: http://yrnxt.com
9
  Text Domain: featured-video-plus
@@ -32,7 +32,7 @@ License: GPL2
32
  // ********************
33
  // CONSTANTS
34
  if ( ! defined( 'FVP_VERSION' ) ) {
35
- define( 'FVP_VERSION', '2.0.3' );
36
  }
37
 
38
  $pathinfo = pathinfo( dirname( plugin_basename( __FILE__ ) ) );
3
  Plugin Name: Featured Video Plus
4
  Plugin URI: http://yrnxt.com/wordpress/featured-video-plus/
5
  Description: Add Featured Videos to your posts and pages.
6
+ Version: 2.1.0
7
  Author: Alexander Höreth
8
  Author URI: http://yrnxt.com
9
  Text Domain: featured-video-plus
32
  // ********************
33
  // CONSTANTS
34
  if ( ! defined( 'FVP_VERSION' ) ) {
35
+ define( 'FVP_VERSION', '2.1.0' );
36
  }
37
 
38
  $pathinfo = pathinfo( dirname( plugin_basename( __FILE__ ) ) );
js/frontend.js CHANGED
@@ -10,15 +10,21 @@
10
 
11
 
12
  /**
13
- * Remove the link wrapping featured images on index pages
 
14
  */
15
  function unwrap() {
16
- $('.has-post-video a.post-thumbnail>.featured-video-plus,' +
17
- '.has-post-video a.post-thumbnail>.fvp-dynamic,' +
18
- '.has-post-video a.post-thumbnail>.fvp-overlay,' +
19
- '.has-post-video a.post-thumbnail>.mejs-video,' +
20
- '.has-post-video a.post-thumbnail>.wp-video'
 
21
  ).unwrap();
 
 
 
 
22
  }
23
 
24
 
@@ -105,18 +111,19 @@
105
  triggerPlayLoad();
106
 
107
  $.post(fvpdata.ajaxurl, {
108
- 'action': 'fvp_get_embed',
109
- 'nonce' : fvpdata.nonce,
110
- 'id' : id
111
- }, function(data){
112
- if (data.success) {
113
- $self.replaceWith(data.html);
114
-
115
- // Initialize mediaelement.js player for the new videos.
116
- $('.wp-audio-shortcode, .wp-video-shortcode').mediaelementplayer();
117
-
118
- // Autosize them if required.
119
  fitVids();
 
120
  }
121
 
122
  triggerPlayLoad();
@@ -149,15 +156,15 @@
149
  // Check if the result is already cached
150
  if (0 === $cache.html().length) {
151
  $.post(fvpdata.ajaxurl, {
152
- 'action': 'fvp_get_embed',
153
- 'nonce' : fvpdata.nonce,
154
- 'id' : id
155
- }, function(data) {
156
- if (data.success) {
157
  // cache the result to not reload when opened again
158
- $cache.html(data.html);
159
 
160
- $('#DOMWindow').html(data.html);
161
  sizeLocal();
162
  $(window).trigger('scroll');
163
  }
10
 
11
 
12
  /**
13
+ * Remove the link wrapping featured images on index pages and the
14
+ * possibile repetition of .post-thumbnail-classes.
15
  */
16
  function unwrap() {
17
+ // Remove links around videos.
18
+ $('.has-post-video a>.featured-video-plus,' +
19
+ '.has-post-video a>.fvp-dynamic,' +
20
+ '.has-post-video a>.fvp-overlay,' +
21
+ '.has-post-video a>.wp-video,' +
22
+ '.has-post-video a>.wp-video-shortcode'
23
  ).unwrap();
24
+
25
+ // Remove wrapped .post-thumbnail-classes
26
+ $('.has-post-video .post-thumbnail>.post-thumbnail')
27
+ .removeClass('post-thumbnail');
28
  }
29
 
30
 
111
  triggerPlayLoad();
112
 
113
  $.post(fvpdata.ajaxurl, {
114
+ 'action' : 'fvp_get_embed',
115
+ 'fvp_nonce' : fvpdata.nonce,
116
+ 'id' : id
117
+ }, function(response){
118
+ if (response.success) {
119
+ var $parent = $self.parent();
120
+ $self.replaceWith(response.data);
121
+
122
+ // Initialize mediaelement.js, autosize and unwrap the new videos.
123
+ $parent.find('.wp-audio-shortcode, .wp-video-shortcode')
124
+ .mediaelementplayer();
125
  fitVids();
126
+ unwrap();
127
  }
128
 
129
  triggerPlayLoad();
156
  // Check if the result is already cached
157
  if (0 === $cache.html().length) {
158
  $.post(fvpdata.ajaxurl, {
159
+ 'action' : 'fvp_get_embed',
160
+ 'fvp_nonce' : fvpdata.nonce,
161
+ 'id' : id
162
+ }, function(response) {
163
+ if (response.success) {
164
  // cache the result to not reload when opened again
165
+ $cache.html(response.data);
166
 
167
+ $('#DOMWindow').html(response.data);
168
  sizeLocal();
169
  $(window).trigger('scroll');
170
  }
js/frontend.min.js CHANGED
@@ -1 +1 @@
1
- !function(t){"use strict";function a(){t(".has-post-video a.post-thumbnail>.featured-video-plus,.has-post-video a.post-thumbnail>.fvp-dynamic,.has-post-video a.post-thumbnail>.fvp-overlay,.has-post-video a.post-thumbnail>.mejs-video,.has-post-video a.post-thumbnail>.wp-video").unwrap()}function e(){fvpdata.fitvids&&t(".featured-video-plus.fvp-responsive").fitVids({customSelector:["iframe","object","embed"]})}function i(){if(fvpdata.width&&!fvpdata.fitvids){t(".fvp-local .wp-video").css({width:fvpdata.width,height:"auto"});var a=t(".fvp-local .wp-video .wp-video-shortcode");a.attr({width:fvpdata.width,height:fvpdata.width/a.attr("width")*a.attr("heigth")})}}function o(){void 0===r&&[fvpdata.playicon,fvpdata.loadicon].forEach(function(a){t("body").append(t("<img/>",{src:a}).hide())}),r=r===v?s:v,c.css({backgroundImage:r})}function d(a){var e=t(a.currentTarget),i=e.children("img");0===e.find(".fvp-loader").length?(i.animate({opacity:fvpdata.opacity}),e.css({position:"relative"}).prepend(c.css({height:i.height(),width:i.width(),marginTop:-i.height()/2,marginLeft:-i.width()/2}))):r!==s&&(i.animate({opacity:1}),c.remove())}function n(a){a.preventDefault();var i=t(a.currentTarget),d=parseInt(i.attr("data-id"),10);o(),t.post(fvpdata.ajaxurl,{action:"fvp_get_embed",nonce:fvpdata.nonce,id:d},function(a){a.success&&(i.replaceWith(a.html),t(".wp-audio-shortcode, .wp-video-shortcode").mediaelementplayer(),e()),o()})}function p(a){a.preventDefault();var e=t(a.currentTarget),o=parseInt(e.attr("data-id"),10);e.openDOMWindow({eventType:null,windowPadding:0,borderSize:0,windowBGColor:"transparent",overlayOpacity:100*fvpdata.opacity,width:"100%",height:"100%"}),t("#DOMWindow").css({backgroundImage:s});var d=t("#fvp-cache-"+o);0===d.html().length?t.post(fvpdata.ajaxurl,{action:"fvp_get_embed",nonce:fvpdata.nonce,id:o},function(a){a.success&&(d.html(a.html),t("#DOMWindow").html(a.html),i(),t(window).trigger("scroll"))}):(t("#DOMWindow").html(d.html()),t(window).trigger("scroll"))}var r,c=t("<div />").addClass("fvp-loader"),v="url('"+fvpdata.playicon+"')",s="url('"+fvpdata.loadicon+"')";t(document).ready(function(){a(),setTimeout(a,1e3),e(),i(),t(".fvp-overlay, .fvp-dynamic").hover(d,d),o(),t(".fvp-dynamic").click(n),t(".fvp-overlay").click(p)})}(jQuery);
1
+ !function(t){"use strict";function a(){t(".has-post-video a>.featured-video-plus,.has-post-video a>.fvp-dynamic,.has-post-video a>.fvp-overlay,.has-post-video a>.wp-video,.has-post-video a>.wp-video-shortcode").unwrap(),t(".has-post-video .post-thumbnail>.post-thumbnail").removeClass("post-thumbnail")}function e(){fvpdata.fitvids&&t(".featured-video-plus.fvp-responsive").fitVids({customSelector:["iframe","object","embed"]})}function i(){if(fvpdata.width&&!fvpdata.fitvids){t(".fvp-local .wp-video").css({width:fvpdata.width,height:"auto"});var a=t(".fvp-local .wp-video .wp-video-shortcode");a.attr({width:fvpdata.width,height:fvpdata.width/a.attr("width")*a.attr("heigth")})}}function o(){void 0===r&&[fvpdata.playicon,fvpdata.loadicon].forEach(function(a){t("body").append(t("<img/>",{src:a}).hide())}),r=r===c?s:c,v.css({backgroundImage:r})}function d(a){var e=t(a.currentTarget),i=e.children("img");0===e.find(".fvp-loader").length?(i.animate({opacity:fvpdata.opacity}),e.css({position:"relative"}).prepend(v.css({height:i.height(),width:i.width(),marginTop:-i.height()/2,marginLeft:-i.width()/2}))):r!==s&&(i.animate({opacity:1}),v.remove())}function n(i){i.preventDefault();var d=t(i.currentTarget),n=parseInt(d.attr("data-id"),10);o(),t.post(fvpdata.ajaxurl,{action:"fvp_get_embed",fvp_nonce:fvpdata.nonce,id:n},function(t){if(t.success){var i=d.parent();d.replaceWith(t.data),i.find(".wp-audio-shortcode, .wp-video-shortcode").mediaelementplayer(),e(),a()}o()})}function p(a){a.preventDefault();var e=t(a.currentTarget),o=parseInt(e.attr("data-id"),10);e.openDOMWindow({eventType:null,windowPadding:0,borderSize:0,windowBGColor:"transparent",overlayOpacity:100*fvpdata.opacity,width:"100%",height:"100%"}),t("#DOMWindow").css({backgroundImage:s});var d=t("#fvp-cache-"+o);0===d.html().length?t.post(fvpdata.ajaxurl,{action:"fvp_get_embed",fvp_nonce:fvpdata.nonce,id:o},function(a){a.success&&(d.html(a.data),t("#DOMWindow").html(a.data),i(),t(window).trigger("scroll"))}):(t("#DOMWindow").html(d.html()),t(window).trigger("scroll"))}var r,v=t("<div />").addClass("fvp-loader"),c="url('"+fvpdata.playicon+"')",s="url('"+fvpdata.loadicon+"')";t(document).ready(function(){a(),setTimeout(a,1e3),e(),i(),t(".fvp-overlay, .fvp-dynamic").hover(d,d),o(),t(".fvp-dynamic").click(n),t(".fvp-overlay").click(p)})}(jQuery);
js/html.js CHANGED
@@ -1,49 +1,55 @@
1
  // *****************************************************************************
2
  // TABBED OPTIONS
3
- jQuery(document).ready(function($) {
4
  /* global fvphtml */
 
5
 
6
- // get tabs
7
- var $tabs = $(fvphtml.prefix + '-tabs');
 
8
 
9
- // initialize every instance's functionality
10
- for ( var i = $tabs.length - 1; i >= 0; i-- ) {
11
- var $tab = $( $tabs[i] );
 
12
 
13
- // get titles and bodys
14
- var $titles = $tab.children(fvphtml.prefix + '-tab-title');
15
- var $bodys = $tab.children(fvphtml.prefix + '-tab-body');
16
 
17
- // first title/body pair is active on initiation
18
- $titles.first().addClass('active');
19
- $bodys.first().addClass('active');
 
20
 
21
- // pull titles to top
22
- $tab.prepend( $titles );
23
 
24
- // hide all but the initially active content
25
- $bodys.filter(':not(.active)').hide();
 
26
 
27
- // initialize title click event
28
- $tab.children(fvphtml.prefix + '-tab-title').click(function() {
29
- var $title = $(this);
30
- var $body = $bodys.filter('[data-hook=\'' + $title.data('hook') + '\']');
31
 
32
- // current active title is not clickable
33
- if ($title.hasClass('active') && $body.hasClass('active')) {
34
- return;
35
- }
36
 
37
- // no longer active
38
- $titles.removeClass('active');
39
- $bodys.removeClass('active').slideUp();
40
 
41
- // newly active
42
- $title.addClass('active');
43
- $body.addClass('active').slideDown();
44
- });
45
- }
46
- });
 
 
 
 
 
47
 
48
 
49
 
@@ -52,9 +58,10 @@ jQuery(document).ready(function($) {
52
  // CONDITIONALS
53
  (function($) {
54
  /* global fvphtml */
 
55
 
56
  var triggers = {};
57
- function conditionalTriggered() {
58
  var $trigger = $(this);
59
  var targets = triggers[ $trigger.attr('name') ];
60
  for (var i = 0; i < targets.length; i++) {
@@ -88,10 +95,11 @@ jQuery(document).ready(function($) {
88
  $target.removeClass('hidden');
89
  }
90
  }
91
- }
 
92
 
93
  $(document).ready(function() {
94
- var $conditionals = $(fvphtml.prefix + '-conditional');
95
  for (var i = 0; i < $conditionals.length; i++) {
96
  var $target = $( $conditionals[i] );
97
  var names = $target.data('names').split('|');
@@ -118,6 +126,8 @@ jQuery(document).ready(function($) {
118
  // COLORPICKERS / IRIS
119
  // See http://automattic.github.io/Iris/
120
  (function($) {
 
 
121
  var $colorpickers;
122
 
123
 
@@ -166,7 +176,7 @@ jQuery(document).ready(function($) {
166
  * Adjust colorpicker input background and foreground color depending
167
  * on its value.
168
  */
169
- function colorpickerChange(event, ui) {
170
  var $this = $(this);
171
  var color = ui && ui.color ? ui.color.toString() : $this.val();
172
  color = cleanHex(color);
@@ -176,49 +186,49 @@ jQuery(document).ready(function($) {
176
  color: getContrastColor(color)
177
  });
178
 
179
- if (! color) { $this.siblings(fvphtml.prefix + '-reset').hide(); }
180
- else { $this.siblings(fvphtml.prefix + '-reset').show(); }
181
- }
182
 
183
 
184
  /**
185
  * Hide all colorpickers upon opening a new one.
186
  */
187
- function colorpickerClick() {
188
  var $this = $(this);
189
  $colorpickers.not( $this ).iris('hide');
190
  $this.iris('show');
191
- }
192
 
193
 
194
  /**
195
  * Hide colorpicker reset button on blur.
196
  */
197
- function colorpickerBlur(event) {
198
  if (event) { event.preventDefault(); }
199
  var $this = $(this);
200
  if ('' === $this.val()) {
201
- $this.siblings(fvphtml.prefix + '-reset').hide();
202
  }
203
- }
204
 
205
 
206
  /**
207
  * Clear colorpicker input and hide colorpickers on reset click.
208
  */
209
- function colorpickerResetClick(event) {
210
  if (event) { event.preventDefault(); }
211
  $colorpickers.iris('hide');
212
- $(this).siblings(fvphtml.prefix + '-colorpicker')
213
  .val('')
214
  .each(colorpickerChange);
215
- }
216
 
217
 
218
  // DOM is ready..
219
  $(document).ready(function() {
220
  // Get colorpickers.
221
- $colorpickers = $(fvphtml.prefix + '-colorpicker');
222
 
223
  // Change handlers.
224
  $colorpickers.iris({ change: colorpickerChange });
@@ -231,7 +241,7 @@ jQuery(document).ready(function($) {
231
  $colorpickers.blur(colorpickerBlur);
232
 
233
  // Reset click handler.
234
- $colorpickers.siblings(fvphtml.prefix + '-reset').click(colorpickerResetClick);
235
 
236
  // Initial input coloring.
237
  $colorpickers.each(colorpickerChange);
@@ -245,18 +255,19 @@ jQuery(document).ready(function($) {
245
  // TUTORIAL POINTERS
246
  (function($) {
247
  /* global fvphtml, ajaxurl */
 
248
 
249
  /**
250
  * Used when dissmissing a pointer to fire an AJAX request to save the
251
  * closed state to the database.
252
  */
253
- function closePointer() {
254
  var identifier = $(this).data('wpPointer').options.pointer_id;
255
  $.post(ajaxurl, {
256
  pointer: identifier,
257
  action: 'dismiss-wp-pointer'
258
  });
259
- }
260
 
261
 
262
  /**
@@ -299,7 +310,10 @@ jQuery(document).ready(function($) {
299
  // *****************************************************************************
300
  // Contextual Help Links
301
  jQuery(document).ready(function($) {
302
- $(fvphtml.prefix + '-help-link, .help-link').click(function() {
 
 
 
303
  $('#contextual-help-link').trigger('click');
304
  });
305
  });
1
  // *****************************************************************************
2
  // TABBED OPTIONS
3
+ (function($) {
4
  /* global fvphtml */
5
+ 'use strict';
6
 
7
+ var clicker = function() {
8
+ var $title = $(this);
9
+ var $body = $title.siblings('[data-hook=\'' + $title.data('hook') + '\']');
10
 
11
+ // current active title is not clickable
12
+ if ($title.hasClass('active') && $body.hasClass('active')) {
13
+ return;
14
+ }
15
 
16
+ // no longer active
17
+ $title.siblings(fvphtml.prefix + 'tab-title').removeClass('active');
18
+ $title.siblings(fvphtml.prefix + 'tab-body').slideUp();
19
 
20
+ // newly active
21
+ $title.addClass('active');
22
+ $body.addClass('active').slideDown();
23
+ };
24
 
 
 
25
 
26
+ $(document).ready(function() {
27
+ // get tabs
28
+ var $tabs = $(fvphtml.prefix + 'tabs');
29
 
30
+ // initialize every instance's functionality
31
+ for ( var i = $tabs.length - 1; i >= 0; i-- ) {
32
+ var $tab = $( $tabs[i] );
 
33
 
34
+ // get titles and bodys
35
+ var $titles = $tab.children(fvphtml.prefix + 'tab-title');
36
+ var $bodys = $tab.children(fvphtml.prefix + 'tab-body');
 
37
 
38
+ // first title/body pair is active on initiation
39
+ $titles.first().addClass('active');
40
+ $bodys.first().addClass('active');
41
 
42
+ // pull titles to top
43
+ $tab.prepend( $titles );
44
+
45
+ // hide all but the initially active content
46
+ $bodys.filter(':not(.active)').hide();
47
+
48
+ // initialize title click event
49
+ $tab.children(fvphtml.prefix + 'tab-title').click(clicker);
50
+ }
51
+ });
52
+ })(jQuery);
53
 
54
 
55
 
58
  // CONDITIONALS
59
  (function($) {
60
  /* global fvphtml */
61
+ 'use strict';
62
 
63
  var triggers = {};
64
+ var conditionalTriggered = function() {
65
  var $trigger = $(this);
66
  var targets = triggers[ $trigger.attr('name') ];
67
  for (var i = 0; i < targets.length; i++) {
95
  $target.removeClass('hidden');
96
  }
97
  }
98
+ };
99
+
100
 
101
  $(document).ready(function() {
102
+ var $conditionals = $(fvphtml.prefix + 'conditional');
103
  for (var i = 0; i < $conditionals.length; i++) {
104
  var $target = $( $conditionals[i] );
105
  var names = $target.data('names').split('|');
126
  // COLORPICKERS / IRIS
127
  // See http://automattic.github.io/Iris/
128
  (function($) {
129
+ 'use strict';
130
+
131
  var $colorpickers;
132
 
133
 
176
  * Adjust colorpicker input background and foreground color depending
177
  * on its value.
178
  */
179
+ var colorpickerChange = function(event, ui) {
180
  var $this = $(this);
181
  var color = ui && ui.color ? ui.color.toString() : $this.val();
182
  color = cleanHex(color);
186
  color: getContrastColor(color)
187
  });
188
 
189
+ if (! color) { $this.siblings(fvphtml.prefix + 'reset').hide(); }
190
+ else { $this.siblings(fvphtml.prefix + 'reset').show(); }
191
+ };
192
 
193
 
194
  /**
195
  * Hide all colorpickers upon opening a new one.
196
  */
197
+ var colorpickerClick = function() {
198
  var $this = $(this);
199
  $colorpickers.not( $this ).iris('hide');
200
  $this.iris('show');
201
+ };
202
 
203
 
204
  /**
205
  * Hide colorpicker reset button on blur.
206
  */
207
+ var colorpickerBlur = function(event) {
208
  if (event) { event.preventDefault(); }
209
  var $this = $(this);
210
  if ('' === $this.val()) {
211
+ $this.siblings(fvphtml.prefix + 'reset').hide();
212
  }
213
+ };
214
 
215
 
216
  /**
217
  * Clear colorpicker input and hide colorpickers on reset click.
218
  */
219
+ var colorpickerResetClick = function(event) {
220
  if (event) { event.preventDefault(); }
221
  $colorpickers.iris('hide');
222
+ $(this).siblings(fvphtml.prefix + 'colorpicker')
223
  .val('')
224
  .each(colorpickerChange);
225
+ };
226
 
227
 
228
  // DOM is ready..
229
  $(document).ready(function() {
230
  // Get colorpickers.
231
+ $colorpickers = $(fvphtml.prefix + 'colorpicker');
232
 
233
  // Change handlers.
234
  $colorpickers.iris({ change: colorpickerChange });
241
  $colorpickers.blur(colorpickerBlur);
242
 
243
  // Reset click handler.
244
+ $colorpickers.siblings(fvphtml.prefix + 'reset').click(colorpickerResetClick);
245
 
246
  // Initial input coloring.
247
  $colorpickers.each(colorpickerChange);
255
  // TUTORIAL POINTERS
256
  (function($) {
257
  /* global fvphtml, ajaxurl */
258
+ 'use strict';
259
 
260
  /**
261
  * Used when dissmissing a pointer to fire an AJAX request to save the
262
  * closed state to the database.
263
  */
264
+ var closePointer = function() {
265
  var identifier = $(this).data('wpPointer').options.pointer_id;
266
  $.post(ajaxurl, {
267
  pointer: identifier,
268
  action: 'dismiss-wp-pointer'
269
  });
270
+ };
271
 
272
 
273
  /**
310
  // *****************************************************************************
311
  // Contextual Help Links
312
  jQuery(document).ready(function($) {
313
+ /* global fvphtml */
314
+ 'use strict';
315
+
316
+ $(fvphtml.prefix + 'help-link, .help-link').click(function() {
317
  $('#contextual-help-link').trigger('click');
318
  });
319
  });
js/html.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(t){for(var i=t(fvphtml.prefix+"-tabs"),e=i.length-1;e>=0;e--){var r=t(i[e]),n=r.children(fvphtml.prefix+"-tab-title"),a=r.children(fvphtml.prefix+"-tab-body");n.first().addClass("active"),a.first().addClass("active"),r.prepend(n),a.filter(":not(.active)").hide(),r.children(fvphtml.prefix+"-tab-title").click(function(){var i=t(this),e=a.filter("[data-hook='"+i.data("hook")+"']");i.hasClass("active")&&e.hasClass("active")||(n.removeClass("active"),a.removeClass("active").slideUp(),i.addClass("active"),e.addClass("active").slideDown())})}}),function(t){function i(){for(var i=t(this),r=e[i.attr("name")],n=0;n<r.length;n++){var a=t(r[n]),s=a.data("names").split("|"),o=a.data("values").split("|"),l=t.inArray(i.attr("name"),s);if(-1!==l){var c=!0,f=o[l],h="checkbox"!==i.attr("type")||i.prop("checked")?i.val():null;"string"==typeof f&&"!"===f.charAt(0)&&(c=!1,f=f.substr(1)),c&&h!==f||!c&&h===f?a.addClass("hidden"):a.removeClass("hidden")}}}var e={};t(document).ready(function(){for(var r=t(fvphtml.prefix+"-conditional"),n=0;n<r.length;n++)for(var a=t(r[n]),s=a.data("names").split("|"),o=0;o<s.length;o++){var l=s[o];e.hasOwnProperty(l)||(e[l]=[]),e[l].push(a)}for(var c in e){var f=t("[name='"+c+"']");f.change(i)}})}(jQuery),function(t){function i(t){t=t?t:"#fffff",t="#"===t.charAt(0)?t.substr(1):t;var i=parseInt(t.substr(0,2),16),e=parseInt(t.substr(2,2),16),r=parseInt(t.substr(4,2),16),n=(299*i+587*e+114*r)/1e3;return n>=128?"#000":"#fff"}function e(t){return 3===t.length&&"#"!==t.charAt(0)&&(t="#"+t),4===t.length&&"#"===t.charAt(0)&&(t="#"+t.charAt(1)+t.charAt(1)+t.charAt(2)+t.charAt(2)+t.charAt(3)+t.charAt(3)),7===t.length?t:!1}function r(r,n){var a=t(this),s=n&&n.color?n.color.toString():a.val();s=e(s),a.css({backgroundColor:s?s:"#ffffff",color:i(s)}),s?a.siblings(fvphtml.prefix+"-reset").show():a.siblings(fvphtml.prefix+"-reset").hide()}function n(){var i=t(this);o.not(i).iris("hide"),i.iris("show")}function a(i){i&&i.preventDefault();var e=t(this);""===e.val()&&e.siblings(fvphtml.prefix+"-reset").hide()}function s(i){i&&i.preventDefault(),o.iris("hide"),t(this).siblings(fvphtml.prefix+"-colorpicker").val("").each(r)}var o;t(document).ready(function(){o=t(fvphtml.prefix+"-colorpicker"),o.iris({change:r}),o.bind("input",r),o.click(n),o.blur(a),o.siblings(fvphtml.prefix+"-reset").click(s),o.each(r)})}(jQuery),function(t){function i(){var i=t(this).data("wpPointer").options.pointer_id;t.post(ajaxurl,{pointer:i,action:"dismiss-wp-pointer"})}function e(e){var r=e.title||"",n=e.content||"",a=e.position||{edge:"right",align:"middle"};t(e.target).pointer({pointer_id:e.identifier,content:"<h3>"+r+"</h3><p>"+n+"</p>",position:a,close:i}).pointer("open")}t(document).ready(function(){for(var t=fvphtml.pointers||[],i=0;i<t.length;i++)e(fvphtml.pointers[i])})}(jQuery),jQuery(document).ready(function(t){t(fvphtml.prefix+"-help-link, .help-link").click(function(){t("#contextual-help-link").trigger("click")})});
1
+ !function(t){"use strict";var i=function(){var i=t(this),e=i.siblings("[data-hook='"+i.data("hook")+"']");i.hasClass("active")&&e.hasClass("active")||(i.siblings(fvphtml.prefix+"tab-title").removeClass("active"),i.siblings(fvphtml.prefix+"tab-body").slideUp(),i.addClass("active"),e.addClass("active").slideDown())};t(document).ready(function(){for(var e=t(fvphtml.prefix+"tabs"),r=e.length-1;r>=0;r--){var n=t(e[r]),a=n.children(fvphtml.prefix+"tab-title"),s=n.children(fvphtml.prefix+"tab-body");a.first().addClass("active"),s.first().addClass("active"),n.prepend(a),s.filter(":not(.active)").hide(),n.children(fvphtml.prefix+"tab-title").click(i)}})}(jQuery),function(t){"use strict";var i={},e=function(){for(var e=t(this),r=i[e.attr("name")],n=0;n<r.length;n++){var a=t(r[n]),s=a.data("names").split("|"),l=a.data("values").split("|"),o=t.inArray(e.attr("name"),s);if(-1!==o){var c=!0,f=l[o],h="checkbox"!==e.attr("type")||e.prop("checked")?e.val():null;"string"==typeof f&&"!"===f.charAt(0)&&(c=!1,f=f.substr(1)),c&&h!==f||!c&&h===f?a.addClass("hidden"):a.removeClass("hidden")}}};t(document).ready(function(){for(var r=t(fvphtml.prefix+"conditional"),n=0;n<r.length;n++)for(var a=t(r[n]),s=a.data("names").split("|"),l=0;l<s.length;l++){var o=s[l];i.hasOwnProperty(o)||(i[o]=[]),i[o].push(a)}for(var c in i){var f=t("[name='"+c+"']");f.change(e)}})}(jQuery),function(t){"use strict";function i(t){t=t?t:"#fffff",t="#"===t.charAt(0)?t.substr(1):t;var i=parseInt(t.substr(0,2),16),e=parseInt(t.substr(2,2),16),r=parseInt(t.substr(4,2),16),n=(299*i+587*e+114*r)/1e3;return n>=128?"#000":"#fff"}function e(t){return 3===t.length&&"#"!==t.charAt(0)&&(t="#"+t),4===t.length&&"#"===t.charAt(0)&&(t="#"+t.charAt(1)+t.charAt(1)+t.charAt(2)+t.charAt(2)+t.charAt(3)+t.charAt(3)),7===t.length?t:!1}var r,n=function(r,n){var a=t(this),s=n&&n.color?n.color.toString():a.val();s=e(s),a.css({backgroundColor:s?s:"#ffffff",color:i(s)}),s?a.siblings(fvphtml.prefix+"reset").show():a.siblings(fvphtml.prefix+"reset").hide()},a=function(){var i=t(this);r.not(i).iris("hide"),i.iris("show")},s=function(i){i&&i.preventDefault();var e=t(this);""===e.val()&&e.siblings(fvphtml.prefix+"reset").hide()},l=function(i){i&&i.preventDefault(),r.iris("hide"),t(this).siblings(fvphtml.prefix+"colorpicker").val("").each(n)};t(document).ready(function(){r=t(fvphtml.prefix+"colorpicker"),r.iris({change:n}),r.bind("input",n),r.click(a),r.blur(s),r.siblings(fvphtml.prefix+"reset").click(l),r.each(n)})}(jQuery),function(t){"use strict";function i(i){var r=i.title||"",n=i.content||"",a=i.position||{edge:"right",align:"middle"};t(i.target).pointer({pointer_id:i.identifier,content:"<h3>"+r+"</h3><p>"+n+"</p>",position:a,close:e}).pointer("open")}var e=function(){var i=t(this).data("wpPointer").options.pointer_id;t.post(ajaxurl,{pointer:i,action:"dismiss-wp-pointer"})};t(document).ready(function(){for(var t=fvphtml.pointers||[],e=0;e<t.length;e++)i(fvphtml.pointers[e])})}(jQuery),jQuery(document).ready(function(t){"use strict";t(fvphtml.prefix+"help-link, .help-link").click(function(){t("#contextual-help-link").trigger("click")})});
js/jquery.domwindow.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){e.fn.closeDOMWindow=function(o){o||(o={});var n=function(){if(o.anchoredClassName){var n=e("."+o.anchoredClassName);n.fadeOut("fast",function(){e.fn.draggable?n.draggable("destory").trigger("unload").remove():n.trigger("unload").remove()}),o.functionCallOnClose&&o.functionCallAfterClose()}else{var i=e("#DOMWindowOverlay"),t=e("#DOMWindow");i.fadeOut("fast",function(){i.trigger("unload").unbind().remove()}),t.fadeOut("fast",function(){e.fn.draggable?t.draggable("destroy").trigger("unload").remove():t.trigger("unload").remove()}),e(window).unbind("scroll.DOMWindow"),e(window).unbind("resize.DOMWindow"),e.fn.openDOMWindow.isIE6&&e("#DOMWindowIE6FixIframe").remove(),o.functionCallOnClose&&o.functionCallAfterClose()}};return o.eventType?this.each(function(){e(this).bind(o.eventType,function(){return n(this),!1})}):void n()},e.closeDOMWindow=function(o){e.fn.closeDOMWindow(o)},e.fn.openDOMWindow=function(o){var n=e.fn.openDOMWindow;n.defaultsSettings={anchoredClassName:"",anchoredSelector:"",borderColor:"#ccc",borderSize:"4",draggable:0,eventType:null,fixedWindowY:100,functionCallOnOpen:null,functionCallOnClose:null,height:500,loader:0,loaderHeight:0,loaderImagePath:"",loaderWidth:0,modal:0,overlay:1,overlayColor:"#000",overlayOpacity:"85",positionLeft:0,positionTop:0,positionType:"centered",width:500,windowBGColor:"#fff",windowBGImage:null,windowHTTPType:"get",windowPadding:10,windowSource:"inline",windowSourceID:"",windowSourceURL:"",windowSourceAttrURL:"href"};var i=e.extend({},e.fn.openDOMWindow.defaultsSettings,o||{});n.viewPortHeight=function(){return self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight},n.viewPortWidth=function(){return self.innerWidth||document.documentElement.clientWidth||document.body.clientWidth},n.scrollOffsetHeight=function(){return self.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop},n.scrollOffsetWidth=function(){return self.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft},n.isIE6="undefined"==typeof document.body.style.maxHeight;var t=function(){var o=e("#DOMWindowOverlay");if(n.isIE6){var i=document.documentElement.offsetHeight+document.documentElement.scrollTop-4,t=document.documentElement.offsetWidth-21;o.css({height:i+"px",width:t+"px"})}else o.css({height:"100%",width:"100%",position:"fixed"})},d=function(){var o=document.documentElement.offsetHeight+document.documentElement.scrollTop-4,n=document.documentElement.offsetWidth-21;e("#DOMWindowIE6FixIframe").css({height:o+"px",width:n+"px"})},r=function(){var o=e("#DOMWindow");i.height+50>n.viewPortHeight()?o.css("left",Math.round(n.viewPortWidth()/2)+n.scrollOffsetWidth()-Math.round(o.outerWidth()/2)):(o.css("left",Math.round(n.viewPortWidth()/2)+n.scrollOffsetWidth()-Math.round(o.outerWidth()/2)),o.css("top",Math.round(n.viewPortHeight()/2)+n.scrollOffsetHeight()-Math.round(o.outerHeight()/2)))},a=function(){var o=e("#DOMWindowLoader");n.isIE6?(o.css({left:Math.round(n.viewPortWidth()/2)+n.scrollOffsetWidth()-Math.round(o.innerWidth()/2),position:"absolute"}),o.css({top:Math.round(n.viewPortHeight()/2)+n.scrollOffsetHeight()-Math.round(o.innerHeight()/2),position:"absolute"})):o.css({left:"50%",top:"50%",position:"fixed"})},l=function(){var o=e("#DOMWindow");o.css("left",i.positionLeft+n.scrollOffsetWidth()),o.css("top",+i.positionTop+n.scrollOffsetHeight())},c=function(o){arguments[0]?(e("."+o+" #DOMWindowLoader").remove(),e("."+o+" #DOMWindowContent").fadeIn("fast",function(){i.functionCallOnOpen&&i.functionCallOnOpen()}),e("."+o+".closeDOMWindow").click(function(){return e.closeDOMWindow(),!1})):(e("#DOMWindowLoader").remove(),e("#DOMWindow").fadeIn("fast",function(){i.functionCallOnOpen&&i.functionCallOnOpen()}),e("#DOMWindow .closeDOMWindow").click(function(){return e.closeDOMWindow(),!1}))},s=function(e){var o={};return e.replace(/b([^&=]*)=([^&=]*)b/g,function(e,n,i){"undefined"!=typeof o[n]?o[n]+=","+i:o[n]=i}),o},f=function(o){i.windowSourceID=e(o).attr("href")||i.windowSourceID,i.windowSourceURL=e(o).attr(i.windowSourceAttrURL)||i.windowSourceURL,i.windowBGImage=i.windowBGImage?"background-image:url("+i.windowBGImage+")":"";var f,w;if("anchored"==i.positionType){var u=e(i.anchoredSelector).position(),h=u.left+i.positionLeft,p=u.top+i.positionTop;switch(e("body").append('<div class="'+i.anchoredClassName+'" style="'+i.windowBGImage+";background-repeat:no-repeat;padding:"+i.windowPadding+"px;overflow:auto;position:absolute;top:"+p+"px;left:"+h+"px;height:"+i.height+"px;width:"+i.width+"px;background-color:"+i.windowBGColor+";border:"+i.borderSize+"px solid "+i.borderColor+';z-index:10001"><div id="DOMWindowContent" style="display:none"></div></div>'),i.loader&&""!==i.loaderImagePath&&e("."+i.anchoredClassName).append('<div id="DOMWindowLoader" style="width:'+i.loaderWidth+"px;height:"+i.loaderHeight+'px;"><img src="'+i.loaderImagePath+'" /></div>'),e.fn.draggable&&i.draggable&&e("."+i.anchoredClassName).draggable({cursor:"move"}),i.windowSource){case"inline":e("."+i.anchoredClassName+" #DOMWindowContent").append(e(i.windowSourceID).children()),e("."+i.anchoredClassName).unload(function(){e("."+i.windowSourceID).append(e("."+i.anchoredClassName+" #DOMWindowContent").children())}),c(i.anchoredClassName);break;case"iframe":e("."+i.anchoredClassName+" #DOMWindowContent").append('<iframe frameborder="0" hspace="0" wspace="0" src="'+i.windowSourceURL+'" name="DOMWindowIframe'+Math.round(1e3*Math.random())+'" style="width:100%;height:100%;border:none;background-color:#fff;" class="'+i.anchoredClassName+'Iframe" ></iframe>'),e("."+i.anchoredClassName+"Iframe").load(c(i.anchoredClassName));break;case"ajax":"post"==i.windowHTTPType?(-1!==i.windowSourceURL.indexOf("?")?(f=i.windowSourceURL.substr(0,i.windowSourceURL.indexOf("?")),w=s(i.windowSourceURL)):(f=i.windowSourceURL,w={}),e("."+i.anchoredClassName+" #DOMWindowContent").load(f,w,function(){c(i.anchoredClassName)})):(-1==i.windowSourceURL.indexOf("?")&&(i.windowSourceURL+="?"),e("."+i.anchoredClassName+" #DOMWindowContent").load(i.windowSourceURL+"&random="+(new Date).getTime(),function(){c(i.anchoredClassName)}))}}else{if(i.overlay){e("body").append('<div id="DOMWindowOverlay" style="z-index:10000;display:none;position:absolute;top:0;left:0;background-color:'+i.overlayColor+";filter:alpha(opacity="+i.overlayOpacity+");-moz-opacity: 0."+i.overlayOpacity+";opacity: 0."+i.overlayOpacity+';"></div>'),n.isIE6&&(e("body").append('<iframe id="DOMWindowIE6FixIframe" src="blank.html" style="width:100%;height:100%;z-index:9999;position:absolute;top:0;left:0;filter:alpha(opacity=0);"></iframe>'),d()),t();var m=e("#DOMWindowOverlay");m.fadeIn("fast"),i.modal||m.click(function(){e.closeDOMWindow()})}i.loader&&""!==i.loaderImagePath&&(e("body").append('<div id="DOMWindowLoader" style="z-index:10002;width:'+i.loaderWidth+"px;height:"+i.loaderHeight+'px;"><img src="'+i.loaderImagePath+'" /></div>'),a()),e("body").append('<div id="DOMWindow" style="background-repeat:no-repeat;'+i.windowBGImage+";overflow:auto;padding:"+i.windowPadding+"px;display:none;height:"+i.height+"px;width:"+i.width+"px;background-color:"+i.windowBGColor+";border:"+i.borderSize+"px solid "+i.borderColor+'; position:absolute;z-index:10001"></div>');var g=e("#DOMWindow");switch(i.positionType){case"centered":r(),i.height+50>n.viewPortHeight()&&g.css("top",i.fixedWindowY+n.scrollOffsetHeight()+"px");break;case"absolute":g.css({top:i.positionTop+n.scrollOffsetHeight()+"px",left:i.positionLeft+n.scrollOffsetWidth()+"px"}),e.fn.draggable&&i.draggable&&g.draggable({cursor:"move"});break;case"fixed":l();break;case"anchoredSingleWindow":var u=e(i.anchoredSelector).position(),h=u.left+i.positionLeft,p=u.top+i.positionTop;g.css({top:p+"px",left:h+"px"})}switch(e(window).bind("scroll.DOMWindow",function(){i.overlay&&t(),n.isIE6&&d(),"centered"==i.positionType&&r(),"fixed"==i.positionType&&l()}),e(window).bind("resize.DOMWindow",function(){n.isIE6&&d(),i.overlay&&t(),"centered"==i.positionType&&r()}),i.windowSource){case"inline":g.append(e(i.windowSourceID).children()),g.unload(function(){e(i.windowSourceID).append(g.children())}),c();break;case"iframe":g.append('<iframe frameborder="0" hspace="0" wspace="0" src="'+i.windowSourceURL+'" name="DOMWindowIframe'+Math.round(1e3*Math.random())+'" style="width:100%;height:100%;border:none;background-color:#fff;" id="DOMWindowIframe" ></iframe>'),e("#DOMWindowIframe").load(c());break;case"ajax":"post"==i.windowHTTPType?(-1!==i.windowSourceURL.indexOf("?")?(f=i.windowSourceURL.substr(0,i.windowSourceURL.indexOf("?")),w=s(i.windowSourceURL)):(f=i.windowSourceURL,w={}),g.load(f,w,function(){c()})):(-1==i.windowSourceURL.indexOf("?")&&(i.windowSourceURL+="?"),g.load(i.windowSourceURL+"&random="+(new Date).getTime(),function(){c()}))}}};return i.eventType?this.each(function(){e(this).bind(i.eventType,function(){return f(this),!1})}):void f()},e.openDOMWindow=function(o){e.fn.openDOMWindow(o)}}(jQuery);
1
+ !function(e){e.fn.closeDOMWindow=function(o){o||(o={});var n=function(n){if(o.anchoredClassName){var i=e("."+o.anchoredClassName);i.fadeOut("fast",function(){e.fn.draggable?i.draggable("destory").trigger("unload").remove():i.trigger("unload").remove()}),o.functionCallOnClose&&o.functionCallAfterClose()}else{var t=e("#DOMWindowOverlay"),d=e("#DOMWindow");t.fadeOut("fast",function(){t.trigger("unload").unbind().remove()}),d.fadeOut("fast",function(){e.fn.draggable?d.draggable("destroy").trigger("unload").remove():d.trigger("unload").remove()}),e(window).unbind("scroll.DOMWindow"),e(window).unbind("resize.DOMWindow"),e.fn.openDOMWindow.isIE6&&e("#DOMWindowIE6FixIframe").remove(),o.functionCallOnClose&&o.functionCallAfterClose()}};return o.eventType?this.each(function(i){e(this).bind(o.eventType,function(){return n(this),!1})}):void n()},e.closeDOMWindow=function(o){e.fn.closeDOMWindow(o)},e.fn.openDOMWindow=function(o){var n=e.fn.openDOMWindow;n.defaultsSettings={anchoredClassName:"",anchoredSelector:"",borderColor:"#ccc",borderSize:"4",draggable:0,eventType:null,fixedWindowY:100,functionCallOnOpen:null,functionCallOnClose:null,height:500,loader:0,loaderHeight:0,loaderImagePath:"",loaderWidth:0,modal:0,overlay:1,overlayColor:"#000",overlayOpacity:"85",positionLeft:0,positionTop:0,positionType:"centered",width:500,windowBGColor:"#fff",windowBGImage:null,windowHTTPType:"get",windowPadding:10,windowSource:"inline",windowSourceID:"",windowSourceURL:"",windowSourceAttrURL:"href"};var i=e.extend({},e.fn.openDOMWindow.defaultsSettings,o||{});n.viewPortHeight=function(){return self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight},n.viewPortWidth=function(){return self.innerWidth||document.documentElement.clientWidth||document.body.clientWidth},n.scrollOffsetHeight=function(){return self.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop},n.scrollOffsetWidth=function(){return self.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft},n.isIE6="undefined"==typeof document.body.style.maxHeight;var t=function(){var o=e("#DOMWindowOverlay");if(n.isIE6){var i=document.documentElement.offsetHeight+document.documentElement.scrollTop-4,t=document.documentElement.offsetWidth-21;o.css({height:i+"px",width:t+"px"})}else o.css({height:"100%",width:"100%",position:"fixed"})},d=function(){var o=document.documentElement.offsetHeight+document.documentElement.scrollTop-4,n=document.documentElement.offsetWidth-21;e("#DOMWindowIE6FixIframe").css({height:o+"px",width:n+"px"})},r=function(){var o=e("#DOMWindow");i.height+50>n.viewPortHeight()?o.css("left",Math.round(n.viewPortWidth()/2)+n.scrollOffsetWidth()-Math.round(o.outerWidth()/2)):(o.css("left",Math.round(n.viewPortWidth()/2)+n.scrollOffsetWidth()-Math.round(o.outerWidth()/2)),o.css("top",Math.round(n.viewPortHeight()/2)+n.scrollOffsetHeight()-Math.round(o.outerHeight()/2)))},a=function(){var o=e("#DOMWindowLoader");n.isIE6?(o.css({left:Math.round(n.viewPortWidth()/2)+n.scrollOffsetWidth()-Math.round(o.innerWidth()/2),position:"absolute"}),o.css({top:Math.round(n.viewPortHeight()/2)+n.scrollOffsetHeight()-Math.round(o.innerHeight()/2),position:"absolute"})):o.css({left:"50%",top:"50%",position:"fixed"})},l=function(){var o=e("#DOMWindow");o.css("left",i.positionLeft+n.scrollOffsetWidth()),o.css("top",+i.positionTop+n.scrollOffsetHeight())},c=function(o){arguments[0]?(e("."+o+" #DOMWindowLoader").remove(),e("."+o+" #DOMWindowContent").fadeIn("fast",function(){i.functionCallOnOpen&&i.functionCallOnOpen()}),e("."+o+".closeDOMWindow").click(function(){return e.closeDOMWindow(),!1})):(e("#DOMWindowLoader").remove(),e("#DOMWindow").fadeIn("fast",function(){i.functionCallOnOpen&&i.functionCallOnOpen()}),e("#DOMWindow .closeDOMWindow").click(function(){return e.closeDOMWindow(),!1}))},s=function(e){var o={};return e.replace(/b([^&=]*)=([^&=]*)b/g,function(e,n,i){"undefined"!=typeof o[n]?o[n]+=","+i:o[n]=i}),o},f=function(o){i.windowSourceID=e(o).attr("href")||i.windowSourceID,i.windowSourceURL=e(o).attr(i.windowSourceAttrURL)||i.windowSourceURL,i.windowBGImage=i.windowBGImage?"background-image:url("+i.windowBGImage+")":"";var f,w;if("anchored"==i.positionType){var u=e(i.anchoredSelector).position(),h=u.left+i.positionLeft,p=u.top+i.positionTop;switch(e("body").append('<div class="'+i.anchoredClassName+'" style="'+i.windowBGImage+";background-repeat:no-repeat;padding:"+i.windowPadding+"px;overflow:auto;position:absolute;top:"+p+"px;left:"+h+"px;height:"+i.height+"px;width:"+i.width+"px;background-color:"+i.windowBGColor+";border:"+i.borderSize+"px solid "+i.borderColor+';z-index:10001"><div id="DOMWindowContent" style="display:none"></div></div>'),i.loader&&""!==i.loaderImagePath&&e("."+i.anchoredClassName).append('<div id="DOMWindowLoader" style="width:'+i.loaderWidth+"px;height:"+i.loaderHeight+'px;"><img src="'+i.loaderImagePath+'" /></div>'),e.fn.draggable&&i.draggable&&e("."+i.anchoredClassName).draggable({cursor:"move"}),i.windowSource){case"inline":e("."+i.anchoredClassName+" #DOMWindowContent").append(e(i.windowSourceID).children()),e("."+i.anchoredClassName).unload(function(){e("."+i.windowSourceID).append(e("."+i.anchoredClassName+" #DOMWindowContent").children())}),c(i.anchoredClassName);break;case"iframe":e("."+i.anchoredClassName+" #DOMWindowContent").append('<iframe frameborder="0" hspace="0" wspace="0" src="'+i.windowSourceURL+'" name="DOMWindowIframe'+Math.round(1e3*Math.random())+'" style="width:100%;height:100%;border:none;background-color:#fff;" class="'+i.anchoredClassName+'Iframe" ></iframe>'),e("."+i.anchoredClassName+"Iframe").load(c(i.anchoredClassName));break;case"ajax":"post"==i.windowHTTPType?(-1!==i.windowSourceURL.indexOf("?")?(f=i.windowSourceURL.substr(0,i.windowSourceURL.indexOf("?")),w=s(i.windowSourceURL)):(f=i.windowSourceURL,w={}),e("."+i.anchoredClassName+" #DOMWindowContent").load(f,w,function(){c(i.anchoredClassName)})):(-1==i.windowSourceURL.indexOf("?")&&(i.windowSourceURL+="?"),e("."+i.anchoredClassName+" #DOMWindowContent").load(i.windowSourceURL+"&random="+(new Date).getTime(),function(){c(i.anchoredClassName)}))}}else{if(i.overlay){e("body").append('<div id="DOMWindowOverlay" style="z-index:10000;display:none;position:absolute;top:0;left:0;background-color:'+i.overlayColor+";filter:alpha(opacity="+i.overlayOpacity+");-moz-opacity: 0."+i.overlayOpacity+";opacity: 0."+i.overlayOpacity+';"></div>'),n.isIE6&&(e("body").append('<iframe id="DOMWindowIE6FixIframe" src="blank.html" style="width:100%;height:100%;z-index:9999;position:absolute;top:0;left:0;filter:alpha(opacity=0);"></iframe>'),d()),t();var m=e("#DOMWindowOverlay");m.fadeIn("fast"),i.modal||m.click(function(){e.closeDOMWindow()})}i.loader&&""!==i.loaderImagePath&&(e("body").append('<div id="DOMWindowLoader" style="z-index:10002;width:'+i.loaderWidth+"px;height:"+i.loaderHeight+'px;"><img src="'+i.loaderImagePath+'" /></div>'),a()),e("body").append('<div id="DOMWindow" style="background-repeat:no-repeat;'+i.windowBGImage+";overflow:auto;padding:"+i.windowPadding+"px;display:none;height:"+i.height+"px;width:"+i.width+"px;background-color:"+i.windowBGColor+";border:"+i.borderSize+"px solid "+i.borderColor+'; position:absolute;z-index:10001"></div>');var g=e("#DOMWindow");switch(i.positionType){case"centered":r(),i.height+50>n.viewPortHeight()&&g.css("top",i.fixedWindowY+n.scrollOffsetHeight()+"px");break;case"absolute":g.css({top:i.positionTop+n.scrollOffsetHeight()+"px",left:i.positionLeft+n.scrollOffsetWidth()+"px"}),e.fn.draggable&&i.draggable&&g.draggable({cursor:"move"});break;case"fixed":l();break;case"anchoredSingleWindow":var u=e(i.anchoredSelector).position(),h=u.left+i.positionLeft,p=u.top+i.positionTop;g.css({top:p+"px",left:h+"px"})}switch(e(window).bind("scroll.DOMWindow",function(){i.overlay&&t(),n.isIE6&&d(),"centered"==i.positionType&&r(),"fixed"==i.positionType&&l()}),e(window).bind("resize.DOMWindow",function(){n.isIE6&&d(),i.overlay&&t(),"centered"==i.positionType&&r()}),i.windowSource){case"inline":g.append(e(i.windowSourceID).children()),g.unload(function(){e(i.windowSourceID).append(g.children())}),c();break;case"iframe":g.append('<iframe frameborder="0" hspace="0" wspace="0" src="'+i.windowSourceURL+'" name="DOMWindowIframe'+Math.round(1e3*Math.random())+'" style="width:100%;height:100%;border:none;background-color:#fff;" id="DOMWindowIframe" ></iframe>'),e("#DOMWindowIframe").load(c());break;case"ajax":"post"==i.windowHTTPType?(-1!==i.windowSourceURL.indexOf("?")?(f=i.windowSourceURL.substr(0,i.windowSourceURL.indexOf("?")),w=s(i.windowSourceURL)):(f=i.windowSourceURL,w={}),g.load(f,w,function(){c()})):(-1==i.windowSourceURL.indexOf("?")&&(i.windowSourceURL+="?"),g.load(i.windowSourceURL+"&random="+(new Date).getTime(),function(){c()}))}}};return i.eventType?this.each(function(o){e(this).bind(i.eventType,function(){return f(this),!1})}):void f()},e.openDOMWindow=function(o){e.fn.openDOMWindow(o)}}(jQuery);
js/post.js CHANGED
@@ -1,11 +1,13 @@
1
  (function($) {
2
  'use strict';
3
- /* global fvp_post, ajaxurl */
4
 
5
- var context = fvp_post;
6
  var $input;
7
  var $media;
 
8
  var mediaicon;
 
9
 
10
 
11
  /**
@@ -15,8 +17,7 @@
15
  * @param {event} event jQuery click event.
16
  */
17
  function setFeatimg(event) {
18
- event.preventDefault();
19
- submitVideo(true);
20
  }
21
 
22
 
@@ -27,8 +28,20 @@
27
  * is not too bad if the link is not available (won't be displayed), but its
28
  * nice to have.
29
  */
30
- function removeFeatimg() {
31
- setTimeout(refreshHandlers, 2000); // Arbritrarily wait 2 seconds.
 
 
 
 
 
 
 
 
 
 
 
 
32
  }
33
 
34
 
@@ -37,16 +50,32 @@
37
  *
38
  * @param {bool} setFeatimg
39
  */
40
- function submitVideo(setFeatimg) {
 
41
  setFeatimg = setFeatimg || false;
 
42
 
43
- $.post(ajaxurl, {
 
 
 
 
 
 
 
44
  'action' : 'fvp_save',
45
  'id' : $('#post_ID').val(),
46
  'fvp_nonce' : $('#fvp_nonce').val(),
47
  'fvp_video' : $input.val(),
48
  'fvp_set_featimg': setFeatimg
49
- }, function(data) {
 
 
 
 
 
 
 
50
  var $container = $('.fvp-current-video');
51
 
52
  // reset loading icon
@@ -68,54 +97,19 @@
68
 
69
  // update featured image
70
  $('#postimagediv .inside').html(data.img);
71
- refreshHandlers();
72
  }, 'json' );
73
  }
74
 
75
 
76
- /**
77
- * Sets the set and remove featured image handlers.
78
- * @return {[type]} [description]
79
- */
80
- function refreshHandlers() {
81
- // Button for quickly setting a featured image if none is set.
82
- $('.fvp-set-featimg').show().click(setFeatimg);
83
-
84
- // Show setFeatimg link after removing a featured image.
85
- $('#remove-post-thumbnail').click(removeFeatimg);
86
- }
87
-
88
-
89
  $(document).ready(function() {
90
- // elements
91
  $input = $('.fvp-video');
92
  $media = $input.siblings('.fvp-video-choose').children('.fvp-media-icon');
93
- mediaicon = $media.css( 'backgroundImage' );
94
-
95
- var loadingicon = 'url(\'' + context.loading_gif + '\')';
96
- var currentUrl = $input.val();
97
 
98
  // Automatically submit the video URL using AJAX when the input is blurred.
99
  // Update video and featured image with the returned data.
100
- $input.blur(function() {
101
- $input.val( $.trim( $input.val() ) );
102
-
103
- // don't do anything if input didn't change
104
- if (currentUrl === $input.val()) {
105
- return;
106
- }
107
-
108
- // remember new url
109
- currentUrl = $input.val();
110
-
111
- // autosize input field
112
- $input.trigger('autosize');
113
-
114
- // display loading gif in input
115
- $media.css({ backgroundImage: loadingicon });
116
-
117
- submitVideo();
118
- });
119
 
120
  // Initialize autosizing the url input field, disable enter key and
121
  // auto select content on click.
@@ -133,10 +127,12 @@
133
  $(this).select();
134
  });
135
 
136
-
137
- // Initialize set & remove featured image handlers.
138
- refreshHandlers();
139
-
 
 
140
 
141
  // WordPress 3.5 Media Manager
142
  // @see http://www.blazersix.com/blog/wordpress-image-widget/
1
  (function($) {
2
  'use strict';
3
+ /* global fvpPost, ajaxurl */
4
 
5
+ var context = fvpPost;
6
  var $input;
7
  var $media;
8
+ var currentUrl;
9
  var mediaicon;
10
+ var loadingicon = 'url(' + context.loading_gif + ')';
11
 
12
 
13
  /**
17
  * @param {event} event jQuery click event.
18
  */
19
  function setFeatimg(event) {
20
+ submitVideo(event, true);
 
21
  }
22
 
23
 
28
  * is not too bad if the link is not available (won't be displayed), but its
29
  * nice to have.
30
  */
31
+ function removeFeatimg(event) {
32
+ event.preventDefault();
33
+
34
+ $media.css({ backgroundImage: loadingicon }); // Show loading gif.
35
+ $.post(ajaxurl, {
36
+ 'action' : 'fvp_remove_img',
37
+ 'id' : $('#post_ID').val(),
38
+ 'fvp_nonce' : $('#fvp_nonce').val()
39
+ }, function(response) {
40
+ if (response.success) {
41
+ $('#postimagediv .inside').html(response.data);
42
+ $media.css({ backgroundImage: mediaicon }); // Hide loading gif.
43
+ }
44
+ }, 'json' );
45
  }
46
 
47
 
50
  *
51
  * @param {bool} setFeatimg
52
  */
53
+ function submitVideo(event, setFeatimg) {
54
+ event.preventDefault();
55
  setFeatimg = setFeatimg || false;
56
+ $input.val($.trim($input.val())).trigger('autosize'); // Remove whitespace.
57
 
58
+ // Don't do anything if value didn't change and we are not force-setting
59
+ // the featured image.
60
+ if (currentUrl === $input.val() && ! setFeatimg) { return; }
61
+
62
+ $media.css({ backgroundImage: loadingicon }); // Show loading gif.
63
+ currentUrl = $input.val(); // Remember new url.
64
+
65
+ var data = {
66
  'action' : 'fvp_save',
67
  'id' : $('#post_ID').val(),
68
  'fvp_nonce' : $('#fvp_nonce').val(),
69
  'fvp_video' : $input.val(),
70
  'fvp_set_featimg': setFeatimg
71
+ };
72
+
73
+ $.post(ajaxurl, data, function(response) {
74
+ if (! response.success) {
75
+ return false;
76
+ }
77
+
78
+ var data = response.data;
79
  var $container = $('.fvp-current-video');
80
 
81
  // reset loading icon
97
 
98
  // update featured image
99
  $('#postimagediv .inside').html(data.img);
 
100
  }, 'json' );
101
  }
102
 
103
 
 
 
 
 
 
 
 
 
 
 
 
 
 
104
  $(document).ready(function() {
 
105
  $input = $('.fvp-video');
106
  $media = $input.siblings('.fvp-video-choose').children('.fvp-media-icon');
107
+ currentUrl = $input.val();
108
+ mediaicon = $media.css('backgroundImage');
 
 
109
 
110
  // Automatically submit the video URL using AJAX when the input is blurred.
111
  // Update video and featured image with the returned data.
112
+ $input.blur(submitVideo);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
113
 
114
  // Initialize autosizing the url input field, disable enter key and
115
  // auto select content on click.
127
  $(this).select();
128
  });
129
 
130
+ // Click handlers for quickly setting a featured image from the video and
131
+ // removing the existing featured image the FVP way. Additionally hiding
132
+ // the WordPress remove featured image link.
133
+ $('#postimagediv')
134
+ .on('click', '.fvp-set-image', setFeatimg)
135
+ .on('click', '.fvp-remove-image', removeFeatimg);
136
 
137
  // WordPress 3.5 Media Manager
138
  // @see http://www.blazersix.com/blog/wordpress-image-widget/
js/post.min.js CHANGED
@@ -1 +1 @@
1
- !function(t){"use strict";function e(t){t.preventDefault(),a(!0)}function i(){setTimeout(n,2e3)}function a(e){e=e||!1,t.post(ajaxurl,{action:"fvp_save",id:t("#post_ID").val(),fvp_nonce:t("#fvp_nonce").val(),fvp_video:o.val(),fvp_set_featimg:e},function(e){var i=t(".fvp-current-video");r.css({backgroundImage:s}),"remove"===e.task?i.css({height:i.height()}).html("").animate({height:0}):i.css({height:"auto"}).html(e.video),t("#postimagediv .inside").html(e.img),n()},"json")}function n(){t(".fvp-set-featimg").show().click(e),t("#remove-post-thumbnail").click(i)}var o,r,s,c=fvp_post;t(document).ready(function(){o=t(".fvp-video"),r=o.siblings(".fvp-video-choose").children(".fvp-media-icon"),s=r.css("backgroundImage");var e="url('"+c.loading_gif+"')",i=o.val();o.blur(function(){o.val(t.trim(o.val())),i!==o.val()&&(i=o.val(),o.trigger("autosize"),r.css({backgroundImage:e}),a())}),o.autosize().trigger("blur").keypress(function(e){13===e.keyCode&&(e.preventDefault(),t(this).trigger("blur"))}).click(function(){t(this).select()}),n();var u,l={frame:function(){return this._frame?this._frame:(this._frame=wp.media({title:u.data("title"),library:{type:"video"},button:{text:u.data("button")},multiple:!1}),this._frame.on("open",this.updateFrame).state("library").on("select",this.select),this._frame)},select:function(){var e=this.get("selection"),i="url",a=u.data("target");t(a).val(e.pluck(i)).change().trigger("blur")},updateFrame:function(){},init:function(){t("#wpbody").on("click",".fvp-video-choose",function(e){e.preventDefault(),u=t(this).closest(".fvp-input-wrapper"),l.frame().open()})}};l.init()})}(jQuery);
1
+ !function(e){"use strict";function t(e){a(e,!0)}function i(t){t.preventDefault(),o.css({backgroundImage:v}),e.post(ajaxurl,{action:"fvp_remove_img",id:e("#post_ID").val(),fvp_nonce:e("#fvp_nonce").val()},function(t){t.success&&(e("#postimagediv .inside").html(t.data),o.css({backgroundImage:r}))},"json")}function a(t,i){if(t.preventDefault(),i=i||!1,n.val(e.trim(n.val())).trigger("autosize"),s!==n.val()||i){o.css({backgroundImage:v}),s=n.val();var a={action:"fvp_save",id:e("#post_ID").val(),fvp_nonce:e("#fvp_nonce").val(),fvp_video:n.val(),fvp_set_featimg:i};e.post(ajaxurl,a,function(t){if(!t.success)return!1;var i=t.data,a=e(".fvp-current-video");o.css({backgroundImage:r}),"remove"===i.task?a.css({height:a.height()}).html("").animate({height:0}):a.css({height:"auto"}).html(i.video),e("#postimagediv .inside").html(i.img)},"json")}}var n,o,s,r,c=fvpPost,v="url("+c.loading_gif+")";e(document).ready(function(){n=e(".fvp-video"),o=n.siblings(".fvp-video-choose").children(".fvp-media-icon"),s=n.val(),r=o.css("backgroundImage"),n.blur(a),n.autosize().trigger("blur").keypress(function(t){13===t.keyCode&&(t.preventDefault(),e(this).trigger("blur"))}).click(function(){e(this).select()}),e("#postimagediv").on("click",".fvp-set-image",t).on("click",".fvp-remove-image",i);var c,v={frame:function(){return this._frame?this._frame:(this._frame=wp.media({title:c.data("title"),library:{type:"video"},button:{text:c.data("button")},multiple:!1}),this._frame.on("open",this.updateFrame).state("library").on("select",this.select),this._frame)},select:function(){var t=this.get("selection"),i="url",a=c.data("target");e(a).val(t.pluck(i)).change().trigger("blur")},updateFrame:function(){},init:function(){e("#wpbody").on("click",".fvp-video-choose",function(t){t.preventDefault(),c=e(this).closest(".fvp-input-wrapper"),v.frame().open()})}};v.init()})}(jQuery);
lng/featured-video-plus-de_DE.mo CHANGED
Binary file
lng/featured-video-plus-de_DE.po CHANGED
@@ -7,33 +7,33 @@ msgstr ""
7
  "Project-Id-Version: Featured Video Plus\n"
8
  "Language: de\n"
9
 
10
- #: php/class-backend.php:123
11
  msgid "Featured Video"
12
  msgstr "Beitragsvideo"
13
 
14
- #: php/class-backend.php:165
15
  msgid "Set Featured Video"
16
  msgstr "Beitragsvideo festlegen"
17
 
18
- #: php/class-backend.php:171
19
  msgid "Video URL"
20
  msgstr "Video URL"
21
 
22
- #: php/class-backend.php:199
23
  msgid "The current theme does not support Featured Images"
24
  msgstr "Das aktuelle Theme nutzt keine Beitragsbilder."
25
 
26
- #: php/class-backend.php:206
27
  msgid "To display Featured Videos you need to use the %1$sShortcode%2$s or %1$sPHP functions%2$s. To hide this notice deactivate %3$sReplace Featured Images%4$s in the %5$sMedia Settings%6$s."
28
  msgstr "Um Beitragsvideos darzustellen musst du den %1$sShortcode%2§s oder %1$sPHP-Funktionen%2$s nutzen. Um diese Warnung zu deaktivieren stell %3$sBeitragsbilder ersetzen%4$s in den %5$sMedieneinstellungen%6$s aus."
29
 
30
  #. #-#-#-#-# featured-video-plus.pot (Featured Video Plus 1.9.2) #-#-#-#-#
31
  #. Plugin Name of the plugin/theme
32
- #: php/class-backend.php:568 php/class-backend.php:608
33
  msgid "Featured Video Plus"
34
  msgstr "Featured Video Plus"
35
 
36
- #: php/class-backend.php:573
37
  msgid "Take a video url from one of the %ssupported oembed providers%s and paste it into the Featured Video input field."
38
  msgstr "Kopiere einen Video-Link von einem der %sunterstützten Anbieter%s in das Beitragsvideo-Eingabefeld."
39
 
@@ -49,207 +49,194 @@ msgstr "Videos konvertieren"
49
  msgid "Take a look at the %sMiro Video Converter%s. It is open source, lightweight and compatible with Windows, Mac and Linux."
50
  msgstr "Schau dir den %sMiro Video Converter%s an. Er is Open Source, klein, einfach zu verwenden und mit Windows, Mac und Linux kompatibel."
51
 
52
- #: php/class-backend.php:598
53
  msgid "Fixing upload errors"
54
  msgstr "Videoupload Fehler beheben"
55
 
56
- #: php/class-backend.php:600
57
  msgid "Read %sthis%s on how to increase the maximum file upload size."
58
  msgstr "Schau dir %sdiesen Link%s an um zu erfahren wie man die maximale Upload größe erhöht."
59
 
60
- #: php/class-backend.php:629 php/class-settings.php:39
 
61
  msgid "Featured Videos"
62
  msgstr "Beitragsvideos"
63
 
64
- #: php/class-backend.php:631
65
  msgid "Simply paste a URL into this input to add a bit extra life to your posts. %sTry an example%s."
66
  msgstr "Kopier einfach eine URL in das Eingabefeld um deinen Videos ein wenig extra Leben einzuhauchen. %sProbier ein Beispiel%s."
67
 
68
- #: php/class-backend.php:638
69
  msgid "To adjust how featured videos are displayed on the frontend checkout the %smedia settings%s."
70
  msgstr "Wirf einen Blick in die %sMedien-Einstellungen%s um anzupassen wie Beitragsvideos dargestellt werden."
71
 
72
- #: php/class-backend.php:690
73
  msgid "Featured Videos require a Featured Image for automatic replacement."
74
  msgstr "Beitragsvideos benötigen ein Beitragsbild um automatisch dargestellt werden zu können."
75
 
76
- #: php/class-backend.php:694
77
  msgid "Auto set"
78
  msgstr "Automatisch erstellen"
79
 
80
- #: php/class-settings.php:50
81
  msgid "Display mode"
82
  msgstr "Modus"
83
 
84
- #: php/class-settings.php:58
85
  msgid "Display Conditions"
86
  msgstr "Konditionen"
87
 
88
- #: php/class-settings.php:68
89
  msgid "Video Sizing"
90
  msgstr "Videogröße"
91
 
92
- #: php/class-settings.php:77
93
  msgid "Video Align"
94
  msgstr "Positionierung"
95
 
96
- #: php/class-settings.php:86
97
  msgid "Default Arguments"
98
  msgstr "Parameter"
99
 
100
- #: php/class-settings.php:95
101
  msgid "Support"
102
  msgstr "Support"
103
 
104
- #: php/class-settings.php:116
105
  msgid "To display your featured videos you can either make use of the automatic replacement, use the %s or manually edit your theme's source files to make use of the plugins PHP-functions."
106
  msgstr "Um die Artikelvideos anzuzeigen kannst du entweder das automatische Ersetzen der Artikelbilder nutzen, auf den %s zurückgreifen oder manuel die PHP-Funktionen in deine Theme Dateien integrieren."
107
 
108
- #: php/class-settings.php:117
109
  msgid "For more information about Shortcode and PHP functions see the %sContextual Help%s."
110
  msgstr "Für mehr Informationen über den Shortcode und die PHP-Funktionen schaue in die %sHilfe%s."
111
 
112
- #: php/class-settings.php:125
113
  msgid "The current theme does not support featured images."
114
  msgstr "Das aktuelle Theme unterstützt keine Beitragsbilder."
115
 
116
- #: php/class-settings.php:128
117
  msgid "To display Featured Videos you need to use the %1$sShortcode%2$s or %1$sPHP functions%2$s."
118
  msgstr "Um Beitragsvideos darzustellen musst du leider den %1$sShortcode%2$s oder die %1$sPHP-Funktionen%2$s nutzen."
119
 
120
- #: php/class-settings.php:151
121
  msgid "Replace featured image automatically."
122
  msgstr "Beitragsbild automatisch ersetzen."
123
 
124
- #: php/class-settings.php:152
125
  msgid "Replace featured image on click."
126
  msgstr "Beitragsbild bei anklicken ersetzen."
127
 
128
- #: php/class-settings.php:153
129
  msgid "Open video overlay when featured image is clicked."
130
  msgstr "Video in Overlay darstellen."
131
 
132
- #: php/class-settings.php:154
133
  msgid "Manual: PHP-functions or shortcodes."
134
  msgstr "Manuell: PHP-Funktionen oder Shortcode."
135
 
136
- #: php/class-settings.php:160
137
  msgid "Automatic integration (options 1-3) requires your theme to make use of WordPress' native %sfeatured image%s functionality."
138
  msgstr "Automatische Integration (Optionen 1 bis 3) benötigen ein Theme das die nativen WordPress %sBeitragsbild%s Funktionen nutzt."
139
 
140
- #: php/class-settings.php:177
141
  msgid "View options are not available in manual mode."
142
  msgstr "Darstellungsoptionen sind im manuellen Modus nicht verfügbar."
143
 
144
- #: php/class-settings.php:190
145
- msgid "Only when viewing %ssingle%s posts and pages."
146
- msgstr "Nur wenn %seinzelne%s Beiträge oder Seiten gezeigt wird."
147
-
148
- #: php/class-settings.php:195
149
- msgid "Only on the %spost index page%s."
150
- msgstr "Nur auf der %sBeitrags-Indexseite%s."
151
-
152
- #: php/class-settings.php:200
153
- msgid "Only inside the %smain query%s of each page."
154
- msgstr "Nur im %sprimären Query%s einer jeden Seite."
155
-
156
- #: php/class-settings.php:205
157
- msgid "Only for %ssticky%s posts."
158
- msgstr "Nur für %sangeheftete%s Beiträge."
159
-
160
- #: php/class-settings.php:234
161
  msgid "Responsive"
162
  msgstr "Dynamisch"
163
 
164
- #: php/class-settings.php:241
165
  msgid "Width in pixels:"
166
  msgstr "Breite in Pixeln:"
167
 
168
- #: php/class-settings.php:259
169
  msgid "The %1$sresponsive%2$s setting does not work when using the %1$soverlay%2$s display mode and might break completly in some themes - in such cases you should use a fixed width instead."
170
  msgstr "Die %1$dynamisch%2$s Einstellung funktioniert nicht in allen Themes und speziell auch nicht im %1$sOverlay%2$s-Modus. In dem Fall muss eine absolute Breite angegeben werden."
171
 
172
- #: php/class-settings.php:280
173
  msgid "left"
174
  msgstr "links"
175
 
176
- #: php/class-settings.php:281
177
  msgid "center"
178
  msgstr "zentriert"
179
 
180
- #: php/class-settings.php:282
181
  msgid "right"
182
  msgstr "rechts"
183
 
184
- #: php/class-settings.php:305
185
  msgid "Not all of the following options might be supported by all providers."
186
  msgstr "Nicht alle der folgenden Einstellungen werden von allen Providern unterstützt."
187
 
188
- #: php/class-settings.php:313
189
  msgid "Autoplay"
190
  msgstr "Automatisch Abspielen"
191
 
192
- #: php/class-settings.php:314
193
  msgid "Loop"
194
  msgstr "Dauerschleife"
195
 
196
- #: php/class-settings.php:322
197
  msgid "If the owner of a video is a Plus member, some of these settings may be overridden by their preferences."
198
  msgstr "Wenn der Videoeigentümer Vimeo-Plus Mitglied ist, kann er die folgenden Einstellungen für sein Video überschreiben."
199
 
200
- #: php/class-settings.php:337
201
  msgid "Hide user's portrait"
202
  msgstr "Nutzerbild verbergen."
203
 
204
- #: php/class-settings.php:341
205
  msgid "Hide video title"
206
  msgstr "Videotitel verbergen."
207
 
208
- #: php/class-settings.php:345
209
  msgid "Hide video byline"
210
  msgstr "Erstellerzeile verbergen."
211
 
212
- #: php/class-settings.php:358
213
  msgid "Light theme"
214
  msgstr "Helles Theme."
215
 
216
- #: php/class-settings.php:362
217
  msgid "White highlight color"
218
  msgstr "Weiße Betonungsfarbe."
219
 
220
- #: php/class-settings.php:364
221
  msgid "Hide YouTube logo"
222
  msgstr "YouTube Logo verbergen."
223
 
224
- #: php/class-settings.php:367 php/class-settings.php:417
 
225
  msgid "Hide related videos"
226
  msgstr "Verwandte Videos verbergen."
227
 
228
- #: php/class-settings.php:371
229
  msgid "Disallow fullscreen"
230
  msgstr "Vollbildmodus unterdrücken."
231
 
232
- #: php/class-settings.php:375 php/class-settings.php:413
 
233
  msgid "Hide video info"
234
  msgstr "Videoinfo verbergen."
235
 
236
- #: php/class-settings.php:377
237
  msgid "Enable JavaScript API"
238
  msgstr "JavaScript API aktivieren."
239
 
240
- #: php/class-settings.php:409
241
  msgid "Hide DailyMotion logo"
242
  msgstr "DailyMotion Logo verbergen."
243
 
244
- #: php/class-settings.php:421
245
  msgid "Turn HD on by default"
246
  msgstr "HD automatisch einschalten."
247
 
248
- #: php/class-settings.php:440
249
  msgid "If you have found a bug or think a specific feature is missing, %slet me know%s in the support forum. Like this plugin? %sRate it%s or %sbuy me a cookie%s!"
250
  msgstr "Wenn du einen Fehler gefunden hast oder eine bestimmte Funktion vermisst, %ssag im Support-Forum Bescheid%s. Dir gefällt das Plugin? %sHinterlasse eine Bewertung%s oder %sspende für die Entwicklung%s!"
251
 
252
- #: php/class-settings.php:570
253
  msgid "PHP-Functions"
254
  msgstr "PHP-Funktionen"
255
 
@@ -257,15 +244,15 @@ msgstr "PHP-Funktionen"
257
  msgid "All parameters are optional. If %s the current post's id will be used. %s is either a string keyword (thumbnail, medium, large or full) or a 2-item array representing width and height in pixels, e.g. array(32,32)."
258
  msgstr "Alle Parameter sind optional. Wenn %s gilt, wird die ID des aktuellen Beitrags genutzt. %s ist entweder ein String (thumbnail, medium, large oder full) oder ein Array mit zwei Stellen (Breite und Höhe); Zum Beispiel array(32,32)."
259
 
260
- #: php/class-settings.php:594
261
  msgid "The functions are implemented corresponding to the original %sfunctions%s: They are intended to be used and to act the same way. Take a look into the WordPress Codex for further guidance:"
262
  msgstr "Die Funktionen sind nach den original %sFunktionen%s implementiert. Sie sollten genauso genutzt werden können und sich genauso verhalten. Schau dir für mehr Informationen den WordPress Codex an:"
263
 
264
- #: php/class-settings.php:598
265
  msgid "Featured Image"
266
  msgstr "Beitragsbild"
267
 
268
- #: php/class-settings.php:616
269
  msgid "Displays the video in its default size."
270
  msgstr "Stellt das Video in seiner Standardgröße dar."
271
 
@@ -297,3 +284,65 @@ msgstr "Alexander Höreth"
297
  msgid "http://yrnxt.com"
298
  msgstr "http://yrnxt.com"
299
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  "Project-Id-Version: Featured Video Plus\n"
8
  "Language: de\n"
9
 
10
+ #: build/php/class-backend.php:122 php/class-backend.php:122
11
  msgid "Featured Video"
12
  msgstr "Beitragsvideo"
13
 
14
+ #: build/php/class-backend.php:164 php/class-backend.php:164
15
  msgid "Set Featured Video"
16
  msgstr "Beitragsvideo festlegen"
17
 
18
+ #: build/php/class-backend.php:170 php/class-backend.php:170
19
  msgid "Video URL"
20
  msgstr "Video URL"
21
 
22
+ #: build/php/class-backend.php:198 php/class-backend.php:198
23
  msgid "The current theme does not support Featured Images"
24
  msgstr "Das aktuelle Theme nutzt keine Beitragsbilder."
25
 
26
+ #: build/php/class-backend.php:205 php/class-backend.php:205
27
  msgid "To display Featured Videos you need to use the %1$sShortcode%2$s or %1$sPHP functions%2$s. To hide this notice deactivate %3$sReplace Featured Images%4$s in the %5$sMedia Settings%6$s."
28
  msgstr "Um Beitragsvideos darzustellen musst du den %1$sShortcode%2§s oder %1$sPHP-Funktionen%2$s nutzen. Um diese Warnung zu deaktivieren stell %3$sBeitragsbilder ersetzen%4$s in den %5$sMedieneinstellungen%6$s aus."
29
 
30
  #. #-#-#-#-# featured-video-plus.pot (Featured Video Plus 1.9.2) #-#-#-#-#
31
  #. Plugin Name of the plugin/theme
32
+ #: build/php/class-help.php:23 php/class-help.php:23
33
  msgid "Featured Video Plus"
34
  msgstr "Featured Video Plus"
35
 
36
+ #: build/php/class-help.php:31 php/class-help.php:31
37
  msgid "Take a video url from one of the %ssupported oembed providers%s and paste it into the Featured Video input field."
38
  msgstr "Kopiere einen Video-Link von einem der %sunterstützten Anbieter%s in das Beitragsvideo-Eingabefeld."
39
 
49
  msgid "Take a look at the %sMiro Video Converter%s. It is open source, lightweight and compatible with Windows, Mac and Linux."
50
  msgstr "Schau dir den %sMiro Video Converter%s an. Er is Open Source, klein, einfach zu verwenden und mit Windows, Mac und Linux kompatibel."
51
 
52
+ #: build/php/class-help.php:52 php/class-help.php:52
53
  msgid "Fixing upload errors"
54
  msgstr "Videoupload Fehler beheben"
55
 
56
+ #: build/php/class-help.php:58 php/class-help.php:58
57
  msgid "Read %sthis%s on how to increase the maximum file upload size."
58
  msgstr "Schau dir %sdiesen Link%s an um zu erfahren wie man die maximale Upload größe erhöht."
59
 
60
+ #: build/php/class-backend.php:603 build/php/class-settings.php:39
61
+ #: php/class-backend.php:603 php/class-settings.php:39
62
  msgid "Featured Videos"
63
  msgstr "Beitragsvideos"
64
 
65
+ #: build/php/class-backend.php:605 php/class-backend.php:605
66
  msgid "Simply paste a URL into this input to add a bit extra life to your posts. %sTry an example%s."
67
  msgstr "Kopier einfach eine URL in das Eingabefeld um deinen Videos ein wenig extra Leben einzuhauchen. %sProbier ein Beispiel%s."
68
 
69
+ #: build/php/class-backend.php:612 php/class-backend.php:612
70
  msgid "To adjust how featured videos are displayed on the frontend checkout the %smedia settings%s."
71
  msgstr "Wirf einen Blick in die %sMedien-Einstellungen%s um anzupassen wie Beitragsvideos dargestellt werden."
72
 
73
+ #: build/php/class-backend.php:669 php/class-backend.php:669
74
  msgid "Featured Videos require a Featured Image for automatic replacement."
75
  msgstr "Beitragsvideos benötigen ein Beitragsbild um automatisch dargestellt werden zu können."
76
 
77
+ #: build/php/class-backend.php:673 php/class-backend.php:673
78
  msgid "Auto set"
79
  msgstr "Automatisch erstellen"
80
 
81
+ #: build/php/class-settings.php:50 php/class-settings.php:50
82
  msgid "Display mode"
83
  msgstr "Modus"
84
 
85
+ #: build/php/class-settings.php:58 php/class-settings.php:58
86
  msgid "Display Conditions"
87
  msgstr "Konditionen"
88
 
89
+ #: build/php/class-settings.php:68 php/class-settings.php:68
90
  msgid "Video Sizing"
91
  msgstr "Videogröße"
92
 
93
+ #: build/php/class-settings.php:77 php/class-settings.php:77
94
  msgid "Video Align"
95
  msgstr "Positionierung"
96
 
97
+ #: build/php/class-settings.php:86 php/class-settings.php:86
98
  msgid "Default Arguments"
99
  msgstr "Parameter"
100
 
101
+ #: build/php/class-settings.php:95 php/class-settings.php:95
102
  msgid "Support"
103
  msgstr "Support"
104
 
105
+ #: build/php/class-settings.php:116 php/class-settings.php:116
106
  msgid "To display your featured videos you can either make use of the automatic replacement, use the %s or manually edit your theme's source files to make use of the plugins PHP-functions."
107
  msgstr "Um die Artikelvideos anzuzeigen kannst du entweder das automatische Ersetzen der Artikelbilder nutzen, auf den %s zurückgreifen oder manuel die PHP-Funktionen in deine Theme Dateien integrieren."
108
 
109
+ #: build/php/class-settings.php:117 php/class-settings.php:117
110
  msgid "For more information about Shortcode and PHP functions see the %sContextual Help%s."
111
  msgstr "Für mehr Informationen über den Shortcode und die PHP-Funktionen schaue in die %sHilfe%s."
112
 
113
+ #: build/php/class-settings.php:125 php/class-settings.php:125
114
  msgid "The current theme does not support featured images."
115
  msgstr "Das aktuelle Theme unterstützt keine Beitragsbilder."
116
 
117
+ #: build/php/class-settings.php:128 php/class-settings.php:128
118
  msgid "To display Featured Videos you need to use the %1$sShortcode%2$s or %1$sPHP functions%2$s."
119
  msgstr "Um Beitragsvideos darzustellen musst du leider den %1$sShortcode%2$s oder die %1$sPHP-Funktionen%2$s nutzen."
120
 
121
+ #: build/php/class-settings.php:151 php/class-settings.php:151
122
  msgid "Replace featured image automatically."
123
  msgstr "Beitragsbild automatisch ersetzen."
124
 
125
+ #: build/php/class-settings.php:152 php/class-settings.php:152
126
  msgid "Replace featured image on click."
127
  msgstr "Beitragsbild bei anklicken ersetzen."
128
 
129
+ #: build/php/class-settings.php:153 php/class-settings.php:153
130
  msgid "Open video overlay when featured image is clicked."
131
  msgstr "Video in Overlay darstellen."
132
 
133
+ #: build/php/class-settings.php:154 php/class-settings.php:154
134
  msgid "Manual: PHP-functions or shortcodes."
135
  msgstr "Manuell: PHP-Funktionen oder Shortcode."
136
 
137
+ #: build/php/class-settings.php:160 php/class-settings.php:160
138
  msgid "Automatic integration (options 1-3) requires your theme to make use of WordPress' native %sfeatured image%s functionality."
139
  msgstr "Automatische Integration (Optionen 1 bis 3) benötigen ein Theme das die nativen WordPress %sBeitragsbild%s Funktionen nutzt."
140
 
141
+ #: build/php/class-settings.php:203 php/class-settings.php:203
142
  msgid "View options are not available in manual mode."
143
  msgstr "Darstellungsoptionen sind im manuellen Modus nicht verfügbar."
144
 
145
+ #: build/php/class-settings.php:274 php/class-settings.php:274
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
146
  msgid "Responsive"
147
  msgstr "Dynamisch"
148
 
149
+ #: build/php/class-settings.php:281 php/class-settings.php:281
150
  msgid "Width in pixels:"
151
  msgstr "Breite in Pixeln:"
152
 
153
+ #: build/php/class-settings.php:298 php/class-settings.php:298
154
  msgid "The %1$sresponsive%2$s setting does not work when using the %1$soverlay%2$s display mode and might break completly in some themes - in such cases you should use a fixed width instead."
155
  msgstr "Die %1$dynamisch%2$s Einstellung funktioniert nicht in allen Themes und speziell auch nicht im %1$sOverlay%2$s-Modus. In dem Fall muss eine absolute Breite angegeben werden."
156
 
157
+ #: build/php/class-settings.php:319 php/class-settings.php:319
158
  msgid "left"
159
  msgstr "links"
160
 
161
+ #: build/php/class-settings.php:320 php/class-settings.php:320
162
  msgid "center"
163
  msgstr "zentriert"
164
 
165
+ #: build/php/class-settings.php:321 php/class-settings.php:321
166
  msgid "right"
167
  msgstr "rechts"
168
 
169
+ #: build/php/class-settings.php:344 php/class-settings.php:344
170
  msgid "Not all of the following options might be supported by all providers."
171
  msgstr "Nicht alle der folgenden Einstellungen werden von allen Providern unterstützt."
172
 
173
+ #: build/php/class-settings.php:352 php/class-settings.php:352
174
  msgid "Autoplay"
175
  msgstr "Automatisch Abspielen"
176
 
177
+ #: build/php/class-settings.php:353 php/class-settings.php:353
178
  msgid "Loop"
179
  msgstr "Dauerschleife"
180
 
181
+ #: build/php/class-settings.php:361 php/class-settings.php:361
182
  msgid "If the owner of a video is a Plus member, some of these settings may be overridden by their preferences."
183
  msgstr "Wenn der Videoeigentümer Vimeo-Plus Mitglied ist, kann er die folgenden Einstellungen für sein Video überschreiben."
184
 
185
+ #: build/php/class-settings.php:376 php/class-settings.php:376
186
  msgid "Hide user's portrait"
187
  msgstr "Nutzerbild verbergen."
188
 
189
+ #: build/php/class-settings.php:380 php/class-settings.php:380
190
  msgid "Hide video title"
191
  msgstr "Videotitel verbergen."
192
 
193
+ #: build/php/class-settings.php:384 php/class-settings.php:384
194
  msgid "Hide video byline"
195
  msgstr "Erstellerzeile verbergen."
196
 
197
+ #: build/php/class-settings.php:397 php/class-settings.php:397
198
  msgid "Light theme"
199
  msgstr "Helles Theme."
200
 
201
+ #: build/php/class-settings.php:401 php/class-settings.php:401
202
  msgid "White highlight color"
203
  msgstr "Weiße Betonungsfarbe."
204
 
205
+ #: build/php/class-settings.php:403 php/class-settings.php:403
206
  msgid "Hide YouTube logo"
207
  msgstr "YouTube Logo verbergen."
208
 
209
+ #: build/php/class-settings.php:406 build/php/class-settings.php:456
210
+ #: php/class-settings.php:406 php/class-settings.php:456
211
  msgid "Hide related videos"
212
  msgstr "Verwandte Videos verbergen."
213
 
214
+ #: build/php/class-settings.php:410 php/class-settings.php:410
215
  msgid "Disallow fullscreen"
216
  msgstr "Vollbildmodus unterdrücken."
217
 
218
+ #: build/php/class-settings.php:414 build/php/class-settings.php:452
219
+ #: php/class-settings.php:414 php/class-settings.php:452
220
  msgid "Hide video info"
221
  msgstr "Videoinfo verbergen."
222
 
223
+ #: build/php/class-settings.php:416 php/class-settings.php:416
224
  msgid "Enable JavaScript API"
225
  msgstr "JavaScript API aktivieren."
226
 
227
+ #: build/php/class-settings.php:448 php/class-settings.php:448
228
  msgid "Hide DailyMotion logo"
229
  msgstr "DailyMotion Logo verbergen."
230
 
231
+ #: build/php/class-settings.php:460 php/class-settings.php:460
232
  msgid "Turn HD on by default"
233
  msgstr "HD automatisch einschalten."
234
 
235
+ #: build/php/class-settings.php:479 php/class-settings.php:479
236
  msgid "If you have found a bug or think a specific feature is missing, %slet me know%s in the support forum. Like this plugin? %sRate it%s or %sbuy me a cookie%s!"
237
  msgstr "Wenn du einen Fehler gefunden hast oder eine bestimmte Funktion vermisst, %ssag im Support-Forum Bescheid%s. Dir gefällt das Plugin? %sHinterlasse eine Bewertung%s oder %sspende für die Entwicklung%s!"
238
 
239
+ #: build/php/class-help.php:82 php/class-help.php:82
240
  msgid "PHP-Functions"
241
  msgstr "PHP-Funktionen"
242
 
244
  msgid "All parameters are optional. If %s the current post's id will be used. %s is either a string keyword (thumbnail, medium, large or full) or a 2-item array representing width and height in pixels, e.g. array(32,32)."
245
  msgstr "Alle Parameter sind optional. Wenn %s gilt, wird die ID des aktuellen Beitrags genutzt. %s ist entweder ein String (thumbnail, medium, large oder full) oder ein Array mit zwei Stellen (Breite und Höhe); Zum Beispiel array(32,32)."
246
 
247
+ #: build/php/class-help.php:115 php/class-help.php:115
248
  msgid "The functions are implemented corresponding to the original %sfunctions%s: They are intended to be used and to act the same way. Take a look into the WordPress Codex for further guidance:"
249
  msgstr "Die Funktionen sind nach den original %sFunktionen%s implementiert. Sie sollten genauso genutzt werden können und sich genauso verhalten. Schau dir für mehr Informationen den WordPress Codex an:"
250
 
251
+ #: build/php/class-help.php:119 php/class-help.php:119
252
  msgid "Featured Image"
253
  msgstr "Beitragsbild"
254
 
255
+ #: build/php/class-help.php:156 php/class-help.php:156
256
  msgid "Displays the video in its default size."
257
  msgstr "Stellt das Video in seiner Standardgröße dar."
258
 
284
  msgid "http://yrnxt.com"
285
  msgstr "http://yrnxt.com"
286
 
287
+ #: build/php/class-help.php:41 php/class-help.php:41
288
+ msgid "Alternatively you can select one of the videos from your media library using the small media icon to the right in the URL input field. The plugin makes use of %sWordPress' native HTML5 video functionality%s - no gurantee for compatibility with all formats."
289
+ msgstr "Alternativ kannst du eines deiner eigenen Videos aus der Medienbibliothek auswählen indem du das kleine Icon rechts im URL Eingabefeld anklickst. Das Plugin nutzt die %WordPress eigene HTML5 Video-Funktionalität%s - keine Garantie dafür, dass alle Formate funktionieren."
290
+
291
+ #: build/php/class-help.php:104 php/class-help.php:104
292
+ msgctxt "%1$s is a boolean condition, \\\"post_id == null\\\", %2$s is a PHP variable, %2$s is a list of strings in paranthesis."
293
+ msgid "All parameters are optional. If %1$s the current post's id will be used. %2$s is either a string %2$s or a 2-item array representing width and height in pixels, e.g. array(32,32)."
294
+ msgstr "Alle Parameter sind optional. Wenn %1$s, wird die ID des aktuellen Posts genutzt. %2$s kann entweder ein String %2$s oder ein Array mit 2 Elementen sein die die Breite und Höhe in Pixeln festlegen, z.B. array(32, 32)."
295
+
296
+ #: build/php/class-help.php:111 build/php/class-settings.php:198
297
+ #: php/class-help.php:111 php/class-settings.php:198
298
+ msgid "or"
299
+ msgstr "oder"
300
+
301
+ #: build/php/class-help.php:143 php/class-help.php:143
302
+ msgid "Featured Video Plus: Shortcode"
303
+ msgstr "Featured Video Plus: Shortcode"
304
+
305
+ #: build/php/class-help.php:160 php/class-help.php:160
306
+ msgid "Displays the video with a width of 300 pixel. Height will be fitted such that the aspect ratio is preserved."
307
+ msgstr "Stellt das Video mit einer Breite von 300 Pixeln dar. Die Höhe wird automatisch so angepasst, dass das Seitenverhältnis erhalten bleibt."
308
+
309
+ #: build/php/class-help.php:164 php/class-help.php:164
310
+ msgid "Displays the video with a fixed width and height."
311
+ msgstr "Stellt das Video mit einer absoluten Höhe und Breite dar."
312
+
313
+ #: build/php/class-settings.php:169 php/class-settings.php:169
314
+ msgid "Always use replace mode when viewing %ssingle%s posts and pages."
315
+ msgstr "Auf %seinzelnen%s Seiten immer \"automatisch ersetzen\" nutzen."
316
+
317
+ #: build/php/class-settings.php:225 php/class-settings.php:225
318
+ msgid "when on the %spost index page%s %s"
319
+ msgstr "wenn auf der %sIndex-Seite%s %s"
320
+
321
+ #: build/php/class-settings.php:231 php/class-settings.php:231
322
+ msgid "when inside the %smain query%s of each page %s"
323
+ msgstr "wenn innerhalb des %Main-Queries%s einer jeden Seite %s"
324
+
325
+ #: build/php/class-settings.php:237 php/class-settings.php:237
326
+ msgid "when displaying %ssticky%s posts."
327
+ msgstr "wenn ein %ssticky%s Post dargestellt wird."
328
+
329
+ #: build/php/class-settings.php:249 php/class-settings.php:249
330
+ msgid "If none of the above options is selected the display mode will be applied whenever possible."
331
+ msgstr "Wenn keine der obenstehenden Optionen gewählt ist, wird der festgelegte Darstellungsmodus immer wenn möglich angewendet."
332
+
333
+ #: build/php/class-settings.php:213 php/class-settings.php:213
334
+ msgid "Apply display mode..."
335
+ msgstr "Darstellungsmodus anwenden..."
336
+
337
+ #: build/php/class-settings.php:219 php/class-settings.php:219
338
+ msgid "when viewing %ssingle%s posts and pages %s"
339
+ msgstr "wenn %seinzelne%s Beiträge oder Seiten angeschaut werden %s"
340
+
341
+ #: build/php/class-backend.php:662 php/class-backend.php:662
342
+ msgid "Remove featured image"
343
+ msgstr "Beitragsbild entfernen"
344
+
345
+ #: build/php/class-settings.php:242 php/class-settings.php:242
346
+ msgid "when displaying not %ssticky%s posts."
347
+ msgstr "wenn nicht %sangeheftete%s Beiträge angezeigt werden."
348
+
lng/featured-video-plus.pot CHANGED
@@ -2,10 +2,10 @@
2
  # This file is distributed under the same license as the Featured Video Plus package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Featured Video Plus 2.0.0\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/featured-video-"
7
- "plus-n\n"
8
- "POT-Creation-Date: 2015-06-01 14:09:17+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
@@ -13,66 +13,71 @@ msgstr ""
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
15
 
16
- #: php/class-backend.php:120
17
  msgid "Featured Video"
18
  msgstr ""
19
 
20
- #: php/class-backend.php:162
21
  msgid "Set Featured Video"
22
  msgstr ""
23
 
24
- #: php/class-backend.php:168
25
  msgid "Video URL"
26
  msgstr ""
27
 
28
- #: php/class-backend.php:196
29
  msgid "The current theme does not support Featured Images"
30
  msgstr ""
31
 
32
- #: php/class-backend.php:203
33
  msgid ""
34
  "To display Featured Videos you need to use the %1$sShortcode%2$s or %1$sPHP "
35
  "functions%2$s. To hide this notice deactivate %3$sReplace Featured Images"
36
  "%4$s in the %5$sMedia Settings%6$s."
37
  msgstr ""
38
 
39
- #: php/class-backend.php:564 php/class-settings.php:38
 
40
  msgid "Featured Videos"
41
  msgstr ""
42
 
43
- #: php/class-backend.php:566
44
  msgid ""
45
  "Simply paste a URL into this input to add a bit extra life to your posts. "
46
  "%sTry an example%s."
47
  msgstr ""
48
 
49
- #: php/class-backend.php:573
50
  msgid ""
51
  "To adjust how featured videos are displayed on the frontend checkout the "
52
  "%smedia settings%s."
53
  msgstr ""
54
 
55
- #: php/class-backend.php:625
 
 
 
 
56
  msgid "Featured Videos require a Featured Image for automatic replacement."
57
  msgstr ""
58
 
59
- #: php/class-backend.php:629
60
  msgid "Auto set"
61
  msgstr ""
62
 
63
- #. #-#-#-#-# featured-video-plus.pot (Featured Video Plus 2.0.0) #-#-#-#-#
64
  #. Plugin Name of the plugin/theme
65
- #: php/class-help.php:23
66
  msgid "Featured Video Plus"
67
  msgstr ""
68
 
69
- #: php/class-help.php:31
70
  msgid ""
71
  "Take a video url from one of the %ssupported oembed providers%s and paste it "
72
  "into the Featured Video input field."
73
  msgstr ""
74
 
75
- #: php/class-help.php:41
76
  msgid ""
77
  "Alternatively you can select one of the videos from your media library using "
78
  "the small media icon to the right in the URL input field. The plugin makes "
@@ -80,19 +85,19 @@ msgid ""
80
  "compatibility with all formats."
81
  msgstr ""
82
 
83
- #: php/class-help.php:52
84
  msgid "Fixing upload errors"
85
  msgstr ""
86
 
87
- #: php/class-help.php:58
88
  msgid "Read %sthis%s on how to increase the maximum file upload size."
89
  msgstr ""
90
 
91
- #: php/class-help.php:82
92
  msgid "PHP-Functions"
93
  msgstr ""
94
 
95
- #: php/class-help.php:104
96
  msgctxt ""
97
  "%1$s is a boolean condition, \\\"post_id == null\\\", %2$s is a PHP "
98
  "variable, %2$s is a list of strings in paranthesis."
@@ -102,222 +107,243 @@ msgid ""
102
  "in pixels, e.g. array(32,32)."
103
  msgstr ""
104
 
105
- #: php/class-help.php:111
 
106
  msgid "or"
107
  msgstr ""
108
 
109
- #: php/class-help.php:115
110
  msgid ""
111
  "The functions are implemented corresponding to the original %sfunctions%s: "
112
  "They are intended to be used and to act the same way. Take a look into the "
113
  "WordPress Codex for further guidance:"
114
  msgstr ""
115
 
116
- #: php/class-help.php:119
117
  msgid "Featured Image"
118
  msgstr ""
119
 
120
- #: php/class-help.php:143
121
  msgid "Featured Video Plus: Shortcode"
122
  msgstr ""
123
 
124
- #: php/class-help.php:156
125
  msgid "Displays the video in its default size."
126
  msgstr ""
127
 
128
- #: php/class-help.php:160
129
  msgid ""
130
  "Displays the video with a width of 300 pixel. Height will be fitted such "
131
  "that the aspect ratio is preserved."
132
  msgstr ""
133
 
134
- #: php/class-help.php:164
135
  msgid "Displays the video with a fixed width and height."
136
  msgstr ""
137
 
138
- #: php/class-settings.php:49
139
  msgid "Display mode"
140
  msgstr ""
141
 
142
- #: php/class-settings.php:57
143
  msgid "Display Conditions"
144
  msgstr ""
145
 
146
- #: php/class-settings.php:67
147
  msgid "Video Sizing"
148
  msgstr ""
149
 
150
- #: php/class-settings.php:76
151
  msgid "Video Align"
152
  msgstr ""
153
 
154
- #: php/class-settings.php:85
155
  msgid "Default Arguments"
156
  msgstr ""
157
 
158
- #: php/class-settings.php:94
159
  msgid "Support"
160
  msgstr ""
161
 
162
- #: php/class-settings.php:115
163
  msgid ""
164
  "To display your featured videos you can either make use of the automatic "
165
  "replacement, use the %s or manually edit your theme's source files to make "
166
  "use of the plugins PHP-functions."
167
  msgstr ""
168
 
169
- #: php/class-settings.php:116
170
  msgid ""
171
  "For more information about Shortcode and PHP functions see the %sContextual "
172
  "Help%s."
173
  msgstr ""
174
 
175
- #: php/class-settings.php:124
176
  msgid "The current theme does not support featured images."
177
  msgstr ""
178
 
179
- #: php/class-settings.php:127
180
  msgid ""
181
  "To display Featured Videos you need to use the %1$sShortcode%2$s or %1$sPHP "
182
  "functions%2$s."
183
  msgstr ""
184
 
185
- #: php/class-settings.php:150
186
  msgid "Replace featured image automatically."
187
  msgstr ""
188
 
189
- #: php/class-settings.php:151
190
  msgid "Replace featured image on click."
191
  msgstr ""
192
 
193
- #: php/class-settings.php:152
194
  msgid "Open video overlay when featured image is clicked."
195
  msgstr ""
196
 
197
- #: php/class-settings.php:153
198
  msgid "Manual: PHP-functions or shortcodes."
199
  msgstr ""
200
 
201
- #: php/class-settings.php:159
202
  msgid ""
203
  "Automatic integration (options 1-3) requires your theme to make use of "
204
  "WordPress' native %sfeatured image%s functionality."
205
  msgstr ""
206
 
207
- #: php/class-settings.php:176
 
 
 
 
208
  msgid "View options are not available in manual mode."
209
  msgstr ""
210
 
211
- #: php/class-settings.php:189
212
- msgid "Only when viewing %ssingle%s posts and pages."
 
 
 
 
213
  msgstr ""
214
 
215
- #: php/class-settings.php:194
216
- msgid "Only on the %spost index page%s."
217
  msgstr ""
218
 
219
- #: php/class-settings.php:199
220
- msgid "Only inside the %smain query%s of each page."
221
  msgstr ""
222
 
223
- #: php/class-settings.php:204
224
- msgid "Only for %ssticky%s posts."
 
 
 
 
 
 
 
 
 
 
225
  msgstr ""
226
 
227
- #: php/class-settings.php:232
228
  msgid "Responsive"
229
  msgstr ""
230
 
231
- #: php/class-settings.php:239
232
  msgid "Width in pixels:"
233
  msgstr ""
234
 
235
- #: php/class-settings.php:256
236
  msgid ""
237
  "The %1$sresponsive%2$s setting does not work when using the %1$soverlay%2$s "
238
  "display mode and might break completly in some themes - in such cases you "
239
  "should use a fixed width instead."
240
  msgstr ""
241
 
242
- #: php/class-settings.php:277
243
  msgid "left"
244
  msgstr ""
245
 
246
- #: php/class-settings.php:278
247
  msgid "center"
248
  msgstr ""
249
 
250
- #: php/class-settings.php:279
251
  msgid "right"
252
  msgstr ""
253
 
254
- #: php/class-settings.php:302
255
  msgid "Not all of the following options might be supported by all providers."
256
  msgstr ""
257
 
258
- #: php/class-settings.php:310
259
  msgid "Autoplay"
260
  msgstr ""
261
 
262
- #: php/class-settings.php:311
263
  msgid "Loop"
264
  msgstr ""
265
 
266
- #: php/class-settings.php:319
267
  msgid ""
268
  "If the owner of a video is a Plus member, some of these settings may be "
269
  "overridden by their preferences."
270
  msgstr ""
271
 
272
- #: php/class-settings.php:334
273
  msgid "Hide user's portrait"
274
  msgstr ""
275
 
276
- #: php/class-settings.php:338
277
  msgid "Hide video title"
278
  msgstr ""
279
 
280
- #: php/class-settings.php:342
281
  msgid "Hide video byline"
282
  msgstr ""
283
 
284
- #: php/class-settings.php:355
285
  msgid "Light theme"
286
  msgstr ""
287
 
288
- #: php/class-settings.php:359
289
  msgid "White highlight color"
290
  msgstr ""
291
 
292
- #: php/class-settings.php:361
293
  msgid "Hide YouTube logo"
294
  msgstr ""
295
 
296
- #: php/class-settings.php:364 php/class-settings.php:414
 
297
  msgid "Hide related videos"
298
  msgstr ""
299
 
300
- #: php/class-settings.php:368
301
  msgid "Disallow fullscreen"
302
  msgstr ""
303
 
304
- #: php/class-settings.php:372 php/class-settings.php:410
 
305
  msgid "Hide video info"
306
  msgstr ""
307
 
308
- #: php/class-settings.php:374
309
  msgid "Enable JavaScript API"
310
  msgstr ""
311
 
312
- #: php/class-settings.php:406
313
  msgid "Hide DailyMotion logo"
314
  msgstr ""
315
 
316
- #: php/class-settings.php:418
317
  msgid "Turn HD on by default"
318
  msgstr ""
319
 
320
- #: php/class-settings.php:437
321
  msgid ""
322
  "If you have found a bug or think a specific feature is missing, %slet me know"
323
  "%s in the support forum. Like this plugin? %sRate it%s or %sbuy me a cookie"
2
  # This file is distributed under the same license as the Featured Video Plus package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Featured Video Plus 2.1.0\n"
6
  "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/featured-video-"
7
+ "plus\n"
8
+ "POT-Creation-Date: 2015-06-11 16:28:03+00:00\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
13
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
  "Language-Team: LANGUAGE <LL@li.org>\n"
15
 
16
+ #: build/php/class-backend.php:122 php/class-backend.php:122
17
  msgid "Featured Video"
18
  msgstr ""
19
 
20
+ #: build/php/class-backend.php:164 php/class-backend.php:164
21
  msgid "Set Featured Video"
22
  msgstr ""
23
 
24
+ #: build/php/class-backend.php:170 php/class-backend.php:170
25
  msgid "Video URL"
26
  msgstr ""
27
 
28
+ #: build/php/class-backend.php:198 php/class-backend.php:198
29
  msgid "The current theme does not support Featured Images"
30
  msgstr ""
31
 
32
+ #: build/php/class-backend.php:205 php/class-backend.php:205
33
  msgid ""
34
  "To display Featured Videos you need to use the %1$sShortcode%2$s or %1$sPHP "
35
  "functions%2$s. To hide this notice deactivate %3$sReplace Featured Images"
36
  "%4$s in the %5$sMedia Settings%6$s."
37
  msgstr ""
38
 
39
+ #: build/php/class-backend.php:603 build/php/class-settings.php:39
40
+ #: php/class-backend.php:603 php/class-settings.php:39
41
  msgid "Featured Videos"
42
  msgstr ""
43
 
44
+ #: build/php/class-backend.php:605 php/class-backend.php:605
45
  msgid ""
46
  "Simply paste a URL into this input to add a bit extra life to your posts. "
47
  "%sTry an example%s."
48
  msgstr ""
49
 
50
+ #: build/php/class-backend.php:612 php/class-backend.php:612
51
  msgid ""
52
  "To adjust how featured videos are displayed on the frontend checkout the "
53
  "%smedia settings%s."
54
  msgstr ""
55
 
56
+ #: build/php/class-backend.php:662 php/class-backend.php:662
57
+ msgid "Remove featured image"
58
+ msgstr ""
59
+
60
+ #: build/php/class-backend.php:669 php/class-backend.php:669
61
  msgid "Featured Videos require a Featured Image for automatic replacement."
62
  msgstr ""
63
 
64
+ #: build/php/class-backend.php:673 php/class-backend.php:673
65
  msgid "Auto set"
66
  msgstr ""
67
 
68
+ #. #-#-#-#-# featured-video-plus.pot (Featured Video Plus 2.1.0) #-#-#-#-#
69
  #. Plugin Name of the plugin/theme
70
+ #: build/php/class-help.php:23 php/class-help.php:23
71
  msgid "Featured Video Plus"
72
  msgstr ""
73
 
74
+ #: build/php/class-help.php:31 php/class-help.php:31
75
  msgid ""
76
  "Take a video url from one of the %ssupported oembed providers%s and paste it "
77
  "into the Featured Video input field."
78
  msgstr ""
79
 
80
+ #: build/php/class-help.php:41 php/class-help.php:41
81
  msgid ""
82
  "Alternatively you can select one of the videos from your media library using "
83
  "the small media icon to the right in the URL input field. The plugin makes "
85
  "compatibility with all formats."
86
  msgstr ""
87
 
88
+ #: build/php/class-help.php:52 php/class-help.php:52
89
  msgid "Fixing upload errors"
90
  msgstr ""
91
 
92
+ #: build/php/class-help.php:58 php/class-help.php:58
93
  msgid "Read %sthis%s on how to increase the maximum file upload size."
94
  msgstr ""
95
 
96
+ #: build/php/class-help.php:82 php/class-help.php:82
97
  msgid "PHP-Functions"
98
  msgstr ""
99
 
100
+ #: build/php/class-help.php:104 php/class-help.php:104
101
  msgctxt ""
102
  "%1$s is a boolean condition, \\\"post_id == null\\\", %2$s is a PHP "
103
  "variable, %2$s is a list of strings in paranthesis."
107
  "in pixels, e.g. array(32,32)."
108
  msgstr ""
109
 
110
+ #: build/php/class-help.php:111 build/php/class-settings.php:198
111
+ #: php/class-help.php:111 php/class-settings.php:198
112
  msgid "or"
113
  msgstr ""
114
 
115
+ #: build/php/class-help.php:115 php/class-help.php:115
116
  msgid ""
117
  "The functions are implemented corresponding to the original %sfunctions%s: "
118
  "They are intended to be used and to act the same way. Take a look into the "
119
  "WordPress Codex for further guidance:"
120
  msgstr ""
121
 
122
+ #: build/php/class-help.php:119 php/class-help.php:119
123
  msgid "Featured Image"
124
  msgstr ""
125
 
126
+ #: build/php/class-help.php:143 php/class-help.php:143
127
  msgid "Featured Video Plus: Shortcode"
128
  msgstr ""
129
 
130
+ #: build/php/class-help.php:156 php/class-help.php:156
131
  msgid "Displays the video in its default size."
132
  msgstr ""
133
 
134
+ #: build/php/class-help.php:160 php/class-help.php:160
135
  msgid ""
136
  "Displays the video with a width of 300 pixel. Height will be fitted such "
137
  "that the aspect ratio is preserved."
138
  msgstr ""
139
 
140
+ #: build/php/class-help.php:164 php/class-help.php:164
141
  msgid "Displays the video with a fixed width and height."
142
  msgstr ""
143
 
144
+ #: build/php/class-settings.php:50 php/class-settings.php:50
145
  msgid "Display mode"
146
  msgstr ""
147
 
148
+ #: build/php/class-settings.php:58 php/class-settings.php:58
149
  msgid "Display Conditions"
150
  msgstr ""
151
 
152
+ #: build/php/class-settings.php:68 php/class-settings.php:68
153
  msgid "Video Sizing"
154
  msgstr ""
155
 
156
+ #: build/php/class-settings.php:77 php/class-settings.php:77
157
  msgid "Video Align"
158
  msgstr ""
159
 
160
+ #: build/php/class-settings.php:86 php/class-settings.php:86
161
  msgid "Default Arguments"
162
  msgstr ""
163
 
164
+ #: build/php/class-settings.php:95 php/class-settings.php:95
165
  msgid "Support"
166
  msgstr ""
167
 
168
+ #: build/php/class-settings.php:116 php/class-settings.php:116
169
  msgid ""
170
  "To display your featured videos you can either make use of the automatic "
171
  "replacement, use the %s or manually edit your theme's source files to make "
172
  "use of the plugins PHP-functions."
173
  msgstr ""
174
 
175
+ #: build/php/class-settings.php:117 php/class-settings.php:117
176
  msgid ""
177
  "For more information about Shortcode and PHP functions see the %sContextual "
178
  "Help%s."
179
  msgstr ""
180
 
181
+ #: build/php/class-settings.php:125 php/class-settings.php:125
182
  msgid "The current theme does not support featured images."
183
  msgstr ""
184
 
185
+ #: build/php/class-settings.php:128 php/class-settings.php:128
186
  msgid ""
187
  "To display Featured Videos you need to use the %1$sShortcode%2$s or %1$sPHP "
188
  "functions%2$s."
189
  msgstr ""
190
 
191
+ #: build/php/class-settings.php:151 php/class-settings.php:151
192
  msgid "Replace featured image automatically."
193
  msgstr ""
194
 
195
+ #: build/php/class-settings.php:152 php/class-settings.php:152
196
  msgid "Replace featured image on click."
197
  msgstr ""
198
 
199
+ #: build/php/class-settings.php:153 php/class-settings.php:153
200
  msgid "Open video overlay when featured image is clicked."
201
  msgstr ""
202
 
203
+ #: build/php/class-settings.php:154 php/class-settings.php:154
204
  msgid "Manual: PHP-functions or shortcodes."
205
  msgstr ""
206
 
207
+ #: build/php/class-settings.php:160 php/class-settings.php:160
208
  msgid ""
209
  "Automatic integration (options 1-3) requires your theme to make use of "
210
  "WordPress' native %sfeatured image%s functionality."
211
  msgstr ""
212
 
213
+ #: build/php/class-settings.php:169 php/class-settings.php:169
214
+ msgid "Always use replace mode when viewing %ssingle%s posts and pages."
215
+ msgstr ""
216
+
217
+ #: build/php/class-settings.php:203 php/class-settings.php:203
218
  msgid "View options are not available in manual mode."
219
  msgstr ""
220
 
221
+ #: build/php/class-settings.php:213 php/class-settings.php:213
222
+ msgid "Apply display mode..."
223
+ msgstr ""
224
+
225
+ #: build/php/class-settings.php:219 php/class-settings.php:219
226
+ msgid "when viewing %ssingle%s posts and pages %s"
227
  msgstr ""
228
 
229
+ #: build/php/class-settings.php:225 php/class-settings.php:225
230
+ msgid "when on the %spost index page%s %s"
231
  msgstr ""
232
 
233
+ #: build/php/class-settings.php:231 php/class-settings.php:231
234
+ msgid "when inside the %smain query%s of each page %s"
235
  msgstr ""
236
 
237
+ #: build/php/class-settings.php:237 php/class-settings.php:237
238
+ msgid "when displaying %ssticky%s posts."
239
+ msgstr ""
240
+
241
+ #: build/php/class-settings.php:242 php/class-settings.php:242
242
+ msgid "when displaying not %ssticky%s posts."
243
+ msgstr ""
244
+
245
+ #: build/php/class-settings.php:249 php/class-settings.php:249
246
+ msgid ""
247
+ "If none of the above options is selected the display mode will be applied "
248
+ "whenever possible."
249
  msgstr ""
250
 
251
+ #: build/php/class-settings.php:274 php/class-settings.php:274
252
  msgid "Responsive"
253
  msgstr ""
254
 
255
+ #: build/php/class-settings.php:281 php/class-settings.php:281
256
  msgid "Width in pixels:"
257
  msgstr ""
258
 
259
+ #: build/php/class-settings.php:298 php/class-settings.php:298
260
  msgid ""
261
  "The %1$sresponsive%2$s setting does not work when using the %1$soverlay%2$s "
262
  "display mode and might break completly in some themes - in such cases you "
263
  "should use a fixed width instead."
264
  msgstr ""
265
 
266
+ #: build/php/class-settings.php:319 php/class-settings.php:319
267
  msgid "left"
268
  msgstr ""
269
 
270
+ #: build/php/class-settings.php:320 php/class-settings.php:320
271
  msgid "center"
272
  msgstr ""
273
 
274
+ #: build/php/class-settings.php:321 php/class-settings.php:321
275
  msgid "right"
276
  msgstr ""
277
 
278
+ #: build/php/class-settings.php:344 php/class-settings.php:344
279
  msgid "Not all of the following options might be supported by all providers."
280
  msgstr ""
281
 
282
+ #: build/php/class-settings.php:352 php/class-settings.php:352
283
  msgid "Autoplay"
284
  msgstr ""
285
 
286
+ #: build/php/class-settings.php:353 php/class-settings.php:353
287
  msgid "Loop"
288
  msgstr ""
289
 
290
+ #: build/php/class-settings.php:361 php/class-settings.php:361
291
  msgid ""
292
  "If the owner of a video is a Plus member, some of these settings may be "
293
  "overridden by their preferences."
294
  msgstr ""
295
 
296
+ #: build/php/class-settings.php:376 php/class-settings.php:376
297
  msgid "Hide user's portrait"
298
  msgstr ""
299
 
300
+ #: build/php/class-settings.php:380 php/class-settings.php:380
301
  msgid "Hide video title"
302
  msgstr ""
303
 
304
+ #: build/php/class-settings.php:384 php/class-settings.php:384
305
  msgid "Hide video byline"
306
  msgstr ""
307
 
308
+ #: build/php/class-settings.php:397 php/class-settings.php:397
309
  msgid "Light theme"
310
  msgstr ""
311
 
312
+ #: build/php/class-settings.php:401 php/class-settings.php:401
313
  msgid "White highlight color"
314
  msgstr ""
315
 
316
+ #: build/php/class-settings.php:403 php/class-settings.php:403
317
  msgid "Hide YouTube logo"
318
  msgstr ""
319
 
320
+ #: build/php/class-settings.php:406 build/php/class-settings.php:456
321
+ #: php/class-settings.php:406 php/class-settings.php:456
322
  msgid "Hide related videos"
323
  msgstr ""
324
 
325
+ #: build/php/class-settings.php:410 php/class-settings.php:410
326
  msgid "Disallow fullscreen"
327
  msgstr ""
328
 
329
+ #: build/php/class-settings.php:414 build/php/class-settings.php:452
330
+ #: php/class-settings.php:414 php/class-settings.php:452
331
  msgid "Hide video info"
332
  msgstr ""
333
 
334
+ #: build/php/class-settings.php:416 php/class-settings.php:416
335
  msgid "Enable JavaScript API"
336
  msgstr ""
337
 
338
+ #: build/php/class-settings.php:448 php/class-settings.php:448
339
  msgid "Hide DailyMotion logo"
340
  msgstr ""
341
 
342
+ #: build/php/class-settings.php:460 php/class-settings.php:460
343
  msgid "Turn HD on by default"
344
  msgstr ""
345
 
346
+ #: build/php/class-settings.php:479 php/class-settings.php:479
347
  msgid ""
348
  "If you have found a bug or think a specific feature is missing, %slet me know"
349
  "%s in the support forum. Like this plugin? %sRate it%s or %sbuy me a cookie"
php/class-backend.php CHANGED
@@ -32,11 +32,12 @@ class FVP_Backend extends Featured_Video_Plus {
32
  array( $this, 'plugin_action_link' ),
33
  10, 2 );
34
  add_filter( 'admin_post_thumbnail_html',
35
- array( $this, 'featured_image_notice' ),
36
  10, 2 );
37
 
38
  if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
39
  add_action( 'wp_ajax_fvp_save', array( $this, 'metabox_save_ajax' ) );
 
40
  add_action( 'wp_ajax_fvp_get_embed', array( $this, 'ajax_get_embed' ) );
41
  add_action( 'wp_ajax_nopriv_fvp_get_embed',
42
  array( $this, 'ajax_get_embed' ) );
@@ -56,7 +57,7 @@ class FVP_Backend extends Featured_Video_Plus {
56
  return;
57
  }
58
 
59
- $min = defined( SCRIPT_DEBUG ) && SCRIPT_DEBUG ? '' : '.min';
60
 
61
  // jQuery script for automatically resizing <textarea>s.
62
  wp_register_script(
@@ -81,9 +82,10 @@ class FVP_Backend extends Featured_Video_Plus {
81
 
82
  // Some variables required in JS context.
83
  $upload_dir = wp_upload_dir();
84
- wp_localize_script( 'fvp-post', 'fvp_post', array(
85
  'wp_upload_dir' => $upload_dir['baseurl'],
86
- 'loading_gif' => get_admin_url( null, 'images/loading.gif' )
 
87
  ));
88
 
89
  // General backend style.
@@ -147,7 +149,7 @@ class FVP_Backend extends Featured_Video_Plus {
147
  // Current featured video.
148
  $content .= sprintf(
149
  '<div class="fvp-current-video"%s>%s</div>',
150
- $this->inline_styles( array(
151
  'height: 0px' => ! $has_post_video,
152
  ), true, true ),
153
  get_the_post_video( $post_id, array( 256, 144 ) )
@@ -174,7 +176,7 @@ class FVP_Backend extends Featured_Video_Plus {
174
  '<a href="#" class="fvp-video-choose">' .
175
  '<span class="fvp-media-icon"%s></span>' .
176
  '</a>',
177
- $this->inline_styles(array(
178
  'background-image' => sprintf(
179
  'url(%s/wp-admin/images/media-button.png)',
180
  get_bloginfo( 'wpurl' )
@@ -241,7 +243,6 @@ class FVP_Backend extends Featured_Video_Plus {
241
 
242
  $post = array(
243
  'id' => $post_id,
244
- 'fvp_nonce' => ! empty( $_POST['fvp_nonce'] ) ? $_POST['fvp_nonce'] : '',
245
  'fvp_video' => ! empty( $_POST['fvp_video'] ) ? $_POST['fvp_video'] : ''
246
  );
247
 
@@ -258,13 +259,12 @@ class FVP_Backend extends Featured_Video_Plus {
258
  * @uses $this->save()
259
  */
260
  public function metabox_save_ajax() {
261
- if ( ! self::has_valid_nonce( $_POST ) ) {
262
- return false;
263
  }
264
 
265
  $post = array(
266
- 'id' => $_POST['id'],
267
- 'fvp_nonce' => ! empty( $_POST['fvp_nonce'] ) ? $_POST['fvp_nonce'] : '',
268
  'fvp_video' => ! empty( $_POST['fvp_video'] ) ? $_POST['fvp_video'] : '',
269
  'fvp_set_featimg' =>
270
  ! empty( $_POST['fvp_set_featimg'] ) ? $_POST['fvp_set_featimg'] : '',
@@ -280,22 +280,22 @@ class FVP_Backend extends Featured_Video_Plus {
280
 
281
  if ( has_post_video( $post['id'] ) ) {
282
  $video = get_the_post_video( $post['id'], array( 256, 144 ) );
283
- $response = json_encode( array(
284
  'type' => 'update',
285
  'valid' => isset( $meta['valid'] ) ? $meta['valid'] : null,
286
  'video' => $video,
287
  'img' => $img,
288
  'provider' => isset( $meta['provider'] ) ? $meta['provider'] : null
289
- ) );
290
  } else {
291
- $response = json_encode( array(
292
  'task' => 'remove',
293
  'valid' => isset( $meta['valid'] ) ? $meta['valid'] : null,
294
  'img' => $img,
295
- ) );
296
  }
297
 
298
- exit( $response );
299
  }
300
 
301
 
@@ -314,13 +314,15 @@ class FVP_Backend extends Featured_Video_Plus {
314
  // parse video url
315
  $url = ! empty( $post['fvp_video'] ) ? trim( $post['fvp_video'] ) : '';
316
 
317
- // has featured image AND url did not change or is and was empty
318
- if (
319
- ( empty ( $post['fvp_set_featimg'] ) || ! $post['fvp_set_featimg'] ) && (
320
- ( ! empty( $meta['full'] ) && $url == $meta['full'] ) ||
321
- ( empty( $meta['full'] ) && empty( $url ) )
322
- )
323
- ) {
 
 
324
  return false;
325
  }
326
 
@@ -339,8 +341,16 @@ class FVP_Backend extends Featured_Video_Plus {
339
  $data['filename'] = 'Featured Video Plus Placeholder';
340
  }
341
 
342
- $img = $this->set_featured_image( $post['id'], $data );
 
 
 
 
 
 
 
343
 
 
344
  $meta = array_merge(
345
  array(
346
  'full' => $url,
@@ -512,37 +522,66 @@ class FVP_Backend extends Featured_Video_Plus {
512
  * @since 1.7.0
513
  */
514
  public function ajax_get_embed() {
515
- header( 'Content-Type: application/json' );
516
-
517
- // bad request
518
- if ( ! wp_verify_nonce( $_POST['nonce'], 'featured-video-plus-nonce' ) ) {
519
- $response = json_encode( array(
520
- 'success' => false,
521
- 'html' => 'invalid nonce',
522
- ) );
523
-
524
- // return featured video as requested
525
- } elseif ( has_post_video( $_POST['id'] ) ) {
526
- $meta = get_post_meta( $_POST['id'], '_fvp_video', true );
527
- $video = get_the_post_video( $_POST['id'] );
528
-
529
- $response = json_encode( array(
530
- 'success' => 'true',
531
- 'html' => $video,
532
- 'id' => ! empty( $meta['id'] ) ? $meta['id'] : null,
533
- ) );
534
-
535
- // no video, return featured image
536
  } else {
537
- $image = get_the_post_thumbnail( $_POST['id'] );
 
 
 
 
 
538
 
539
- $response = json_encode(array(
540
- 'success' => 'false',
541
- 'html' => $image,
542
- ));
 
 
 
 
 
 
 
 
543
  }
544
 
545
- exit( $response );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
546
  }
547
 
548
 
@@ -616,23 +655,28 @@ class FVP_Backend extends Featured_Video_Plus {
616
  * @param {int} $post_id
617
  * @return {string}
618
  */
619
- public function featured_image_notice( $content, $post_id ) {
620
- if ( has_post_thumbnail( $post_id ) || ! has_post_video( $post_id ) ) {
621
- return $content;
622
- }
 
 
623
 
624
- $notice = '<span class="fvp-notice">';
625
- $notice .= __(
626
- 'Featured Videos require a Featured Image for automatic replacement.',
627
- 'featured-video-plus'
628
- );
629
- $notice .= '&nbsp;<a href="#" class="fvp-set-featimg hidden">' . __(
630
- 'Auto set',
631
- 'featured-video-plus'
632
- ) . '</a>';
633
- $notice .= '</span>';
 
 
 
634
 
635
- return $notice . $content;
636
  }
637
 
638
 
32
  array( $this, 'plugin_action_link' ),
33
  10, 2 );
34
  add_filter( 'admin_post_thumbnail_html',
35
+ array( $this, 'featured_image_box' ),
36
  10, 2 );
37
 
38
  if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
39
  add_action( 'wp_ajax_fvp_save', array( $this, 'metabox_save_ajax' ) );
40
+ add_action( 'wp_ajax_fvp_remove_img', array( $this, 'ajax_remove_img' ) );
41
  add_action( 'wp_ajax_fvp_get_embed', array( $this, 'ajax_get_embed' ) );
42
  add_action( 'wp_ajax_nopriv_fvp_get_embed',
43
  array( $this, 'ajax_get_embed' ) );
57
  return;
58
  }
59
 
60
+ $min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
61
 
62
  // jQuery script for automatically resizing <textarea>s.
63
  wp_register_script(
82
 
83
  // Some variables required in JS context.
84
  $upload_dir = wp_upload_dir();
85
+ wp_localize_script( 'fvp-post', 'fvpPost', array(
86
  'wp_upload_dir' => $upload_dir['baseurl'],
87
+ 'loading_gif' => get_admin_url( null, 'images/loading.gif' ),
88
+ 'debug' => defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG
89
  ));
90
 
91
  // General backend style.
149
  // Current featured video.
150
  $content .= sprintf(
151
  '<div class="fvp-current-video"%s>%s</div>',
152
+ FVP_HTML::inline_styles( array(
153
  'height: 0px' => ! $has_post_video,
154
  ), true, true ),
155
  get_the_post_video( $post_id, array( 256, 144 ) )
176
  '<a href="#" class="fvp-video-choose">' .
177
  '<span class="fvp-media-icon"%s></span>' .
178
  '</a>',
179
+ FVP_HTML::inline_styles( array(
180
  'background-image' => sprintf(
181
  'url(%s/wp-admin/images/media-button.png)',
182
  get_bloginfo( 'wpurl' )
243
 
244
  $post = array(
245
  'id' => $post_id,
 
246
  'fvp_video' => ! empty( $_POST['fvp_video'] ) ? $_POST['fvp_video'] : ''
247
  );
248
 
259
  * @uses $this->save()
260
  */
261
  public function metabox_save_ajax() {
262
+ if ( ! self::has_valid_nonce( $_POST ) || empty( $_POST['id'] ) ) {
263
+ wp_send_json_error();
264
  }
265
 
266
  $post = array(
267
+ 'id' => (int) $_POST['id'],
 
268
  'fvp_video' => ! empty( $_POST['fvp_video'] ) ? $_POST['fvp_video'] : '',
269
  'fvp_set_featimg' =>
270
  ! empty( $_POST['fvp_set_featimg'] ) ? $_POST['fvp_set_featimg'] : '',
280
 
281
  if ( has_post_video( $post['id'] ) ) {
282
  $video = get_the_post_video( $post['id'], array( 256, 144 ) );
283
+ $response = array(
284
  'type' => 'update',
285
  'valid' => isset( $meta['valid'] ) ? $meta['valid'] : null,
286
  'video' => $video,
287
  'img' => $img,
288
  'provider' => isset( $meta['provider'] ) ? $meta['provider'] : null
289
+ );
290
  } else {
291
+ $response = array(
292
  'task' => 'remove',
293
  'valid' => isset( $meta['valid'] ) ? $meta['valid'] : null,
294
  'img' => $img,
295
+ );
296
  }
297
 
298
+ wp_send_json_success( $response );
299
  }
300
 
301
 
314
  // parse video url
315
  $url = ! empty( $post['fvp_video'] ) ? trim( $post['fvp_video'] ) : '';
316
 
317
+ // Was this a force-auto-set featimg action?
318
+ $setimg = ! empty ( $post['fvp_set_featimg'] ) && $post['fvp_set_featimg'];
319
+
320
+ // Don't do anything if we are not setting the featured image AND the
321
+ // URL is empty AND did not change.
322
+ if ( ! $setimg && (
323
+ ( ! empty( $meta['full'] ) && $url == $meta['full'] ) ||
324
+ ( empty( $meta['full'] ) && empty( $url ) )
325
+ ) ) {
326
  return false;
327
  }
328
 
341
  $data['filename'] = 'Featured Video Plus Placeholder';
342
  }
343
 
344
+ // Should we set the featured image?
345
+ if ( $setimg || (
346
+ ! has_post_thumbnail( $post['id'] ) &&
347
+ ( empty( $meta['noimg'] ) || $meta['noimg'] )
348
+ ) ) {
349
+ $img = $this->set_featured_image( $post['id'], $data );
350
+ $data['noimg'] = false;
351
+ }
352
 
353
+ // Create the final _fvp_video meta data.
354
  $meta = array_merge(
355
  array(
356
  'full' => $url,
522
  * @since 1.7.0
523
  */
524
  public function ajax_get_embed() {
525
+ if ( ! self::has_valid_nonce( $_POST ) || empty( $_POST['id'] ) ) {
526
+ wp_send_json_error();
527
+ }
528
+
529
+ // Parse post id.
530
+ $id = (int) $_POST['id'];
531
+
532
+ if ( has_post_video( $id ) ) {
533
+ // Return featured video html as requested.
534
+ $video = get_the_post_video( $id );
535
+ wp_send_json_success( $video );
 
 
 
 
 
 
 
 
 
 
536
  } else {
537
+ // Post has no video, return featured image html.
538
+ $image = get_the_post_thumbnail( $id );
539
+ wp_send_json_success( $image );
540
+ }
541
+ }
542
+
543
 
544
+ /**
545
+ * Some people might not want to have a featured image because of whatever
546
+ * reason. We notify them about the probable incompatibility and offer the
547
+ * 'auto set' link to set the featured image using the plugin (video
548
+ * thumbnail or placeholder) but do not want to auto set it on every post
549
+ * save automatically if they explicitly removed it before. This function
550
+ * therefor is triggered by an AJAX request when removing a featured image
551
+ * which was previously set by the plugin.
552
+ */
553
+ public function ajax_remove_img() {
554
+ if ( ! self::has_valid_nonce( $_POST ) || empty( $_POST['id'] ) ) {
555
+ wp_send_json_error();
556
  }
557
 
558
+ // Retrieve post id and check user capabilities.
559
+ $id = (int) $_POST['id'];
560
+ if ( ! current_user_can( 'edit_post', $id ) ) {
561
+ wp_send_json_error();
562
+ }
563
+
564
+ // Retrieve featured video metadata.
565
+ $meta = get_post_meta( $id, '_fvp_video', true );
566
+
567
+ // Delete the image from database if feasible. This also again tries to
568
+ // remove the link of the featured image to the post although it will
569
+ // probably already be unlinked by WordPress internal functionality.
570
+ $this->delete_featured_image( $id, $meta );
571
+
572
+ // Remember that we do not want to set a featured image automatically for
573
+ // this post.
574
+ $meta['noimg'] = true;
575
+
576
+ // Remove now unnecessary image information from the video meta.
577
+ $meta['img'] = null;
578
+
579
+ // Save meta.
580
+ update_post_meta( $id, '_fvp_video', $meta );
581
+
582
+ // Respond to the client.
583
+ $html = _wp_post_thumbnail_html( get_post_thumbnail_id( $id ), $id );
584
+ wp_send_json_success( $html );
585
  }
586
 
587
 
655
  * @param {int} $post_id
656
  * @return {string}
657
  */
658
+ public function featured_image_box( $content, $post_id ) {
659
+ if ( has_post_thumbnail( $post_id ) ) {
660
+ $link = sprintf(
661
+ '<p class="hide-if-no-js"><a href="#" class="fvp-remove-image">%s</a></p>',
662
+ esc_html__( 'Remove featured image' )
663
+ );
664
 
665
+ return $content . $link;
666
+ } elseif ( has_post_video( $post_id ) ) {
667
+ $notice = sprintf(
668
+ '<p class="fvp-notice">%s <a href="#" class="fvp-set-image hide-if-no-js">%s</a></p>',
669
+ esc_html__(
670
+ 'Featured Videos require a Featured Image for automatic replacement.',
671
+ 'featured-video-plus'
672
+ ),
673
+ esc_html__( 'Auto set', 'featured-video-plus' )
674
+ );
675
+
676
+ return $notice . $content;
677
+ }
678
 
679
+ return $content;
680
  }
681
 
682
 
php/class-frontend.php CHANGED
@@ -37,7 +37,7 @@ class FVP_Frontend extends Featured_Video_Plus {
37
  * @since 1.0.0
38
  */
39
  public function enqueue() {
40
- $min = SCRIPT_DEBUG ? '' : '.min';
41
 
42
  $options = get_option( 'fvp-settings' );
43
  $mode = ! empty( $options['mode'] ) ? $options['mode'] : null;
@@ -94,7 +94,7 @@ class FVP_Frontend extends Featured_Video_Plus {
94
  // some context for JS
95
  wp_localize_script( 'fvp-frontend', 'fvpdata', array(
96
  'ajaxurl' => admin_url( 'admin-ajax.php' ),
97
- 'nonce' => wp_create_nonce( 'featured-video-plus-nonce' ),
98
  'fitvids' => ! empty( $options['sizing']['responsive'] ) &&
99
  $options['sizing']['responsive'],
100
  'dynamic' => 'dynamic' === $mode,
@@ -141,29 +141,24 @@ class FVP_Frontend extends Featured_Video_Plus {
141
  $options = get_option( 'fvp-settings' );
142
  $mode = ! empty( $options['mode'] ) ? $options['mode'] : null;
143
  $conditions = ! empty( $options['conditions'] ) ?
144
- $options['conditions'] : array();
145
-
146
- $conditions_hold = true;
147
- foreach ( $conditions AS $fun => $value ) {
148
- if ( $value && function_exists( 'is_' . $fun ) ) {
149
- $conditions_hold = $conditions_hold && call_user_func( 'is_' . $fun );
150
- }
151
- }
152
 
153
  if ( ( 'manual' === $mode ) ||
154
- ( ! $conditions_hold ) ||
155
  ( ! has_post_video( $post_id ) )
156
  ) {
157
  return $html;
158
 
159
- } elseif ( 'dynamic' === $mode && ! is_single() ) {
160
  return sprintf(
161
  '<a href="#" data-id="%1$s" class="fvp-dynamic post-thumbnail">%2$s</a>',
162
  $post_id,
163
  $html
164
  );
165
 
166
- } elseif ( 'overlay' === $mode && ! is_single() ) {
167
  return sprintf(
168
  '<a href="#" data-id="%1$s" class="fvp-overlay post-thumbnail">%2$s</a>' .
169
  '<div id="fvp-cache-%1$s" style="display: none;"></div>',
@@ -209,4 +204,34 @@ class FVP_Frontend extends Featured_Video_Plus {
209
  return get_the_post_video( null, array( $w, $h ) );
210
  }
211
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
212
  }
37
  * @since 1.0.0
38
  */
39
  public function enqueue() {
40
+ $min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
41
 
42
  $options = get_option( 'fvp-settings' );
43
  $mode = ! empty( $options['mode'] ) ? $options['mode'] : null;
94
  // some context for JS
95
  wp_localize_script( 'fvp-frontend', 'fvpdata', array(
96
  'ajaxurl' => admin_url( 'admin-ajax.php' ),
97
+ 'nonce' => wp_create_nonce( FVP_NAME . FVP_VERSION ),
98
  'fitvids' => ! empty( $options['sizing']['responsive'] ) &&
99
  $options['sizing']['responsive'],
100
  'dynamic' => 'dynamic' === $mode,
141
  $options = get_option( 'fvp-settings' );
142
  $mode = ! empty( $options['mode'] ) ? $options['mode'] : null;
143
  $conditions = ! empty( $options['conditions'] ) ?
144
+ $options['conditions'] : null;
145
+ $single_replace = is_single() &&
146
+ ! empty( $options['single_replace'] ) && $options['single_replace'];
 
 
 
 
 
147
 
148
  if ( ( 'manual' === $mode ) ||
149
+ ( ! self::check_conditions( $conditions ) ) ||
150
  ( ! has_post_video( $post_id ) )
151
  ) {
152
  return $html;
153
 
154
+ } elseif ( 'dynamic' === $mode && ! $single_replace ) {
155
  return sprintf(
156
  '<a href="#" data-id="%1$s" class="fvp-dynamic post-thumbnail">%2$s</a>',
157
  $post_id,
158
  $html
159
  );
160
 
161
+ } elseif ( 'overlay' === $mode && ! $single_replace ) {
162
  return sprintf(
163
  '<a href="#" data-id="%1$s" class="fvp-overlay post-thumbnail">%2$s</a>' .
164
  '<div id="fvp-cache-%1$s" style="display: none;"></div>',
204
  return get_the_post_video( null, array( $w, $h ) );
205
  }
206
  }
207
+
208
+
209
+ /**
210
+ * Check a given set of display conditions if one or more of them hold. If
211
+ * an empty set is given, return true.
212
+ *
213
+ * @param {assoc} $conditions
214
+ * @return {bool}
215
+ */
216
+ private static function check_conditions( $conditions ) {
217
+ if ( empty( $conditions ) ) {
218
+ return true;
219
+ }
220
+
221
+ $conditions_hold = false;
222
+ foreach ( $conditions AS $fun => $value ) {
223
+ $negate = false;
224
+ if ( '!' === $fun[0] ) {
225
+ $negate = true;
226
+ $fun = substr( $fun, 1 );
227
+ }
228
+
229
+ if ( $value && function_exists( 'is_' . $fun ) ) {
230
+ $call = call_user_func( 'is_' . $fun );
231
+ $conditions_hold = $conditions_hold || ( $negate ? ! $call : $call );
232
+ }
233
+ }
234
+
235
+ return $conditions_hold;
236
+ }
237
  }
php/class-html.php CHANGED
@@ -5,22 +5,14 @@ class FVP_HTML {
5
  private static $name = 'fvphtml';
6
 
7
 
8
- public static $screens;
9
 
10
 
11
- public static function static_init() {
12
- static $initiated;
13
- if ( $initiated ) {
14
- return;
15
  }
16
 
17
- add_action( 'admin_enqueue_scripts', array( get_class(), 'enqueue' ) );
18
-
19
- $initiated = true;
20
- }
21
-
22
-
23
- public static function add_screens( $screens = array() ) {
24
  self::$screens = array_merge( (array) self::$screens, (array) $screens );
25
  }
26
 
@@ -32,7 +24,7 @@ class FVP_HTML {
32
  }
33
 
34
  // development or production?
35
- $min = SCRIPT_DEBUG ? '' : '.min';
36
 
37
  wp_enqueue_style(
38
  'fvphtml',
@@ -62,7 +54,7 @@ class FVP_HTML {
62
  'fvphtml', // hook
63
  'fvphtml', // variable name
64
  array(
65
- 'prefix' => '.fvphtml',
66
  'pointers' => self::get_pointers( $hook ),
67
  )
68
  );
@@ -540,6 +532,90 @@ class FVP_HTML {
540
  return $pointers;
541
  }
542
 
543
- }
544
 
545
- FVP_HTML::static_init();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  private static $name = 'fvphtml';
6
 
7
 
8
+ public static $screens;
9
 
10
 
11
+ public static function add_screens( $screens = array() ) {
12
+ if ( empty( self::$screens ) && ! empty( $screens ) ) {
13
+ add_action( 'admin_enqueue_scripts', array( get_class(), 'enqueue' ) );
 
14
  }
15
 
 
 
 
 
 
 
 
16
  self::$screens = array_merge( (array) self::$screens, (array) $screens );
17
  }
18
 
24
  }
25
 
26
  // development or production?
27
+ $min = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
28
 
29
  wp_enqueue_style(
30
  'fvphtml',
54
  'fvphtml', // hook
55
  'fvphtml', // variable name
56
  array(
57
+ 'prefix' => '.fvphtml-',
58
  'pointers' => self::get_pointers( $hook ),
59
  )
60
  );
532
  return $pointers;
533
  }
534
 
 
535
 
536
+ /**
537
+ * Translates a given array into a ready-to-use HTML class-attribute or its
538
+ * value.
539
+ *
540
+ * @param {assoc/array} $assoc If assoc: classname/condition pairs.
541
+ * If array: classnames.
542
+ * @param {boolean} $attribute If the classnames should be wrapped in a
543
+ * 'class' attribute.
544
+ * @param {boolean} $leadingspace If the result string should start with
545
+ * a space.
546
+ * @param {boolean} $trailingspace If the result string should end with a
547
+ * space.
548
+ * @return {string}
549
+ */
550
+ public static function class_names(
551
+ $assoc,
552
+ $attribute = false,
553
+ $leadingspace = false,
554
+ $trailingspace = false
555
+ ) {
556
+ // Attribute opening and leading space.
557
+ $string = $leadingspace ? ' ' : '';
558
+ $string .= $attribute ? 'class="' : '';
559
+
560
+ // Class list.
561
+ $classes = array();
562
+ foreach ( $assoc AS $key => $val ) {
563
+ if ( $val ) {
564
+ $classes[] = $key;
565
+ }
566
+ }
567
+ $string .= implode( ' ', $classes );
568
+
569
+ // Closing the attribute and trailing space.
570
+ $string .= $attribute ? '"' : '';
571
+ $string .= $trailingspace ? ' ' : '';
572
+
573
+ return $string;
574
+ }
575
+
576
+
577
+ /**
578
+ * Translates a given array into a ready-to-use HTML style-attribute.
579
+ *
580
+ * @param {assoc} $assoc Associative array of CSS property/value
581
+ * pairs or associative array of CSS
582
+ * properties WITH values as key and
583
+ * boolean conditions as value.
584
+ * @param {boolean} $attribute If the resulting style string should be
585
+ * wrapped in a 'style' attribute.
586
+ * @param {boolean} $leadingspace If the resulting string should start with
587
+ * a space.
588
+ * @param {boolean} $trailingspace If the resulting string should end with a
589
+ * space.
590
+ * @return {string}
591
+ */
592
+ public static function inline_styles(
593
+ $assoc,
594
+ $attribute = false,
595
+ $leadingspace = false,
596
+ $trailingspace = false
597
+ ) {
598
+ // Attribute opening and leading space.
599
+ $string = $leadingspace ? ' ' : '';
600
+ $string .= $attribute ? 'style="' : '';
601
+
602
+ // Style body.
603
+ foreach ( $assoc AS $key => $val ) {
604
+ if ( is_bool( $val ) && true === $val ) {
605
+ // $key is a property: value pair and $val a boolean condition
606
+ $string .= esc_attr( $key ) . '; ';
607
+ } else {
608
+ // $key is a property and $val a value
609
+ $string .= sprintf( '%s: %s; ', esc_attr( $key ), esc_attr( $val ) );
610
+ }
611
+ }
612
+
613
+ // Closing the attribute and trailing space.
614
+ $string .= $attribute ? '"' : '';
615
+ $string .= $trailingspace ? ' ' : '';
616
+
617
+ return $string;
618
+ }
619
+
620
+
621
+ }
php/class-main.php CHANGED
@@ -1,4 +1,8 @@
1
  <?php
 
 
 
 
2
  /**
3
  * Class containing all functions needed on front- AND backend. Functions only needed on one of those are found in distinct classes.
4
  *
@@ -114,7 +118,7 @@ class Featured_Video_Plus {
114
  $embed = sprintf(
115
  "<!-- Featured Video Plus v%s -->\n<div%s>%s</div>\n\n",
116
  FVP_VERSION,
117
- $this->class_names($classnames, true, true),
118
  $embed
119
  );
120
 
@@ -230,75 +234,4 @@ class Featured_Video_Plus {
230
  FVP_NAME . '/lng/'
231
  );
232
  }
233
-
234
-
235
- /**
236
- *
237
- * @param {assoc} $assoc
238
- * @param {boolean} $attribute
239
- * @param {boolean} $leadingspace
240
- * @param {boolean} $trailingspace
241
- * @return {string}
242
- */
243
- protected function class_names(
244
- $assoc,
245
- $attribute = false,
246
- $leadingspace = false,
247
- $trailingspace = false
248
- ) {
249
- // Attribute opening and leading space.
250
- $string = $leadingspace ? ' ' : '';
251
- $string .= $attribute ? 'class="' : '';
252
-
253
- // Class list.
254
- $classes = array();
255
- foreach ( $assoc AS $key => $val ) {
256
- if ( $val ) {
257
- $classes[] = $key;
258
- }
259
- }
260
- $string .= implode( ' ', $classes );
261
-
262
- // Closing the attribute and trailing space.
263
- $string .= $attribute ? '"' : '';
264
- $string .= $trailingspace ? ' ' : '';
265
-
266
- return $string;
267
- }
268
-
269
- /**
270
- *
271
- * @param {assoc} $assoc
272
- * @param {boolean} $attribute
273
- * @param {boolean} $leadingspace
274
- * @param {boolean} $trailingspace
275
- * @return {string}
276
- */
277
- protected function inline_styles(
278
- $assoc,
279
- $attribute = false,
280
- $leadingspace = false,
281
- $trailingspace = false
282
- ) {
283
- // Attribute opening and leading space.
284
- $string = $leadingspace ? ' ' : '';
285
- $string .= $attribute ? 'style="' : '';
286
-
287
- // Style body.
288
- foreach ( $assoc AS $key => $val ) {
289
- if ( is_bool( $val ) && true === $val ) {
290
- // $key is a property: value pair and $val a boolean condition
291
- $string .= esc_attr( $key ) . '; ';
292
- } else {
293
- // $key is a property and $val a value
294
- $string .= sprintf( '%s: %s; ', esc_attr( $key ), esc_attr( $val ) );
295
- }
296
- }
297
-
298
- // Closing the attribute and trailing space.
299
- $string .= $attribute ? '"' : '';
300
- $string .= $trailingspace ? ' ' : '';
301
-
302
- return $string;
303
- }
304
  }
1
  <?php
2
+
3
+ // dependencies
4
+ require_once( FVP_DIR . 'php/class-html.php' );
5
+
6
  /**
7
  * Class containing all functions needed on front- AND backend. Functions only needed on one of those are found in distinct classes.
8
  *
118
  $embed = sprintf(
119
  "<!-- Featured Video Plus v%s -->\n<div%s>%s</div>\n\n",
120
  FVP_VERSION,
121
+ FVP_HTML::class_names($classnames, true, true),
122
  $embed
123
  );
124
 
234
  FVP_NAME . '/lng/'
235
  );
236
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
237
  }
php/class-settings.php CHANGED
@@ -15,10 +15,11 @@ class FVP_Settings {
15
 
16
  private static $page = 'media';
17
 
 
18
  public function __construct() {
19
  FVP_HTML::add_screens( self::$hook );
20
 
21
- add_action( 'admin_init', array( $this, 'settings_init' ) );
22
  }
23
 
24
 
@@ -158,6 +159,28 @@ class FVP_Settings {
158
  echo FVP_HTML::description(
159
  sprintf( esc_html__( "Automatic integration (options 1-3) requires your theme to make use of WordPress' native %sfeatured image%s functionality.", 'featured-video-plus' ), '<a href="http://codex.wordpress.org/Post_Thumbnails" target="_blank">', '</a>' )
160
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
161
  }
162
 
163
 
@@ -170,6 +193,10 @@ class FVP_Settings {
170
  $options = get_option( 'fvp-settings' );
171
 
172
  $auto = ! empty( $options['mode'] ) && 'manual' !== $options['mode'];
 
 
 
 
173
 
174
  echo FVP_HTML::conditional(
175
  FVP_HTML::description(
@@ -182,32 +209,47 @@ class FVP_Settings {
182
  );
183
 
184
  echo FVP_HTML::conditional(
 
 
 
185
  FVP_HTML::checkboxes(
186
  'fvp-settings[conditions]',
187
  array(
188
  'single' => sprintf(
189
- esc_html__( 'Only when viewing %ssingle%s posts and pages.', 'featured-video-plus' ),
190
  '<a href="http://codex.wordpress.org/Function_Reference/is_single" target="_blank">',
191
- '</a>'
 
192
  ),
193
  'home' => sprintf(
194
- esc_html__( 'Only on the %spost index page%s.', 'featured-video-plus' ),
195
  '<a href="http://codex.wordpress.org/Function_Reference/is_home" target="_blank">',
196
- '</a>'
 
197
  ),
198
  'main_query' => sprintf(
199
- esc_html__( 'Only inside the %smain query%s of each page.', 'featured-video-plus' ),
200
  '<a href="https://developer.wordpress.org/reference/functions/is_main_query/" target="_blank">',
201
- '</a>'
 
202
  ),
203
  'sticky' => sprintf(
204
- esc_html__( 'Only for %ssticky%s posts.', 'featured-video-plus' ),
 
 
 
 
 
205
  '<a href="http://codex.wordpress.org/Function_Reference/is_sticky" target="_blank">',
206
  '</a>'
207
  )
208
  ),
209
  ! empty( $options['conditions'] ) ? $options['conditions'] : array()
210
- ),
 
 
 
 
211
  array(
212
  'fvp-settings[mode]' => '!manual',
213
  'hidden' => ! $auto,
@@ -470,12 +512,14 @@ class FVP_Settings {
470
  );
471
 
472
  $datatypes = array(
473
- 'mode' => '(replace|dynamic|overlay|manual)',
474
- 'conditions' => array(
475
- 'single' => $patterns['digit'],
476
- 'home' => $patterns['digit'],
477
- 'main_query' => $patterns['digit'],
478
- 'sticky' => $patterns['digit'],
 
 
479
  ),
480
  'alignment' => '(left|center|right)',
481
  'sizing' => array(
@@ -531,7 +575,7 @@ class FVP_Settings {
531
  if ( ! empty( $nextleaf ) ) {
532
  $validated[ $key ] = $nextleaf;
533
  }
534
- } elseif ( 'BOOLEAN' == $value ) {
535
  $validated[ $key ] = (bool) $src[ $key ];
536
  } else {
537
  preg_match( '/' . $value . '/i', $src[ $key ], $match );
15
 
16
  private static $page = 'media';
17
 
18
+
19
  public function __construct() {
20
  FVP_HTML::add_screens( self::$hook );
21
 
22
+ add_action( 'admin_init', array( $this, 'settings_init' ) );
23
  }
24
 
25
 
159
  echo FVP_HTML::description(
160
  sprintf( esc_html__( "Automatic integration (options 1-3) requires your theme to make use of WordPress' native %sfeatured image%s functionality.", 'featured-video-plus' ), '<a href="http://codex.wordpress.org/Post_Thumbnails" target="_blank">', '</a>' )
161
  );
162
+
163
+ // Always replace on is_single() ?
164
+ echo FVP_HTML::conditional(
165
+ '<br />' .
166
+ FVP_HTML::checkbox(
167
+ 'fvp-settings[single_replace]',
168
+ sprintf(
169
+ esc_html__(
170
+ 'Always use replace mode when viewing %ssingle%s posts and pages.',
171
+ 'featured-video-plus'
172
+ ),
173
+ '<a href="http://codex.wordpress.org/Function_Reference/is_single" target="_blank">',
174
+ '</a>'
175
+ ),
176
+ '1',
177
+ ! empty( $options['single_replace'] ) && $options['single_replace']
178
+ ),
179
+ array(
180
+ 'fvp-settings[mode]' => '!manual',
181
+ 'hidden' => ! empty( $options['mode'] ) && 'manual' === $options['mode']
182
+ )
183
+ );
184
  }
185
 
186
 
193
  $options = get_option( 'fvp-settings' );
194
 
195
  $auto = ! empty( $options['mode'] ) && 'manual' !== $options['mode'];
196
+ $or = sprintf(
197
+ '<em>%s</em>',
198
+ strtoupper( esc_html__( 'or', 'featured-video-plus' ) )
199
+ );
200
 
201
  echo FVP_HTML::conditional(
202
  FVP_HTML::description(
209
  );
210
 
211
  echo FVP_HTML::conditional(
212
+ FVP_HTML::description(
213
+ esc_html__( 'Apply display mode...', 'featured-video-plus' )
214
+ ) .
215
  FVP_HTML::checkboxes(
216
  'fvp-settings[conditions]',
217
  array(
218
  'single' => sprintf(
219
+ esc_html__( 'when viewing %ssingle%s posts and pages %s', 'featured-video-plus' ),
220
  '<a href="http://codex.wordpress.org/Function_Reference/is_single" target="_blank">',
221
+ '</a>',
222
+ $or
223
  ),
224
  'home' => sprintf(
225
+ esc_html__( 'when on the %spost index page%s %s', 'featured-video-plus' ),
226
  '<a href="http://codex.wordpress.org/Function_Reference/is_home" target="_blank">',
227
+ '</a>',
228
+ $or
229
  ),
230
  'main_query' => sprintf(
231
+ esc_html__( 'when inside the %smain query%s of each page %s', 'featured-video-plus' ),
232
  '<a href="https://developer.wordpress.org/reference/functions/is_main_query/" target="_blank">',
233
+ '</a>',
234
+ $or
235
  ),
236
  'sticky' => sprintf(
237
+ esc_html__( 'when displaying %ssticky%s posts.', 'featured-video-plus' ),
238
+ '<a href="http://codex.wordpress.org/Function_Reference/is_sticky" target="_blank">',
239
+ '</a>'
240
+ ),
241
+ '!sticky' => sprintf(
242
+ esc_html__( 'when displaying not %ssticky%s posts.', 'featured-video-plus' ),
243
  '<a href="http://codex.wordpress.org/Function_Reference/is_sticky" target="_blank">',
244
  '</a>'
245
  )
246
  ),
247
  ! empty( $options['conditions'] ) ? $options['conditions'] : array()
248
+ ) .
249
+ FVP_HTML::description( esc_html__(
250
+ 'If none of the above options is selected the display mode will be applied whenever possible.',
251
+ 'featured-video-plus'
252
+ ) ),
253
  array(
254
  'fvp-settings[mode]' => '!manual',
255
  'hidden' => ! $auto,
512
  );
513
 
514
  $datatypes = array(
515
+ 'mode' => '(replace|dynamic|overlay|manual)',
516
+ 'single_replace' => 'BOOLEAN',
517
+ 'conditions' => array(
518
+ 'single' => 'BOOLEAN',
519
+ 'home' => 'BOOLEAN',
520
+ 'main_query' => 'BOOLEAN',
521
+ 'sticky' => 'BOOLEAN',
522
+ '!sticky' => 'BOOLEAN',
523
  ),
524
  'alignment' => '(left|center|right)',
525
  'sizing' => array(
575
  if ( ! empty( $nextleaf ) ) {
576
  $validated[ $key ] = $nextleaf;
577
  }
578
+ } elseif ( 'BOOLEAN' === $value ) {
579
  $validated[ $key ] = (bool) $src[ $key ];
580
  } else {
581
  preg_match( '/' . $value . '/i', $src[ $key ], $match );
php/inc-upgrade.php CHANGED
@@ -200,6 +200,14 @@ switch ( $version ) {
200
  $this->save( array( 'id' => $id, 'fvp_video' => $meta['full'] ) );
201
  }
202
 
 
 
 
 
 
 
 
 
203
  default:
204
  update_option( 'fvp-settings', $options );
205
  update_option( 'fvp-version', FVP_VERSION );
200
  $this->save( array( 'id' => $id, 'fvp_video' => $meta['full'] ) );
201
  }
202
 
203
+
204
+ case '2.0.3':
205
+ $options['single_replace'] = false;
206
+ foreach( $options['conditions'] AS $key => $value ) {
207
+ $options['conditions'][ $key ] = (bool) $value;
208
+ }
209
+
210
+
211
  default:
212
  update_option( 'fvp-settings', $options );
213
  update_option( 'fvp-version', FVP_VERSION );
readme.txt CHANGED
@@ -10,7 +10,7 @@ License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
  Requires at least: 3.7
12
  Tested up to: 4.2.2
13
- Stable tag: 2.0.3
14
 
15
  Add Featured Videos to your posts and pages. Works like magic with most themes which use Featured Images. Local Media, YouTube, Vimeo and many more.
16
 
@@ -106,14 +106,29 @@ Yes, please! Check out the public [Featured Video Plus Translation Project](http
106
 
107
  == Upgrade Notice ==
108
 
109
- = 2.0.3 =
110
- Only upgrade when using WordPress 3.7 or higher! Big refactor with support for more video providers.
111
 
 
 
112
 
113
 
114
  == Changelog ==
115
 
116
- = 2.0.0, 2.0.1, 2.0.2, 2.0.3: 2015-06-01 =
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  * __Requires WordPress 3.7 or higher now!__ This reflects versions of WordPress which are "officially" [supported](https://codex.wordpress.org/Supported_Versions). The plugin will from now on try to stick to supporting all versions listed there.
118
  * Major code refactor which results in many bugs scrubbed.
119
  * Support for raw embed codes and [all WordPress core media providers](https://codex.wordpress.org/Embeds#Okay.2C_So_What_Sites_Can_I_Embed_From.3F).
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
  Requires at least: 3.7
12
  Tested up to: 4.2.2
13
+ Stable tag: 2.1.0
14
 
15
  Add Featured Videos to your posts and pages. Works like magic with most themes which use Featured Images. Local Media, YouTube, Vimeo and many more.
16
 
106
 
107
  == Upgrade Notice ==
108
 
109
+ = 2.1.0 =
110
+ Only upgrade when using WordPress 3.7 or higher! Check your media settings after upgrading.
111
 
112
+ = 2.0.3 =
113
+ Only upgrade when using WordPress 3.7 or higher!
114
 
115
 
116
  == Changelog ==
117
 
118
+ = 2.1.0: 2015-06-11 =
119
+ * Display options are now chained using OR - if one of them holds, the replace mode is used.
120
+ * Added `always use replace mode when viewing single posts and pages` option, was implicitly true since 2.0.0. ([*](https://wordpress.org/support/topic/featured-video-overrides-featured-image)).
121
+ * Fixed undefined warnings when using `WP_DEBUG` ([*](https://wordpress.org/support/topic/debug-error-16)).
122
+ * Fixed double-wrapped .post-thumbnails ([*](https://wordpress.org/support/topic/video-no-longer-appearing)).
123
+ * Lazy loading a video no longer breaks other videos. ([*](https://wordpress.org/support/topic/blank-screen-after-the-video-is-played))
124
+
125
+ = 2.0.3: 2015-06-01 =
126
+ * Remove usage of PHP short array syntax in order to support PHP versions lower than 5.4 ([*](https://wordpress.org/support/topic/bug-on-version-201))
127
+
128
+ = 2.0.2: 2015-06-01 =
129
+ * Fixed undefined warnings when saving posts with fresh featured videos.
130
+
131
+ = 2.0.0 & 2.0.1: 2015-06-01 =
132
  * __Requires WordPress 3.7 or higher now!__ This reflects versions of WordPress which are "officially" [supported](https://codex.wordpress.org/Supported_Versions). The plugin will from now on try to stick to supporting all versions listed there.
133
  * Major code refactor which results in many bugs scrubbed.
134
  * Support for raw embed codes and [all WordPress core media providers](https://codex.wordpress.org/Embeds#Okay.2C_So_What_Sites_Can_I_Embed_From.3F).
styles/_variables.less DELETED
@@ -1,5 +0,0 @@
1
- .border-radius( @radius ) {
2
- -webkit-border-radius: @radius;
3
- -moz-border-radius: @radius;
4
- border-radius: @radius;
5
- }
 
 
 
 
 
styles/backend.css CHANGED
@@ -1 +1,58 @@
1
- #featured-video-plus-box .fvp-current-video{background:transparent fixed no-repeat center center}#featured-video-plus-box .fvp-current-video,#featured-video-plus-box iframe{width:256px;height:auto;margin-bottom:5px}#featured-video-plus-box .fvp-hidden{display:none}#featured-video-plus-box .fvp-notice{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;margin:.5em 0;padding:.4em .6em .2em;border:1px solid gray;background-color:#fff}#featured-video-plus-box .fvp-warning{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;margin:.5em 0;padding:.4em .6em .2em;border:1px solid gray;background-color:#fff;border:1px solid #E6DB55;background-color:#FFFFE0}#featured-video-plus-box textarea{resize:none;width:100%;height:1.1em;line-height:1.1em;font-size:1em;min-height:23px}#featured-video-plus-box .fvp-input-wrapper{position:relative}#featured-video-plus-box .fvp-video{padding-right:21px}#featured-video-plus-box .fvp-media-icon{background:transparent no-repeat top left;display:block;width:15px;height:15px;position:absolute;top:4px;right:4px}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #featured-video-plus-box .fvp-current-video {
2
+ background: transparent fixed no-repeat center center;
3
+ }
4
+ #featured-video-plus-box .fvp-current-video,
5
+ #featured-video-plus-box iframe {
6
+ width: 256px;
7
+ height: auto;
8
+ margin-bottom: 5px;
9
+ }
10
+ #featured-video-plus-box .fvp-hidden {
11
+ display: none;
12
+ }
13
+ #featured-video-plus-box .fvp-notice {
14
+ -webkit-border-radius: 3px;
15
+ -moz-border-radius: 3px;
16
+ border-radius: 3px;
17
+ margin: .5em 0;
18
+ padding: .4em .6em .2em;
19
+ border: 1px solid #808080;
20
+ background-color: #fff;
21
+ }
22
+ #featured-video-plus-box .fvp-warning {
23
+ -webkit-border-radius: 3px;
24
+ -moz-border-radius: 3px;
25
+ border-radius: 3px;
26
+ margin: .5em 0;
27
+ padding: .4em .6em .2em;
28
+ border: 1px solid #808080;
29
+ background-color: #fff;
30
+ border: 1px solid #E6DB55;
31
+ background-color: #FFFFE0;
32
+ }
33
+ #featured-video-plus-box textarea {
34
+ resize: none;
35
+ width: 100%;
36
+ height: 1.1em;
37
+ line-height: 1.1em;
38
+ font-size: 1em;
39
+ min-height: 23px;
40
+ }
41
+ #featured-video-plus-box .fvp-input-wrapper {
42
+ position: relative;
43
+ }
44
+ #featured-video-plus-box .fvp-video {
45
+ padding-right: 21px;
46
+ }
47
+ #featured-video-plus-box .fvp-media-icon {
48
+ background: transparent no-repeat top left;
49
+ display: block;
50
+ width: 15px;
51
+ height: 15px;
52
+ position: absolute;
53
+ top: 4px;
54
+ right: 4px;
55
+ }
56
+ #postimagediv #remove-post-thumbnail {
57
+ display: none !important;
58
+ }
styles/backend.less DELETED
@@ -1,59 +0,0 @@
1
- @import '_variables.less';
2
-
3
- #featured-video-plus-box {
4
- .fvp-current-video {
5
- background: transparent fixed no-repeat center center;
6
- }
7
-
8
- .fvp-current-video,
9
- iframe {
10
- width: 256px;
11
- height: auto;
12
- margin-bottom: 5px;
13
- }
14
-
15
- .fvp-hidden {
16
- display: none;
17
- }
18
-
19
- .fvp-notice {
20
- .border-radius(3px);
21
- margin: .5em 0;
22
- padding: .4em .6em .2em;
23
- border: 1px solid #808080;
24
- background-color: #fff;
25
- }
26
-
27
- .fvp-warning {
28
- .fvp-notice();
29
- border: 1px solid #E6DB55;
30
- background-color: #FFFFE0; // lightYellow
31
- }
32
-
33
- textarea {
34
- resize: none;
35
- width: 100%;
36
- height: 1.1em;
37
- line-height: 1.1em;
38
- font-size: 1em;
39
- min-height: 23px;
40
- }
41
-
42
- .fvp-input-wrapper {
43
- position: relative;
44
- }
45
-
46
- .fvp-video {
47
- padding-right: 21px;
48
- }
49
-
50
- .fvp-media-icon {
51
- background: transparent no-repeat top left;
52
- display: block;
53
- width: 15px;
54
- height: 15px;
55
- position: absolute;
56
- top: 4px;
57
- right: 4px;
58
- }
59
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
styles/frontend.css CHANGED
@@ -1 +1,75 @@
1
- .featured-video-plus.fvp-responsive .wp-video{width:auto!important;height:auto!important}.featured-video-plus.fvp-responsive .mejs-container{width:100%!important;height:auto!important;padding-top:57%}.featured-video-plus.fvp-responsive .mejs-overlay,.featured-video-plus.fvp-responsive .mejs-poster{width:100%!important;height:100%!important}.featured-video-plus.fvp-responsive .mejs-mediaelement video{position:absolute;top:0;left:0;right:0;bottom:0;width:100%!important;height:100%!important}.featured-video-plus.fvp-responsive audio{width:100%}.featured-video-plus.fvp-center{text-align:center}.featured-video-plus.fvp-center .wp-video{margin:0 auto}.featured-video-plus.fvp-right{text-align:right}.featured-video-plus.fvp-right .wp-video{margin:0 0 auto auto}.featured-video-plus.fvp-left{text-align:left}.featured-video-plus.fvp-left .wp-video{margin:0 auto auto 0}.fvp-overlay,.fvp-dynamic{position:relative;height:auto;width:auto}.fvp-overlay .fvp-loader,.fvp-dynamic .fvp-loader{background:transparent no-repeat scroll center center;position:absolute;left:50%;top:50%;z-index:10}#DOMWindow{background:transparent center center no-repeat;width:auto;height:auto;margin:auto auto;overflow:hidden}.featured-video-plus .wp-video a:not(.post-thumbnail){display:none}.no-js .featured-video-plus .wp-video a:not(.post-thumbnail){display:inline}.featured-video-plus.fvp-responsive.fvp-spotify .fluid-width-video-wrapper{padding-top:100%!important}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .featured-video-plus.fvp-responsive .wp-video {
2
+ width: auto !important;
3
+ height: auto !important;
4
+ }
5
+ .featured-video-plus.fvp-responsive .mejs-container {
6
+ width: 100% !important;
7
+ height: auto !important;
8
+ padding-top: 57%;
9
+ }
10
+ .featured-video-plus.fvp-responsive .mejs-overlay,
11
+ .featured-video-plus.fvp-responsive .mejs-poster {
12
+ width: 100% !important;
13
+ height: 100% !important;
14
+ }
15
+ .featured-video-plus.fvp-responsive .mejs-mediaelement video {
16
+ position: absolute;
17
+ top: 0;
18
+ left: 0;
19
+ right: 0;
20
+ bottom: 0;
21
+ width: 100% !important;
22
+ height: 100% !important;
23
+ }
24
+ .featured-video-plus.fvp-responsive audio {
25
+ width: 100%;
26
+ }
27
+ .featured-video-plus.fvp-center {
28
+ text-align: center;
29
+ }
30
+ .featured-video-plus.fvp-center .wp-video {
31
+ margin: 0 auto;
32
+ }
33
+ .featured-video-plus.fvp-right {
34
+ text-align: right;
35
+ }
36
+ .featured-video-plus.fvp-right .wp-video {
37
+ margin: 0 0 auto auto;
38
+ }
39
+ .featured-video-plus.fvp-left {
40
+ text-align: left;
41
+ }
42
+ .featured-video-plus.fvp-left .wp-video {
43
+ margin: 0 auto auto 0;
44
+ }
45
+ .fvp-overlay,
46
+ .fvp-dynamic {
47
+ position: relative;
48
+ height: auto;
49
+ width: auto;
50
+ }
51
+ .fvp-overlay .fvp-loader,
52
+ .fvp-dynamic .fvp-loader {
53
+ background: transparent no-repeat scroll center center;
54
+ position: absolute;
55
+ left: 50%;
56
+ top: 50%;
57
+ z-index: 10;
58
+ pointer-events: none;
59
+ }
60
+ #DOMWindow {
61
+ background: transparent center center no-repeat;
62
+ width: auto;
63
+ height: auto;
64
+ margin: auto auto;
65
+ overflow: hidden;
66
+ }
67
+ .featured-video-plus .wp-video a:not(.post-thumbnail) {
68
+ display: none;
69
+ }
70
+ .no-js .featured-video-plus .wp-video a:not(.post-thumbnail) {
71
+ display: inline;
72
+ }
73
+ .featured-video-plus.fvp-responsive.fvp-spotify .fluid-width-video-wrapper {
74
+ padding-top: 100% !important;
75
+ }
styles/frontend.less DELETED
@@ -1,96 +0,0 @@
1
- // *****************************************************************************
2
- // Responsive videos.
3
- .featured-video-plus.fvp-responsive {
4
- .wp-video {
5
- width: auto !important;
6
- height: auto !important;
7
- }
8
-
9
- .mejs-container {
10
- width: 100% !important;
11
- height: auto !important;
12
- padding-top: 57%;
13
- }
14
-
15
- .mejs-overlay, .mejs-poster {
16
- width: 100% !important;
17
- height: 100% !important;
18
- }
19
-
20
- .mejs-mediaelement video {
21
- position: absolute;
22
- top: 0;
23
- left: 0;
24
- right: 0;
25
- bottom: 0;
26
- width: 100% !important;
27
- height: 100% !important;
28
- }
29
-
30
- audio {
31
- width: 100%;
32
- }
33
- }
34
-
35
- // *****************************************************************************
36
- // Alignment
37
- .featured-video-plus.fvp-center {
38
- text-align: center;
39
- .wp-video { margin: 0 auto; }
40
- }
41
-
42
- .featured-video-plus.fvp-right {
43
- text-align: right;
44
- .wp-video { margin: 0 0 auto auto; }
45
- }
46
-
47
- .featured-video-plus.fvp-left {
48
- text-align: left;
49
- .wp-video { margin: 0 auto auto 0; }
50
- }
51
-
52
- // *****************************************************************************
53
- // Lazy mode overlay button and DOM Window
54
- .fvp-overlay,
55
- .fvp-dynamic {
56
- position: relative;
57
- height: auto;
58
- width: auto;
59
-
60
- .fvp-loader {
61
- background: transparent no-repeat scroll center center;
62
- position: absolute;
63
- left: 50%;
64
- top: 50%;
65
- z-index: 10;
66
- }
67
- }
68
-
69
- #DOMWindow {
70
- background: transparent center center no-repeat;
71
- width: auto;
72
- height: auto;
73
- margin: auto auto;
74
- overflow: hidden;
75
- }
76
-
77
- // *****************************************************************************
78
- // Hacks
79
-
80
- // Hides the link displayed below local videos as generated using
81
- // wp_mediaelement_fallback
82
- // @see http://codex.wordpress.org/Function_Reference/wp_mediaelement_fallback
83
- // @see https://core.trac.wordpress.org/browser/tags/4.2.2/src/wp-includes/media.php#L1917
84
- .featured-video-plus .wp-video a:not(.post-thumbnail) {
85
- display: none;
86
- }
87
-
88
- .no-js .featured-video-plus .wp-video a:not(.post-thumbnail) {
89
- display: inline;
90
- }
91
-
92
- // Spotify fitvids fix.
93
- // TODO.
94
- .featured-video-plus.fvp-responsive.fvp-spotify .fluid-width-video-wrapper {
95
- padding-top: 100% !important;
96
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
styles/html.css CHANGED
@@ -1 +1,52 @@
1
- body.no-js .fvphtml-tab-title{font-weight:700;display:block}body.js .fvphtml-tab-title{float:left;padding:1px 10px 2px;cursor:pointer;border-style:solid;border-color:#ccc;border-width:0;border-right-width:1px;border-bottom-width:1px}body.js .fvphtml-tab-title:hover{text-decoration:underline}body.js .fvphtml-tab-title.active{cursor:default;font-weight:700;border-bottom-width:0;padding-top:0;border-top-width:1px}body.js .fvphtml-tab-title.active:hover{text-decoration:none}.fvphtml-tab-body{clear:both;padding-top:5px}.fvphtml-label{position:relative;clear:both;display:block}.fvphtml-label .fvphtml-innerlabel{display:block;float:left;width:10em;line-height:27px}.fvphtml-label .fvphtml-reset{position:absolute;top:0;left:9em;z-index:1;line-height:27px}.fvphtml-pointer-input{width:100%}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ body.no-js .fvphtml-tab-title {
2
+ font-weight: bold;
3
+ display: block;
4
+ }
5
+ body.js .fvphtml-tab-title {
6
+ float: left;
7
+ padding: 1px 10px 2px;
8
+ cursor: pointer;
9
+ border-style: solid;
10
+ border-color: #ccc;
11
+ border-width: 0;
12
+ border-right-width: 1px;
13
+ border-bottom-width: 1px;
14
+ }
15
+ body.js .fvphtml-tab-title:hover {
16
+ text-decoration: underline;
17
+ }
18
+ body.js .fvphtml-tab-title.active {
19
+ cursor: default;
20
+ font-weight: bold;
21
+ border-bottom-width: 0;
22
+ padding-top: 0;
23
+ border-top-width: 1px;
24
+ }
25
+ body.js .fvphtml-tab-title.active:hover {
26
+ text-decoration: none;
27
+ }
28
+ .fvphtml-tab-body {
29
+ clear: both;
30
+ padding-top: 5px;
31
+ }
32
+ .fvphtml-label {
33
+ position: relative;
34
+ clear: both;
35
+ display: block;
36
+ }
37
+ .fvphtml-label .fvphtml-innerlabel {
38
+ display: block;
39
+ float: left;
40
+ width: 10em;
41
+ line-height: 27px;
42
+ }
43
+ .fvphtml-label .fvphtml-reset {
44
+ position: absolute;
45
+ top: 0;
46
+ left: 9em;
47
+ z-index: 1;
48
+ line-height: 27px;
49
+ }
50
+ .fvphtml-pointer-input {
51
+ width: 100%;
52
+ }
styles/html.less DELETED
@@ -1,66 +0,0 @@
1
- body.no-js {
2
- .fvphtml-tab-title {
3
- font-weight: bold;
4
- display: block;
5
- }
6
- }
7
-
8
- body.js {
9
- .fvphtml-tab-title {
10
- float: left;
11
- padding: 1px 10px 2px;
12
- cursor: pointer;
13
- border-style: solid;
14
- border-color: #ccc;
15
- border-width: 0;
16
- border-right-width: 1px;
17
- border-bottom-width: 1px;
18
-
19
- &:hover {
20
- text-decoration: underline;
21
- }
22
- }
23
-
24
- .fvphtml-tab-title.active {
25
- font-weight: bold;
26
- cursor: default;
27
- font-weight: bold;
28
- border-bottom-width: 0;
29
- padding-top: 0;
30
- border-top-width: 1px;
31
-
32
- &:hover {
33
- text-decoration: none;
34
- }
35
- }
36
- }
37
-
38
- .fvphtml-tab-body {
39
- clear: both;
40
- padding-top: 5px;
41
- }
42
-
43
- .fvphtml-label {
44
- position: relative;
45
- clear: both;
46
- display: block;
47
-
48
- .fvphtml-innerlabel {
49
- display: block;
50
- float: left;
51
- width: 10em;
52
- line-height: 27px;
53
- }
54
-
55
- .fvphtml-reset {
56
- position: absolute;
57
- top: 0;
58
- left: 9em;
59
- z-index: 1;
60
- line-height: 27px;
61
- }
62
- }
63
-
64
- .fvphtml-pointer-input {
65
- width: 100%;
66
- }