array( $this, 'render_layout_block' ), ) ); } public function enqueue_layout_block_editor_assets() { if ( SiteOrigin_Panels_Admin::is_block_editor() || is_customize_preview() ) { $panels_admin = SiteOrigin_Panels_Admin::single(); $panels_admin->enqueue_admin_scripts(); $panels_admin->enqueue_admin_styles(); if ( ! is_customize_preview() ) { $panels_admin->js_templates(); } $current_screen = get_current_screen(); wp_enqueue_script( 'siteorigin-panels-layout-block', plugins_url( 'js/siteorigin-panels-layout-block' . SITEORIGIN_PANELS_JS_SUFFIX . '.js', __FILE__ ), array( // The WP 5.8 Widget Area requires a speciic editor script to be used. $current_screen->base == 'widgets' ? 'wp-edit-widgets' : 'wp-editor', 'wp-blocks', 'wp-i18n', 'wp-element', 'wp-components', 'wp-compose', 'wp-data', 'so-panels-admin', ), SITEORIGIN_PANELS_VERSION ); $is_panels_post_type = in_array( $current_screen->id, siteorigin_panels_setting( 'post-types' ) ); wp_localize_script( 'siteorigin-panels-layout-block', 'soPanelsBlockEditorAdmin', array( 'sanitizeUrl' => wp_nonce_url( admin_url( 'admin-ajax.php' ), 'layout-block-sanitize', '_panelsnonce' ), 'previewUrl' => wp_nonce_url( admin_url( 'admin-ajax.php' ), 'layout-block-preview', '_panelsnonce' ), 'postId' => get_the_ID(), 'liveEditor' => SiteOrigin_Panels::preview_url(), 'defaultMode' => siteorigin_panels_setting( 'layout-block-default-mode' ), 'showAddButton' => apply_filters( 'siteorigin_layout_block_show_add_button', $is_panels_post_type ), ) ); // This is only available in WP5. if ( function_exists( 'wp_set_script_translations' ) ) { wp_set_script_translations( 'siteorigin-panels-layout-block', 'siteorigin-panels' ); } SiteOrigin_Panels_Styles::register_scripts(); wp_enqueue_script( 'siteorigin-panels-front-styles' ); // Enqueue front end scripts for our widgets bundle. if ( class_exists( 'SiteOrigin_Widgets_Bundle' ) ) { $sowb = SiteOrigin_Widgets_Bundle::single(); $sowb->register_general_scripts(); if ( method_exists( $sowb, 'enqueue_registered_widgets_scripts' ) ) { $sowb->enqueue_registered_widgets_scripts( true, false ); } } } } public function render_layout_block( $attributes ) { if ( empty( $attributes['panelsData'] ) ) { return '