Page Builder by SiteOrigin - Version 2.7.3

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 Icon 128x128 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 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( '&#92;', '\\', $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( '\\', '&#92;', $widget['panels_info']['class'] );
68
- }
69
- }
70
-
71
- return $new;
72
- }
73
-
74
- function form( $instance ){
75
- $instance = wp_parse_args($instance, array(
76
- 'panels_data' => '',
77
- 'builder_id' => uniqid(),
78
- ) );
79
- $form_id = uniqid();
80
-
81
- if( ! empty( $instance['panels_data']['widgets'] ) ) {
82
- foreach( $instance['panels_data']['widgets'] as & $widget ) {
83
- $widget['panels_info']['class'] = str_replace( '&#92;', '\\', $widget['panels_info']['class'] );
84
- }
85
- }
86
-
87
- if( ! is_string( $instance['panels_data'] ) ) {
88
- $instance['panels_data'] = json_encode( $instance['panels_data'] );
89
- }
90
-
91
- ?>
92
- <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">
93
- <p>
94
- <button class="button-secondary siteorigin-panels-display-builder" ><?php _e('Open Builder', 'siteorigin-panels') ?></button>
95
- </p>
96
-
97
- <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') ?>" />
98
-
99
- <script type="text/javascript">
100
- ( function( panelsData ){
101
- // Create the panels_data input
102
- document.getElementById('<?php echo $this->get_field_id('panels_data') ?>').value = JSON.stringify( panelsData );
103
- } )( <?php echo $instance['panels_data']; ?> );
104
- </script>
105
-
106
- <input type="hidden" value="<?php echo esc_attr( $instance['builder_id'] ) ?>" name="<?php echo $this->get_field_name('builder_id') ?>" />
107
- </div>
108
- <script type="text/javascript">
109
- if(
110
- typeof jQuery.fn.soPanelsSetupBuilderWidget != 'undefined' &&
111
- ( ! jQuery('body').hasClass('wp-customizer') || jQuery( "#siteorigin-page-builder-widget-<?php echo esc_attr( $form_id ) ?>").closest( '.panel-dialog' ).length )
112
- ) {
113
- jQuery( "#siteorigin-page-builder-widget-<?php echo esc_attr( $form_id ) ?>").soPanelsSetupBuilderWidget();
114
- }
115
- </script>
116
- <?php
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( '&#92;', '\\', $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( '\\', '&#92;', $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( '&#92;', '\\', $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:94
 
 
 
 
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.2
6
- Build time: 2018-06-29T09:54:52+02:00
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.2
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.2' );
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', '-272' );
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