Version Description
- 30 October 2021 =
- Google Maps: Resolved an unexpected content error when previewing in the Block Editor.
- Hero: Migrated Text Shadow setting from a 0-1 to a 0-100 range.
- Sliders: Added a Background video opacity setting for self-hosted and external videos.
- Video Player: Removed Related Videos setting.
Download this release
Release Info
Developer | SiteOrigin |
Plugin | SiteOrigin Widgets Bundle |
Version | 1.25.1 |
Comparing to | |
See all releases |
Code changes from version 1.25.0 to 1.25.1
- base/inc/video.php +2 -20
- base/inc/widgets/base-slider.class.php +29 -2
- js/sow.google-map.js +1 -1
- js/sow.google-map.min.js +1 -1
- lang/so-widgets-bundle.pot +9 -13
- readme.txt +8 -2
- so-widgets-bundle.php +2 -2
- widgets/anything-carousel/assets/banner.svg +1 -1
- widgets/hero/hero.php +27 -4
- widgets/hero/styles/default.less +1 -1
- widgets/video/tpl/default.php +1 -2
- widgets/video/video.php +0 -11
base/inc/video.php
CHANGED
@@ -28,11 +28,11 @@ class SiteOrigin_Video {
|
|
28 |
*
|
29 |
* @param string $src The URL of the video.
|
30 |
* @param bool $autoplay Whether to start playing the video automatically once loaded. ( YouTube only )
|
31 |
-
* @param bool $related_videos
|
32 |
*
|
33 |
* @return false|mixed|null|string|string[]
|
34 |
*/
|
35 |
-
function get_video_oembed( $src, $autoplay = false, $related_videos =
|
36 |
if ( empty( $src ) ) {
|
37 |
return '';
|
38 |
}
|
@@ -69,13 +69,6 @@ class SiteOrigin_Video {
|
|
69 |
), $html );
|
70 |
}
|
71 |
|
72 |
-
if ( empty( $related_videos ) ) {
|
73 |
-
$html = preg_replace_callback( '/src=["\'](http[^"\']*)["\']/', array(
|
74 |
-
$this,
|
75 |
-
'remove_related_videos'
|
76 |
-
), $html );
|
77 |
-
}
|
78 |
-
|
79 |
if ( ! empty( $html ) ) {
|
80 |
set_transient( 'sow-vid-embed[' . $hash . ']', $html, 30 * 86400 );
|
81 |
}
|
@@ -126,15 +119,4 @@ class SiteOrigin_Video {
|
|
126 |
);
|
127 |
return str_replace( $match[1], $new_url, $match[0] );
|
128 |
}
|
129 |
-
|
130 |
-
/**
|
131 |
-
* The preg_replace callback that adds the rel param for YouTube videos.
|
132 |
-
*
|
133 |
-
* @param $match
|
134 |
-
*
|
135 |
-
* @return mixed
|
136 |
-
*/
|
137 |
-
function remove_related_videos( $match ) {
|
138 |
-
return str_replace( $match[1], add_query_arg( 'rel', 0, $match[1] ), $match[0] );
|
139 |
-
}
|
140 |
}
|
28 |
*
|
29 |
* @param string $src The URL of the video.
|
30 |
* @param bool $autoplay Whether to start playing the video automatically once loaded. ( YouTube only )
|
31 |
+
* @param bool $related_videos Deprecated.
|
32 |
*
|
33 |
* @return false|mixed|null|string|string[]
|
34 |
*/
|
35 |
+
function get_video_oembed( $src, $autoplay = false, $related_videos = false, $loop = false ) {
|
36 |
if ( empty( $src ) ) {
|
37 |
return '';
|
38 |
}
|
69 |
), $html );
|
70 |
}
|
71 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
if ( ! empty( $html ) ) {
|
73 |
set_transient( 'sow-vid-embed[' . $hash . ']', $html, 30 * 86400 );
|
74 |
}
|
119 |
);
|
120 |
return str_replace( $match[1], $new_url, $match[0] );
|
121 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
122 |
}
|
base/inc/widgets/base-slider.class.php
CHANGED
@@ -258,6 +258,14 @@ abstract class SiteOrigin_Widget_Base_Slider extends SiteOrigin_Widget {
|
|
258 |
'label' => __( 'Loop slide background videos', 'so-widgets-bundle' ),
|
259 |
'default' => false,
|
260 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
261 |
if ( isset( $form_options['frames']['fields']['background_videos'] ) ) {
|
262 |
// Add setting to SiteOrigin Slider widget.
|
263 |
siteorigin_widgets_array_insert(
|
@@ -265,11 +273,13 @@ abstract class SiteOrigin_Widget_Base_Slider extends SiteOrigin_Widget {
|
|
265 |
'background_image',
|
266 |
array(
|
267 |
'loop_background_videos' => $loop_setting,
|
|
|
268 |
)
|
269 |
);
|
270 |
} elseif ( isset( $form_options['frames']['fields']['background'] ) ) {
|
271 |
// Add setting to all other slider widgets.
|
272 |
$form_options['frames']['fields']['background']['fields']['loop_background_videos'] = $loop_setting;
|
|
|
273 |
}
|
274 |
}
|
275 |
return $form_options;
|
@@ -331,6 +341,10 @@ abstract class SiteOrigin_Widget_Base_Slider extends SiteOrigin_Widget {
|
|
331 |
),
|
332 |
);
|
333 |
|
|
|
|
|
|
|
|
|
334 |
foreach ( $migrate_layout_settings as $setting => $sub_section ) {
|
335 |
if ( is_array( $sub_section ) ) {
|
336 |
foreach ( $sub_section as $responsive_setting ) {
|
@@ -492,6 +506,16 @@ abstract class SiteOrigin_Widget_Base_Slider extends SiteOrigin_Widget {
|
|
492 |
// All other slider widgets.
|
493 |
$controls['loop_background_videos'] = $frame['background']['loop_background_videos'];
|
494 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
495 |
$this->video_code( $background['videos'], $classes, $controls );
|
496 |
}
|
497 |
|
@@ -534,8 +558,9 @@ abstract class SiteOrigin_Widget_Base_Slider extends SiteOrigin_Widget {
|
|
534 |
function video_code( $videos, $classes = array(), $controls = array() ){
|
535 |
if( empty( $videos ) ) return;
|
536 |
$loop = ! empty( $controls['loop_background_videos'] ) && $controls['loop_background_videos'] ? 'loop' : '';
|
|
|
537 |
|
538 |
-
$video_element = '<video class="' . esc_attr( implode( ' ', $classes ) ) . '" autoplay ' . $loop . ' muted playsinline>';
|
539 |
$so_video = new SiteOrigin_Video();
|
540 |
foreach( $videos as $video ) {
|
541 |
if( empty( $video['file'] ) && empty ( $video['url'] ) ) continue;
|
@@ -548,7 +573,9 @@ abstract class SiteOrigin_Widget_Base_Slider extends SiteOrigin_Widget {
|
|
548 |
if( ! $can_oembed ) {
|
549 |
$video_file = sow_esc_url( $video['url'] );
|
550 |
} else {
|
551 |
-
echo
|
|
|
|
|
552 |
continue;
|
553 |
}
|
554 |
}
|
258 |
'label' => __( 'Loop slide background videos', 'so-widgets-bundle' ),
|
259 |
'default' => false,
|
260 |
);
|
261 |
+
$video_opacity = array(
|
262 |
+
'label' => __( 'Background video opacity', 'so-widgets-bundle' ),
|
263 |
+
'type' => 'slider',
|
264 |
+
'min' => 0,
|
265 |
+
'max' => 100,
|
266 |
+
'default' => 100,
|
267 |
+
);
|
268 |
+
|
269 |
if ( isset( $form_options['frames']['fields']['background_videos'] ) ) {
|
270 |
// Add setting to SiteOrigin Slider widget.
|
271 |
siteorigin_widgets_array_insert(
|
273 |
'background_image',
|
274 |
array(
|
275 |
'loop_background_videos' => $loop_setting,
|
276 |
+
'background_video_opacity' => $video_opacity,
|
277 |
)
|
278 |
);
|
279 |
} elseif ( isset( $form_options['frames']['fields']['background'] ) ) {
|
280 |
// Add setting to all other slider widgets.
|
281 |
$form_options['frames']['fields']['background']['fields']['loop_background_videos'] = $loop_setting;
|
282 |
+
$form_options['frames']['fields']['background']['fields']['background_video_opacity'] = $video_opacity;
|
283 |
}
|
284 |
}
|
285 |
return $form_options;
|
341 |
),
|
342 |
);
|
343 |
|
344 |
+
$instance['layout'] = array();
|
345 |
+
$instance['layout']['desktop'] = array();
|
346 |
+
$instance['layout']['mobile'] = array();
|
347 |
+
|
348 |
foreach ( $migrate_layout_settings as $setting => $sub_section ) {
|
349 |
if ( is_array( $sub_section ) ) {
|
350 |
foreach ( $sub_section as $responsive_setting ) {
|
506 |
// All other slider widgets.
|
507 |
$controls['loop_background_videos'] = $frame['background']['loop_background_videos'];
|
508 |
}
|
509 |
+
|
510 |
+
// If loop_background_videos is present, pass it to the video embed as a control.
|
511 |
+
if ( isset( $frame['background_video_opacity'] ) ) {
|
512 |
+
// SiteOrigin Slider Widget.
|
513 |
+
$controls['opacity'] = $frame['background_video_opacity'];
|
514 |
+
} elseif ( isset( $frame['background']['loop_background_videos'] ) ) {
|
515 |
+
// All other slider widgets.
|
516 |
+
$controls['opacity'] = $frame['background']['background_video_opacity'];
|
517 |
+
}
|
518 |
+
|
519 |
$this->video_code( $background['videos'], $classes, $controls );
|
520 |
}
|
521 |
|
558 |
function video_code( $videos, $classes = array(), $controls = array() ){
|
559 |
if( empty( $videos ) ) return;
|
560 |
$loop = ! empty( $controls['loop_background_videos'] ) && $controls['loop_background_videos'] ? 'loop' : '';
|
561 |
+
$opacity = isset( $controls['opacity'] ) ? 'style="opacity: ' . ( $controls['opacity'] / 100 ) . '"' : '';
|
562 |
|
563 |
+
$video_element = '<video class="' . esc_attr( implode( ' ', $classes ) ) . '" autoplay ' . $loop . ' ' . $opacity . ' muted playsinline>';
|
564 |
$so_video = new SiteOrigin_Video();
|
565 |
foreach( $videos as $video ) {
|
566 |
if( empty( $video['file'] ) && empty ( $video['url'] ) ) continue;
|
573 |
if( ! $can_oembed ) {
|
574 |
$video_file = sow_esc_url( $video['url'] );
|
575 |
} else {
|
576 |
+
echo '<div class="sow-slide-video-oembed" ' . $opacity . '>';
|
577 |
+
echo $so_video->get_video_oembed( $video['url'], ! empty( $video['autoplay'] ), false, $loop, $opacity );
|
578 |
+
echo '</div>';
|
579 |
continue;
|
580 |
}
|
581 |
}
|
js/sow.google-map.js
CHANGED
@@ -508,7 +508,7 @@ jQuery(function ($) {
|
|
508 |
if (
|
509 |
$( '#sow-google-maps-js' ).length &&
|
510 |
(
|
511 |
-
forceLoad
|
512 |
(
|
513 |
typeof sowb.googleMapsData.ApiError !== 'undefined' &&
|
514 |
sowb.googleMapsData.ApiError
|
508 |
if (
|
509 |
$( '#sow-google-maps-js' ).length &&
|
510 |
(
|
511 |
+
forceLoad ||
|
512 |
(
|
513 |
typeof sowb.googleMapsData.ApiError !== 'undefined' &&
|
514 |
sowb.googleMapsData.ApiError
|
js/sow.google-map.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
function soGoogleMapInitialize(){new sowb.SiteOriginGoogleMap(jQuery).initMaps()}window.sowb=window.sowb||{},sowb.SiteOriginGoogleMapInstances=[],sowb.SiteOriginGoogleMap=function(o){return{DEFAULT_LOCATIONS:["Addo Elephant National Park, R335, Addo","Cape Town, Western Cape, South Africa","San Francisco Bay Area, CA, United States","New York, NY, United States"],showMap:function(o,e,t){var a=Number(t.zoom);a||(a=14),window.matchMedia("(max-width: "+t.breakpoint+"px)").matches&&(a=t.mobileZoom);var i,s={zoom:a,gestureHandling:t.gestureHandling,disableDefaultUI:t.disableUi,zoomControl:t.zoomControl,panControl:t.panControl,center:e,mapTypeControlOptions:{mapTypeIds:[google.maps.MapTypeId.ROADMAP,google.maps.MapTypeId.SATELLITE,"user_map_style"]}},n=new google.maps.Map(o,s),r={name:t.mapName},l=t.mapStyles;if(l){var g=new google.maps.StyledMapType(l,r);n.mapTypes.set("user_map_style",g),n.setMapTypeId("user_map_style")}(t.markerAtCenter&&(this.centerMarker=new google.maps.Marker({position:e,map:n,draggable:t.markersDraggable,icon:t.markerIcon,title:""}),n.centerMarker=this.centerMarker),t.keepCentered)&&(google.maps.event.addDomListener(n,"idle",(function(){i=n.getCenter()})),google.maps.event.addDomListener(window,"resize",(function(){n.setCenter(i)})));this.linkAutocompleteField(t.autocomplete,t.autocompleteElement,n,t),this.showMarkers(t.markerPositions,n,t),this.showDirections(t.directions,n,t),sowb.SiteOriginGoogleMapInstances.push(n)},linkAutocompleteField:function(e,t,a,i){if(e&&t){var s=function(o){this.inputAddress!==o&&(this.inputAddress=o,this.getLocation(this.inputAddress).done(function(o){a.setZoom(15),a.setCenter(o),this.centerMarker&&(this.centerMarker.setPosition(o),this.centerMarker.setTitle(this.inputAddress))}.bind(this)))}.bind(this),n=o(t);e.addListener("place_changed",function(){var o=e.getPlace();a.setZoom(15),o.geometry&&(a.setCenter(o.geometry.location),this.centerMarker&&this.centerMarker.setPosition(o.geometry.location))}.bind(this)),google.maps.event.addDomListener(t,"keypress",(function(o){"13"===(o.keyCode||o.which)&&o.preventDefault()})),n.on("focusin",function(){if(!this.resultsObserver){var e=document.querySelector(".pac-container");this.resultsObserver=new MutationObserver((function(){var e=o(o(".pac-item").get(0)),t=e.find(".pac-item-query").text(),a=e.find("span").not("[class]").text(),i=t+(a?", "+a:"");i&&s(i)}));this.resultsObserver.observe(e,{attributes:!0,childList:!0,characterData:!0})}}.bind(this));var r=function(o){this.getGeocoder().geocode({location:o},function(e,t){if(t===google.maps.GeocoderStatus.OK&&e.length>0){var a=e[0].formatted_address;n.val(a),this.centerMarker&&(this.centerMarker.setPosition(o),this.centerMarker.setTitle(a))}}.bind(this))}.bind(this);a.addListener("click",(function(o){r(o.latLng)})),this.centerMarker.addListener("dragend",(function(o){r(o.latLng)}))}},showMarkers:function(o,e,t){if(o&&o.length){this.infoWindows=[];for(var a=[],i=0;i<o.length;i++){var s=parseInt(i/10);a.length===s&&(a[s]=[]),a[s][i%10]=o[i]}var n=function(o){var a=o.customMarkerIcon,i=o.hasOwnProperty("info")?o.info:null,s=o.hasOwnProperty("infoMaxWidth")?o.infoMaxWidth:null;return this.getLocation(o.place).done(function(o){var n=t.markerIcon;a&&(n=a);var r=new google.maps.Marker({position:o,map:e,draggable:t.markersDraggable,icon:n,title:""});if(i){var l={content:i};s&&(l.maxWidth=s);var g=t.markerInfoDisplay;l.disableAutoPan="always"===g;var p=new google.maps.InfoWindow(l);this.infoWindows.push(p);var c=g;"always"===g&&(c="click",p.open({map:e,anchor:r,shouldFocus:!1})),r.addListener(c,function(){p.open(e,r),"always"===g||t.markerInfoMultiple||this.infoWindows.forEach((function(o){o!==p&&o.close()}))}.bind(this)),"mouseover"===g&&r.addListener("mouseout",(function(){setTimeout((function(){p.close()}),100)}))}}.bind(this)).fail((function(o){r=o===google.maps.GeocoderStatus.OVER_QUERY_LIMIT,console.log(o)}))}.bind(this),r=!1,l=function(o,e){for(var t=0,a=0;a<o.length&&!r;a++)n(o[a]).then((function(){++t===o.length&&e.length&&l(e.shift(),e)}))}.bind(this);l(a.shift(),a)}},showDirections:function(o,e){if(o){o.waypoints&&o.waypoints.length&&o.waypoints.map((function(o){o.stopover=Boolean(o.stopover)}));var t=new google.maps.DirectionsRenderer;t.setMap(e),(new google.maps.DirectionsService).route({origin:o.origin,destination:o.destination,travelMode:o.travelMode.toUpperCase(),avoidHighways:o.avoidHighways,avoidTolls:o.avoidTolls,waypoints:o.waypoints,optimizeWaypoints:o.optimizeWaypoints},(function(e,a){a===google.maps.DirectionsStatus.OK&&(t.setOptions({preserveViewport:o.preserveViewport}),t.setDirections(e))}))}},initMaps:function(){var e=o(".sow-google-map-autocomplete"),t=new o.Deferred;0===e.length?t.resolve():e.each(function(e,a){if(void 0!==google.maps.places){var i=new google.maps.places.Autocomplete(a),s=o(a).siblings(".sow-google-map-canvas");if(s.length>0){var n=s.data("options");n.autocomplete=i,n.autocompleteElement=a,this.getLocation(n.address).done(function(o){this.showMap(s.get(0),o,n),s.data("initialized",!0),t.resolve()}.bind(this)).fail((function(){s.append("<div><p><strong>"+soWidgetsGoogleMap.geocode.noResults+"</strong></p></div>"),t.reject()}))}}else t.reject('Sorry, we couldn\'t load the "places" library due to another plugin, so the autocomplete feature is not available.')}.bind(this)),t.always(function(){o(".sow-google-map-canvas").each(function(e,t){var a=o(t);if(a.data("initialized"))return!0;var i=a.data("options"),s=i.address;if(!s){var n=i.markerPositions;n&&n.length&&(s=n[0].place)}this.getLocation(s).done(function(o){this.showMap(a.get(0),o,i),a.data("initialized",!0)}.bind(this)).fail((function(){a.append("<div><p><strong>"+soWidgetsGoogleMap.geocode.noResults+"</strong></p></div>")}))}.bind(this))}.bind(this)).fail((function(o){console.log(o)})).done((function(){o(sowb).trigger("maps_loaded")}))},getGeocoder:function(){return this._geocoder||(this._geocoder=new google.maps.Geocoder),this._geocoder},getLocation:function(e){var t,a=new o.Deferred,i={address:e};if(e&&e.indexOf(",")>-1){var s=e.replace(/[\(\)]/g,"").split(",");s&&2===s.length&&(t=new google.maps.LatLng(s[0],s[1]),isNaN(t.lat())||isNaN(t.lng())||(i={location:{lat:t.lat(),lng:t.lng()}}))}if(i.hasOwnProperty("location"))a.resolve(i.location);else if(i.hasOwnProperty("address")){if(!i.address){var n=parseInt(Math.random()*this.DEFAULT_LOCATIONS.length);i.address=this.DEFAULT_LOCATIONS[n]}var r=0,l=function(o,e){e===google.maps.GeocoderStatus.OK?a.resolve(o[0].geometry.location):e===google.maps.GeocoderStatus.OVER_QUERY_LIMIT?++r<3?setTimeout(function(){this.getGeocoder().geocode.call(this,i,l)}.bind(this),1e3):a.reject(e):e!==google.maps.GeocoderStatus.ZERO_RESULTS&&e!==google.maps.GeocoderStatus.OVER_DAILY_LIMIT||a.reject(e)}.bind(this);this.getGeocoder().geocode(i,l)}return a}}},jQuery((function(o){sowb.googleMapsData=[],sowb.googleMapsData.libraries=[],sowb.setupGoogleMaps=function(e,t=!1){var a=o(".sow-google-map-canvas");a.length&&(a.each((function(e,t){var a=o(t);if(a.data("apiInitialized"))return a;var i=a.data("options");i&&(void 0!==i.libraries&&null!==i.libraries&&(sowb.googleMapsData.libraries=sowb.googleMapsData.libraries.concat(i.libraries)),!sowb.googleMapsData.apiKey&&i.apiKey&&(sowb.googleMapsData.apiKey=i.apiKey)),a.data("apiInitialized",!0)})),void 0===window.google&&(window.google={}),(t||void 0===window.google||void 0===window.google.maps)&&(sowb.loadGoogleMapsAPI(t),sowb.googleMapsData.timer=setInterval((function(){var o=!1;sowb.googleMapsData.ApiError=!0,void 0!==sowb.googleMapsData.ApiError&&sowb.googleMapsData.ApiError&&(o=!0),o||void 0===window.google||void 0===window.google.maps||(o=!0,soGoogleMapInitialize()),o&&clearInterval(sowb.googleMapsData.timer)}),250)))},sowb.loadGoogleMapsAPI=function(e=!1){o("#sow-google-maps-js").length&&e
|
1 |
+
function soGoogleMapInitialize(){new sowb.SiteOriginGoogleMap(jQuery).initMaps()}window.sowb=window.sowb||{},sowb.SiteOriginGoogleMapInstances=[],sowb.SiteOriginGoogleMap=function(o){return{DEFAULT_LOCATIONS:["Addo Elephant National Park, R335, Addo","Cape Town, Western Cape, South Africa","San Francisco Bay Area, CA, United States","New York, NY, United States"],showMap:function(o,e,t){var a=Number(t.zoom);a||(a=14),window.matchMedia("(max-width: "+t.breakpoint+"px)").matches&&(a=t.mobileZoom);var i,s={zoom:a,gestureHandling:t.gestureHandling,disableDefaultUI:t.disableUi,zoomControl:t.zoomControl,panControl:t.panControl,center:e,mapTypeControlOptions:{mapTypeIds:[google.maps.MapTypeId.ROADMAP,google.maps.MapTypeId.SATELLITE,"user_map_style"]}},n=new google.maps.Map(o,s),r={name:t.mapName},l=t.mapStyles;if(l){var g=new google.maps.StyledMapType(l,r);n.mapTypes.set("user_map_style",g),n.setMapTypeId("user_map_style")}(t.markerAtCenter&&(this.centerMarker=new google.maps.Marker({position:e,map:n,draggable:t.markersDraggable,icon:t.markerIcon,title:""}),n.centerMarker=this.centerMarker),t.keepCentered)&&(google.maps.event.addDomListener(n,"idle",(function(){i=n.getCenter()})),google.maps.event.addDomListener(window,"resize",(function(){n.setCenter(i)})));this.linkAutocompleteField(t.autocomplete,t.autocompleteElement,n,t),this.showMarkers(t.markerPositions,n,t),this.showDirections(t.directions,n,t),sowb.SiteOriginGoogleMapInstances.push(n)},linkAutocompleteField:function(e,t,a,i){if(e&&t){var s=function(o){this.inputAddress!==o&&(this.inputAddress=o,this.getLocation(this.inputAddress).done(function(o){a.setZoom(15),a.setCenter(o),this.centerMarker&&(this.centerMarker.setPosition(o),this.centerMarker.setTitle(this.inputAddress))}.bind(this)))}.bind(this),n=o(t);e.addListener("place_changed",function(){var o=e.getPlace();a.setZoom(15),o.geometry&&(a.setCenter(o.geometry.location),this.centerMarker&&this.centerMarker.setPosition(o.geometry.location))}.bind(this)),google.maps.event.addDomListener(t,"keypress",(function(o){"13"===(o.keyCode||o.which)&&o.preventDefault()})),n.on("focusin",function(){if(!this.resultsObserver){var e=document.querySelector(".pac-container");this.resultsObserver=new MutationObserver((function(){var e=o(o(".pac-item").get(0)),t=e.find(".pac-item-query").text(),a=e.find("span").not("[class]").text(),i=t+(a?", "+a:"");i&&s(i)}));this.resultsObserver.observe(e,{attributes:!0,childList:!0,characterData:!0})}}.bind(this));var r=function(o){this.getGeocoder().geocode({location:o},function(e,t){if(t===google.maps.GeocoderStatus.OK&&e.length>0){var a=e[0].formatted_address;n.val(a),this.centerMarker&&(this.centerMarker.setPosition(o),this.centerMarker.setTitle(a))}}.bind(this))}.bind(this);a.addListener("click",(function(o){r(o.latLng)})),this.centerMarker.addListener("dragend",(function(o){r(o.latLng)}))}},showMarkers:function(o,e,t){if(o&&o.length){this.infoWindows=[];for(var a=[],i=0;i<o.length;i++){var s=parseInt(i/10);a.length===s&&(a[s]=[]),a[s][i%10]=o[i]}var n=function(o){var a=o.customMarkerIcon,i=o.hasOwnProperty("info")?o.info:null,s=o.hasOwnProperty("infoMaxWidth")?o.infoMaxWidth:null;return this.getLocation(o.place).done(function(o){var n=t.markerIcon;a&&(n=a);var r=new google.maps.Marker({position:o,map:e,draggable:t.markersDraggable,icon:n,title:""});if(i){var l={content:i};s&&(l.maxWidth=s);var g=t.markerInfoDisplay;l.disableAutoPan="always"===g;var p=new google.maps.InfoWindow(l);this.infoWindows.push(p);var c=g;"always"===g&&(c="click",p.open({map:e,anchor:r,shouldFocus:!1})),r.addListener(c,function(){p.open(e,r),"always"===g||t.markerInfoMultiple||this.infoWindows.forEach((function(o){o!==p&&o.close()}))}.bind(this)),"mouseover"===g&&r.addListener("mouseout",(function(){setTimeout((function(){p.close()}),100)}))}}.bind(this)).fail((function(o){r=o===google.maps.GeocoderStatus.OVER_QUERY_LIMIT,console.log(o)}))}.bind(this),r=!1,l=function(o,e){for(var t=0,a=0;a<o.length&&!r;a++)n(o[a]).then((function(){++t===o.length&&e.length&&l(e.shift(),e)}))}.bind(this);l(a.shift(),a)}},showDirections:function(o,e){if(o){o.waypoints&&o.waypoints.length&&o.waypoints.map((function(o){o.stopover=Boolean(o.stopover)}));var t=new google.maps.DirectionsRenderer;t.setMap(e),(new google.maps.DirectionsService).route({origin:o.origin,destination:o.destination,travelMode:o.travelMode.toUpperCase(),avoidHighways:o.avoidHighways,avoidTolls:o.avoidTolls,waypoints:o.waypoints,optimizeWaypoints:o.optimizeWaypoints},(function(e,a){a===google.maps.DirectionsStatus.OK&&(t.setOptions({preserveViewport:o.preserveViewport}),t.setDirections(e))}))}},initMaps:function(){var e=o(".sow-google-map-autocomplete"),t=new o.Deferred;0===e.length?t.resolve():e.each(function(e,a){if(void 0!==google.maps.places){var i=new google.maps.places.Autocomplete(a),s=o(a).siblings(".sow-google-map-canvas");if(s.length>0){var n=s.data("options");n.autocomplete=i,n.autocompleteElement=a,this.getLocation(n.address).done(function(o){this.showMap(s.get(0),o,n),s.data("initialized",!0),t.resolve()}.bind(this)).fail((function(){s.append("<div><p><strong>"+soWidgetsGoogleMap.geocode.noResults+"</strong></p></div>"),t.reject()}))}}else t.reject('Sorry, we couldn\'t load the "places" library due to another plugin, so the autocomplete feature is not available.')}.bind(this)),t.always(function(){o(".sow-google-map-canvas").each(function(e,t){var a=o(t);if(a.data("initialized"))return!0;var i=a.data("options"),s=i.address;if(!s){var n=i.markerPositions;n&&n.length&&(s=n[0].place)}this.getLocation(s).done(function(o){this.showMap(a.get(0),o,i),a.data("initialized",!0)}.bind(this)).fail((function(){a.append("<div><p><strong>"+soWidgetsGoogleMap.geocode.noResults+"</strong></p></div>")}))}.bind(this))}.bind(this)).fail((function(o){console.log(o)})).done((function(){o(sowb).trigger("maps_loaded")}))},getGeocoder:function(){return this._geocoder||(this._geocoder=new google.maps.Geocoder),this._geocoder},getLocation:function(e){var t,a=new o.Deferred,i={address:e};if(e&&e.indexOf(",")>-1){var s=e.replace(/[\(\)]/g,"").split(",");s&&2===s.length&&(t=new google.maps.LatLng(s[0],s[1]),isNaN(t.lat())||isNaN(t.lng())||(i={location:{lat:t.lat(),lng:t.lng()}}))}if(i.hasOwnProperty("location"))a.resolve(i.location);else if(i.hasOwnProperty("address")){if(!i.address){var n=parseInt(Math.random()*this.DEFAULT_LOCATIONS.length);i.address=this.DEFAULT_LOCATIONS[n]}var r=0,l=function(o,e){e===google.maps.GeocoderStatus.OK?a.resolve(o[0].geometry.location):e===google.maps.GeocoderStatus.OVER_QUERY_LIMIT?++r<3?setTimeout(function(){this.getGeocoder().geocode.call(this,i,l)}.bind(this),1e3):a.reject(e):e!==google.maps.GeocoderStatus.ZERO_RESULTS&&e!==google.maps.GeocoderStatus.OVER_DAILY_LIMIT||a.reject(e)}.bind(this);this.getGeocoder().geocode(i,l)}return a}}},jQuery((function(o){sowb.googleMapsData=[],sowb.googleMapsData.libraries=[],sowb.setupGoogleMaps=function(e,t=!1){var a=o(".sow-google-map-canvas");a.length&&(a.each((function(e,t){var a=o(t);if(a.data("apiInitialized"))return a;var i=a.data("options");i&&(void 0!==i.libraries&&null!==i.libraries&&(sowb.googleMapsData.libraries=sowb.googleMapsData.libraries.concat(i.libraries)),!sowb.googleMapsData.apiKey&&i.apiKey&&(sowb.googleMapsData.apiKey=i.apiKey)),a.data("apiInitialized",!0)})),void 0===window.google&&(window.google={}),(t||void 0===window.google||void 0===window.google.maps)&&(sowb.loadGoogleMapsAPI(t),sowb.googleMapsData.timer=setInterval((function(){var o=!1;sowb.googleMapsData.ApiError=!0,void 0!==sowb.googleMapsData.ApiError&&sowb.googleMapsData.ApiError&&(o=!0),o||void 0===window.google||void 0===window.google.maps||(o=!0,soGoogleMapInitialize()),o&&clearInterval(sowb.googleMapsData.timer)}),250)))},sowb.loadGoogleMapsAPI=function(e=!1){o("#sow-google-maps-js").length&&(e||void 0!==sowb.googleMapsData.ApiError&&sowb.googleMapsData.ApiError)&&o("#sow-google-maps-js").remove(),sowb.googleMapsData.apiKey||console.warn("SiteOrigin Google Maps: Could not find API key. Google Maps API key is required.");var t="https://maps.googleapis.com/maps/api/js?key="+sowb.googleMapsData.apiKey+"&callback=soGoogleMapInitialize";if(sowb.googleMapsData.libraries&&sowb.googleMapsData.libraries.length&&(t+="&libraries="+sowb.googleMapsData.libraries.join(",")),window.console&&window.console.error){var a=window.console.error;sowb.googleMapsData.ApiError=!1,sowb.onLoadMapsApiError=function(e){var t;"string"==typeof e&&(t=e.match(/^Google Maps API (error|warning): ([^\s]*)\s([^\s]*)(?:\s(.*))?/)),t&&t.length&&t[0]&&(o(".sow-google-map-canvas").each((function(e,t){var a=o(t);if(a.data("fallbackImage")){var i=a.data("fallbackImage");i.hasOwnProperty("img")&&a.append(i.img)}})),sowb.googleMapsData.ApiError=!0),a.apply(window.console,arguments)},window.console.error=sowb.onLoadMapsApiError}soWidgetsGoogleMap.map_consent?(e&&o(".sow-google-map-consent button").off("click"),o(".sow-google-map-consent button").on("click",(function(){o(".sow-google-map-consent").remove(),o(".sow-google-map-canvas").show(),o("body").append('<script async type="text/javascript" id="sow-google-maps-js" src="'+t+'">'),sowb.mapsApiInitialized=!0}))):(o("body").append('<script async type="text/javascript" id="sow-google-maps-js" src="'+t+'">'),sowb.mapsApiInitialized=!0)},sowb.setupGoogleMaps(),o(sowb).on("setup_widgets",sowb.setupGoogleMaps)}));
|
lang/so-widgets-bundle.pot
CHANGED
@@ -2056,11 +2056,11 @@ msgstr ""
|
|
2056 |
msgid "Text shadow intensity"
|
2057 |
msgstr ""
|
2058 |
|
2059 |
-
#: widgets/hero/hero.php:
|
2060 |
msgid "Link color"
|
2061 |
msgstr ""
|
2062 |
|
2063 |
-
#: widgets/hero/hero.php:
|
2064 |
msgid "Link hover color"
|
2065 |
msgstr ""
|
2066 |
|
@@ -2788,14 +2788,6 @@ msgstr ""
|
|
2788 |
msgid "Always use the embedded video rather than the MediaElement player."
|
2789 |
msgstr ""
|
2790 |
|
2791 |
-
#: widgets/video/video.php:127
|
2792 |
-
msgid "Show related videos."
|
2793 |
-
msgstr ""
|
2794 |
-
|
2795 |
-
#: widgets/video/video.php:128
|
2796 |
-
msgid "If the external host supports it."
|
2797 |
-
msgstr ""
|
2798 |
-
|
2799 |
#: base/inc/fields/autocomplete.class.php:46
|
2800 |
msgid "Search"
|
2801 |
msgstr ""
|
@@ -3313,15 +3305,19 @@ msgstr ""
|
|
3313 |
msgid "Loop slide background videos"
|
3314 |
msgstr ""
|
3315 |
|
3316 |
-
#: base/inc/widgets/base-slider.class.php:
|
|
|
|
|
|
|
|
|
3317 |
msgid "display slide %s"
|
3318 |
msgstr ""
|
3319 |
|
3320 |
-
#: base/inc/widgets/base-slider.class.php:
|
3321 |
msgid "next slide"
|
3322 |
msgstr ""
|
3323 |
|
3324 |
-
#: base/inc/widgets/base-slider.class.php:
|
3325 |
msgid "previous slide"
|
3326 |
msgstr ""
|
3327 |
|
2056 |
msgid "Text shadow intensity"
|
2057 |
msgstr ""
|
2058 |
|
2059 |
+
#: widgets/hero/hero.php:334
|
2060 |
msgid "Link color"
|
2061 |
msgstr ""
|
2062 |
|
2063 |
+
#: widgets/hero/hero.php:339
|
2064 |
msgid "Link hover color"
|
2065 |
msgstr ""
|
2066 |
|
2788 |
msgid "Always use the embedded video rather than the MediaElement player."
|
2789 |
msgstr ""
|
2790 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2791 |
#: base/inc/fields/autocomplete.class.php:46
|
2792 |
msgid "Search"
|
2793 |
msgstr ""
|
3305 |
msgid "Loop slide background videos"
|
3306 |
msgstr ""
|
3307 |
|
3308 |
+
#: base/inc/widgets/base-slider.class.php:262
|
3309 |
+
msgid "Background video opacity"
|
3310 |
+
msgstr ""
|
3311 |
+
|
3312 |
+
#: base/inc/widgets/base-slider.class.php:401
|
3313 |
msgid "display slide %s"
|
3314 |
msgstr ""
|
3315 |
|
3316 |
+
#: base/inc/widgets/base-slider.class.php:406
|
3317 |
msgid "next slide"
|
3318 |
msgstr ""
|
3319 |
|
3320 |
+
#: base/inc/widgets/base-slider.class.php:412
|
3321 |
msgid "previous slide"
|
3322 |
msgstr ""
|
3323 |
|
readme.txt
CHANGED
@@ -3,8 +3,8 @@ Tags: widget, button, slider, hero, google maps, image, carousel, features, icon
|
|
3 |
Requires at least: 4.2
|
4 |
Tested up to: 5.8
|
5 |
Requires PHP: 5.6.20
|
6 |
-
Stable tag: 1.25.
|
7 |
-
Build time: 2021-10-
|
8 |
License: GPLv3 or later
|
9 |
Contributors: gpriday, braam-genis, alexgso
|
10 |
Donate link: https://siteorigin.com/downloads/premium/
|
@@ -100,6 +100,12 @@ The Widgets Bundle global interface is available at Plugins > SiteOrigin Widgets
|
|
100 |
|
101 |
== Changelog ==
|
102 |
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
= 1.25.0 - 21 October 2021 =
|
104 |
* Features: Added a `Link feature column to more URL` setting.
|
105 |
* Hero and Layout Slider: Moved Layout settings to dedicated section.
|
3 |
Requires at least: 4.2
|
4 |
Tested up to: 5.8
|
5 |
Requires PHP: 5.6.20
|
6 |
+
Stable tag: 1.25.1
|
7 |
+
Build time: 2021-10-30T11:24:37+02:00
|
8 |
License: GPLv3 or later
|
9 |
Contributors: gpriday, braam-genis, alexgso
|
10 |
Donate link: https://siteorigin.com/downloads/premium/
|
100 |
|
101 |
== Changelog ==
|
102 |
|
103 |
+
= 1.25.1 - 30 October 2021 =
|
104 |
+
* Google Maps: Resolved an unexpected content error when previewing in the Block Editor.
|
105 |
+
* Hero: Migrated Text Shadow setting from a 0-1 to a 0-100 range.
|
106 |
+
* Sliders: Added a Background video opacity setting for self-hosted and external videos.
|
107 |
+
* Video Player: Removed Related Videos setting.
|
108 |
+
|
109 |
= 1.25.0 - 21 October 2021 =
|
110 |
* Features: Added a `Link feature column to more URL` setting.
|
111 |
* Hero and Layout Slider: Moved Layout settings to dedicated section.
|
so-widgets-bundle.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/*
|
3 |
Plugin Name: SiteOrigin Widgets Bundle
|
4 |
Description: A highly customizable collection of widgets, ready to be used anywhere, neatly bundled into a single plugin.
|
5 |
-
Version: 1.25.
|
6 |
Text Domain: so-widgets-bundle
|
7 |
Domain Path: /lang
|
8 |
Author: SiteOrigin
|
@@ -12,7 +12,7 @@ License: GPL3
|
|
12 |
License URI: https://www.gnu.org/licenses/gpl-3.0.txt
|
13 |
*/
|
14 |
|
15 |
-
define('SOW_BUNDLE_VERSION', '1.25.
|
16 |
define('SOW_BUNDLE_BASE_FILE', __FILE__);
|
17 |
|
18 |
// Allow JS suffix to be pre-set
|
2 |
/*
|
3 |
Plugin Name: SiteOrigin Widgets Bundle
|
4 |
Description: A highly customizable collection of widgets, ready to be used anywhere, neatly bundled into a single plugin.
|
5 |
+
Version: 1.25.1
|
6 |
Text Domain: so-widgets-bundle
|
7 |
Domain Path: /lang
|
8 |
Author: SiteOrigin
|
12 |
License URI: https://www.gnu.org/licenses/gpl-3.0.txt
|
13 |
*/
|
14 |
|
15 |
+
define('SOW_BUNDLE_VERSION', '1.25.1');
|
16 |
define('SOW_BUNDLE_BASE_FILE', __FILE__);
|
17 |
|
18 |
// Allow JS suffix to be pre-set
|
widgets/anything-carousel/assets/banner.svg
CHANGED
@@ -1 +1 @@
|
|
1 |
-
<svg enable-background="new 0 0 120 120" viewBox="0 0 120 120" xmlns="http://www.w3.org/2000/svg"><path d="m0 0h120v120h-120z" fill="#1880b6"/><g stroke="#324249" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="
|
1 |
+
<svg enable-background="new 0 0 120 120" viewBox="0 0 120 120" xmlns="http://www.w3.org/2000/svg"><path d="m0 0h120v120h-120z" fill="#1880b6"/><g stroke="#324249" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"><path d="m29 40.5h62v39h-62z" fill="#86d7f2"/><path d="m40.5 33.6h39v52.8h-39z" fill="#f0eed5"/><path d="m40.5 33.6h39v27.6h-39z" fill="#86d7f2"/><path d="m62.5 46-15.1 15.1h32.1v-4.6l-10.5-10.5c-1.8-1.7-4.8-1.7-6.5 0z" fill="#f0eed5"/><circle cx="50.8" cy="43.9" fill="#f0eed5" r="3.4"/><path d="m47.4 70.3h25.3" fill="none"/><path d="m47.4 77.2h20.6" fill="none"/></g></svg>
|
widgets/hero/hero.php
CHANGED
@@ -324,10 +324,9 @@ class SiteOrigin_Widget_Hero_Widget extends SiteOrigin_Widget_Base_Slider {
|
|
324 |
'text_shadow' => array(
|
325 |
'type' => 'slider',
|
326 |
'label' => __( 'Text shadow intensity', 'so-widgets-bundle' ),
|
327 |
-
'max' =>
|
328 |
'min' => 0,
|
329 |
-
'
|
330 |
-
'default' => 0.25,
|
331 |
),
|
332 |
|
333 |
'link_color' => array(
|
@@ -426,6 +425,30 @@ class SiteOrigin_Widget_Hero_Widget extends SiteOrigin_Widget_Base_Slider {
|
|
426 |
return apply_filters( 'siteorigin_hero_frame_content', $content, $frame );
|
427 |
}
|
428 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
429 |
/**
|
430 |
* The less variables to control the design of the slider
|
431 |
*
|
@@ -483,7 +506,7 @@ class SiteOrigin_Widget_Hero_Widget extends SiteOrigin_Widget_Base_Slider {
|
|
483 |
|
484 |
$less['heading_shadow'] = (int) $instance['design']['heading_shadow'];
|
485 |
$less['heading_color'] = $instance['design']['heading_color'];
|
486 |
-
$less['text_shadow'] = isset( $instance['design']['text_shadow'] ) ? (float) $instance['design']['text_shadow'] :
|
487 |
$less['text_color'] = $instance['design']['text_color'];
|
488 |
|
489 |
|
324 |
'text_shadow' => array(
|
325 |
'type' => 'slider',
|
326 |
'label' => __( 'Text shadow intensity', 'so-widgets-bundle' ),
|
327 |
+
'max' => 100,
|
328 |
'min' => 0,
|
329 |
+
'default' => 25,
|
|
|
330 |
),
|
331 |
|
332 |
'link_color' => array(
|
425 |
return apply_filters( 'siteorigin_hero_frame_content', $content, $frame );
|
426 |
}
|
427 |
|
428 |
+
/**
|
429 |
+
* Migrate Slider settings.
|
430 |
+
*
|
431 |
+
* @param $instance
|
432 |
+
*
|
433 |
+
* @return mixed
|
434 |
+
*/
|
435 |
+
function modify_instance( $instance ) {
|
436 |
+
if ( empty( $instance ) ) {
|
437 |
+
return array();
|
438 |
+
}
|
439 |
+
|
440 |
+
// Migrate Text shadow intensity setting to the 0 - 100 range.
|
441 |
+
if (
|
442 |
+
! empty( $instance['design'] ) &&
|
443 |
+
! empty( $instance['design']['text_shadow'] ) &&
|
444 |
+
(int) $instance['design']['text_shadow'] != $instance['design']['text_shadow']
|
445 |
+
) {
|
446 |
+
$instance['design']['text_shadow'] *= 100;
|
447 |
+
}
|
448 |
+
|
449 |
+
return parent::modify_instance( $instance );
|
450 |
+
}
|
451 |
+
|
452 |
/**
|
453 |
* The less variables to control the design of the slider
|
454 |
*
|
506 |
|
507 |
$less['heading_shadow'] = (int) $instance['design']['heading_shadow'];
|
508 |
$less['heading_color'] = $instance['design']['heading_color'];
|
509 |
+
$less['text_shadow'] = isset( $instance['design']['text_shadow'] ) ? (float) $instance['design']['text_shadow'] : 25;
|
510 |
$less['text_color'] = $instance['design']['text_color'];
|
511 |
|
512 |
|
widgets/hero/styles/default.less
CHANGED
@@ -130,7 +130,7 @@
|
|
130 |
p {
|
131 |
color: @text_color;
|
132 |
& when not ( @text_shadow = 0 ) {
|
133 |
-
text-shadow: 0 2px 2px rgba( 0, 0, 0, @text_shadow );
|
134 |
}
|
135 |
margin: 1em 0;
|
136 |
font-size: @text_size;
|
130 |
p {
|
131 |
color: @text_color;
|
132 |
& when not ( @text_shadow = 0 ) {
|
133 |
+
text-shadow: 0 2px 2px rgba( 0, 0, 0, @text_shadow / 100 );
|
134 |
}
|
135 |
margin: 1em 0;
|
136 |
font-size: @text_size;
|
widgets/video/tpl/default.php
CHANGED
@@ -4,7 +4,6 @@
|
|
4 |
* @var $args
|
5 |
* @var $player_id
|
6 |
* @var $autoplay
|
7 |
-
* @var $related_videos
|
8 |
* @var $skin_class
|
9 |
* @var $is_skinnable_video_host
|
10 |
* @var $sources
|
@@ -61,7 +60,7 @@ do_action( 'siteorigin_widgets_sow-video_before_video', $instance );
|
|
61 |
<?php endforeach; ?>
|
62 |
</video>
|
63 |
<?php else : ?>
|
64 |
-
<?php echo $so_video->get_video_oembed( $src, $autoplay,
|
65 |
<?php endif; ?>
|
66 |
</div>
|
67 |
<?php do_action( 'siteorigin_widgets_sow-video_after_video', $instance ); ?>
|
4 |
* @var $args
|
5 |
* @var $player_id
|
6 |
* @var $autoplay
|
|
|
7 |
* @var $skin_class
|
8 |
* @var $is_skinnable_video_host
|
9 |
* @var $sources
|
60 |
<?php endforeach; ?>
|
61 |
</video>
|
62 |
<?php else : ?>
|
63 |
+
<?php echo $so_video->get_video_oembed( $src, $autoplay, false, $loop ); ?>
|
64 |
<?php endif; ?>
|
65 |
</div>
|
66 |
<?php do_action( 'siteorigin_widgets_sow-video_after_video', $instance ); ?>
|
widgets/video/video.php
CHANGED
@@ -121,16 +121,6 @@ class SiteOrigin_Widget_Video_Widget extends SiteOrigin_Widget {
|
|
121 |
'video_type[self]' => array( 'hide' ),
|
122 |
)
|
123 |
),
|
124 |
-
'related_videos' => array(
|
125 |
-
'type' => 'checkbox',
|
126 |
-
'default' => true,
|
127 |
-
'label' => __( 'Show related videos.', 'so-widgets-bundle' ),
|
128 |
-
'description' => __( 'If the external host supports it.', 'so-widgets-bundle' ),
|
129 |
-
'state_handler' => array(
|
130 |
-
'video_type[external]' => array( 'show' ),
|
131 |
-
'video_type[self]' => array( 'hide' ),
|
132 |
-
)
|
133 |
-
),
|
134 |
),
|
135 |
),
|
136 |
);
|
@@ -235,7 +225,6 @@ class SiteOrigin_Widget_Video_Widget extends SiteOrigin_Widget {
|
|
235 |
'poster' => $poster,
|
236 |
'autoplay' => ! empty( $instance['playback']['autoplay'] ),
|
237 |
'loop' => ! empty( $instance['playback']['loop'] ),
|
238 |
-
'related_videos' => ! empty( $instance['playback']['related_videos'] ),
|
239 |
'skin_class' => 'default',
|
240 |
'fitvids' => ! empty( $instance['playback']['fitvids'] ),
|
241 |
);
|
121 |
'video_type[self]' => array( 'hide' ),
|
122 |
)
|
123 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
),
|
125 |
),
|
126 |
);
|
225 |
'poster' => $poster,
|
226 |
'autoplay' => ! empty( $instance['playback']['autoplay'] ),
|
227 |
'loop' => ! empty( $instance['playback']['loop'] ),
|
|
|
228 |
'skin_class' => 'default',
|
229 |
'fitvids' => ! empty( $instance['playback']['fitvids'] ),
|
230 |
);
|