Version Description
- 20 July 2018 =
- Post Loop: Add filter to allow for custom template directories.
- Dashboard Assets: Check if $screen exists.
- Remove Page Builder button from widgets when not in admin context.
- Fix Yoast compat: Properly create rather than select an image.
Download this release
Release Info
Developer | gpriday |
Plugin | Page Builder by SiteOrigin |
Version | 2.7.3 |
Comparing to | |
See all releases |
Code changes from version 2.7.2 to 2.7.3
- inc/admin-dashboard.php +1 -1
- inc/admin.php +0 -1
- inc/styles.php +0 -66
- inc/widgets/layout.php +129 -119
- inc/widgets/post-loop.php +1 -0
- js/{siteorigin-panels-272.js → siteorigin-panels-273.js} +0 -0
- js/{siteorigin-panels-272.min.js → siteorigin-panels-273.min.js} +0 -0
- js/{styling-272.js → styling-273.js} +0 -0
- js/{styling-272.min.js → styling-273.min.js} +0 -0
- js/yoast-compat.js +2 -2
- js/yoast-compat.min.js +1 -1
- lang/siteorigin-panels.pot +5 -1
- readme.txt +8 -2
- siteorigin-panels.php +3 -3
inc/admin-dashboard.php
CHANGED
@@ -40,7 +40,7 @@ class SiteOrigin_Panels_Admin_Dashboard {
|
|
40 |
*/
|
41 |
public function enqueue_admin_styles( $page ){
|
42 |
$screen = get_current_screen();
|
43 |
-
if( $screen->id == 'dashboard' ) {
|
44 |
wp_enqueue_style(
|
45 |
'so-panels-dashboard',
|
46 |
siteorigin_panels_url( 'css/dashboard.css' ),
|
40 |
*/
|
41 |
public function enqueue_admin_styles( $page ){
|
42 |
$screen = get_current_screen();
|
43 |
+
if( ! empty( $screen ) && $screen->id == 'dashboard' ) {
|
44 |
wp_enqueue_style(
|
45 |
'so-panels-dashboard',
|
46 |
siteorigin_panels_url( 'css/dashboard.css' ),
|
inc/admin.php
CHANGED
@@ -1173,7 +1173,6 @@ class SiteOrigin_Panels_Admin {
|
|
1173 |
foreach ( $locations as &$priorities ) {
|
1174 |
foreach ( $priorities as &$boxes ) {
|
1175 |
unset( $boxes['so-panels-panels'] );
|
1176 |
-
unset( $boxes['siteorigin_page_settings'] );
|
1177 |
|
1178 |
}
|
1179 |
}
|
1173 |
foreach ( $locations as &$priorities ) {
|
1174 |
foreach ( $priorities as &$boxes ) {
|
1175 |
unset( $boxes['so-panels-panels'] );
|
|
|
1176 |
|
1177 |
}
|
1178 |
}
|
inc/styles.php
CHANGED
@@ -544,26 +544,6 @@ class SiteOrigin_Panels_Styles {
|
|
544 |
$standard_css = apply_filters( 'siteorigin_panels_row_style_css', array(), $row['style'] );
|
545 |
$mobile_css = apply_filters( 'siteorigin_panels_row_style_mobile_css', array(), $row['style'] );
|
546 |
|
547 |
-
if( isset($standard_css['margin-bottom']) ){
|
548 |
-
$css->add_row_css(
|
549 |
-
$post_id,
|
550 |
-
$ri,
|
551 |
-
'',
|
552 |
-
array('margin-bottom' => $standard_css['margin-bottom'])
|
553 |
-
);
|
554 |
-
unset($standard_css['margin-bottom']);
|
555 |
-
}
|
556 |
-
if( isset($mobile_css['margin-bottom']) ){
|
557 |
-
$css->add_row_css(
|
558 |
-
$post_id,
|
559 |
-
$ri,
|
560 |
-
'',
|
561 |
-
array('margin-bottom' => $mobile_css['margin-bottom']),
|
562 |
-
$mobile_width
|
563 |
-
);
|
564 |
-
unset($mobile_css['margin-bottom']);
|
565 |
-
}
|
566 |
-
|
567 |
if ( ! empty( $standard_css ) ) {
|
568 |
$css->add_row_css(
|
569 |
$post_id,
|
@@ -604,28 +584,6 @@ class SiteOrigin_Panels_Styles {
|
|
604 |
$standard_css = apply_filters( 'siteorigin_panels_cell_style_css', array(), $cell['style'] );
|
605 |
$mobile_css = apply_filters( 'siteorigin_panels_cell_style_mobile_css', array(), $cell['style'] );
|
606 |
|
607 |
-
if( isset($standard_css['margin-bottom']) ){
|
608 |
-
$css->add_cell_css(
|
609 |
-
$post_id,
|
610 |
-
$ri,
|
611 |
-
$ci,
|
612 |
-
'',
|
613 |
-
array('margin-bottom' => $standard_css['margin-bottom'])
|
614 |
-
);
|
615 |
-
unset($standard_css['margin-bottom']);
|
616 |
-
}
|
617 |
-
if( isset($mobile_css['margin-bottom']) ){
|
618 |
-
$css->add_cell_css(
|
619 |
-
$post_id,
|
620 |
-
$ri,
|
621 |
-
$ci,
|
622 |
-
'',
|
623 |
-
array('margin-bottom' => $mobile_css['margin-bottom']),
|
624 |
-
$mobile_width
|
625 |
-
);
|
626 |
-
unset($mobile_css['margin-bottom']);
|
627 |
-
}
|
628 |
-
|
629 |
if ( ! empty( $standard_css ) ) {
|
630 |
$css->add_cell_css(
|
631 |
$post_id,
|
@@ -668,30 +626,6 @@ class SiteOrigin_Panels_Styles {
|
|
668 |
$standard_css = apply_filters( 'siteorigin_panels_widget_style_css', array(), $widget['panels_info']['style'] );
|
669 |
$mobile_css = apply_filters( 'siteorigin_panels_widget_style_mobile_css', array(), $widget['panels_info']['style'] );
|
670 |
|
671 |
-
if( isset($standard_css['margin-bottom']) ){
|
672 |
-
$css->add_widget_css(
|
673 |
-
$post_id,
|
674 |
-
$ri,
|
675 |
-
$ci,
|
676 |
-
$wi,
|
677 |
-
'',
|
678 |
-
array('margin-bottom' => $standard_css['margin-bottom'])
|
679 |
-
);
|
680 |
-
unset($standard_css['margin-bottom']);
|
681 |
-
}
|
682 |
-
if( isset($mobile_css['margin-bottom']) ){
|
683 |
-
$css->add_widget_css(
|
684 |
-
$post_id,
|
685 |
-
$ri,
|
686 |
-
$ci,
|
687 |
-
$wi,
|
688 |
-
'',
|
689 |
-
array('margin-bottom' => $mobile_css['margin-bottom']),
|
690 |
-
$mobile_width
|
691 |
-
);
|
692 |
-
unset($mobile_css['margin-bottom']);
|
693 |
-
}
|
694 |
-
|
695 |
if( ! empty( $standard_css ) ) {
|
696 |
$css->add_widget_css(
|
697 |
$post_id,
|
544 |
$standard_css = apply_filters( 'siteorigin_panels_row_style_css', array(), $row['style'] );
|
545 |
$mobile_css = apply_filters( 'siteorigin_panels_row_style_mobile_css', array(), $row['style'] );
|
546 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
547 |
if ( ! empty( $standard_css ) ) {
|
548 |
$css->add_row_css(
|
549 |
$post_id,
|
584 |
$standard_css = apply_filters( 'siteorigin_panels_cell_style_css', array(), $cell['style'] );
|
585 |
$mobile_css = apply_filters( 'siteorigin_panels_cell_style_mobile_css', array(), $cell['style'] );
|
586 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
587 |
if ( ! empty( $standard_css ) ) {
|
588 |
$css->add_cell_css(
|
589 |
$post_id,
|
626 |
$standard_css = apply_filters( 'siteorigin_panels_widget_style_css', array(), $widget['panels_info']['style'] );
|
627 |
$mobile_css = apply_filters( 'siteorigin_panels_widget_style_mobile_css', array(), $widget['panels_info']['style'] );
|
628 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
629 |
if( ! empty( $standard_css ) ) {
|
630 |
$css->add_widget_css(
|
631 |
$post_id,
|
inc/widgets/layout.php
CHANGED
@@ -1,119 +1,129 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* This widget give you the full Page Builder interface inside a widget. Fully nestable.
|
5 |
-
*
|
6 |
-
* Class SiteOrigin_Panels_Widgets_Builder
|
7 |
-
*/
|
8 |
-
class SiteOrigin_Panels_Widgets_Layout extends WP_Widget {
|
9 |
-
function __construct() {
|
10 |
-
parent::__construct(
|
11 |
-
'siteorigin-panels-builder',
|
12 |
-
// TRANSLATORS: This is the name of a widget
|
13 |
-
__( 'Layout Builder', 'siteorigin-panels' ),
|
14 |
-
array(
|
15 |
-
'description' => __( 'A complete SiteOrigin Page Builder layout as a widget.', 'siteorigin-panels' ),
|
16 |
-
'panels_title' => false,
|
17 |
-
),
|
18 |
-
array(
|
19 |
-
)
|
20 |
-
);
|
21 |
-
}
|
22 |
-
|
23 |
-
function widget($args, $instance) {
|
24 |
-
if( empty($instance['panels_data']) ) return;
|
25 |
-
|
26 |
-
if( is_string( $instance['panels_data'] ) ) {
|
27 |
-
$instance['panels_data'] = json_decode( $instance['panels_data'], true );
|
28 |
-
}
|
29 |
-
if(empty($instance['panels_data']['widgets'])) return;
|
30 |
-
|
31 |
-
if( ! empty( $instance['panels_data']['widgets'] ) ) {
|
32 |
-
foreach( $instance['panels_data']['widgets'] as & $widget ) {
|
33 |
-
$widget['panels_info']['class'] = str_replace( '\', '\\', $widget['panels_info']['class'] );
|
34 |
-
}
|
35 |
-
}
|
36 |
-
|
37 |
-
if( empty( $instance['builder_id'] ) ) $instance['builder_id'] = uniqid();
|
38 |
-
|
39 |
-
echo $args['before_widget'];
|
40 |
-
echo SiteOrigin_Panels::renderer()->render( 'w'.$instance['builder_id'], true, $instance['panels_data'], $layout_data );
|
41 |
-
if( ! empty( $GLOBALS[ 'SITEORIGIN_PANELS_POST_CONTENT_RENDER' ] ) && siteorigin_panels_setting( 'copy-styles' ) ) {
|
42 |
-
$widget_css = '@import url(' . SiteOrigin_Panels::front_css_url() . '); ';
|
43 |
-
$widget_css .= SiteOrigin_Panels::renderer()->generate_css( 'w'.$instance['builder_id'], $instance['panels_data'], $layout_data );
|
44 |
-
$widget_css = preg_replace( '/\s+/', ' ', $widget_css );
|
45 |
-
echo "\n\n" .
|
46 |
-
'<style type="text/css" class="panels-style" data-panels-style-for-post="' . esc_attr( 'w'.$instance['builder_id'] ) . '">' .
|
47 |
-
$widget_css .
|
48 |
-
'</style>';
|
49 |
-
}
|
50 |
-
echo $args['after_widget'];
|
51 |
-
}
|
52 |
-
|
53 |
-
function update($new, $old) {
|
54 |
-
$new['builder_id'] = uniqid();
|
55 |
-
|
56 |
-
if( is_string($new['panels_data']) && ! empty( $new['panels_data'] ) ) {
|
57 |
-
// This is still in a string format, so we'll convert it to an array for sanitization
|
58 |
-
$new['panels_data'] = json_decode( $new['panels_data'], true );
|
59 |
-
}
|
60 |
-
|
61 |
-
if ( ! empty( $new['panels_data'] ) && ! empty( $new['panels_data']['widgets'] ) ) {
|
62 |
-
$new['panels_data']['widgets'] = SiteOrigin_Panels_Admin::single()->process_raw_widgets(
|
63 |
-
$new['panels_data']['widgets'],
|
64 |
-
! empty( $old['panels_data']['widgets'] ) ? $old['panels_data']['widgets'] : false
|
65 |
-
);
|
66 |
-
foreach( $new['panels_data']['widgets'] as & $widget ) {
|
67 |
-
$widget['panels_info']['class'] = str_replace( '\\', '\', $widget['panels_info']['class'] );
|
68 |
-
}
|
69 |
-
}
|
70 |
-
|
71 |
-
return $new;
|
72 |
-
}
|
73 |
-
|
74 |
-
function form( $instance ){
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* This widget give you the full Page Builder interface inside a widget. Fully nestable.
|
5 |
+
*
|
6 |
+
* Class SiteOrigin_Panels_Widgets_Builder
|
7 |
+
*/
|
8 |
+
class SiteOrigin_Panels_Widgets_Layout extends WP_Widget {
|
9 |
+
function __construct() {
|
10 |
+
parent::__construct(
|
11 |
+
'siteorigin-panels-builder',
|
12 |
+
// TRANSLATORS: This is the name of a widget
|
13 |
+
__( 'Layout Builder', 'siteorigin-panels' ),
|
14 |
+
array(
|
15 |
+
'description' => __( 'A complete SiteOrigin Page Builder layout as a widget.', 'siteorigin-panels' ),
|
16 |
+
'panels_title' => false,
|
17 |
+
),
|
18 |
+
array(
|
19 |
+
)
|
20 |
+
);
|
21 |
+
}
|
22 |
+
|
23 |
+
function widget($args, $instance) {
|
24 |
+
if( empty($instance['panels_data']) ) return;
|
25 |
+
|
26 |
+
if( is_string( $instance['panels_data'] ) ) {
|
27 |
+
$instance['panels_data'] = json_decode( $instance['panels_data'], true );
|
28 |
+
}
|
29 |
+
if(empty($instance['panels_data']['widgets'])) return;
|
30 |
+
|
31 |
+
if( ! empty( $instance['panels_data']['widgets'] ) ) {
|
32 |
+
foreach( $instance['panels_data']['widgets'] as & $widget ) {
|
33 |
+
$widget['panels_info']['class'] = str_replace( '\', '\\', $widget['panels_info']['class'] );
|
34 |
+
}
|
35 |
+
}
|
36 |
+
|
37 |
+
if( empty( $instance['builder_id'] ) ) $instance['builder_id'] = uniqid();
|
38 |
+
|
39 |
+
echo $args['before_widget'];
|
40 |
+
echo SiteOrigin_Panels::renderer()->render( 'w'.$instance['builder_id'], true, $instance['panels_data'], $layout_data );
|
41 |
+
if( ! empty( $GLOBALS[ 'SITEORIGIN_PANELS_POST_CONTENT_RENDER' ] ) && siteorigin_panels_setting( 'copy-styles' ) ) {
|
42 |
+
$widget_css = '@import url(' . SiteOrigin_Panels::front_css_url() . '); ';
|
43 |
+
$widget_css .= SiteOrigin_Panels::renderer()->generate_css( 'w'.$instance['builder_id'], $instance['panels_data'], $layout_data );
|
44 |
+
$widget_css = preg_replace( '/\s+/', ' ', $widget_css );
|
45 |
+
echo "\n\n" .
|
46 |
+
'<style type="text/css" class="panels-style" data-panels-style-for-post="' . esc_attr( 'w'.$instance['builder_id'] ) . '">' .
|
47 |
+
$widget_css .
|
48 |
+
'</style>';
|
49 |
+
}
|
50 |
+
echo $args['after_widget'];
|
51 |
+
}
|
52 |
+
|
53 |
+
function update($new, $old) {
|
54 |
+
$new['builder_id'] = uniqid();
|
55 |
+
|
56 |
+
if( is_string($new['panels_data']) && ! empty( $new['panels_data'] ) ) {
|
57 |
+
// This is still in a string format, so we'll convert it to an array for sanitization
|
58 |
+
$new['panels_data'] = json_decode( $new['panels_data'], true );
|
59 |
+
}
|
60 |
+
|
61 |
+
if ( ! empty( $new['panels_data'] ) && ! empty( $new['panels_data']['widgets'] ) ) {
|
62 |
+
$new['panels_data']['widgets'] = SiteOrigin_Panels_Admin::single()->process_raw_widgets(
|
63 |
+
$new['panels_data']['widgets'],
|
64 |
+
! empty( $old['panels_data']['widgets'] ) ? $old['panels_data']['widgets'] : false
|
65 |
+
);
|
66 |
+
foreach( $new['panels_data']['widgets'] as & $widget ) {
|
67 |
+
$widget['panels_info']['class'] = str_replace( '\\', '\', $widget['panels_info']['class'] );
|
68 |
+
}
|
69 |
+
}
|
70 |
+
|
71 |
+
return $new;
|
72 |
+
}
|
73 |
+
|
74 |
+
function form( $instance ){
|
75 |
+
|
76 |
+
if ( ! is_admin() ) {
|
77 |
+
?>
|
78 |
+
<p>
|
79 |
+
<?php _e( 'This widget can currently only be used in the WordPress admin interface.', 'siteorigin-panels' ) ?>
|
80 |
+
</p>
|
81 |
+
<?php
|
82 |
+
return;
|
83 |
+
}
|
84 |
+
|
85 |
+
$instance = wp_parse_args($instance, array(
|
86 |
+
'panels_data' => '',
|
87 |
+
'builder_id' => uniqid(),
|
88 |
+
) );
|
89 |
+
$form_id = uniqid();
|
90 |
+
|
91 |
+
if( ! empty( $instance['panels_data']['widgets'] ) ) {
|
92 |
+
foreach( $instance['panels_data']['widgets'] as & $widget ) {
|
93 |
+
$widget['panels_info']['class'] = str_replace( '\', '\\', $widget['panels_info']['class'] );
|
94 |
+
}
|
95 |
+
}
|
96 |
+
|
97 |
+
if( ! is_string( $instance['panels_data'] ) ) {
|
98 |
+
$instance['panels_data'] = json_encode( $instance['panels_data'] );
|
99 |
+
}
|
100 |
+
|
101 |
+
?>
|
102 |
+
<div class="siteorigin-page-builder-widget" id="siteorigin-page-builder-widget-<?php echo esc_attr( $form_id ) ?>" data-builder-id="<?php echo esc_attr( $form_id ) ?>" data-type="layout_widget">
|
103 |
+
<p>
|
104 |
+
<button class="button-secondary siteorigin-panels-display-builder" ><?php _e('Open Builder', 'siteorigin-panels') ?></button>
|
105 |
+
</p>
|
106 |
+
|
107 |
+
<input type="hidden" data-panels-filter="json_parse" value="" class="panels-data" name="<?php echo $this->get_field_name('panels_data') ?>" id="<?php echo $this->get_field_id('panels_data') ?>" />
|
108 |
+
|
109 |
+
<script type="text/javascript">
|
110 |
+
( function( panelsData ){
|
111 |
+
// Create the panels_data input
|
112 |
+
document.getElementById('<?php echo $this->get_field_id('panels_data') ?>').value = JSON.stringify( panelsData );
|
113 |
+
} )( <?php echo $instance['panels_data']; ?> );
|
114 |
+
</script>
|
115 |
+
|
116 |
+
<input type="hidden" value="<?php echo esc_attr( $instance['builder_id'] ) ?>" name="<?php echo $this->get_field_name('builder_id') ?>" />
|
117 |
+
</div>
|
118 |
+
<script type="text/javascript">
|
119 |
+
if(
|
120 |
+
typeof jQuery.fn.soPanelsSetupBuilderWidget != 'undefined' &&
|
121 |
+
( ! jQuery('body').hasClass('wp-customizer') || jQuery( "#siteorigin-page-builder-widget-<?php echo esc_attr( $form_id ) ?>").closest( '.panel-dialog' ).length )
|
122 |
+
) {
|
123 |
+
jQuery( "#siteorigin-page-builder-widget-<?php echo esc_attr( $form_id ) ?>").soPanelsSetupBuilderWidget();
|
124 |
+
}
|
125 |
+
</script>
|
126 |
+
<?php
|
127 |
+
}
|
128 |
+
|
129 |
+
}
|
inc/widgets/post-loop.php
CHANGED
@@ -362,6 +362,7 @@ class SiteOrigin_Panels_Widgets_PostLoop extends WP_Widget {
|
|
362 |
);
|
363 |
|
364 |
$template_dirs = array( get_template_directory(), get_stylesheet_directory() );
|
|
|
365 |
$template_dirs = array_unique( $template_dirs );
|
366 |
foreach( $template_dirs as $dir ){
|
367 |
foreach( $template_files as $template_file ) {
|
362 |
);
|
363 |
|
364 |
$template_dirs = array( get_template_directory(), get_stylesheet_directory() );
|
365 |
+
$template_dirs = apply_filters( 'siteorigin_panels_postloop_template_directory', $template_dirs );
|
366 |
$template_dirs = array_unique( $template_dirs );
|
367 |
foreach( $template_dirs as $dir ){
|
368 |
foreach( $template_files as $template_file ) {
|
js/{siteorigin-panels-272.js → siteorigin-panels-273.js}
RENAMED
File without changes
|
js/{siteorigin-panels-272.min.js → siteorigin-panels-273.min.js}
RENAMED
File without changes
|
js/{styling-272.js → styling-273.js}
RENAMED
File without changes
|
js/{styling-272.min.js → styling-273.min.js}
RENAMED
File without changes
|
js/yoast-compat.js
CHANGED
@@ -62,7 +62,7 @@ jQuery(function($){
|
|
62 |
switch( widgetClass ) {
|
63 |
case 'SiteOrigin_Widget_Image_Widget':
|
64 |
// We want a direct assignment for the SO Image Widget to get rid of the title
|
65 |
-
newHTML = $('img').attr({
|
66 |
'src': '#' + widgetInstance.image,
|
67 |
'srcset': '',
|
68 |
'alt': widgetInstance.alt,
|
@@ -71,7 +71,7 @@ jQuery(function($){
|
|
71 |
break;
|
72 |
|
73 |
case 'WP_Widget_Media_Image':
|
74 |
-
newHTML = $('img').attr({
|
75 |
'src': '#' + widgetInstance.attachment_id,
|
76 |
'srcset': '',
|
77 |
'alt': widgetInstance.alt,
|
62 |
switch( widgetClass ) {
|
63 |
case 'SiteOrigin_Widget_Image_Widget':
|
64 |
// We want a direct assignment for the SO Image Widget to get rid of the title
|
65 |
+
newHTML = $('<img/>').attr({
|
66 |
'src': '#' + widgetInstance.image,
|
67 |
'srcset': '',
|
68 |
'alt': widgetInstance.alt,
|
71 |
break;
|
72 |
|
73 |
case 'WP_Widget_Media_Image':
|
74 |
+
newHTML = $('<img/>').attr({
|
75 |
'src': '#' + widgetInstance.attachment_id,
|
76 |
'srcset': '',
|
77 |
'alt': widgetInstance.alt,
|
js/yoast-compat.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
jQuery(function(t){if(void 0!==YoastSEO.app){var e=function(){function t(t){return t&&"string"==typeof t&&(t=t.replace(/<script[^>]*>([\S\s]*?)<\/script>/gim,""),t=t.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gim,""),e.innerHTML=t,t=e.textContent,e.textContent=""),t}var e=document.createElement("div");return t}(),i=function(){YoastSEO.app.registerPlugin("siteOriginYoastCompat",{status:"ready"}),YoastSEO.app.registerModification("content",this.contentModification,"siteOriginYoastCompat",5)};i.prototype.contentModification=function(i){var n=new RegExp(panelsOptions.siteoriginWidgetRegex,"i"),a=t("<div>"+i+"</div>");return 0===a.find(".so-panel.widget").length?i:(a.find(".so-panel.widget").each(function(i,a){var r=t(a),o=n.exec(r.html());try{if(!_.isNull(o)&&""===r.html().replace(n,"").trim()){var s=/class="(.*?)"/.exec(o[3]),c=jQuery(o[5]),l=JSON.parse(e(c.val())),p=l.instance,g="";if(_.isNull(p.title)||(g+="<h3>"+p.title+"</h3>"),!_.isNull(s)){switch(s[1]){case"SiteOrigin_Widget_Image_Widget":g=t("img").attr({src:"#"+p.image,srcset:"",alt:p.alt,title:p.title}).prop("outerHTML");break;case"WP_Widget_Media_Image":g=t("img").attr({src:"#"+p.attachment_id,srcset:"",alt:p.alt,title:p.image_title}).prop("outerHTML")}}r.html(g)}}catch(t){r.html("")}}),a.html())},new i}});
|
1 |
+
jQuery(function(t){if(void 0!==YoastSEO.app){var e=function(){function t(t){return t&&"string"==typeof t&&(t=t.replace(/<script[^>]*>([\S\s]*?)<\/script>/gim,""),t=t.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gim,""),e.innerHTML=t,t=e.textContent,e.textContent=""),t}var e=document.createElement("div");return t}(),i=function(){YoastSEO.app.registerPlugin("siteOriginYoastCompat",{status:"ready"}),YoastSEO.app.registerModification("content",this.contentModification,"siteOriginYoastCompat",5)};i.prototype.contentModification=function(i){var n=new RegExp(panelsOptions.siteoriginWidgetRegex,"i"),a=t("<div>"+i+"</div>");return 0===a.find(".so-panel.widget").length?i:(a.find(".so-panel.widget").each(function(i,a){var r=t(a),o=n.exec(r.html());try{if(!_.isNull(o)&&""===r.html().replace(n,"").trim()){var s=/class="(.*?)"/.exec(o[3]),c=jQuery(o[5]),l=JSON.parse(e(c.val())),p=l.instance,g="";if(_.isNull(p.title)||(g+="<h3>"+p.title+"</h3>"),!_.isNull(s)){switch(s[1]){case"SiteOrigin_Widget_Image_Widget":g=t("<img/>").attr({src:"#"+p.image,srcset:"",alt:p.alt,title:p.title}).prop("outerHTML");break;case"WP_Widget_Media_Image":g=t("<img/>").attr({src:"#"+p.attachment_id,srcset:"",alt:p.alt,title:p.image_title}).prop("outerHTML")}}r.html(g)}}catch(t){r.html("")}}),a.html())},new i}});
|
lang/siteorigin-panels.pot
CHANGED
@@ -1044,7 +1044,11 @@ msgstr ""
|
|
1044 |
msgid "A complete SiteOrigin Page Builder layout as a widget."
|
1045 |
msgstr ""
|
1046 |
|
1047 |
-
#: inc/widgets/layout.php:
|
|
|
|
|
|
|
|
|
1048 |
msgid "Open Builder"
|
1049 |
msgstr ""
|
1050 |
|
1044 |
msgid "A complete SiteOrigin Page Builder layout as a widget."
|
1045 |
msgstr ""
|
1046 |
|
1047 |
+
#: inc/widgets/layout.php:79
|
1048 |
+
msgid "This widget can currently only be used in the WordPress admin interface."
|
1049 |
+
msgstr ""
|
1050 |
+
|
1051 |
+
#: inc/widgets/layout.php:104
|
1052 |
msgid "Open Builder"
|
1053 |
msgstr ""
|
1054 |
|
readme.txt
CHANGED
@@ -2,8 +2,8 @@
|
|
2 |
Tags: page builder, responsive, widget, widgets, builder, page, admin, gallery, content, cms, pages, post, css, layout, grid
|
3 |
Requires at least: 4.4
|
4 |
Tested up to: 4.9
|
5 |
-
Stable tag: 2.7.
|
6 |
-
Build time: 2018-
|
7 |
License: GPLv3
|
8 |
License URI: http://www.gnu.org/licenses/gpl.html
|
9 |
Donate link: https://siteorigin.com/downloads/contribution/
|
@@ -96,6 +96,12 @@ We've tried to ensure that Page Builder is compatible with most plugin widgets.
|
|
96 |
|
97 |
== Changelog ==
|
98 |
|
|
|
|
|
|
|
|
|
|
|
|
|
99 |
= 2.7.2 - 29 June 2018 =
|
100 |
* Skip Yoast compat for non PB content.
|
101 |
|
2 |
Tags: page builder, responsive, widget, widgets, builder, page, admin, gallery, content, cms, pages, post, css, layout, grid
|
3 |
Requires at least: 4.4
|
4 |
Tested up to: 4.9
|
5 |
+
Stable tag: 2.7.3
|
6 |
+
Build time: 2018-07-20T09:39:41+02:00
|
7 |
License: GPLv3
|
8 |
License URI: http://www.gnu.org/licenses/gpl.html
|
9 |
Donate link: https://siteorigin.com/downloads/contribution/
|
96 |
|
97 |
== Changelog ==
|
98 |
|
99 |
+
= 2.7.3 - 20 July 2018 =
|
100 |
+
* Post Loop: Add filter to allow for custom template directories.
|
101 |
+
* Dashboard Assets: Check if $screen exists.
|
102 |
+
* Remove Page Builder button from widgets when not in admin context.
|
103 |
+
* Fix Yoast compat: Properly create rather than select an image.
|
104 |
+
|
105 |
= 2.7.2 - 29 June 2018 =
|
106 |
* Skip Yoast compat for non PB content.
|
107 |
|
siteorigin-panels.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Page Builder by SiteOrigin
|
4 |
Plugin URI: https://siteorigin.com/page-builder/
|
5 |
Description: A drag and drop, responsive page builder that simplifies building your website.
|
6 |
-
Version: 2.7.
|
7 |
Author: SiteOrigin
|
8 |
Author URI: https://siteorigin.com
|
9 |
License: GPL3
|
@@ -11,12 +11,12 @@ License URI: http://www.gnu.org/licenses/gpl.html
|
|
11 |
Donate link: http://siteorigin.com/page-builder/#donate
|
12 |
*/
|
13 |
|
14 |
-
define( 'SITEORIGIN_PANELS_VERSION', '2.7.
|
15 |
if ( ! defined( 'SITEORIGIN_PANELS_JS_SUFFIX' ) ) {
|
16 |
define( 'SITEORIGIN_PANELS_JS_SUFFIX', '.min' );
|
17 |
}
|
18 |
define( 'SITEORIGIN_PANELS_CSS_SUFFIX', '.min' );
|
19 |
-
define( 'SITEORIGIN_PANELS_VERSION_SUFFIX', '-
|
20 |
|
21 |
require_once plugin_dir_path( __FILE__ ) . 'inc/functions.php';
|
22 |
|
3 |
Plugin Name: Page Builder by SiteOrigin
|
4 |
Plugin URI: https://siteorigin.com/page-builder/
|
5 |
Description: A drag and drop, responsive page builder that simplifies building your website.
|
6 |
+
Version: 2.7.3
|
7 |
Author: SiteOrigin
|
8 |
Author URI: https://siteorigin.com
|
9 |
License: GPL3
|
11 |
Donate link: http://siteorigin.com/page-builder/#donate
|
12 |
*/
|
13 |
|
14 |
+
define( 'SITEORIGIN_PANELS_VERSION', '2.7.3' );
|
15 |
if ( ! defined( 'SITEORIGIN_PANELS_JS_SUFFIX' ) ) {
|
16 |
define( 'SITEORIGIN_PANELS_JS_SUFFIX', '.min' );
|
17 |
}
|
18 |
define( 'SITEORIGIN_PANELS_CSS_SUFFIX', '.min' );
|
19 |
+
define( 'SITEORIGIN_PANELS_VERSION_SUFFIX', '-273' );
|
20 |
|
21 |
require_once plugin_dir_path( __FILE__ ) . 'inc/functions.php';
|
22 |
|