Version Description
- 21 August 2017 =
- Use WordPress functions to exit AJAX actions.
- TinyMCE field: Initialized once.
- TinyMCE field: Simplified switching between TinyMCE and QuickTags.
- TinyMCE field: Check if individual TinyMCE settings are encoded as JSON and decode before re-encoding all settings.
- Some compat fixes for Elementor.
- TinyMCE field: Temporarily disable Jetpack Grunion editor.
- Use correct JS dependencies for Beaver Builder compatibility when
WP_DEBUG
not defined. - Removed unnecessary enqueues in Beaver Builder compat for dashicons and wp media scripts.
- Post carousel: Only handle horizontal swipes.
Download this release
Release Info
Developer | gpriday |
Plugin | SiteOrigin Widgets Bundle |
Version | 1.9.8 |
Comparing to | |
See all releases |
Code changes from version 1.9.7 to 1.9.8
- base/inc/actions.php +41 -34
- base/inc/fields/js/tinymce-field-pre48.js +1 -1
- base/inc/fields/js/tinymce-field-pre48.min.js +1 -1
- base/inc/fields/js/tinymce-field.js +12 -16
- base/inc/fields/js/tinymce-field.min.js +1 -1
- base/inc/fields/tinymce.class.php +14 -1
- base/js/admin.js +2 -2
- base/js/admin.min.js +1 -1
- compat/beaver-builder/beaver-builder.php +3 -5
- compat/beaver-builder/sowb-beaver-builder.js +6 -0
- compat/beaver-builder/sowb-beaver-builder.min.js +1 -1
- compat/elementor/elementor.php +8 -8
- lang/so-widgets-bundle.pot +33 -21
- readme.txt +13 -2
- so-widgets-bundle.php +56 -28
- widgets/contact/contact.php +6 -2
- widgets/contact/tpl/default.php +1 -1
- widgets/image-grid/js/image-grid.js +2 -2
- widgets/post-carousel/js/carousel.js +157 -151
- widgets/post-carousel/js/carousel.min.js +1 -1
base/inc/actions.php
CHANGED
@@ -4,14 +4,21 @@
|
|
4 |
* Action for displaying the widget preview.
|
5 |
*/
|
6 |
function siteorigin_widget_preview_widget_action() {
|
7 |
-
if( empty( $
|
8 |
-
|
|
|
|
|
|
|
|
|
|
|
9 |
|
10 |
// Get the widget from the widget factory
|
11 |
global $wp_widget_factory;
|
12 |
$widget = ! empty( $wp_widget_factory->widgets[ $_POST['class'] ] ) ? $wp_widget_factory->widgets[ $_POST['class'] ] : false;
|
13 |
|
14 |
-
if( !is_a($widget, 'SiteOrigin_Widget') )
|
|
|
|
|
15 |
|
16 |
$instance = json_decode( stripslashes_deep($_POST['data']), true);
|
17 |
/* @var $widget SiteOrigin_Widget */
|
@@ -54,7 +61,7 @@ function siteorigin_widget_preview_widget_action() {
|
|
54 |
</html>
|
55 |
|
56 |
<?php
|
57 |
-
|
58 |
}
|
59 |
add_action('wp_ajax_so_widgets_preview', 'siteorigin_widget_preview_widget_action');
|
60 |
|
@@ -62,7 +69,9 @@ add_action('wp_ajax_so_widgets_preview', 'siteorigin_widget_preview_widget_actio
|
|
62 |
* Action to handle searching posts
|
63 |
*/
|
64 |
function siteorigin_widget_action_search_posts() {
|
65 |
-
if ( empty( $_REQUEST['_widgets_nonce'] ) || !wp_verify_nonce( $_REQUEST['_widgets_nonce'], 'widgets_action' ) )
|
|
|
|
|
66 |
|
67 |
// Get all public post types, besides attachments
|
68 |
$post_types = (array) get_post_types( array(
|
@@ -95,10 +104,8 @@ function siteorigin_widget_action_search_posts() {
|
|
95 |
ORDER BY post_modified DESC
|
96 |
LIMIT 20
|
97 |
", ARRAY_A );
|
98 |
-
|
99 |
-
|
100 |
-
echo json_encode( apply_filters( 'siteorigin_widgets_search_posts_results', $results ) );
|
101 |
-
exit();
|
102 |
}
|
103 |
add_action('wp_ajax_so_widgets_search_posts', 'siteorigin_widget_action_search_posts');
|
104 |
|
@@ -106,9 +113,12 @@ add_action('wp_ajax_so_widgets_search_posts', 'siteorigin_widget_action_search_p
|
|
106 |
* Action to handle searching taxonomy terms.
|
107 |
*/
|
108 |
function siteorigin_widget_action_search_terms() {
|
109 |
-
if ( empty( $_REQUEST['_widgets_nonce'] ) || !wp_verify_nonce( $_REQUEST['_widgets_nonce'], 'widgets_action' ) )
|
|
|
|
|
|
|
110 |
global $wpdb;
|
111 |
-
$term = !empty($_GET['term']) ? stripslashes($_GET['term']) : '';
|
112 |
$term = trim($term, '%');
|
113 |
|
114 |
$query = $wpdb->prepare("
|
@@ -118,7 +128,7 @@ function siteorigin_widget_action_search_terms() {
|
|
118 |
WHERE
|
119 |
terms.name LIKE '%s'
|
120 |
LIMIT 20
|
121 |
-
", '%'
|
122 |
|
123 |
$results = array();
|
124 |
|
@@ -130,9 +140,7 @@ function siteorigin_widget_action_search_terms() {
|
|
130 |
);
|
131 |
}
|
132 |
|
133 |
-
|
134 |
-
echo json_encode( $results );
|
135 |
-
exit();
|
136 |
}
|
137 |
add_action('wp_ajax_so_widgets_search_terms', 'siteorigin_widget_action_search_terms');
|
138 |
|
@@ -141,15 +149,13 @@ add_action('wp_ajax_so_widgets_search_terms', 'siteorigin_widget_action_search_t
|
|
141 |
*/
|
142 |
function siteorigin_widget_get_posts_count_action() {
|
143 |
|
144 |
-
if ( empty( $_REQUEST['_widgets_nonce'] ) || !wp_verify_nonce( $_REQUEST['_widgets_nonce'], 'widgets_action' ) )
|
|
|
|
|
145 |
|
146 |
$query = stripslashes( $_POST['query'] );
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
echo json_encode( array( 'posts_count' => siteorigin_widget_post_selector_count_posts( $query ) ) );
|
151 |
-
|
152 |
-
exit();
|
153 |
}
|
154 |
|
155 |
add_action( 'wp_ajax_sow_get_posts_count', 'siteorigin_widget_get_posts_count_action' );
|
@@ -157,11 +163,11 @@ add_action( 'wp_ajax_sow_get_posts_count', 'siteorigin_widget_get_posts_count_ac
|
|
157 |
|
158 |
function siteorigin_widget_remote_image_search(){
|
159 |
if( empty( $_GET[ '_sononce' ] ) || ! wp_verify_nonce( $_GET[ '_sononce' ], 'so-image' ) ) {
|
160 |
-
|
161 |
}
|
162 |
|
163 |
if( empty( $_GET['q'] ) ) {
|
164 |
-
|
165 |
}
|
166 |
|
167 |
// Send the query to stock search server
|
@@ -183,17 +189,16 @@ function siteorigin_widget_remote_image_search(){
|
|
183 |
}
|
184 |
}
|
185 |
}
|
|
|
186 |
}
|
187 |
else {
|
188 |
$result = array(
|
189 |
'error' => true,
|
190 |
'message' => $result->get_error_message()
|
191 |
);
|
|
|
192 |
}
|
193 |
|
194 |
-
header( 'content-type:application/json' );
|
195 |
-
echo json_encode( $result );
|
196 |
-
exit();
|
197 |
}
|
198 |
add_action('wp_ajax_so_widgets_image_search', 'siteorigin_widget_remote_image_search');
|
199 |
|
@@ -244,9 +249,7 @@ function siteorigin_widget_image_import(){
|
|
244 |
}
|
245 |
|
246 |
// Return the result
|
247 |
-
|
248 |
-
echo json_encode( $result );
|
249 |
-
exit();
|
250 |
}
|
251 |
add_action('wp_ajax_so_widgets_image_import', 'siteorigin_widget_image_import');
|
252 |
|
@@ -254,8 +257,12 @@ add_action('wp_ajax_so_widgets_image_import', 'siteorigin_widget_image_import');
|
|
254 |
* Action to handle a user dismissing a teaser notice.
|
255 |
*/
|
256 |
function siteorigin_widgets_dismiss_widget_action(){
|
257 |
-
if( empty( $_GET[ '_wpnonce' ] ) || ! wp_verify_nonce( $_GET[ '_wpnonce' ], 'dismiss-widget-teaser' ) )
|
258 |
-
|
|
|
|
|
|
|
|
|
259 |
|
260 |
$dismissed = get_user_meta( get_current_user_id(), 'teasers_dismissed', true );
|
261 |
if( empty( $dismissed ) ) {
|
@@ -265,7 +272,7 @@ function siteorigin_widgets_dismiss_widget_action(){
|
|
265 |
$dismissed[ $_GET[ 'widget' ] ] = true;
|
266 |
|
267 |
update_user_meta( get_current_user_id(), 'teasers_dismissed', $dismissed );
|
268 |
-
|
269 |
-
|
270 |
}
|
271 |
add_action( 'wp_ajax_so_dismiss_widget_teaser', 'siteorigin_widgets_dismiss_widget_action' );
|
4 |
* Action for displaying the widget preview.
|
5 |
*/
|
6 |
function siteorigin_widget_preview_widget_action() {
|
7 |
+
if ( empty( $_REQUEST['_widgets_nonce'] ) ||
|
8 |
+
! wp_verify_nonce( $_REQUEST['_widgets_nonce'], 'widgets_action' ) ) {
|
9 |
+
|
10 |
+
wp_die( __( 'Invalid request.', 'so-widgets-bundle' ), 403 );
|
11 |
+
} else if ( empty( $_POST['class'] ) ) {
|
12 |
+
wp_die( __( 'Invalid post.', 'so-widgets-bundle' ), 400 );
|
13 |
+
}
|
14 |
|
15 |
// Get the widget from the widget factory
|
16 |
global $wp_widget_factory;
|
17 |
$widget = ! empty( $wp_widget_factory->widgets[ $_POST['class'] ] ) ? $wp_widget_factory->widgets[ $_POST['class'] ] : false;
|
18 |
|
19 |
+
if( ! is_a( $widget, 'SiteOrigin_Widget' ) ) {
|
20 |
+
wp_die( __( 'Invalid post.', 'so-widgets-bundle' ), 400 );
|
21 |
+
}
|
22 |
|
23 |
$instance = json_decode( stripslashes_deep($_POST['data']), true);
|
24 |
/* @var $widget SiteOrigin_Widget */
|
61 |
</html>
|
62 |
|
63 |
<?php
|
64 |
+
wp_die();
|
65 |
}
|
66 |
add_action('wp_ajax_so_widgets_preview', 'siteorigin_widget_preview_widget_action');
|
67 |
|
69 |
* Action to handle searching posts
|
70 |
*/
|
71 |
function siteorigin_widget_action_search_posts() {
|
72 |
+
if ( empty( $_REQUEST['_widgets_nonce'] ) || ! wp_verify_nonce( $_REQUEST['_widgets_nonce'], 'widgets_action' ) ) {
|
73 |
+
wp_die( __( 'Invalid request.', 'so-widgets-bundle' ), 403 );
|
74 |
+
}
|
75 |
|
76 |
// Get all public post types, besides attachments
|
77 |
$post_types = (array) get_post_types( array(
|
104 |
ORDER BY post_modified DESC
|
105 |
LIMIT 20
|
106 |
", ARRAY_A );
|
107 |
+
|
108 |
+
wp_send_json( apply_filters( 'siteorigin_widgets_search_posts_results', $results ) );
|
|
|
|
|
109 |
}
|
110 |
add_action('wp_ajax_so_widgets_search_posts', 'siteorigin_widget_action_search_posts');
|
111 |
|
113 |
* Action to handle searching taxonomy terms.
|
114 |
*/
|
115 |
function siteorigin_widget_action_search_terms() {
|
116 |
+
if ( empty( $_REQUEST['_widgets_nonce'] ) || ! wp_verify_nonce( $_REQUEST['_widgets_nonce'], 'widgets_action' ) ) {
|
117 |
+
wp_die( __( 'Invalid request.', 'so-widgets-bundle' ), 403 );
|
118 |
+
}
|
119 |
+
|
120 |
global $wpdb;
|
121 |
+
$term = ! empty($_GET['term']) ? stripslashes($_GET['term']) : '';
|
122 |
$term = trim($term, '%');
|
123 |
|
124 |
$query = $wpdb->prepare("
|
128 |
WHERE
|
129 |
terms.name LIKE '%s'
|
130 |
LIMIT 20
|
131 |
+
", '%' . esc_sql( $term ) . '%');
|
132 |
|
133 |
$results = array();
|
134 |
|
140 |
);
|
141 |
}
|
142 |
|
143 |
+
wp_send_json( $results );
|
|
|
|
|
144 |
}
|
145 |
add_action('wp_ajax_so_widgets_search_terms', 'siteorigin_widget_action_search_terms');
|
146 |
|
149 |
*/
|
150 |
function siteorigin_widget_get_posts_count_action() {
|
151 |
|
152 |
+
if ( empty( $_REQUEST['_widgets_nonce'] ) || ! wp_verify_nonce( $_REQUEST['_widgets_nonce'], 'widgets_action' ) ) {
|
153 |
+
wp_die( __( 'Invalid request.', 'so-widgets-bundle' ), 403 );
|
154 |
+
}
|
155 |
|
156 |
$query = stripslashes( $_POST['query'] );
|
157 |
+
|
158 |
+
wp_send_json( array( 'posts_count' => siteorigin_widget_post_selector_count_posts( $query ) ) );
|
|
|
|
|
|
|
|
|
159 |
}
|
160 |
|
161 |
add_action( 'wp_ajax_sow_get_posts_count', 'siteorigin_widget_get_posts_count_action' );
|
163 |
|
164 |
function siteorigin_widget_remote_image_search(){
|
165 |
if( empty( $_GET[ '_sononce' ] ) || ! wp_verify_nonce( $_GET[ '_sononce' ], 'so-image' ) ) {
|
166 |
+
wp_die( __( 'Invalid request.', 'so-widgets-bundle' ), 403 );
|
167 |
}
|
168 |
|
169 |
if( empty( $_GET['q'] ) ) {
|
170 |
+
wp_die( __( 'Invalid request.', 'so-widgets-bundle' ), 400 );
|
171 |
}
|
172 |
|
173 |
// Send the query to stock search server
|
189 |
}
|
190 |
}
|
191 |
}
|
192 |
+
wp_send_json( $result );
|
193 |
}
|
194 |
else {
|
195 |
$result = array(
|
196 |
'error' => true,
|
197 |
'message' => $result->get_error_message()
|
198 |
);
|
199 |
+
wp_send_json_error( $result );
|
200 |
}
|
201 |
|
|
|
|
|
|
|
202 |
}
|
203 |
add_action('wp_ajax_so_widgets_image_search', 'siteorigin_widget_remote_image_search');
|
204 |
|
249 |
}
|
250 |
|
251 |
// Return the result
|
252 |
+
wp_send_json( $result );
|
|
|
|
|
253 |
}
|
254 |
add_action('wp_ajax_so_widgets_image_import', 'siteorigin_widget_image_import');
|
255 |
|
257 |
* Action to handle a user dismissing a teaser notice.
|
258 |
*/
|
259 |
function siteorigin_widgets_dismiss_widget_action(){
|
260 |
+
if( empty( $_GET[ '_wpnonce' ] ) || ! wp_verify_nonce( $_GET[ '_wpnonce' ], 'dismiss-widget-teaser' ) ) {
|
261 |
+
wp_die( __( 'Invalid request.', 'so-widgets-bundle' ), 403 );
|
262 |
+
}
|
263 |
+
if( empty( $_GET[ 'widget' ] ) ) {
|
264 |
+
wp_die( __( 'Invalid request.', 'so-widgets-bundle' ), 400 );
|
265 |
+
}
|
266 |
|
267 |
$dismissed = get_user_meta( get_current_user_id(), 'teasers_dismissed', true );
|
268 |
if( empty( $dismissed ) ) {
|
272 |
$dismissed[ $_GET[ 'widget' ] ] = true;
|
273 |
|
274 |
update_user_meta( get_current_user_id(), 'teasers_dismissed', $dismissed );
|
275 |
+
|
276 |
+
wp_die();
|
277 |
}
|
278 |
add_action( 'wp_ajax_so_dismiss_widget_teaser', 'siteorigin_widgets_dismiss_widget_action' );
|
base/inc/fields/js/tinymce-field-pre48.js
CHANGED
@@ -22,7 +22,7 @@
|
|
22 |
var mceSettings = $container.data('mceSettings');
|
23 |
var widgetIdBase = $container.data('widgetIdBase');
|
24 |
var name = $textarea.attr('name').replace(/\[\d*\]/g, '');
|
25 |
-
var fieldName = /[a-zA-Z0-9
|
26 |
var idPattern = new RegExp('widget-' + widgetIdBase + '-?.*-' + fieldName.replace(/\]\[/g, '-') + '[-\d]*');
|
27 |
for (var initId in tinyMCEPreInit.mceInit) {
|
28 |
if (initId.match(idPattern)) {
|
22 |
var mceSettings = $container.data('mceSettings');
|
23 |
var widgetIdBase = $container.data('widgetIdBase');
|
24 |
var name = $textarea.attr('name').replace(/\[\d*\]/g, '');
|
25 |
+
var fieldName = /[a-zA-Z0-9-]+(?:\[[a-zA-Z0-9]+\])?\[(.*)\]/.exec(name)[1];
|
26 |
var idPattern = new RegExp('widget-' + widgetIdBase + '-?.*-' + fieldName.replace(/\]\[/g, '-') + '[-\d]*');
|
27 |
for (var initId in tinyMCEPreInit.mceInit) {
|
28 |
if (initId.match(idPattern)) {
|
base/inc/fields/js/tinymce-field-pre48.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(e){var t=function(i){"undefined"!=typeof tinyMCEPreInit?(tinyMCEPreInit.mceInit.hasOwnProperty("undefined")&&delete tinyMCEPreInit.mceInit.undefined,tinyMCEPreInit.qtInit.hasOwnProperty("undefined")&&delete tinyMCEPreInit.qtInit.undefined,QTags.instances.hasOwnProperty("undefined")&&delete QTags.instances.undefined,e(i).find("> .siteorigin-widget-field-type-tinymce > .siteorigin-widget-tinymce-container").each(function(t,i){var n=e(i),r=n.find("textarea"),a=r.attr("id");if("undefined"!=typeof tinymce){if(a.indexOf("__i__")>-1)return;var s=n.data("mceSettings"),o=n.data("widgetIdBase"),c=r.attr("name").replace(/\[\d*\]/g,""),d=/[a-zA-Z0-9
|
1 |
+
!function(e){var t=function(i){"undefined"!=typeof tinyMCEPreInit?(tinyMCEPreInit.mceInit.hasOwnProperty("undefined")&&delete tinyMCEPreInit.mceInit.undefined,tinyMCEPreInit.qtInit.hasOwnProperty("undefined")&&delete tinyMCEPreInit.qtInit.undefined,QTags.instances.hasOwnProperty("undefined")&&delete QTags.instances.undefined,e(i).find("> .siteorigin-widget-field-type-tinymce > .siteorigin-widget-tinymce-container").each(function(t,i){var n=e(i),r=n.find("textarea"),a=r.attr("id");if("undefined"!=typeof tinymce){if(a.indexOf("__i__")>-1)return;var s=n.data("mceSettings"),o=n.data("widgetIdBase"),c=r.attr("name").replace(/\[\d*\]/g,""),d=/[a-zA-Z0-9-]+(?:\[[a-zA-Z0-9]+\])?\[(.*)\]/.exec(c)[1],f=new RegExp("widget-"+o+"-?.*-"+d.replace(/\]\[/g,"-")+"[-d]*");for(var g in tinyMCEPreInit.mceInit)g.match(f)&&(s=e.extend({},tinyMCEPreInit.mceInit[g],s));var l,m=tinymce.get(a);null!==m&&("undefined"==typeof vc&&0===n.closest(".vc_active").length&&(l=m.getContent()),m.remove());var u=function(e){e.on("change",function(){tinymce.get(a).save(),r.trigger("change"),r.val(window.switchEditors.pre_wpautop(e.getContent()))}),e.on("init",function(){l&&e.setContent(l)})};s=e.extend({},s,{selector:"#"+a,setup:u}),tinyMCEPreInit.mceInit[a]=s;if(n.find("div#wp-"+a+"-wrap").hasClass("tmce-active"))if(e("#"+a).is(":visible"))tinymce.init(tinyMCEPreInit.mceInit[a]);else var v=setInterval(function(){e("#"+a).is(":visible")&&(tinymce.init(tinyMCEPreInit.mceInit[a]),clearInterval(v))},500)}var y=n.data("qtSettings");y=e.extend({},tinyMCEPreInit.qtInit["siteorigin-widget-input-tinymce-field"],y,{id:a}),tinyMCEPreInit.qtInit[a]=y,n.find(".quicktags-toolbar").remove(),quicktags(tinyMCEPreInit.qtInit[a]),e(this).on("click",function(t){var i=e(t.target);if(i.hasClass("wp-switch-editor")){var n=i.hasClass("switch-tmce")?"tmce":"html";if("tmce"==n){var s=tinymce.get(a);if(null!=s){var o=r.val();-1!=o.search("<")&&-1==o.search(">")&&(o=o.replace(/</g,""),r.val(o)),s.setContent(window.switchEditors.wpautop(o))}}e(this).find("+ .siteorigin-widget-tinymce-selected-editor").val(n)}})}),QTags._buttonsInit()):setTimeout(function(){t(i)},500)};e(document).on("sowsetupform",function(i){var n=e(i.target);n.is(".siteorigin-widget-field-repeater-item-form")?n.is(":visible")?t(n):n.on("slideToggleOpenComplete",function(){n.is(":visible")&&(t(n),n.off("slideToggleOpenComplete"))}):t(n)}),e(document).on("sortstop",function(i,n){n.item.is(".siteorigin-widget-field-repeater-item")?n.item.find("> .siteorigin-widget-field-repeater-item-form").each(function(){t(e(this))}):t(n.item.find(".siteorigin-widget-form"))})}(jQuery);
|
base/inc/fields/js/tinymce-field.js
CHANGED
@@ -3,7 +3,8 @@
|
|
3 |
(function ( $ ) {
|
4 |
$( document ).on( 'sowsetupformfield', '.siteorigin-widget-field-type-tinymce', function ( e ) {
|
5 |
var $$ = $( this );
|
6 |
-
|
|
|
7 |
return;
|
8 |
}
|
9 |
|
@@ -52,22 +53,17 @@
|
|
52 |
|
53 |
$$.on( 'click', function ( event ) {
|
54 |
var $target = $( event.target );
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
var
|
61 |
-
if (
|
62 |
-
|
63 |
-
|
64 |
-
if ( content.search( '>' ) === -1 ) {
|
65 |
-
content = content.replace( /</g, '' );
|
66 |
-
$textarea.val( content );
|
67 |
-
}
|
68 |
-
}
|
69 |
-
editor.setContent( window.switchEditors.wpautop( content ) );
|
70 |
}
|
|
|
71 |
}
|
72 |
|
73 |
$$.find( '.siteorigin-widget-tinymce-selected-editor' ).val( mode );
|
3 |
(function ( $ ) {
|
4 |
$( document ).on( 'sowsetupformfield', '.siteorigin-widget-field-type-tinymce', function ( e ) {
|
5 |
var $$ = $( this );
|
6 |
+
|
7 |
+
if ( $$.data( 'initialized' ) ) {
|
8 |
return;
|
9 |
}
|
10 |
|
53 |
|
54 |
$$.on( 'click', function ( event ) {
|
55 |
var $target = $( event.target );
|
56 |
+
var mode = $target.hasClass( 'wp-switch-editor' ) ? 'tmce' : 'html';
|
57 |
+
if ( mode === 'tmce' ) {
|
58 |
+
var editor = window.tinymce.get( id );
|
59 |
+
// Quick bit of sanitization to prevent catastrophic backtracking in TinyMCE HTML parser regex
|
60 |
+
if ( $target.hasClass( 'switch-tmce' ) && editor !== null ) {
|
61 |
+
var content = $textarea.val();
|
62 |
+
if ( content.search( '<' ) !== -1 && content.search( '>' ) === -1) {
|
63 |
+
content = content.replace( /</g, '' );
|
64 |
+
$textarea.val( content );
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
}
|
66 |
+
editor.setContent(window.switchEditors.wpautop(content));
|
67 |
}
|
68 |
|
69 |
$$.find( '.siteorigin-widget-tinymce-selected-editor' ).val( mode );
|
base/inc/fields/js/tinymce-field.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(i){i(document).on("sowsetupformfield",".siteorigin-widget-field-type-tinymce",function(t){var e=i(this);if(!e.data("initialized")){var n=e.find(".siteorigin-widget-tinymce-container"),o=n.data("editorSettings"),a=n.find("textarea"),c=a.attr("id"),r=function(i){i.on("change",function(){window.tinymce.get(c).save(),a.trigger("change")})};if(o.tinymce=i.extend({},o.tinymce,{selector:"#"+c,setup:r}),i(document).one("wp-before-tinymce-init",function(i,t){if(t.selector===o.tinymce.selector){var a=n.data("mediaButtons");e.find(".wp-editor-tabs").before(a.html)}}),i(document).one("tinymce-editor-setup",function(){e.find(".wp-editor-wrap").hasClass(o.selectedEditor+"-active")||setTimeout(function(){window.switchEditors.go(c)},10)}),wp.editor.remove(c),a.is(":visible"))wp.editor.initialize(c,o);else var s=setInterval(function(){a.is(":visible")&&(wp.editor.initialize(c,o),clearInterval(s))},500);e.on("click",function(t){var n=i(t.target)
|
1 |
+
!function(i){i(document).on("sowsetupformfield",".siteorigin-widget-field-type-tinymce",function(t){var e=i(this);if(!e.data("initialized")){var n=e.find(".siteorigin-widget-tinymce-container"),o=n.data("editorSettings"),a=n.find("textarea"),c=a.attr("id"),r=function(i){i.on("change",function(){window.tinymce.get(c).save(),a.trigger("change")})};if(o.tinymce=i.extend({},o.tinymce,{selector:"#"+c,setup:r}),i(document).one("wp-before-tinymce-init",function(i,t){if(t.selector===o.tinymce.selector){var a=n.data("mediaButtons");e.find(".wp-editor-tabs").before(a.html)}}),i(document).one("tinymce-editor-setup",function(){e.find(".wp-editor-wrap").hasClass(o.selectedEditor+"-active")||setTimeout(function(){window.switchEditors.go(c)},10)}),wp.editor.remove(c),a.is(":visible"))wp.editor.initialize(c,o);else var s=setInterval(function(){a.is(":visible")&&(wp.editor.initialize(c,o),clearInterval(s))},500);e.on("click",function(t){var n=i(t.target),o=n.hasClass("wp-switch-editor")?"tmce":"html";if("tmce"===o){var r=window.tinymce.get(c);if(n.hasClass("switch-tmce")&&null!==r){var s=a.val();-1!==s.search("<")&&-1===s.search(">")&&(s=s.replace(/</g,""),a.val(s)),r.setContent(window.switchEditors.wpautop(s))}e.find(".siteorigin-widget-tinymce-selected-editor").val(o)}}),e.data("initialized",!0)}})}(jQuery);
|
base/inc/fields/tinymce.class.php
CHANGED
@@ -383,7 +383,11 @@ class SiteOrigin_Widget_Field_TinyMCE extends SiteOrigin_Widget_Field_Text_Input
|
|
383 |
|
384 |
foreach ( $tmce_settings as $name => $setting ) {
|
385 |
if ( ! empty( $tmce_settings[ $name ] ) ) {
|
386 |
-
|
|
|
|
|
|
|
|
|
387 |
}
|
388 |
}
|
389 |
|
@@ -511,7 +515,16 @@ class SiteOrigin_Widget_Field_TinyMCE extends SiteOrigin_Widget_Field_Text_Input
|
|
511 |
|
512 |
echo '<div id="wp-' . esc_attr( $editor_id ) . '-media-buttons" class="wp-media-buttons">';
|
513 |
|
|
|
|
|
|
|
|
|
|
|
514 |
do_action( 'media_buttons', $editor_id );
|
|
|
|
|
|
|
|
|
515 |
|
516 |
echo "</div>\n";
|
517 |
|
383 |
|
384 |
foreach ( $tmce_settings as $name => $setting ) {
|
385 |
if ( ! empty( $tmce_settings[ $name ] ) ) {
|
386 |
+
// Attempt to decode setting as JSON. For back compat with filters used by WP editor.
|
387 |
+
if ( is_string( $setting ) ) {
|
388 |
+
$jdec = json_decode( $setting, true );
|
389 |
+
}
|
390 |
+
$settings['tinymce'][ $name ] = empty( $jdec ) ? $setting : $jdec;
|
391 |
}
|
392 |
}
|
393 |
|
515 |
|
516 |
echo '<div id="wp-' . esc_attr( $editor_id ) . '-media-buttons" class="wp-media-buttons">';
|
517 |
|
518 |
+
$screen = function_exists( 'get_current_screen' ) ? get_current_screen() : null;
|
519 |
+
// Temporarily disable the Jetpack Grunion contact form editor on the widgets screen.
|
520 |
+
if( ! is_null( $screen ) && $screen->id == 'widgets' ) {
|
521 |
+
remove_action( 'media_buttons', 'grunion_media_button', 999 );
|
522 |
+
}
|
523 |
do_action( 'media_buttons', $editor_id );
|
524 |
+
// Temporarily disable the Jetpack Grunion contact form editor on the widgets screen.
|
525 |
+
if( ! is_null( $screen ) && $screen->id == 'widgets' ) {
|
526 |
+
add_action( 'media_buttons', 'grunion_media_button', 999 );
|
527 |
+
}
|
528 |
|
529 |
echo "</div>\n";
|
530 |
|
base/js/admin.js
CHANGED
@@ -51,8 +51,8 @@ var sowbForms = window.sowbForms || {};
|
|
51 |
var repeaterIndex = sowbForms.getRepeaterId($$);
|
52 |
if (repeaterIndex !== false) {
|
53 |
var repeaterHandler = {};
|
54 |
-
for (var
|
55 |
-
repeaterHandler[
|
56 |
}
|
57 |
handler = repeaterHandler;
|
58 |
}
|
51 |
var repeaterIndex = sowbForms.getRepeaterId($$);
|
52 |
if (repeaterIndex !== false) {
|
53 |
var repeaterHandler = {};
|
54 |
+
for ( var rptrState in handler) {
|
55 |
+
repeaterHandler[rptrState.replace('{$repeater}', repeaterIndex)] = handler[rptrState];
|
56 |
}
|
57 |
handler = repeaterHandler;
|
58 |
}
|
base/js/admin.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
var sowbForms=window.sowbForms||{};!function(e){e.fn.sowSetupForm=function(){return e(this).each(function(i,t){var n,r=e(t),a=!0,s=e("body"),o=r.find("input[name]");if(o.length&&-1!==o.attr("name").indexOf("__i__"))return this;if(r.is(".siteorigin-widget-form-main")){if(!0===r.data("sow-form-setup"))return!0;if(s.hasClass("widgets-php")&&!r.is(":visible")&&0===r.closest(".panel-dialog").length)return!0;r.on("sowstatechange",function(i,t,n){r.find("[data-state-handler]").each(function(){var i=e(this),r=e.extend({},i.data("state-handler"),a?i.data("state-handler-initial"):{});if(0===Object.keys(r).length)return!0;var s,o,d,l,f,g,c={},p=sowbForms.getRepeaterId(i);if(!1!==p){var u={};for(var m in r)u[m.replace("{$repeater}",p)]=r[m];r=u}for(var m in r)if(f=!1,null!==(s=m.match(/^([a-zA-Z0-9_-]+)(\[([a-zA-Z0-9_\-,]+)\])?(\[\])?$/))){if(o={group:"default",name:"",multi:!1},void 0!==s[2]?(o.group=s[1],o.name=s[3]):o.name=s[0],o.multi=void 0!==s[4],"_else"===o.group)o.group=o.name,o.name="",f=o.group===t&&void 0===c[o.group];else{g=o.name.split(",").map(function(e){return e.trim()});for(var w=0;w<g.length&&!(f=o.group===t&&g[w]===n);w++);}if(f){d=r[m],o.multi||(d=[d]);for(var w=0;w<d.length;w++)l=void 0!==d[w][1]&&Boolean(d[w][1])?i.find(d[w][1]):i,l[d[w][0]].apply(l,void 0!==d[w][2]?d[w][2]:[]);c[o.group]=!0}}})}),r.sowSetupPreview(),n=r;var d=r.find(".siteorigin-widget-teaser");d.find(".dashicons-dismiss").click(function(){var i=e(this);e.get(i.data("dismiss-url")),d.slideUp("normal",function(){d.remove()})});var l=r.find("> .siteorigin-widgets-form-id").val(),f=r.find("> .siteorigin-widgets-form-timestamp"),g=parseInt(f.val()||0),c=JSON.parse(sessionStorage.getItem(l));if(c)if(c._sow_form_timestamp>g){var p=e('<div class="siteorigin-widget-form-notification"><span>'+soWidgets.backup.newerVersion+'</span><a class="button button-small so-backup-restore">'+soWidgets.backup.restore+'</a><a class="button button-small so-backup-dismiss">'+soWidgets.backup.dismiss+"</a><div><small>"+soWidgets.backup.replaceWarning+"</small></div></div>");r.prepend(p),p.find(".so-backup-restore").click(function(){sowbForms.setWidgetFormValues(n,c),p.slideUp("fast",function(){p.remove()})}),p.find(".so-backup-dismiss").click(function(){p.slideUp("fast",function(){sessionStorage.removeItem(l),p.remove()})})}else sessionStorage.removeItem(l);r.change(function(){f.val((new Date).getTime());var e=sowbForms.getWidgetFormValues(r);sessionStorage.setItem(l,JSON.stringify(e))})}else n=r.closest(".siteorigin-widget-form-main");n.find("> .siteorigin-widgets-form-id").val();var u=r.find("> .siteorigin-widget-field");u.find("> .siteorigin-widget-section").sowSetupForm(),u.filter(".siteorigin-widget-field-type-widget:not(:has(> .siteorigin-widget-section))").sowSetupForm(),u.find(".siteorigin-widget-input").each(function(i,t){null===e(t).data("original-name")&&e(t).data("original-name",e(t).attr("name"))}),u.find("> .siteorigin-widget-field-repeater").sowSetupRepeater(),r.find(".siteorigin-widget-field-repeater-item").sowSetupRepeaterItems(),u.find("> .siteorigin-widget-input-color").each(function(){var i=e(this),t={change:function(i,t){setTimeout(function(){e(i.target).trigger("change")},100)}};i.data("defaultColor")&&(t.defaultColor=i.data("defaultColor")),i.wpColorPicker(t)});var m=function(){e(this).toggleClass("siteorigin-widget-section-visible"),e(this).siblings(".siteorigin-widget-section").slideToggle("fast",function(){if(e(window).resize(),e(this).find("> .siteorigin-widget-field-container-state").val(e(this).is(":visible")?"open":"closed"),e(this).is(":visible")){e(this).find("> .siteorigin-widget-field").trigger("sowsetupformfield")}})};u.filter(".siteorigin-widget-field-type-widget, .siteorigin-widget-field-type-section").find("> label").click(m),u.filter(".siteorigin-widget-field-type-posts").find(".posts-container-label-wrapper").click(m),u.filter(".siteorigin-widget-field-type-slider").each(function(){var i=e(this),t=i.find('input[type="number"]'),n=i.find(".siteorigin-widget-value-slider");n.slider({max:parseInt(t.attr("max")),min:parseInt(t.attr("min")),value:parseInt(t.val()),slide:function(e,i){t.val(parseInt(i.value)),t.trigger("change")},change:function(e,t){i.find(".siteorigin-widget-slider-value").html(t.value)}}),t.change(function(e,i){i&&i.silent||n.slider("value",parseInt(t.val()))})}),u.filter(".siteorigin-widget-field-type-link").each(function(){var i=e(this),t=null,n=function(){null!==t&&t.abort();var n=i.find(".content-text-search"),r=n.val(),a=n.data("postTypes"),s=i.find("ul.posts").empty().addClass("loading");e.get(soWidgets.ajaxurl,{action:"so_widgets_search_posts",query:r,postTypes:a},function(i){for(var t=0;t<i.length;t++)""===i[t].label&&(i[t].label=" "),s.append(e("<li>").addClass("post").html(i[t].label+"<span>("+i[t].type+")</span>").data(i[t]));s.removeClass("loading")})};i.find(".select-content-button, .button-close").click(function(t){t.preventDefault(),e(this).blur();var r=i.find(".existing-content-selector");r.toggle(),r.is(":visible")&&0===r.find("ul.posts li").length&&n()}),i.on("click",".posts li",function(t){t.preventDefault();var n=e(this);i.find("input.siteorigin-widget-input").val("post: "+n.data("value")),i.find(".existing-content-selector").toggle()});var r=null;i.find(".content-text-search").keyup(function(){null!==r&&clearTimeout(r),r=setTimeout(function(){n()},500)})}),void 0!==jQuery.fn.soPanelsSetupBuilderWidget&&u.filter(".siteorigin-widget-field-type-builder").each(function(){e(this).find("> .siteorigin-page-builder-field").soPanelsSetupBuilderWidget()});var w=function(){var i=e(this),t=i.closest("[data-state-emitter]").data("state-emitter");if(void 0!==t){var r={default:""};void 0===t.length&&(t=[t]);for(var a=0;a<t.length;a++)r=function(t,n){if(void 0===sowEmitters[t.callback]||"_"===t.callback.substr(0,1))return n;var r=sowbForms.getRepeaterId(i);!1!==r&&(t.args=t.args.map(function(e){return e.replace("{$repeater}",r)}));var a=i.is('[type="checkbox"]')?i.is(":checked"):i.val();return e.extend(n,sowEmitters[t.callback](a,t.args))}(t[a],r);var s=n.data("states");void 0===s&&(s={default:""});for(var o in r)void 0!==s[o]&&r[o]===s[o]||(s[o]=r[o],n.trigger("sowstatechange",[o,r[o]]));n.data("states",s)}};u.filter("[data-state-emitter]").each(function(){e(this).find(".siteorigin-widget-input").on("keyup change",w),e(this).find(".siteorigin-widget-input").each(function(){var i=e(this);i.is(":radio")?i.is(":checked")&&w.call(i[0]):w.call(i[0])})}),r.trigger("sowsetupform",u).data("sow-form-setup",!0),u.trigger("sowsetupformfield"),r.find(".siteorigin-widget-field-repeater-item").trigger("updateFieldPositions"),(s.hasClass("wp-customizer")||s.hasClass("widgets-php"))&&r.closest(".ui-sortable").on("sortstop",function(e,i){i.item.find(".siteorigin-widget-form").find("> .siteorigin-widget-field").trigger("sowsetupformfield")}),a=!1})},e.fn.sowSetupPreview=function(){var i=e(this);i.siblings(".siteorigin-widget-preview").find("> a").click(function(t){t.preventDefault();var n=sowbForms.getWidgetFormValues(i),r=e(e("#so-widgets-bundle-tpl-preview-dialog").html().trim()).appendTo("body");r.find('input[name="data"]').val(JSON.stringify(n)),r.find('input[name="class"]').val(i.data("class")),r.find("iframe").on("load",function(){e(this).css("visibility","visible")}),r.find("form").submit(),r.find(".close").click(function(){r.remove()})})},e.fn.sowSetupRepeater=function(){return e(this).each(function(i,t){var n=e(t),r=n.find(".siteorigin-widget-field-repeater-items"),a=n.data("repeater-name");r.bind("updateFieldPositions",function(){var i=e(this),t=i.find("> .siteorigin-widget-field-repeater-item");t.each(function(i,t){e(t).find(".siteorigin-widget-input").each(function(t,n){var r=e(n).data("repeater-positions");void 0===r&&(r={}),r[a]=i,e(n).data("repeater-positions",r)})}),i.find(".siteorigin-widget-input").each(function(i,t){var n=e(t).data("repeater-positions"),r=e(t);if(void 0!==n){var a=r.attr("data-original-name");if(a||(r.attr("data-original-name",r.attr("name")),a=r.attr("name")),!a)return;if(n)for(var s in n)a=a.replace("#"+s+"#",n[s]);r.attr("name",a)}}),i.data("initialSetup")||(i.find(".siteorigin-widget-input").each(function(i,t){var n=e(t);n.prop("checked",n.prop("defaultChecked"))}),i.data("initialSetup",!0));var r=n.data("scroll-count")?parseInt(n.data("scroll-count")):0;if(r>0&&t.length>r){var s=t.first().outerHeight();i.css("max-height",s*r).css("overflow","auto")}else i.css("max-height","").css("overflow","")}),r.sortable({handle:".siteorigin-widget-field-repeater-item-top",items:"> .siteorigin-widget-field-repeater-item",update:function(){r.trigger("updateFieldPositions")},sortstop:function(i,t){if(t.item.is(".siteorigin-widget-field-repeater-item"))t.item.find("> .siteorigin-widget-field-repeater-item-form").each(function(){e(this).find("> .siteorigin-widget-field").trigger("sowsetupformfield")});else{t.item.find(".siteorigin-widget-form").find("> .siteorigin-widget-field").trigger("sowsetupformfield")}}}),r.trigger("updateFieldPositions"),n.find("> .siteorigin-widget-field-repeater-add").disableSelection().click(function(i){i.preventDefault(),n.closest(".siteorigin-widget-field-repeater").sowAddRepeaterItem().find("> .siteorigin-widget-field-repeater-items").slideDown("fast",function(){e(window).resize()})}),n.find("> .siteorigin-widget-field-repeater-top > .siteorigin-widget-field-repeater-expand").click(function(i){i.preventDefault(),n.closest(".siteorigin-widget-field-repeater").find("> .siteorigin-widget-field-repeateritems-").slideToggle("fast",function(){e(window).resize()})})})},e.fn.sowAddRepeaterItem=function(){return e(this).each(function(i,t){var n=e(t),r=n.find("> .siteorigin-widget-field-repeater-items").children().length+1,a=e("<div>"+n.find("> .siteorigin-widget-field-repeater-item-html").html()+"</div>");a.find(".siteorigin-widget-input[data-name]").each(function(){var i=e(this);0===i.closest(".siteorigin-widget-field-repeater-item-html").length&&i.attr("name",e(this).data("name"))});var s=a.html().replace(/_id_/g,r),o=void 0!==n.attr("readonly"),d=e('<div class="siteorigin-widget-field-repeater-item ui-draggable" />').append(e('<div class="siteorigin-widget-field-repeater-item-top" />').append(e('<div class="siteorigin-widget-field-expand" />')).append(o?"":e('<div class="siteorigin-widget-field-copy" />')).append(o?"":e('<div class="siteorigin-widget-field-remove" />')).append(e("<h4 />").html(n.data("item-name")))).append(e('<div class="siteorigin-widget-field-repeater-item-form" />').html(s));n.find("> .siteorigin-widget-field-repeater-items").append(d).sortable("refresh").trigger("updateFieldPositions"),d.sowSetupRepeaterItems(),d.hide().slideDown("fast",function(){e(window).resize()})})},e.fn.sowRemoveRepeaterItem=function(){return e(this).each(function(i,t){var n=e(this).closest(".siteorigin-widget-field-repeater-items");e(this).remove(),n.sortable("refresh").trigger("updateFieldPositions")})},e.fn.sowSetupRepeaterItems=function(){return e(this).each(function(i,t){var n=e(t);if(void 0===n.data("sowrepeater-actions-setup")){var r=n.closest(".siteorigin-widget-field-repeater"),a=n.find("> .siteorigin-widget-field-repeater-item-top"),s=r.data("item-label");if(s&&s.selector){var o=function(){var e=s.hasOwnProperty("valueMethod")&&s.valueMethod?s.valueMethod:"val",i=n.find(s.selector)[e]();i&&(i.length>80&&(i=i.substr(0,79)+"..."),a.find("h4").text(i))};o();var d=s.hasOwnProperty("updateEvent")&&s.updateEvent?s.updateEvent:"change";n.bind(d,o)}a.click(function(i){"siteorigin-widget-field-remove"!==i.target.className&&"siteorigin-widget-field-copy"!==i.target.className&&(i.preventDefault(),e(this).closest(".siteorigin-widget-field-repeater-item").find(".siteorigin-widget-field-repeater-item-form").eq(0).slideToggle("fast",function(){if(e(window).resize(),e(this).is(":visible")){e(this).trigger("slideToggleOpenComplete");e(this).find("> .siteorigin-widget-field").trigger("sowsetupformfield")}else e(this).trigger("slideToggleCloseComplete")}))}),a.find(".siteorigin-widget-field-remove").click(function(i,t){i.preventDefault();var n=e(this).closest(".siteorigin-widget-field-repeater-items"),r=e(this).closest(".siteorigin-widget-field-repeater-item"),a=function(){r.remove(),n.sortable("refresh").trigger("updateFieldPositions"),e(window).resize()};t&&t.silent?a():confirm(soWidgets.sure)&&r.slideUp("fast",a)}),a.find(".siteorigin-widget-field-copy").click(function(i){i.preventDefault();var t=e(this).closest(".siteorigin-widget-form-main"),r=e(this).closest(".siteorigin-widget-field-repeater-item"),a=r.clone(),s=r.closest(".siteorigin-widget-field-repeater-items"),o=s.children().length,d={};a.find("*[name]").each(function(){var i=e(this),s=i.attr("id"),l=i.attr("name");if(i.is("textarea")&&i.parent().is(".wp-editor-container")&&"undefined"!=typeof tinymce){i.parent().empty().append(i),i.css("display","");var f=tinymce.get(s);f&&i.val(f.getContent())}else if(i.is(".wp-color-picker")){var g=i.closest(".wp-picker-container"),c=i.closest(".siteorigin-widget-field");g.remove(),c.append(i.remove())}else{var p=r.find('[name="'+l+'"]');p.length&&null!=p.val()&&i.val(p.val())}if(s){var u,m,w;if(i.is('[type="radio"]')){m=s.replace(/-\d+-\d+$/,"");var v=s.replace(/-\d+$/,"");if(!d[m]){var h={};d[m]=t.find(".siteorigin-widget-input[id^="+m+"]").not("[id*=_id_]").filter(function(i,t){var n=e(t).attr("name");return!h[n]&&(h[n]=!0,!0)}).length+1}var b=m+"-"+d[m];w=b+s.match(/-\d+$/)[0],a.find("label[for="+v+"]").attr("for",b)}else u=new RegExp("-\\d+$"),m=s.replace(u,""),d[m]||(d[m]=t.find(".siteorigin-widget-input[id^="+m+"]").not("[id*=_id_]").length+1),w=m+"-"+d[m]++;i.attr("id",w),a.find("label[for="+s+"]").attr("for",w),a.find("[id*="+s+"]").each(function(){var i=e(this).attr("id"),t=i.replace(s,w);e(this).attr("id",t)}),"undefined"!=typeof tinymce&&tinymce.get(w)&&tinymce.get(w).remove()}var y=r.parents(".siteorigin-widget-field-repeater").length,k=e("body");(k.hasClass("wp-customizer")||k.hasClass("widgets-php"))&&0===n.closest(".panel-dialog").length&&(y+=1);var _=l.replace(new RegExp("((?:.*?\\[\\d+\\]){"+(y-1).toString()+"})?(.*?\\[)\\d+(\\])"),"$1$2"+o.toString()+"$3");i.attr("name",_),i.data("original-name",_)}),s.append(a).sortable("refresh").trigger("updateFieldPositions"),a.sowSetupRepeaterItems(),a.hide().slideDown("fast",function(){e(window).resize()})}),n.find("> .siteorigin-widget-field-repeater-item-form").sowSetupForm(),n.data("sowrepeater-actions-setup",!0)}})},sowbForms.getRepeaterId=function(e){void 0===this.id&&(this.id=1);var i=e.closest(".siteorigin-widget-field-repeater-item");if(i.length){var t=i.data("item-id");return void 0===t&&(t=this.id++),i.data("item-id",t),t}return!1},sowbForms.getWidgetFieldVariable=function(e,i,t){var n=window.sow_field_javascript_variables[e];i=i.replace(/\[#.*?#\]/g,"");for(var r=/[a-zA-Z0-9\-]+(?:\[c?[0-9]+\])?\[(.*)\]/.exec(i)[1],a=r.split("]["),s=a.length?n:null;a.length;)s=s[a.shift()];return s[t]},sowbForms.fetchWidgetVariable=function(i,t,n){window.sowVars=window.sowVars||{},void 0===window.sowVars[t]?e.post(soWidgets.ajaxurl,{action:"sow_get_javascript_variables",widget:t,key:i},function(e){window.sowVars[t]=e,n(window.sowVars[t][i])}):n(window.sowVars[t][i])},sowbForms.getWidgetFormValues=function(i){if(_.isUndefined(i))return null;var t={};return i.find("*[name]").each(function(){var i=e(this);try{var n=/[a-zA-Z0-9\-]+\[[a-zA-Z0-9]+\]\[(.*)\]/.exec(i.attr("name"));if(_.isEmpty(n))return!0;n=n[1];var r=n.split("][");r=r.map(function(e){return!isNaN(parseFloat(e))&&isFinite(e)?parseInt(e):e});var a=t,s=null,o=_.isString(i.attr("type"))?i.attr("type").toLowerCase():null;if("checkbox"===o)s=!!i.is(":checked")&&(""===i.val()||i.val());else if("radio"===o){if(!i.is(":checked"))return;s=i.val()}else if("TEXTAREA"===i.prop("tagName")&&i.hasClass("wp-editor-area")){var d=null;"undefined"!=typeof tinyMCE&&(d=tinyMCE.get(i.attr("id"))),s=null===d||"function"!=typeof d.getContent||d.isHidden()?i.val():d.getContent()}else if("SELECT"===i.prop("tagName")){var l=i.find("option:selected");1===l.length?s=i.find("option:selected").val():l.length>1&&(s=_.map(i.find("option:selected"),function(i,t){return e(i).val()}))}else s=i.val();for(var f=0;f<r.length;f++)f===r.length-1?""===r[f]?a.push(s):a[r[f]]=s:(_.isUndefined(a[r[f]])&&(_.isNumber(r[f+1])||""===r[f+1]?a[r[f]]=[]:a[r[f]]={}),a=a[r[f]])}catch(e){console.error("Field ["+i.attr("name")+"] could not be processed and was skipped - "+e.message)}}),t},sowbForms.setWidgetFormValues=function(i,t){var n=0,r=function(i,t){10!=++n&&i.find("> .siteorigin-widget-field-type-repeater").each(function(){var i=e(this).find("> .siteorigin-widget-field-repeater"),n=i.data("repeaterName"),a=t.hasOwnProperty(n)?t[n]:null;if(a&&Array.isArray(a)&&0!==a.length){var s=i.find("> .siteorigin-widget-field-repeater-items > .siteorigin-widget-field-repeater-item"),o=a.length,d=s.length;if(o>d)for(var l=0;l<o-d;l++)i.find("> .siteorigin-widget-field-repeater-add").click();else if(o<d)for(var f=o;f<d;f++){var g=e(s.eq(f));g.find("> .siteorigin-widget-field-repeater-item-top").find(".siteorigin-widget-field-remove").trigger("click",{silent:!0})}s=i.find("> .siteorigin-widget-field-repeater-items > .siteorigin-widget-field-repeater-item");for(var c=0;c<s.length;c++)s.eq(c).find("> .siteorigin-widget-field-repeater-item-form"),r(s.eq(c).find("> .siteorigin-widget-field-repeater-item-form"),a[c])}})};r(i,t),i.find("*[name]").each(function(){var i=e(this),n=/[a-zA-Z0-9\-]+\[[a-zA-Z0-9]+\]\[(.*)\]/.exec(i.attr("name"));if(void 0===n)return!0;n=n[1];var r=n.split("][");r=r.map(function(e){return!isNaN(parseFloat(e))&&isFinite(e)?parseInt(e):e});for(var a,s=t,o=0;o<r.length;o++)o===r.length-1?a=s[r[o]]:s=s[r[o]];if("checkbox"===i.attr("type"))i.prop("checked",a);else if("radio"===i.attr("type"))i.prop("checked",a===i.val());else if("TEXTAREA"===i.prop("tagName")&&i.hasClass("wp-editor-area")){var d=null;"undefined"!=typeof tinyMCE&&(d=tinyMCE.get(i.attr("id"))),null===d||"function"!=typeof d.getContent||d.isHidden()?i.val(a):d.setContent(a)}else i.val(a);i.trigger("change")})},e(".widgets-holder-wrap").on("click",".widget:has(.siteorigin-widget-form-main) .widget-top",function(){var i=e(this).closest(".widget").find(".siteorigin-widget-form-main");setTimeout(function(){i.sowSetupForm()},200)}),e("body").hasClass("wp-customizer")&&e(document).on("widget-added",function(e,i){i.find(".siteorigin-widget-form").sowSetupForm()}),e(document).on("open_dialog",function(i,t){if(t.$el.find(".so-panels-dialog").is(".so-panels-dialog-edit-widget")){e(i.target).find(".siteorigin-widget-form-main").find("> .siteorigin-widget-field").trigger("sowsetupformfield")}}),e(function(){e(document).trigger("sowadminloaded")})}(jQuery);var sowEmitters={_match:function(e,i){void 0===i&&(i=".*");var t=new RegExp("^([a-zA-Z0-9_-]+)(\\[([a-zA-Z0-9_-]+)\\])? *: *("+i+") *$"),n=t.exec(e);if(null===n)return!1;var r="",a="default";return void 0!==n[3]?(a=n[1],r=n[3]):r=n[1],{match:n[4].trim(),group:a,state:r}},_checker:function(e,i,t,n){var r={};void 0===i.length&&(i=[i]);for(var a,s=0;s<i.length;s++)!1!==(a=sowEmitters._match(i[s],t))&&("_true"===a.match||n(e,i,a.match))&&(r[a.group]=a.state);return r},select:function(e,i){void 0===i.length&&(i=[i]);for(var t={},n=0;n<i.length;n++)""===i[n]&&(i[n]="default"),t[i[n]]=e;return t},conditional:function(val,args){return sowEmitters._checker(val,args,"[^;{}]*",function(val,args,match){return eval(match)})},in:function(e,i){return sowEmitters._checker(e,i,"[^;{}]*",function(e,i,t){return-1!==t.split(",").map(function(e){return e.trim()}).indexOf(e)})}};window.sowbForms=sowbForms;
|
1 |
+
var sowbForms=window.sowbForms||{};!function(e){e.fn.sowSetupForm=function(){return e(this).each(function(i,t){var n,r=e(t),a=!0,s=e("body"),o=r.find("input[name]");if(o.length&&-1!==o.attr("name").indexOf("__i__"))return this;if(r.is(".siteorigin-widget-form-main")){if(!0===r.data("sow-form-setup"))return!0;if(s.hasClass("widgets-php")&&!r.is(":visible")&&0===r.closest(".panel-dialog").length)return!0;r.on("sowstatechange",function(i,t,n){r.find("[data-state-handler]").each(function(){var i=e(this),r=e.extend({},i.data("state-handler"),a?i.data("state-handler-initial"):{});if(0===Object.keys(r).length)return!0;var s,o,d,l,f,g,c={},p=sowbForms.getRepeaterId(i);if(!1!==p){var u={};for(var m in r)u[m.replace("{$repeater}",p)]=r[m];r=u}for(var w in r)if(f=!1,null!==(s=w.match(/^([a-zA-Z0-9_-]+)(\[([a-zA-Z0-9_\-,]+)\])?(\[\])?$/))){if(o={group:"default",name:"",multi:!1},void 0!==s[2]?(o.group=s[1],o.name=s[3]):o.name=s[0],o.multi=void 0!==s[4],"_else"===o.group)o.group=o.name,o.name="",f=o.group===t&&void 0===c[o.group];else{g=o.name.split(",").map(function(e){return e.trim()});for(var v=0;v<g.length&&!(f=o.group===t&&g[v]===n);v++);}if(f){d=r[w],o.multi||(d=[d]);for(var v=0;v<d.length;v++)l=void 0!==d[v][1]&&Boolean(d[v][1])?i.find(d[v][1]):i,l[d[v][0]].apply(l,void 0!==d[v][2]?d[v][2]:[]);c[o.group]=!0}}})}),r.sowSetupPreview(),n=r;var d=r.find(".siteorigin-widget-teaser");d.find(".dashicons-dismiss").click(function(){var i=e(this);e.get(i.data("dismiss-url")),d.slideUp("normal",function(){d.remove()})});var l=r.find("> .siteorigin-widgets-form-id").val(),f=r.find("> .siteorigin-widgets-form-timestamp"),g=parseInt(f.val()||0),c=JSON.parse(sessionStorage.getItem(l));if(c)if(c._sow_form_timestamp>g){var p=e('<div class="siteorigin-widget-form-notification"><span>'+soWidgets.backup.newerVersion+'</span><a class="button button-small so-backup-restore">'+soWidgets.backup.restore+'</a><a class="button button-small so-backup-dismiss">'+soWidgets.backup.dismiss+"</a><div><small>"+soWidgets.backup.replaceWarning+"</small></div></div>");r.prepend(p),p.find(".so-backup-restore").click(function(){sowbForms.setWidgetFormValues(n,c),p.slideUp("fast",function(){p.remove()})}),p.find(".so-backup-dismiss").click(function(){p.slideUp("fast",function(){sessionStorage.removeItem(l),p.remove()})})}else sessionStorage.removeItem(l);r.change(function(){f.val((new Date).getTime());var e=sowbForms.getWidgetFormValues(r);sessionStorage.setItem(l,JSON.stringify(e))})}else n=r.closest(".siteorigin-widget-form-main");n.find("> .siteorigin-widgets-form-id").val();var u=r.find("> .siteorigin-widget-field");u.find("> .siteorigin-widget-section").sowSetupForm(),u.filter(".siteorigin-widget-field-type-widget:not(:has(> .siteorigin-widget-section))").sowSetupForm(),u.find(".siteorigin-widget-input").each(function(i,t){null===e(t).data("original-name")&&e(t).data("original-name",e(t).attr("name"))}),u.find("> .siteorigin-widget-field-repeater").sowSetupRepeater(),r.find(".siteorigin-widget-field-repeater-item").sowSetupRepeaterItems(),u.find("> .siteorigin-widget-input-color").each(function(){var i=e(this),t={change:function(i,t){setTimeout(function(){e(i.target).trigger("change")},100)}};i.data("defaultColor")&&(t.defaultColor=i.data("defaultColor")),i.wpColorPicker(t)});var m=function(){e(this).toggleClass("siteorigin-widget-section-visible"),e(this).siblings(".siteorigin-widget-section").slideToggle("fast",function(){if(e(window).resize(),e(this).find("> .siteorigin-widget-field-container-state").val(e(this).is(":visible")?"open":"closed"),e(this).is(":visible")){e(this).find("> .siteorigin-widget-field").trigger("sowsetupformfield")}})};u.filter(".siteorigin-widget-field-type-widget, .siteorigin-widget-field-type-section").find("> label").click(m),u.filter(".siteorigin-widget-field-type-posts").find(".posts-container-label-wrapper").click(m),u.filter(".siteorigin-widget-field-type-slider").each(function(){var i=e(this),t=i.find('input[type="number"]'),n=i.find(".siteorigin-widget-value-slider");n.slider({max:parseInt(t.attr("max")),min:parseInt(t.attr("min")),value:parseInt(t.val()),slide:function(e,i){t.val(parseInt(i.value)),t.trigger("change")},change:function(e,t){i.find(".siteorigin-widget-slider-value").html(t.value)}}),t.change(function(e,i){i&&i.silent||n.slider("value",parseInt(t.val()))})}),u.filter(".siteorigin-widget-field-type-link").each(function(){var i=e(this),t=null,n=function(){null!==t&&t.abort();var n=i.find(".content-text-search"),r=n.val(),a=n.data("postTypes"),s=i.find("ul.posts").empty().addClass("loading");e.get(soWidgets.ajaxurl,{action:"so_widgets_search_posts",query:r,postTypes:a},function(i){for(var t=0;t<i.length;t++)""===i[t].label&&(i[t].label=" "),s.append(e("<li>").addClass("post").html(i[t].label+"<span>("+i[t].type+")</span>").data(i[t]));s.removeClass("loading")})};i.find(".select-content-button, .button-close").click(function(t){t.preventDefault(),e(this).blur();var r=i.find(".existing-content-selector");r.toggle(),r.is(":visible")&&0===r.find("ul.posts li").length&&n()}),i.on("click",".posts li",function(t){t.preventDefault();var n=e(this);i.find("input.siteorigin-widget-input").val("post: "+n.data("value")),i.find(".existing-content-selector").toggle()});var r=null;i.find(".content-text-search").keyup(function(){null!==r&&clearTimeout(r),r=setTimeout(function(){n()},500)})}),void 0!==jQuery.fn.soPanelsSetupBuilderWidget&&u.filter(".siteorigin-widget-field-type-builder").each(function(){e(this).find("> .siteorigin-page-builder-field").soPanelsSetupBuilderWidget()});var w=function(){var i=e(this),t=i.closest("[data-state-emitter]").data("state-emitter");if(void 0!==t){var r={default:""};void 0===t.length&&(t=[t]);for(var a=0;a<t.length;a++)r=function(t,n){if(void 0===sowEmitters[t.callback]||"_"===t.callback.substr(0,1))return n;var r=sowbForms.getRepeaterId(i);!1!==r&&(t.args=t.args.map(function(e){return e.replace("{$repeater}",r)}));var a=i.is('[type="checkbox"]')?i.is(":checked"):i.val();return e.extend(n,sowEmitters[t.callback](a,t.args))}(t[a],r);var s=n.data("states");void 0===s&&(s={default:""});for(var o in r)void 0!==s[o]&&r[o]===s[o]||(s[o]=r[o],n.trigger("sowstatechange",[o,r[o]]));n.data("states",s)}};u.filter("[data-state-emitter]").each(function(){e(this).find(".siteorigin-widget-input").on("keyup change",w),e(this).find(".siteorigin-widget-input").each(function(){var i=e(this);i.is(":radio")?i.is(":checked")&&w.call(i[0]):w.call(i[0])})}),r.trigger("sowsetupform",u).data("sow-form-setup",!0),u.trigger("sowsetupformfield"),r.find(".siteorigin-widget-field-repeater-item").trigger("updateFieldPositions"),(s.hasClass("wp-customizer")||s.hasClass("widgets-php"))&&r.closest(".ui-sortable").on("sortstop",function(e,i){i.item.find(".siteorigin-widget-form").find("> .siteorigin-widget-field").trigger("sowsetupformfield")}),a=!1})},e.fn.sowSetupPreview=function(){var i=e(this);i.siblings(".siteorigin-widget-preview").find("> a").click(function(t){t.preventDefault();var n=sowbForms.getWidgetFormValues(i),r=e(e("#so-widgets-bundle-tpl-preview-dialog").html().trim()).appendTo("body");r.find('input[name="data"]').val(JSON.stringify(n)),r.find('input[name="class"]').val(i.data("class")),r.find("iframe").on("load",function(){e(this).css("visibility","visible")}),r.find("form").submit(),r.find(".close").click(function(){r.remove()})})},e.fn.sowSetupRepeater=function(){return e(this).each(function(i,t){var n=e(t),r=n.find(".siteorigin-widget-field-repeater-items"),a=n.data("repeater-name");r.bind("updateFieldPositions",function(){var i=e(this),t=i.find("> .siteorigin-widget-field-repeater-item");t.each(function(i,t){e(t).find(".siteorigin-widget-input").each(function(t,n){var r=e(n).data("repeater-positions");void 0===r&&(r={}),r[a]=i,e(n).data("repeater-positions",r)})}),i.find(".siteorigin-widget-input").each(function(i,t){var n=e(t).data("repeater-positions"),r=e(t);if(void 0!==n){var a=r.attr("data-original-name");if(a||(r.attr("data-original-name",r.attr("name")),a=r.attr("name")),!a)return;if(n)for(var s in n)a=a.replace("#"+s+"#",n[s]);r.attr("name",a)}}),i.data("initialSetup")||(i.find(".siteorigin-widget-input").each(function(i,t){var n=e(t);n.prop("checked",n.prop("defaultChecked"))}),i.data("initialSetup",!0));var r=n.data("scroll-count")?parseInt(n.data("scroll-count")):0;if(r>0&&t.length>r){var s=t.first().outerHeight();i.css("max-height",s*r).css("overflow","auto")}else i.css("max-height","").css("overflow","")}),r.sortable({handle:".siteorigin-widget-field-repeater-item-top",items:"> .siteorigin-widget-field-repeater-item",update:function(){r.trigger("updateFieldPositions")},sortstop:function(i,t){if(t.item.is(".siteorigin-widget-field-repeater-item"))t.item.find("> .siteorigin-widget-field-repeater-item-form").each(function(){e(this).find("> .siteorigin-widget-field").trigger("sowsetupformfield")});else{t.item.find(".siteorigin-widget-form").find("> .siteorigin-widget-field").trigger("sowsetupformfield")}}}),r.trigger("updateFieldPositions"),n.find("> .siteorigin-widget-field-repeater-add").disableSelection().click(function(i){i.preventDefault(),n.closest(".siteorigin-widget-field-repeater").sowAddRepeaterItem().find("> .siteorigin-widget-field-repeater-items").slideDown("fast",function(){e(window).resize()})}),n.find("> .siteorigin-widget-field-repeater-top > .siteorigin-widget-field-repeater-expand").click(function(i){i.preventDefault(),n.closest(".siteorigin-widget-field-repeater").find("> .siteorigin-widget-field-repeateritems-").slideToggle("fast",function(){e(window).resize()})})})},e.fn.sowAddRepeaterItem=function(){return e(this).each(function(i,t){var n=e(t),r=n.find("> .siteorigin-widget-field-repeater-items").children().length+1,a=e("<div>"+n.find("> .siteorigin-widget-field-repeater-item-html").html()+"</div>");a.find(".siteorigin-widget-input[data-name]").each(function(){var i=e(this);0===i.closest(".siteorigin-widget-field-repeater-item-html").length&&i.attr("name",e(this).data("name"))});var s=a.html().replace(/_id_/g,r),o=void 0!==n.attr("readonly"),d=e('<div class="siteorigin-widget-field-repeater-item ui-draggable" />').append(e('<div class="siteorigin-widget-field-repeater-item-top" />').append(e('<div class="siteorigin-widget-field-expand" />')).append(o?"":e('<div class="siteorigin-widget-field-copy" />')).append(o?"":e('<div class="siteorigin-widget-field-remove" />')).append(e("<h4 />").html(n.data("item-name")))).append(e('<div class="siteorigin-widget-field-repeater-item-form" />').html(s));n.find("> .siteorigin-widget-field-repeater-items").append(d).sortable("refresh").trigger("updateFieldPositions"),d.sowSetupRepeaterItems(),d.hide().slideDown("fast",function(){e(window).resize()})})},e.fn.sowRemoveRepeaterItem=function(){return e(this).each(function(i,t){var n=e(this).closest(".siteorigin-widget-field-repeater-items");e(this).remove(),n.sortable("refresh").trigger("updateFieldPositions")})},e.fn.sowSetupRepeaterItems=function(){return e(this).each(function(i,t){var n=e(t);if(void 0===n.data("sowrepeater-actions-setup")){var r=n.closest(".siteorigin-widget-field-repeater"),a=n.find("> .siteorigin-widget-field-repeater-item-top"),s=r.data("item-label");if(s&&s.selector){var o=function(){var e=s.hasOwnProperty("valueMethod")&&s.valueMethod?s.valueMethod:"val",i=n.find(s.selector)[e]();i&&(i.length>80&&(i=i.substr(0,79)+"..."),a.find("h4").text(i))};o();var d=s.hasOwnProperty("updateEvent")&&s.updateEvent?s.updateEvent:"change";n.bind(d,o)}a.click(function(i){"siteorigin-widget-field-remove"!==i.target.className&&"siteorigin-widget-field-copy"!==i.target.className&&(i.preventDefault(),e(this).closest(".siteorigin-widget-field-repeater-item").find(".siteorigin-widget-field-repeater-item-form").eq(0).slideToggle("fast",function(){if(e(window).resize(),e(this).is(":visible")){e(this).trigger("slideToggleOpenComplete");e(this).find("> .siteorigin-widget-field").trigger("sowsetupformfield")}else e(this).trigger("slideToggleCloseComplete")}))}),a.find(".siteorigin-widget-field-remove").click(function(i,t){i.preventDefault();var n=e(this).closest(".siteorigin-widget-field-repeater-items"),r=e(this).closest(".siteorigin-widget-field-repeater-item"),a=function(){r.remove(),n.sortable("refresh").trigger("updateFieldPositions"),e(window).resize()};t&&t.silent?a():confirm(soWidgets.sure)&&r.slideUp("fast",a)}),a.find(".siteorigin-widget-field-copy").click(function(i){i.preventDefault();var t=e(this).closest(".siteorigin-widget-form-main"),r=e(this).closest(".siteorigin-widget-field-repeater-item"),a=r.clone(),s=r.closest(".siteorigin-widget-field-repeater-items"),o=s.children().length,d={};a.find("*[name]").each(function(){var i=e(this),s=i.attr("id"),l=i.attr("name");if(i.is("textarea")&&i.parent().is(".wp-editor-container")&&"undefined"!=typeof tinymce){i.parent().empty().append(i),i.css("display","");var f=tinymce.get(s);f&&i.val(f.getContent())}else if(i.is(".wp-color-picker")){var g=i.closest(".wp-picker-container"),c=i.closest(".siteorigin-widget-field");g.remove(),c.append(i.remove())}else{var p=r.find('[name="'+l+'"]');p.length&&null!=p.val()&&i.val(p.val())}if(s){var u,m,w;if(i.is('[type="radio"]')){m=s.replace(/-\d+-\d+$/,"");var v=s.replace(/-\d+$/,"");if(!d[m]){var h={};d[m]=t.find(".siteorigin-widget-input[id^="+m+"]").not("[id*=_id_]").filter(function(i,t){var n=e(t).attr("name");return!h[n]&&(h[n]=!0,!0)}).length+1}var b=m+"-"+d[m];w=b+s.match(/-\d+$/)[0],a.find("label[for="+v+"]").attr("for",b)}else u=new RegExp("-\\d+$"),m=s.replace(u,""),d[m]||(d[m]=t.find(".siteorigin-widget-input[id^="+m+"]").not("[id*=_id_]").length+1),w=m+"-"+d[m]++;i.attr("id",w),a.find("label[for="+s+"]").attr("for",w),a.find("[id*="+s+"]").each(function(){var i=e(this).attr("id"),t=i.replace(s,w);e(this).attr("id",t)}),"undefined"!=typeof tinymce&&tinymce.get(w)&&tinymce.get(w).remove()}var y=r.parents(".siteorigin-widget-field-repeater").length,k=e("body");(k.hasClass("wp-customizer")||k.hasClass("widgets-php"))&&0===n.closest(".panel-dialog").length&&(y+=1);var _=l.replace(new RegExp("((?:.*?\\[\\d+\\]){"+(y-1).toString()+"})?(.*?\\[)\\d+(\\])"),"$1$2"+o.toString()+"$3");i.attr("name",_),i.data("original-name",_)}),s.append(a).sortable("refresh").trigger("updateFieldPositions"),a.sowSetupRepeaterItems(),a.hide().slideDown("fast",function(){e(window).resize()})}),n.find("> .siteorigin-widget-field-repeater-item-form").sowSetupForm(),n.data("sowrepeater-actions-setup",!0)}})},sowbForms.getRepeaterId=function(e){void 0===this.id&&(this.id=1);var i=e.closest(".siteorigin-widget-field-repeater-item");if(i.length){var t=i.data("item-id");return void 0===t&&(t=this.id++),i.data("item-id",t),t}return!1},sowbForms.getWidgetFieldVariable=function(e,i,t){var n=window.sow_field_javascript_variables[e];i=i.replace(/\[#.*?#\]/g,"");for(var r=/[a-zA-Z0-9\-]+(?:\[c?[0-9]+\])?\[(.*)\]/.exec(i)[1],a=r.split("]["),s=a.length?n:null;a.length;)s=s[a.shift()];return s[t]},sowbForms.fetchWidgetVariable=function(i,t,n){window.sowVars=window.sowVars||{},void 0===window.sowVars[t]?e.post(soWidgets.ajaxurl,{action:"sow_get_javascript_variables",widget:t,key:i},function(e){window.sowVars[t]=e,n(window.sowVars[t][i])}):n(window.sowVars[t][i])},sowbForms.getWidgetFormValues=function(i){if(_.isUndefined(i))return null;var t={};return i.find("*[name]").each(function(){var i=e(this);try{var n=/[a-zA-Z0-9\-]+\[[a-zA-Z0-9]+\]\[(.*)\]/.exec(i.attr("name"));if(_.isEmpty(n))return!0;n=n[1];var r=n.split("][");r=r.map(function(e){return!isNaN(parseFloat(e))&&isFinite(e)?parseInt(e):e});var a=t,s=null,o=_.isString(i.attr("type"))?i.attr("type").toLowerCase():null;if("checkbox"===o)s=!!i.is(":checked")&&(""===i.val()||i.val());else if("radio"===o){if(!i.is(":checked"))return;s=i.val()}else if("TEXTAREA"===i.prop("tagName")&&i.hasClass("wp-editor-area")){var d=null;"undefined"!=typeof tinyMCE&&(d=tinyMCE.get(i.attr("id"))),s=null===d||"function"!=typeof d.getContent||d.isHidden()?i.val():d.getContent()}else if("SELECT"===i.prop("tagName")){var l=i.find("option:selected");1===l.length?s=i.find("option:selected").val():l.length>1&&(s=_.map(i.find("option:selected"),function(i,t){return e(i).val()}))}else s=i.val();for(var f=0;f<r.length;f++)f===r.length-1?""===r[f]?a.push(s):a[r[f]]=s:(_.isUndefined(a[r[f]])&&(_.isNumber(r[f+1])||""===r[f+1]?a[r[f]]=[]:a[r[f]]={}),a=a[r[f]])}catch(e){console.error("Field ["+i.attr("name")+"] could not be processed and was skipped - "+e.message)}}),t},sowbForms.setWidgetFormValues=function(i,t){var n=0,r=function(i,t){10!=++n&&i.find("> .siteorigin-widget-field-type-repeater").each(function(){var i=e(this).find("> .siteorigin-widget-field-repeater"),n=i.data("repeaterName"),a=t.hasOwnProperty(n)?t[n]:null;if(a&&Array.isArray(a)&&0!==a.length){var s=i.find("> .siteorigin-widget-field-repeater-items > .siteorigin-widget-field-repeater-item"),o=a.length,d=s.length;if(o>d)for(var l=0;l<o-d;l++)i.find("> .siteorigin-widget-field-repeater-add").click();else if(o<d)for(var f=o;f<d;f++){var g=e(s.eq(f));g.find("> .siteorigin-widget-field-repeater-item-top").find(".siteorigin-widget-field-remove").trigger("click",{silent:!0})}s=i.find("> .siteorigin-widget-field-repeater-items > .siteorigin-widget-field-repeater-item");for(var c=0;c<s.length;c++)s.eq(c).find("> .siteorigin-widget-field-repeater-item-form"),r(s.eq(c).find("> .siteorigin-widget-field-repeater-item-form"),a[c])}})};r(i,t),i.find("*[name]").each(function(){var i=e(this),n=/[a-zA-Z0-9\-]+\[[a-zA-Z0-9]+\]\[(.*)\]/.exec(i.attr("name"));if(void 0===n)return!0;n=n[1];var r=n.split("][");r=r.map(function(e){return!isNaN(parseFloat(e))&&isFinite(e)?parseInt(e):e});for(var a,s=t,o=0;o<r.length;o++)o===r.length-1?a=s[r[o]]:s=s[r[o]];if("checkbox"===i.attr("type"))i.prop("checked",a);else if("radio"===i.attr("type"))i.prop("checked",a===i.val());else if("TEXTAREA"===i.prop("tagName")&&i.hasClass("wp-editor-area")){var d=null;"undefined"!=typeof tinyMCE&&(d=tinyMCE.get(i.attr("id"))),null===d||"function"!=typeof d.getContent||d.isHidden()?i.val(a):d.setContent(a)}else i.val(a);i.trigger("change")})},e(".widgets-holder-wrap").on("click",".widget:has(.siteorigin-widget-form-main) .widget-top",function(){var i=e(this).closest(".widget").find(".siteorigin-widget-form-main");setTimeout(function(){i.sowSetupForm()},200)}),e("body").hasClass("wp-customizer")&&e(document).on("widget-added",function(e,i){i.find(".siteorigin-widget-form").sowSetupForm()}),e(document).on("open_dialog",function(i,t){if(t.$el.find(".so-panels-dialog").is(".so-panels-dialog-edit-widget")){e(i.target).find(".siteorigin-widget-form-main").find("> .siteorigin-widget-field").trigger("sowsetupformfield")}}),e(function(){e(document).trigger("sowadminloaded")})}(jQuery);var sowEmitters={_match:function(e,i){void 0===i&&(i=".*");var t=new RegExp("^([a-zA-Z0-9_-]+)(\\[([a-zA-Z0-9_-]+)\\])? *: *("+i+") *$"),n=t.exec(e);if(null===n)return!1;var r="",a="default";return void 0!==n[3]?(a=n[1],r=n[3]):r=n[1],{match:n[4].trim(),group:a,state:r}},_checker:function(e,i,t,n){var r={};void 0===i.length&&(i=[i]);for(var a,s=0;s<i.length;s++)!1!==(a=sowEmitters._match(i[s],t))&&("_true"===a.match||n(e,i,a.match))&&(r[a.group]=a.state);return r},select:function(e,i){void 0===i.length&&(i=[i]);for(var t={},n=0;n<i.length;n++)""===i[n]&&(i[n]="default"),t[i[n]]=e;return t},conditional:function(val,args){return sowEmitters._checker(val,args,"[^;{}]*",function(val,args,match){return eval(match)})},in:function(e,i){return sowEmitters._checker(e,i,"[^;{}]*",function(e,i,t){return-1!==t.split(",").map(function(e){return e.trim()}).indexOf(e)})}};window.sowbForms=sowbForms;
|
compat/beaver-builder/beaver-builder.php
CHANGED
@@ -63,15 +63,13 @@ class SiteOrigin_Widgets_Bundle_Beaver_Builder {
|
|
63 |
) );
|
64 |
}
|
65 |
|
66 |
-
wp_enqueue_style( 'dashicons' );
|
67 |
-
wp_enqueue_media();
|
68 |
-
|
69 |
wp_enqueue_style( 'sowb-styles-for-beaver', plugin_dir_url( __FILE__ ) . 'styles.css' );
|
70 |
-
|
|
|
71 |
wp_enqueue_script(
|
72 |
'sowb-js-for-beaver',
|
73 |
plugin_dir_url( __FILE__ ) . 'sowb-beaver-builder' . SOW_BUNDLE_JS_SUFFIX . '.js',
|
74 |
-
|
75 |
);
|
76 |
|
77 |
wp_enqueue_style( 'siteorigin-widget-admin', plugin_dir_url(SOW_BUNDLE_BASE_FILE).'base/css/admin.css', array( 'media-views' ), SOW_BUNDLE_VERSION );
|
63 |
) );
|
64 |
}
|
65 |
|
|
|
|
|
|
|
66 |
wp_enqueue_style( 'sowb-styles-for-beaver', plugin_dir_url( __FILE__ ) . 'styles.css' );
|
67 |
+
|
68 |
+
$deps = ( defined( 'WP_DEBUG' ) && WP_DEBUG ) ? array( 'jquery', 'fl-builder' ) : array( 'fl-builder-min' );
|
69 |
wp_enqueue_script(
|
70 |
'sowb-js-for-beaver',
|
71 |
plugin_dir_url( __FILE__ ) . 'sowb-beaver-builder' . SOW_BUNDLE_JS_SUFFIX . '.js',
|
72 |
+
$deps
|
73 |
);
|
74 |
|
75 |
wp_enqueue_style( 'siteorigin-widget-admin', plugin_dir_url(SOW_BUNDLE_BASE_FILE).'base/css/admin.css', array( 'media-views' ), SOW_BUNDLE_VERSION );
|
compat/beaver-builder/sowb-beaver-builder.js
CHANGED
@@ -2,6 +2,12 @@ var sowb = window.sowb || {};
|
|
2 |
|
3 |
( function($){
|
4 |
if( typeof FLBuilder !== 'undefined') {
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
sowb.orig_FLBuilder_getSettings = FLBuilder._getSettings;
|
6 |
|
7 |
/**
|
2 |
|
3 |
( function($){
|
4 |
if( typeof FLBuilder !== 'undefined') {
|
5 |
+
// If you're going to override jQuery's `ready` function, at least make sure it still works. :/
|
6 |
+
sowb.orig_FLBuilder_initJQueryReadyFix = FLBuilder._initJQueryReadyFix;
|
7 |
+
FLBuilder._initJQueryReadyFix = function() {
|
8 |
+
return;
|
9 |
+
};
|
10 |
+
|
11 |
sowb.orig_FLBuilder_getSettings = FLBuilder._getSettings;
|
12 |
|
13 |
/**
|
compat/beaver-builder/sowb-beaver-builder.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
var sowb=window.sowb||{};!function(e){"undefined"!=typeof FLBuilder&&(sowb.orig_FLBuilder_getSettings=FLBuilder._getSettings,FLBuilder._getSettings=function(i){FLBuilder._updateEditorFields(),i.find(".siteorigin-widget-input");var r=i.serializeArray(),n=0,t=0,
|
1 |
+
var sowb=window.sowb||{};!function(e){"undefined"!=typeof FLBuilder&&(sowb.orig_FLBuilder_initJQueryReadyFix=FLBuilder._initJQueryReadyFix,FLBuilder._initJQueryReadyFix=function(){},sowb.orig_FLBuilder_getSettings=FLBuilder._getSettings,FLBuilder._getSettings=function(i){FLBuilder._updateEditorFields(),i.find(".siteorigin-widget-input");var r=i.serializeArray(),n=0,t=0,d="",l="",u="",a=[],o=[],s={};for(n=0;n<r.length;n++)if(d=r[n].value.replace(/\r/gm,""),!(r[n].name.indexOf("flrich")>-1))if(r[n].name.indexOf("[")>-1){for(l=r[n].name.replace(/\[(.*)\]/,""),u=r[n].name.replace(l,""),a=[],o=u.match(/\[[^\]]*\]/g),t=0;t<o.length;t++)"[]"!=o[t]&&a.push(o[t].replace(/\[|\]/g,""));var f=function(e,i,r,n){0==n.length?e[r]=i:(void 0===e[r]&&(e[r]={}),f(e[r],i,n.shift(),n))};if(a.length>0){var g=a.slice();void 0===s[l]&&(s[l]={}),f(s[l],d,g.shift(),g)}else void 0===s[l]&&(s[l]=[]),s[l].push(d)}else s[r[n].name]=d;for(u in s)if(void 0!==s["as_values_"+u]){s[u]=e.grep(s["as_values_"+u].split(","),function(e){return""!==e}).join(",");try{delete s["as_values_"+u]}catch(e){}}return s}),e(document).on("fl-builder.preview-rendered fl-builder.layout-rendered",".fl-builder-content",function(){e(sowb).trigger("setup_widgets")})}(jQuery);
|
compat/elementor/elementor.php
CHANGED
@@ -16,20 +16,23 @@ class SiteOrigin_Widgets_Bundle_Elementor {
|
|
16 |
private $plugin;
|
17 |
|
18 |
function __construct() {
|
19 |
-
add_action( '
|
|
|
20 |
|
21 |
add_action( 'wp_ajax_elementor_render_widget', array( $this, 'ajax_render_widget_preview' ) );
|
22 |
add_action( 'wp_ajax_elementor_editor_get_wp_widget_form', array( $this, 'ajax_render_widget_form' ) );
|
23 |
}
|
24 |
|
25 |
-
function
|
|
|
|
|
|
|
|
|
26 |
$this->plugin = Elementor\Plugin::instance();
|
27 |
if ( !empty( $this->plugin->preview ) && method_exists( $this->plugin->preview, 'is_preview_mode' ) && $this->plugin->preview->is_preview_mode() ) {
|
28 |
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_frontend_scripts' ) );
|
29 |
add_action( 'elementor/preview/enqueue_styles', array( $this, 'enqueue_preview_scripts' ) );
|
30 |
}
|
31 |
-
|
32 |
-
add_action( 'elementor/editor/before_enqueue_scripts', array( $this, 'enqueue_active_widgets_scripts' ) );
|
33 |
}
|
34 |
|
35 |
function enqueue_frontend_scripts() {
|
@@ -103,10 +106,7 @@ class SiteOrigin_Widgets_Bundle_Elementor {
|
|
103 |
|
104 |
function render_widget_preview( $widget_output ) {
|
105 |
|
106 |
-
|
107 |
-
|
108 |
-
// Print any styles we may have enqueued for live preview.
|
109 |
-
wp_print_styles( $wp_styles->queue );
|
110 |
|
111 |
return $widget_output;
|
112 |
}
|
16 |
private $plugin;
|
17 |
|
18 |
function __construct() {
|
19 |
+
add_action( 'admin_action_elementor', array( $this, 'init_editor' ) );
|
20 |
+
add_action( 'template_redirect', array( $this, 'init_preview' ) );
|
21 |
|
22 |
add_action( 'wp_ajax_elementor_render_widget', array( $this, 'ajax_render_widget_preview' ) );
|
23 |
add_action( 'wp_ajax_elementor_editor_get_wp_widget_form', array( $this, 'ajax_render_widget_form' ) );
|
24 |
}
|
25 |
|
26 |
+
function init_editor() {
|
27 |
+
add_action( 'elementor/editor/before_enqueue_scripts', array( $this, 'enqueue_active_widgets_scripts' ) );
|
28 |
+
}
|
29 |
+
|
30 |
+
function init_preview() {
|
31 |
$this->plugin = Elementor\Plugin::instance();
|
32 |
if ( !empty( $this->plugin->preview ) && method_exists( $this->plugin->preview, 'is_preview_mode' ) && $this->plugin->preview->is_preview_mode() ) {
|
33 |
add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_frontend_scripts' ) );
|
34 |
add_action( 'elementor/preview/enqueue_styles', array( $this, 'enqueue_preview_scripts' ) );
|
35 |
}
|
|
|
|
|
36 |
}
|
37 |
|
38 |
function enqueue_frontend_scripts() {
|
106 |
|
107 |
function render_widget_preview( $widget_output ) {
|
108 |
|
109 |
+
siteorigin_widget_print_styles();
|
|
|
|
|
|
|
110 |
|
111 |
return $widget_output;
|
112 |
}
|
lang/so-widgets-bundle.pot
CHANGED
@@ -17,7 +17,7 @@ msgstr ""
|
|
17 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
18 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
19 |
|
20 |
-
#: tmp/admin/tpl/admin.php:9, tmp/so-widgets-bundle.php:
|
21 |
msgid "SiteOrigin Widgets Bundle"
|
22 |
msgstr ""
|
23 |
|
@@ -69,19 +69,27 @@ msgstr ""
|
|
69 |
msgid "Save"
|
70 |
msgstr ""
|
71 |
|
72 |
-
#: tmp/base/inc/actions.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
msgid "Widget Preview"
|
74 |
msgstr ""
|
75 |
|
76 |
-
#: tmp/base/inc/actions.php:
|
77 |
msgid "Nonce error"
|
78 |
msgstr ""
|
79 |
|
80 |
-
#: tmp/base/inc/actions.php:
|
81 |
msgid "Signature error"
|
82 |
msgstr ""
|
83 |
|
84 |
-
#: tmp/base/inc/actions.php:
|
85 |
msgid "Attachment error"
|
86 |
msgstr ""
|
87 |
|
@@ -109,7 +117,7 @@ msgstr ""
|
|
109 |
msgid "SiteOrigin Page Builder"
|
110 |
msgstr ""
|
111 |
|
112 |
-
#: tmp/base/inc/fields/date-range.class.php:31, tmp/base/inc/fields/date-range.class.php:45, tmp/widgets/contact/contact.php:
|
113 |
msgid "From"
|
114 |
msgstr ""
|
115 |
|
@@ -533,7 +541,7 @@ msgstr ""
|
|
533 |
msgid "SiteOrigin Widget"
|
534 |
msgstr ""
|
535 |
|
536 |
-
#: tmp/compat/visual-composer/visual-composer.php:40, tmp/so-widgets-bundle.php:
|
537 |
msgid "SiteOrigin Widgets"
|
538 |
msgstr ""
|
539 |
|
@@ -569,27 +577,31 @@ msgstr ""
|
|
569 |
msgid "Ionicons"
|
570 |
msgstr ""
|
571 |
|
572 |
-
#: tmp/so-widgets-bundle.php:
|
573 |
msgid "A new widget!"
|
574 |
msgstr ""
|
575 |
|
576 |
-
#: tmp/so-widgets-bundle.php:
|
|
|
|
|
|
|
|
|
577 |
msgid "%s was %s"
|
578 |
msgstr ""
|
579 |
|
580 |
-
#: tmp/so-widgets-bundle.php:
|
581 |
msgid "Activated"
|
582 |
msgstr ""
|
583 |
|
584 |
-
#: tmp/so-widgets-bundle.php:
|
585 |
msgid "Deactivated"
|
586 |
msgstr ""
|
587 |
|
588 |
-
#: tmp/so-widgets-bundle.php:
|
589 |
msgid "Manage Widgets"
|
590 |
msgstr ""
|
591 |
|
592 |
-
#: tmp/so-widgets-bundle.php:
|
593 |
msgid "Support"
|
594 |
msgstr ""
|
595 |
|
@@ -925,7 +937,7 @@ msgstr ""
|
|
925 |
msgid "Required Field"
|
926 |
msgstr ""
|
927 |
|
928 |
-
#: tmp/widgets/contact/contact.php:164, tmp/widgets/contact/contact.php:
|
929 |
msgid "Required field"
|
930 |
msgstr ""
|
931 |
|
@@ -1253,31 +1265,31 @@ msgstr ""
|
|
1253 |
msgid "Please write something"
|
1254 |
msgstr ""
|
1255 |
|
1256 |
-
#: tmp/widgets/contact/contact.php:
|
1257 |
msgid "Invalid email address."
|
1258 |
msgstr ""
|
1259 |
|
1260 |
-
#: tmp/widgets/contact/contact.php:
|
1261 |
msgid "Error sending email, please try again later."
|
1262 |
msgstr ""
|
1263 |
|
1264 |
-
#: tmp/widgets/contact/contact.php:
|
1265 |
msgid "A valid email is required"
|
1266 |
msgstr ""
|
1267 |
|
1268 |
-
#: tmp/widgets/contact/contact.php:
|
1269 |
msgid "The email address is invalid"
|
1270 |
msgstr ""
|
1271 |
|
1272 |
-
#: tmp/widgets/contact/contact.php:
|
1273 |
msgid "Missing subject"
|
1274 |
msgstr ""
|
1275 |
|
1276 |
-
#: tmp/widgets/contact/contact.php:
|
1277 |
msgid "Error validating your Captcha response."
|
1278 |
msgstr ""
|
1279 |
|
1280 |
-
#: tmp/widgets/contact/contact.php:
|
1281 |
msgid "Unfortunately our system identified your message as spam."
|
1282 |
msgstr ""
|
1283 |
|
17 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
18 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
19 |
|
20 |
+
#: tmp/admin/tpl/admin.php:9, tmp/so-widgets-bundle.php:199
|
21 |
msgid "SiteOrigin Widgets Bundle"
|
22 |
msgstr ""
|
23 |
|
69 |
msgid "Save"
|
70 |
msgstr ""
|
71 |
|
72 |
+
#: tmp/base/inc/actions.php:10, tmp/base/inc/actions.php:73, tmp/base/inc/actions.php:117, tmp/base/inc/actions.php:153, tmp/base/inc/actions.php:166, tmp/base/inc/actions.php:170, tmp/base/inc/actions.php:261, tmp/base/inc/actions.php:264, tmp/so-widgets-bundle.php:353, tmp/so-widgets-bundle.php:377, tmp/so-widgets-bundle.php:390, tmp/so-widgets-bundle.php:420, tmp/so-widgets-bundle.php:431, tmp/so-widgets-bundle.php:497, tmp/so-widgets-bundle.php:508
|
73 |
+
msgid "Invalid request."
|
74 |
+
msgstr ""
|
75 |
+
|
76 |
+
#: tmp/base/inc/actions.php:12, tmp/base/inc/actions.php:20, tmp/so-widgets-bundle.php:360, tmp/so-widgets-bundle.php:503
|
77 |
+
msgid "Invalid post."
|
78 |
+
msgstr ""
|
79 |
+
|
80 |
+
#: tmp/base/inc/actions.php:48, tmp/base/siteorigin-widget.class.php:635
|
81 |
msgid "Widget Preview"
|
82 |
msgstr ""
|
83 |
|
84 |
+
#: tmp/base/inc/actions.php:209
|
85 |
msgid "Nonce error"
|
86 |
msgstr ""
|
87 |
|
88 |
+
#: tmp/base/inc/actions.php:219
|
89 |
msgid "Signature error"
|
90 |
msgstr ""
|
91 |
|
92 |
+
#: tmp/base/inc/actions.php:245
|
93 |
msgid "Attachment error"
|
94 |
msgstr ""
|
95 |
|
117 |
msgid "SiteOrigin Page Builder"
|
118 |
msgstr ""
|
119 |
|
120 |
+
#: tmp/base/inc/fields/date-range.class.php:31, tmp/base/inc/fields/date-range.class.php:45, tmp/widgets/contact/contact.php:1150
|
121 |
msgid "From"
|
122 |
msgstr ""
|
123 |
|
541 |
msgid "SiteOrigin Widget"
|
542 |
msgstr ""
|
543 |
|
544 |
+
#: tmp/compat/visual-composer/visual-composer.php:40, tmp/so-widgets-bundle.php:447, tmp/so-widgets-bundle.php:448
|
545 |
msgid "SiteOrigin Widgets"
|
546 |
msgstr ""
|
547 |
|
577 |
msgid "Ionicons"
|
578 |
msgstr ""
|
579 |
|
580 |
+
#: tmp/so-widgets-bundle.php:215
|
581 |
msgid "A new widget!"
|
582 |
msgstr ""
|
583 |
|
584 |
+
#: tmp/so-widgets-bundle.php:357, tmp/so-widgets-bundle.php:380, tmp/so-widgets-bundle.php:423
|
585 |
+
msgid "Insufficient permissions."
|
586 |
+
msgstr ""
|
587 |
+
|
588 |
+
#: tmp/so-widgets-bundle.php:473
|
589 |
msgid "%s was %s"
|
590 |
msgstr ""
|
591 |
|
592 |
+
#: tmp/so-widgets-bundle.php:475
|
593 |
msgid "Activated"
|
594 |
msgstr ""
|
595 |
|
596 |
+
#: tmp/so-widgets-bundle.php:475
|
597 |
msgid "Deactivated"
|
598 |
msgstr ""
|
599 |
|
600 |
+
#: tmp/so-widgets-bundle.php:728
|
601 |
msgid "Manage Widgets"
|
602 |
msgstr ""
|
603 |
|
604 |
+
#: tmp/so-widgets-bundle.php:729
|
605 |
msgid "Support"
|
606 |
msgstr ""
|
607 |
|
937 |
msgid "Required Field"
|
938 |
msgstr ""
|
939 |
|
940 |
+
#: tmp/widgets/contact/contact.php:164, tmp/widgets/contact/contact.php:966
|
941 |
msgid "Required field"
|
942 |
msgstr ""
|
943 |
|
1265 |
msgid "Please write something"
|
1266 |
msgstr ""
|
1267 |
|
1268 |
+
#: tmp/widgets/contact/contact.php:978
|
1269 |
msgid "Invalid email address."
|
1270 |
msgstr ""
|
1271 |
|
1272 |
+
#: tmp/widgets/contact/contact.php:1052
|
1273 |
msgid "Error sending email, please try again later."
|
1274 |
msgstr ""
|
1275 |
|
1276 |
+
#: tmp/widgets/contact/contact.php:1070
|
1277 |
msgid "A valid email is required"
|
1278 |
msgstr ""
|
1279 |
|
1280 |
+
#: tmp/widgets/contact/contact.php:1072
|
1281 |
msgid "The email address is invalid"
|
1282 |
msgstr ""
|
1283 |
|
1284 |
+
#: tmp/widgets/contact/contact.php:1076
|
1285 |
msgid "Missing subject"
|
1286 |
msgstr ""
|
1287 |
|
1288 |
+
#: tmp/widgets/contact/contact.php:1110
|
1289 |
msgid "Error validating your Captcha response."
|
1290 |
msgstr ""
|
1291 |
|
1292 |
+
#: tmp/widgets/contact/contact.php:1142
|
1293 |
msgid "Unfortunately our system identified your message as spam."
|
1294 |
msgstr ""
|
1295 |
|
readme.txt
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
Tags: bundle, widget, button, slider, image, carousel, price table, google maps, tinymce, social links
|
3 |
Requires at least: 4.2
|
4 |
Tested up to: 4.8.1
|
5 |
-
Stable tag: 1.9.
|
6 |
-
Build time: 2017-08-
|
7 |
License: GPLv3 or later
|
8 |
Contributors: gpriday, braam-genis
|
9 |
Donate link: https://siteorigin.com/downloads/contribution/
|
@@ -54,6 +54,17 @@ The SiteOrigin Widgets Bundle is the perfect platform to build widgets for your
|
|
54 |
|
55 |
== Changelog ==
|
56 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
= 1.9.7 - 11 August 2017 =
|
58 |
* Contact: Added user configurable field for 'From:' address.
|
59 |
* TinyMCE field: Use editor stylesheets for new TinyMCE editor.
|
2 |
Tags: bundle, widget, button, slider, image, carousel, price table, google maps, tinymce, social links
|
3 |
Requires at least: 4.2
|
4 |
Tested up to: 4.8.1
|
5 |
+
Stable tag: 1.9.8
|
6 |
+
Build time: 2017-08-21T11:15:03+02:00
|
7 |
License: GPLv3 or later
|
8 |
Contributors: gpriday, braam-genis
|
9 |
Donate link: https://siteorigin.com/downloads/contribution/
|
54 |
|
55 |
== Changelog ==
|
56 |
|
57 |
+
= 1.9.8 - 21 August 2017 =
|
58 |
+
* Use WordPress functions to exit AJAX actions.
|
59 |
+
* TinyMCE field: Initialized once.
|
60 |
+
* TinyMCE field: Simplified switching between TinyMCE and QuickTags.
|
61 |
+
* TinyMCE field: Check if individual TinyMCE settings are encoded as JSON and decode before re-encoding all settings.
|
62 |
+
* Some compat fixes for Elementor.
|
63 |
+
* TinyMCE field: Temporarily disable Jetpack Grunion editor.
|
64 |
+
* Use correct JS dependencies for Beaver Builder compatibility when `WP_DEBUG` not defined.
|
65 |
+
* Removed unnecessary enqueues in Beaver Builder compat for dashicons and wp media scripts.
|
66 |
+
* Post carousel: Only handle horizontal swipes.
|
67 |
+
|
68 |
= 1.9.7 - 11 August 2017 =
|
69 |
* Contact: Added user configurable field for 'From:' address.
|
70 |
* TinyMCE field: Use editor stylesheets for new TinyMCE editor.
|
so-widgets-bundle.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/*
|
3 |
Plugin Name: SiteOrigin Widgets Bundle
|
4 |
Description: A collection of all widgets, neatly bundled into a single plugin. It's also a framework to code your own widgets on top of.
|
5 |
-
Version: 1.9.
|
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.9.
|
16 |
define('SOW_BUNDLE_BASE_FILE', __FILE__);
|
17 |
|
18 |
// Allow JS suffix to be pre-set
|
@@ -80,6 +80,9 @@ class SiteOrigin_Widgets_Bundle {
|
|
80 |
|
81 |
add_filter( 'wp_enqueue_scripts', array($this, 'register_general_scripts') );
|
82 |
add_filter( 'wp_enqueue_scripts', array($this, 'enqueue_active_widgets_scripts') );
|
|
|
|
|
|
|
83 |
}
|
84 |
|
85 |
/**
|
@@ -346,17 +349,22 @@ class SiteOrigin_Widgets_Bundle {
|
|
346 |
* @action wp_ajax_so_widgets_bundle_manage
|
347 |
*/
|
348 |
function admin_ajax_manage_handler(){
|
349 |
-
if( !wp_verify_nonce($_GET['_wpnonce'], 'manage_so_widget') )
|
350 |
-
|
351 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
352 |
|
353 |
if( !empty($_POST['active']) ) $this->activate_widget($_POST['widget']);
|
354 |
else $this->deactivate_widget( $_POST['widget'] );
|
355 |
|
356 |
// Send a kind of dummy response.
|
357 |
-
|
358 |
-
echo json_encode( array('done' => true) );
|
359 |
-
exit();
|
360 |
}
|
361 |
|
362 |
/**
|
@@ -365,16 +373,22 @@ class SiteOrigin_Widgets_Bundle {
|
|
365 |
* @action wp_ajax_so_widgets_setting_form
|
366 |
*/
|
367 |
function admin_ajax_settings_form(){
|
368 |
-
if( ! wp_verify_nonce($_GET['_wpnonce'], 'display-widget-form') )
|
369 |
-
|
|
|
|
|
|
|
|
|
370 |
|
371 |
$widget_objects = $this->get_widget_objects();
|
372 |
|
373 |
$widget_path = empty( $_GET['id'] ) ? false : WP_PLUGIN_DIR . $_GET['id'];
|
374 |
|
375 |
$widget_object = empty( $widget_objects[ $widget_path ] ) ? false : $widget_objects[ $widget_path ];
|
376 |
-
|
377 |
-
if( empty( $widget_object ) || ! $widget_object->has_form( 'settings' ) )
|
|
|
|
|
378 |
|
379 |
unset( $widget_object->widget_options['has_preview'] );
|
380 |
|
@@ -392,8 +406,8 @@ class SiteOrigin_Widgets_Bundle {
|
|
392 |
<?php $widget_object->form( $value, 'settings' ) ?>
|
393 |
</form>
|
394 |
<?php
|
395 |
-
|
396 |
-
|
397 |
}
|
398 |
|
399 |
/**
|
@@ -402,17 +416,25 @@ class SiteOrigin_Widgets_Bundle {
|
|
402 |
* @action wp_ajax_so_widgets_setting_save
|
403 |
*/
|
404 |
function admin_ajax_settings_save(){
|
405 |
-
if( ! wp_verify_nonce( $_GET['_wpnonce'], 'save-widget-settings' ) )
|
406 |
-
|
|
|
|
|
|
|
|
|
407 |
|
408 |
$widget_objects = $this->get_widget_objects();
|
409 |
$widget_path = empty( $_GET['id'] ) ? false : WP_PLUGIN_DIR . $_GET['id'];
|
410 |
$widget_object = empty( $widget_objects[ $widget_path ] ) ? false : $widget_objects[ $widget_path ];
|
411 |
-
|
412 |
-
if( empty( $widget_object ) || ! $widget_object->has_form( 'settings' ) )
|
|
|
|
|
413 |
|
414 |
$form_values = array_shift( array_shift( array_values( $_POST ) ) );
|
415 |
$widget_object->save_global_settings( $form_values );
|
|
|
|
|
416 |
}
|
417 |
|
418 |
/**
|
@@ -470,19 +492,25 @@ class SiteOrigin_Widgets_Bundle {
|
|
470 |
* Get javascript variables for admin.
|
471 |
*/
|
472 |
function admin_ajax_get_javascript_variables() {
|
473 |
-
if ( empty( $_REQUEST['_widgets_nonce'] ) ||
|
474 |
-
|
|
|
|
|
|
|
475 |
$widget_class = $_POST['widget'];
|
476 |
global $wp_widget_factory;
|
477 |
-
if (
|
478 |
-
|
479 |
-
if( method_exists( $widget, 'get_javascript_variables' ) ) $result = $widget->get_javascript_variables();
|
480 |
}
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
|
|
|
|
|
|
|
|
486 |
}
|
487 |
|
488 |
/**
|
2 |
/*
|
3 |
Plugin Name: SiteOrigin Widgets Bundle
|
4 |
Description: A collection of all widgets, neatly bundled into a single plugin. It's also a framework to code your own widgets on top of.
|
5 |
+
Version: 1.9.8
|
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.9.8');
|
16 |
define('SOW_BUNDLE_BASE_FILE', __FILE__);
|
17 |
|
18 |
// Allow JS suffix to be pre-set
|
80 |
|
81 |
add_filter( 'wp_enqueue_scripts', array($this, 'register_general_scripts') );
|
82 |
add_filter( 'wp_enqueue_scripts', array($this, 'enqueue_active_widgets_scripts') );
|
83 |
+
|
84 |
+
// This is a temporary filter to disable the new Jetpack Grunion contact form editor.
|
85 |
+
add_filter( 'tmp_grunion_allow_editor_view', '__return_false' );
|
86 |
}
|
87 |
|
88 |
/**
|
349 |
* @action wp_ajax_so_widgets_bundle_manage
|
350 |
*/
|
351 |
function admin_ajax_manage_handler(){
|
352 |
+
if ( ! wp_verify_nonce( $_GET['_wpnonce'], 'manage_so_widget' ) ) {
|
353 |
+
wp_die( __( 'Invalid request.', 'so-widgets-bundle' ), 403 );
|
354 |
+
}
|
355 |
+
|
356 |
+
if ( ! current_user_can( apply_filters( 'siteorigin_widgets_admin_menu_capability', 'manage_options' ) ) ) {
|
357 |
+
wp_die( __( 'Insufficient permissions.', 'so-widgets-bundle' ), 403 );
|
358 |
+
}
|
359 |
+
if ( empty( $_POST['widget'] ) ) {
|
360 |
+
wp_die( __( 'Invalid post.', 'so-widgets-bundle' ), 400 );
|
361 |
+
}
|
362 |
|
363 |
if( !empty($_POST['active']) ) $this->activate_widget($_POST['widget']);
|
364 |
else $this->deactivate_widget( $_POST['widget'] );
|
365 |
|
366 |
// Send a kind of dummy response.
|
367 |
+
wp_send_json( array( 'done' => true ) );
|
|
|
|
|
368 |
}
|
369 |
|
370 |
/**
|
373 |
* @action wp_ajax_so_widgets_setting_form
|
374 |
*/
|
375 |
function admin_ajax_settings_form(){
|
376 |
+
if ( ! wp_verify_nonce( $_GET['_wpnonce'], 'display-widget-form' ) ) {
|
377 |
+
wp_die( __( 'Invalid request.', 'so-widgets-bundle' ), 403 );
|
378 |
+
}
|
379 |
+
if ( ! current_user_can( apply_filters( 'siteorigin_widgets_admin_menu_capability', 'manage_options' ) ) ) {
|
380 |
+
wp_die( __( 'Insufficient permissions.', 'so-widgets-bundle' ), 403 );
|
381 |
+
}
|
382 |
|
383 |
$widget_objects = $this->get_widget_objects();
|
384 |
|
385 |
$widget_path = empty( $_GET['id'] ) ? false : WP_PLUGIN_DIR . $_GET['id'];
|
386 |
|
387 |
$widget_object = empty( $widget_objects[ $widget_path ] ) ? false : $widget_objects[ $widget_path ];
|
388 |
+
|
389 |
+
if ( empty( $widget_object ) || ! $widget_object->has_form( 'settings' ) ) {
|
390 |
+
wp_die( __( 'Invalid request.', 'so-widgets-bundle' ), 400 );
|
391 |
+
}
|
392 |
|
393 |
unset( $widget_object->widget_options['has_preview'] );
|
394 |
|
406 |
<?php $widget_object->form( $value, 'settings' ) ?>
|
407 |
</form>
|
408 |
<?php
|
409 |
+
|
410 |
+
wp_die();
|
411 |
}
|
412 |
|
413 |
/**
|
416 |
* @action wp_ajax_so_widgets_setting_save
|
417 |
*/
|
418 |
function admin_ajax_settings_save(){
|
419 |
+
if ( ! wp_verify_nonce( $_GET['_wpnonce'], 'save-widget-settings' ) ) {
|
420 |
+
wp_die( __( 'Invalid request.', 'so-widgets-bundle' ), 403 );
|
421 |
+
}
|
422 |
+
if ( ! current_user_can( apply_filters( 'siteorigin_widgets_admin_menu_capability', 'manage_options' ) ) ) {
|
423 |
+
wp_die( __( 'Insufficient permissions.', 'so-widgets-bundle' ), 403 );
|
424 |
+
}
|
425 |
|
426 |
$widget_objects = $this->get_widget_objects();
|
427 |
$widget_path = empty( $_GET['id'] ) ? false : WP_PLUGIN_DIR . $_GET['id'];
|
428 |
$widget_object = empty( $widget_objects[ $widget_path ] ) ? false : $widget_objects[ $widget_path ];
|
429 |
+
|
430 |
+
if ( empty( $widget_object ) || ! $widget_object->has_form( 'settings' ) ) {
|
431 |
+
wp_die( __( 'Invalid request.', 'so-widgets-bundle' ), 400 );
|
432 |
+
}
|
433 |
|
434 |
$form_values = array_shift( array_shift( array_values( $_POST ) ) );
|
435 |
$widget_object->save_global_settings( $form_values );
|
436 |
+
|
437 |
+
wp_send_json_success();
|
438 |
}
|
439 |
|
440 |
/**
|
492 |
* Get javascript variables for admin.
|
493 |
*/
|
494 |
function admin_ajax_get_javascript_variables() {
|
495 |
+
if ( empty( $_REQUEST['_widgets_nonce'] ) ||
|
496 |
+
! wp_verify_nonce( $_REQUEST['_widgets_nonce'], 'widgets_action' ) ) {
|
497 |
+
wp_die( __( 'Invalid request.', 'so-widgets-bundle' ), 403 );
|
498 |
+
}
|
499 |
+
|
500 |
$widget_class = $_POST['widget'];
|
501 |
global $wp_widget_factory;
|
502 |
+
if ( empty( $wp_widget_factory->widgets[ $widget_class ] ) ) {
|
503 |
+
wp_die( __( 'Invalid post.', 'so-widgets-bundle' ), 400 );
|
|
|
504 |
}
|
505 |
+
|
506 |
+
$widget = $wp_widget_factory->widgets[ $widget_class ];
|
507 |
+
if ( ! method_exists( $widget, 'get_javascript_variables' ) ) {
|
508 |
+
wp_die( __( 'Invalid request.', 'so-widgets-bundle' ), 400 );
|
509 |
+
}
|
510 |
+
|
511 |
+
$result = $widget->get_javascript_variables();
|
512 |
+
|
513 |
+
wp_send_json( $result );
|
514 |
}
|
515 |
|
516 |
/**
|
widgets/contact/contact.php
CHANGED
@@ -840,7 +840,7 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
|
|
840 |
$field_id = 'sow-contact-form-field-' . $field_name;
|
841 |
|
842 |
$value = '';
|
843 |
-
if ( ! empty( $_POST[ $field_name ] ) && wp_verify_nonce( $_POST['_wpnonce'] ) ) {
|
844 |
$value = stripslashes_deep( $_POST[ $field_name ] );
|
845 |
}
|
846 |
|
@@ -922,7 +922,11 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
|
|
922 |
* Ajax action handler to send the form
|
923 |
*/
|
924 |
function contact_form_action( $instance, $storage_hash ) {
|
925 |
-
if ( ! wp_verify_nonce( $_POST['_wpnonce'] ) ) {
|
|
|
|
|
|
|
|
|
926 |
return false;
|
927 |
}
|
928 |
if ( empty( $_POST['instance_hash'] ) || $_POST['instance_hash'] != $storage_hash ) {
|
840 |
$field_id = 'sow-contact-form-field-' . $field_name;
|
841 |
|
842 |
$value = '';
|
843 |
+
if ( ! empty( $_POST[ $field_name ] ) && wp_verify_nonce( $_POST['_wpnonce'], '_contact_form_submit' ) ) {
|
844 |
$value = stripslashes_deep( $_POST[ $field_name ] );
|
845 |
}
|
846 |
|
922 |
* Ajax action handler to send the form
|
923 |
*/
|
924 |
function contact_form_action( $instance, $storage_hash ) {
|
925 |
+
if ( ! wp_verify_nonce( $_POST['_wpnonce'], '_contact_form_submit' ) ) {
|
926 |
+
// Using `return false;` instead of `wp_die` because this function may sometimes be called as a side effect
|
927 |
+
// of trying to enqueue scripts required for the front end. In those cases `$_POST['_wpnonce']` doesn't exist
|
928 |
+
// and calling `wp_die` will halt script execution and break things. Ideally it should be possible to enqueue
|
929 |
+
// front end scripts without calling widgets' render functions, but that will mean a fairly large refactor.
|
930 |
return false;
|
931 |
}
|
932 |
if ( empty( $_POST['instance_hash'] ) || $_POST['instance_hash'] != $storage_hash ) {
|
widgets/contact/tpl/default.php
CHANGED
@@ -40,7 +40,7 @@ else {
|
|
40 |
|
41 |
<?php $this->render_form_fields( $instance['fields'], $result['errors'], $instance ) ?>
|
42 |
<input type="hidden" name="instance_hash" value="<?php echo esc_attr( $instance_hash ) ?>" />
|
43 |
-
<?php echo wp_nonce_field() ?>
|
44 |
|
45 |
<?php if( $use_recaptcha ) : ?>
|
46 |
<div class="sow-recaptcha"
|
40 |
|
41 |
<?php $this->render_form_fields( $instance['fields'], $result['errors'], $instance ) ?>
|
42 |
<input type="hidden" name="instance_hash" value="<?php echo esc_attr( $instance_hash ) ?>" />
|
43 |
+
<?php echo wp_nonce_field( '_contact_form_submit' ) ?>
|
44 |
|
45 |
<?php if( $use_recaptcha ) : ?>
|
46 |
<div class="sow-recaptcha"
|
widgets/image-grid/js/image-grid.js
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
/* globals jQuery, sowb */
|
2 |
var sowb = window.sowb || {};
|
3 |
|
4 |
-
jQuery( function($){
|
5 |
-
sowb.setupImageGrids = function(){
|
6 |
$('.sow-image-grid-wrapper').each( function(){
|
7 |
var $$ = $(this);
|
8 |
$$.imagesLoaded( function () {
|
1 |
/* globals jQuery, sowb */
|
2 |
var sowb = window.sowb || {};
|
3 |
|
4 |
+
jQuery( function($) {
|
5 |
+
sowb.setupImageGrids = function() {
|
6 |
$('.sow-image-grid-wrapper').each( function(){
|
7 |
var $$ = $(this);
|
8 |
$$.imagesLoaded( function () {
|
widgets/post-carousel/js/carousel.js
CHANGED
@@ -1,157 +1,163 @@
|
|
1 |
-
jQuery( function($){
|
2 |
-
|
3 |
-
|
4 |
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
$.get(
|
34 |
-
$$.data('ajax-url'),
|
35 |
-
{
|
36 |
-
query : $$.data('query'),
|
37 |
-
action : 'sow_carousel_load',
|
38 |
-
paged : page,
|
39 |
-
instance_hash : instanceHash,
|
40 |
-
},
|
41 |
-
function (data, status){
|
42 |
-
var $items = $(data.html);
|
43 |
-
$items.appendTo( $itemsContainer ).hide().fadeIn();
|
44 |
-
$$.find('.sow-carousel-loading').remove();
|
45 |
-
numItems = $$.find('.sow-carousel-item').length;
|
46 |
-
complete = numItems == totalPosts;
|
47 |
-
fetching = false;
|
48 |
-
}
|
49 |
-
)
|
50 |
-
}
|
51 |
-
}
|
52 |
-
$itemsContainer.css('transition-duration', "0.45s");
|
53 |
-
$itemsContainer.css(updateProp, -( itemWidth * position) + 'px' );
|
54 |
-
};
|
55 |
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
63 |
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
} );
|
1 |
+
jQuery( function ( $ ) {
|
2 |
+
// The carousel widget
|
3 |
+
$( '.sow-carousel-wrapper' ).each( function () {
|
4 |
|
5 |
+
var $$ = $( this ),
|
6 |
+
$postsContainer = $$.closest( '.sow-carousel-container' ),
|
7 |
+
$container = $$.closest( '.sow-carousel-container' ).parent(),
|
8 |
+
$itemsContainer = $$.find( '.sow-carousel-items' ),
|
9 |
+
$items = $$.find( '.sow-carousel-item' ),
|
10 |
+
$firstItem = $items.eq( 0 );
|
11 |
|
12 |
+
var position = 0,
|
13 |
+
page = 1,
|
14 |
+
fetching = false,
|
15 |
+
numItems = $items.length,
|
16 |
+
totalPosts = $$.data( 'found-posts' ),
|
17 |
+
complete = numItems === totalPosts,
|
18 |
+
itemWidth = ( $firstItem.width() + parseInt( $firstItem.css( 'margin-right' ) ) ),
|
19 |
+
isRTL = $postsContainer.hasClass( 'js-rtl' ),
|
20 |
+
updateProp = isRTL ? 'margin-right' : 'margin-left';
|
21 |
|
22 |
+
var updatePosition = function () {
|
23 |
+
if ( position < 0 ) position = 0;
|
24 |
+
if ( position >= $$.find( '.sow-carousel-item' ).length - 1 ) {
|
25 |
+
position = $$.find( '.sow-carousel-item' ).length - 1;
|
26 |
+
// Fetch the next batch
|
27 |
+
if ( !fetching && !complete ) {
|
28 |
+
fetching = true;
|
29 |
+
page++;
|
30 |
+
$itemsContainer.append( '<li class="sow-carousel-item sow-carousel-loading"></li>' );
|
31 |
+
var instanceHash = $container.find( 'input[name="instance_hash"]' ).val();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
|
33 |
+
$.get(
|
34 |
+
$$.data( 'ajax-url' ),
|
35 |
+
{
|
36 |
+
query: $$.data( 'query' ),
|
37 |
+
action: 'sow_carousel_load',
|
38 |
+
paged: page,
|
39 |
+
instance_hash: instanceHash,
|
40 |
+
},
|
41 |
+
function ( data, status ) {
|
42 |
+
var $items = $( data.html );
|
43 |
+
$items.appendTo( $itemsContainer ).hide().fadeIn();
|
44 |
+
$$.find( '.sow-carousel-loading' ).remove();
|
45 |
+
numItems = $$.find( '.sow-carousel-item' ).length;
|
46 |
+
complete = numItems === totalPosts;
|
47 |
+
fetching = false;
|
48 |
+
}
|
49 |
+
)
|
50 |
+
}
|
51 |
+
}
|
52 |
+
$itemsContainer.css( 'transition-duration', "0.45s" );
|
53 |
+
$itemsContainer.css( updateProp, -( itemWidth * position) + 'px' );
|
54 |
+
};
|
55 |
|
56 |
+
$container.on( 'click', 'a.sow-carousel-previous',
|
57 |
+
function ( e ) {
|
58 |
+
e.preventDefault();
|
59 |
+
position -= isRTL ? -1 : 1;
|
60 |
+
updatePosition();
|
61 |
+
}
|
62 |
+
);
|
63 |
+
|
64 |
+
$container.on( 'click', 'a.sow-carousel-next',
|
65 |
+
function ( e ) {
|
66 |
+
e.preventDefault();
|
67 |
+
position += isRTL ? -1 : 1;
|
68 |
+
updatePosition();
|
69 |
+
}
|
70 |
+
);
|
71 |
+
|
72 |
+
// Verify "swipe" method exists prior to invoking it.
|
73 |
+
if ( 'function' === typeof $$.swipe ) {
|
74 |
+
var validSwipe = false;
|
75 |
+
var prevDistance = 0;
|
76 |
+
var startPosition = 0;
|
77 |
+
var velocity = 0;
|
78 |
+
var prevTime = 0;
|
79 |
+
var posInterval;
|
80 |
+
var negativeDirection = isRTL ? 'right' : 'left';
|
81 |
+
|
82 |
+
var setNewPosition = function ( newPosition ) {
|
83 |
+
if ( newPosition < 50 && newPosition > -( itemWidth * numItems ) ) {
|
84 |
+
$itemsContainer.css( 'transition-duration', "0s" );
|
85 |
+
$itemsContainer.css( updateProp, newPosition + 'px' );
|
86 |
+
return true;
|
87 |
+
}
|
88 |
+
return false;
|
89 |
+
};
|
90 |
+
|
91 |
+
var setFinalPosition = function () {
|
92 |
+
var finalPosition = parseInt( $itemsContainer.css( updateProp ) );
|
93 |
+
position = Math.abs( Math.round( finalPosition / itemWidth ) );
|
94 |
+
updatePosition();
|
95 |
+
};
|
96 |
+
|
97 |
+
$$.on( 'click', '.sow-carousel-item a',
|
98 |
+
function ( event ) {
|
99 |
+
if ( validSwipe ) {
|
100 |
+
event.preventDefault();
|
101 |
+
validSwipe = false;
|
102 |
+
}
|
103 |
+
}
|
104 |
+
);
|
105 |
+
|
106 |
+
$$.swipe( {
|
107 |
+
excludedElements: "",
|
108 |
+
triggerOnTouchEnd: true,
|
109 |
+
threshold: 75,
|
110 |
+
swipeStatus: function ( event, phase, direction, distance, duration, fingerCount, fingerData ) {
|
111 |
+
if ( direction === 'up' || direction === 'down' ) {
|
112 |
+
return false;
|
113 |
+
}
|
114 |
+
|
115 |
+
if ( phase === "start" ) {
|
116 |
+
startPosition = -( itemWidth * position);
|
117 |
+
prevTime = new Date().getTime();
|
118 |
+
clearInterval( posInterval );
|
119 |
+
}
|
120 |
+
else if ( phase === "move" ) {
|
121 |
+
if ( direction === negativeDirection ) distance *= -1;
|
122 |
+
setNewPosition( startPosition + distance );
|
123 |
+
var newTime = new Date().getTime();
|
124 |
+
var timeDelta = (newTime - prevTime) / 1000;
|
125 |
+
velocity = (distance - prevDistance) / timeDelta;
|
126 |
+
prevTime = newTime;
|
127 |
+
prevDistance = distance;
|
128 |
+
}
|
129 |
+
else if ( phase === "end" ) {
|
130 |
+
validSwipe = true;
|
131 |
+
if ( direction === negativeDirection ) distance *= -1;
|
132 |
+
if ( Math.abs( velocity ) > 400 ) {
|
133 |
+
velocity *= 0.1;
|
134 |
+
var startTime = new Date().getTime();
|
135 |
+
var cumulativeDistance = 0;
|
136 |
+
posInterval = setInterval( function () {
|
137 |
+
var time = (new Date().getTime() - startTime) / 1000;
|
138 |
+
cumulativeDistance += velocity * time;
|
139 |
+
var newPos = startPosition + distance + cumulativeDistance;
|
140 |
+
var decel = 30;
|
141 |
+
var end = (Math.abs( velocity ) - decel) < 0;
|
142 |
+
if ( direction === negativeDirection ) {
|
143 |
+
velocity += decel;
|
144 |
+
} else {
|
145 |
+
velocity -= decel;
|
146 |
+
}
|
147 |
+
if ( end || !setNewPosition( newPos ) ) {
|
148 |
+
clearInterval( posInterval );
|
149 |
+
setFinalPosition();
|
150 |
+
}
|
151 |
+
}, 20 );
|
152 |
+
} else {
|
153 |
+
setFinalPosition();
|
154 |
+
}
|
155 |
+
}
|
156 |
+
else if ( phase === "cancel" ) {
|
157 |
+
updatePosition();
|
158 |
+
}
|
159 |
+
}
|
160 |
+
} );
|
161 |
+
}
|
162 |
+
} );
|
163 |
} );
|
widgets/post-carousel/js/carousel.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(function(e){e(".sow-carousel-wrapper").each(function(){var a=e(this),
|
1 |
+
jQuery(function(e){e(".sow-carousel-wrapper").each(function(){var a=e(this),n=a.closest(".sow-carousel-container"),t=a.closest(".sow-carousel-container").parent(),s=a.find(".sow-carousel-items"),i=a.find(".sow-carousel-item"),o=i.eq(0),r=0,c=1,l=!1,u=i.length,f=a.data("found-posts"),d=u===f,w=o.width()+parseInt(o.css("margin-right")),h=n.hasClass("js-rtl"),p=h?"margin-right":"margin-left",g=function(){if(r<0&&(r=0),r>=a.find(".sow-carousel-item").length-1&&(r=a.find(".sow-carousel-item").length-1,!l&&!d)){l=!0,c++,s.append('<li class="sow-carousel-item sow-carousel-loading"></li>');var n=t.find('input[name="instance_hash"]').val();e.get(a.data("ajax-url"),{query:a.data("query"),action:"sow_carousel_load",paged:c,instance_hash:n},function(n,t){e(n.html).appendTo(s).hide().fadeIn(),a.find(".sow-carousel-loading").remove(),u=a.find(".sow-carousel-item").length,d=u===f,l=!1})}s.css("transition-duration","0.45s"),s.css(p,-w*r+"px")};if(t.on("click","a.sow-carousel-previous",function(e){e.preventDefault(),r-=h?-1:1,g()}),t.on("click","a.sow-carousel-next",function(e){e.preventDefault(),r+=h?-1:1,g()}),"function"==typeof a.swipe){var m,v=!1,D=0,I=0,T=0,x=0,y=h?"right":"left",M=function(e){return e<50&&e>-w*u&&(s.css("transition-duration","0s"),s.css(p,e+"px"),!0)},_=function(){var e=parseInt(s.css(p));r=Math.abs(Math.round(e/w)),g()};a.on("click",".sow-carousel-item a",function(e){v&&(e.preventDefault(),v=!1)}),a.swipe({excludedElements:"",triggerOnTouchEnd:!0,threshold:75,swipeStatus:function(e,a,n,t,s,i,o){if("up"===n||"down"===n)return!1;if("start"===a)I=-w*r,x=(new Date).getTime(),clearInterval(m);else if("move"===a){n===y&&(t*=-1),M(I+t);var c=(new Date).getTime(),l=(c-x)/1e3;T=(t-D)/l,x=c,D=t}else if("end"===a)if(v=!0,n===y&&(t*=-1),Math.abs(T)>400){T*=.1;var u=(new Date).getTime(),f=0;m=setInterval(function(){var e=((new Date).getTime()-u)/1e3;f+=T*e;var a=I+t+f,s=Math.abs(T)-30<0;n===y?T+=30:T-=30,!s&&M(a)||(clearInterval(m),_())},20)}else _();else"cancel"===a&&g()}})}})});
|