__( 'A complete SiteOrigin Page Builder layout as a widget.', 'siteorigin-panels' ), 'panels_title' => false, ), array( ) ); } function widget($args, $instance) { if( empty($instance['panels_data']) ) return; if( is_string( $instance['panels_data'] ) ) { $instance['panels_data'] = json_decode( $instance['panels_data'], true ); } if(empty($instance['panels_data']['widgets'])) return; if( ! empty( $instance['panels_data']['widgets'] ) ) { foreach( $instance['panels_data']['widgets'] as & $widget ) { $widget['panels_info']['class'] = str_replace( '\', '\\', $widget['panels_info']['class'] ); } } if( empty( $instance['builder_id'] ) ) $instance['builder_id'] = uniqid(); echo $args['before_widget']; echo SiteOrigin_Panels::renderer()->render( 'w'.$instance['builder_id'], true, $instance['panels_data'], $layout_data ); if( ! empty( $GLOBALS[ 'SITEORIGIN_PANELS_POST_CONTENT_RENDER' ] ) && siteorigin_panels_setting( 'copy-styles' ) ) { $widget_css = '@import url(' . SiteOrigin_Panels::front_css_url() . '); '; $widget_css .= SiteOrigin_Panels::renderer()->generate_css( 'w'.$instance['builder_id'], $instance['panels_data'], $layout_data ); $widget_css = preg_replace( '/\s+/', ' ', $widget_css ); echo "\n\n" . ''; } echo $args['after_widget']; } function update($new, $old) { $new['builder_id'] = uniqid(); if( is_string($new['panels_data']) && ! empty( $new['panels_data'] ) ) { // This is still in a string format, so we'll convert it to an array for sanitization $new['panels_data'] = json_decode( $new['panels_data'], true ); } if ( ! empty( $new['panels_data'] ) ) { if ( ! empty( $new['panels_data']['widgets'] ) ) { $new['panels_data']['widgets'] = SiteOrigin_Panels_Admin::single()->process_raw_widgets( $new['panels_data']['widgets'], ! empty( $old['panels_data']['widgets'] ) ? $old['panels_data']['widgets'] : false ); foreach( $new['panels_data']['widgets'] as & $widget ) { $widget['panels_info']['class'] = str_replace( '\\', '\', $widget['panels_info']['class'] ); } } $new['panels_data'] = SiteOrigin_Panels_Styles_Admin::single()->sanitize_all( $new['panels_data'] ); } return $new; } function form( $instance ){ if ( ! is_admin() ) { ?>

'', 'builder_id' => uniqid(), ) ); $form_id = uniqid(); if( ! empty( $instance['panels_data']['widgets'] ) ) { foreach( $instance['panels_data']['widgets'] as & $widget ) { $widget['panels_info']['class'] = str_replace( '\', '\\', $widget['panels_info']['class'] ); } } if( ! is_string( $instance['panels_data'] ) ) { $instance['panels_data'] = json_encode( $instance['panels_data'] ); } ?>