/* Widget Name: Editor Description: Insert and customize content with a rich text editor offering extensive formatting options. Author: SiteOrigin Author URI: https://siteorigin.com Documentation: https://siteorigin.com/widgets-bundle/editor-widget/ */ class SiteOrigin_Widget_Editor_Widget extends SiteOrigin_Widget { public function __construct() { parent::__construct( 'sow-editor', __( 'SiteOrigin Editor', 'so-widgets-bundle' ), array( 'description' => __( 'Insert and customize content with a rich text editor offering extensive formatting options.', 'so-widgets-bundle' ), 'help' => 'https://siteorigin.com/widgets-bundle/editor-widget/', ), array(), false, plugin_dir_path( __FILE__ ) ); add_filter( 'siteorigin_widgets_sanitize_instance_sow-editor', array( $this, 'add_noreferrer_to_link_targets' ) ); } public function get_widget_form() { $global_settings = $this->get_global_settings(); return array( 'title' => array( 'type' => 'text', 'label' => __( 'Title', 'so-widgets-bundle' ), ), 'text' => array( 'type' => 'tinymce', 'rows' => 20, 'wpautop_toggle_field' => '.siteorigin-widget-field-autop input[type="checkbox"]', ), 'autop' => array( 'type' => 'checkbox', 'default' => $global_settings['autop_default'], 'label' => __( 'Automatically add paragraphs', 'so-widgets-bundle' ), ), ); } public function get_settings_form() { return array( 'autop_default' => array( 'type' => 'checkbox', 'default' => true, 'label' => __( 'Enable the "Automatically add paragraphs" setting by default.', 'so-widgets-bundle' ), ), ); } public function get_template_variables( $instance, $args ) { $instance = wp_parse_args( $instance, array( 'text' => '' ) ); if ( // Only run these parts if we're rendering for the frontend. empty( $GLOBALS[ 'SITEORIGIN_PANELS_CACHE_RENDER' ] ) && empty( $GLOBALS[ 'SITEORIGIN_PANELS_POST_CONTENT_RENDER' ] ) ) { if ( function_exists( 'wp_filter_content_tags' ) ) { $instance['text'] = wp_filter_content_tags( $instance['text'] ); } elseif ( function_exists( 'wp_make_content_images_responsive' ) ) { $instance['text'] = wp_make_content_images_responsive( $instance['text'] ); } // Manual support for Jetpack Markdown module. if ( class_exists( 'WPCom_Markdown' ) && Jetpack::is_module_active( 'markdown' ) && $instance['text_selected_editor'] == 'html' ) { $markdown_parser = WPCom_Markdown::get_instance(); $instance['text'] = $markdown_parser->transform( $instance['text'] ); } // Run some known stuff. if ( ! empty( $GLOBALS['wp_embed'] ) ) { $instance['text'] = $GLOBALS['wp_embed']->run_shortcode( $instance['text'] ); $instance['text'] = $GLOBALS['wp_embed']->autoembed( $instance['text'] ); } // As in the Text Widget, we need to prevent plugins and themes from running `do_shortcode` in the `widget_text` // filter to avoid running it twice and to prevent `wpautop` from interfering with shortcodes' output. $widget_text_do_shortcode_priority = has_filter( 'widget_text', 'do_shortcode' ); if ( $widget_text_do_shortcode_priority !== false ) { remove_filter( 'widget_text', 'do_shortcode', $widget_text_do_shortcode_priority ); } $instance['text'] = apply_filters( 'widget_text', $instance['text'], $instance, $this ); if ( $widget_text_do_shortcode_priority !== false ) { add_filter( 'widget_text', 'do_shortcode', $widget_text_do_shortcode_priority ); } if ( $instance['autop'] ) { $instance['text'] = wpautop( $instance['text'] ); } // Don't process more more quicktag if this is a preview. if ( ! $this->is_preview() && empty( $GLOBALS[ 'SITEORIGIN_PANELS_PREVIEW_RENDER' ] ) && ( isset( $_POST['action'] ) && $_POST['action'] != 'so_widgets_preview' ) ) { $instance['text'] = $this->process_more_quicktag( $instance['text'] ); } } $instance['text'] = do_shortcode( shortcode_unautop( $instance['text'] ) ); return array( 'text' => $instance['text'], ); } private function process_more_quicktag( $content ) { $post = get_post(); if ( ! empty( $post ) ) { $panels_content = get_post_meta( $post->ID, 'panels_data', true ); } // We only want to do this processing if on archive pages for posts with non-PB layouts. if ( ! is_singular() && empty( $panels_content ) && ! $this->is_block_editor_page() && empty( $GLOBALS['SO_WIDGETS_BUNDLE_PREVIEW_RENDER'] ) ) { if ( preg_match( '//', $content, $matches ) ) { $content = explode( $matches[0], $content, 2 ); $content = $content[0]; $content = force_balance_tags( $content ); if ( ! empty( $matches[1] ) ) { $more_link_text = strip_tags( wp_kses_no_null( trim( $matches[1] ) ) ); } else { $more_link_text = __( 'Read More', 'so-widgets-bundle' ); } $more_link = apply_filters( 'the_content_more_link', ' ID}\" class=\"more-link\">$more_link_text", $more_link_text ); $content .= '

' . $more_link . '

'; } } return $content; } public function add_noreferrer_to_link_targets( $instance ) { if ( function_exists( 'wp_targeted_link_rel' ) && ! empty( $instance['text'] ) ) { $instance['text'] = wp_targeted_link_rel( $instance['text'] ); } return $instance; } public function get_style_name( $instance ) { // We're not using a style. return false; } public function get_form_teaser() { if ( class_exists( 'SiteOrigin_Premium' ) ) { return false; } return array( sprintf( __( 'Use Google Fonts right inside the Editor Widget with %sSiteOrigin Premium%s', 'so-widgets-bundle' ), '', '' ), ); } } siteorigin_widget_register( 'sow-editor', __FILE__, 'SiteOrigin_Widget_Editor_Widget' ); Design a New Civilization – Proposal to Design a New Civilization

The Need

Bahis yapın, kazanın ve eğlenin – Casibom en iyi casino adresiniz!

онлайн казиноВход в казино Вавада