Willkommen bei WordPress. Dies ist dein erster Beitrag. Bearbeite oder lösche ihn und beginne mit dem Schreiben!
Hallo Welt!
von raredesign | Dez 3, 2019 | Allgemein | 0 Kommentare
Cokiee Shell
Current Path : /var/www/web28/html/wp-content/themes/Avada/includes/ |
Current File : //var/www/web28/html/wp-content/themes/Avada/includes/class-avada-block-editor.php |
<?php /** * Handles the block editor implementation. * * @author ThemeFusion * @copyright (c) Copyright by ThemeFusion * @link https://avada.com * @package Avada * @subpackage Core * @since 6.0 */ // Do not allow directly accessing this file. if ( ! defined( 'ABSPATH' ) ) { exit( 'Direct script access denied.' ); } /** * The block editor handler. * * @since 6.0 */ class Avada_Block_Editor { /** * Check if there are blocks in the current page or not. * * @static * @access private * @since 6.2.0 * @var bool */ private static $has_blocks = false; /** * The class constructor. * * @access public * @since 6.0 */ public function __construct() { // Back-end and front-end. add_action( 'after_setup_theme', [ $this, 'add_theme_supports' ], 10 ); add_filter( 'render_block', [ $this, 'adjust_block_classes' ], 10, 2 ); // Back-end only: block editor admin. if ( is_admin() ) { add_action( 'enqueue_block_assets', [ $this, 'enqueue_block_editor_assets' ] ); add_filter( 'admin_body_class', [ $this, 'add_admin_body_classes' ] ); // Disables the block editor from managing widgets in the Gutenberg plugin. add_filter( 'gutenberg_use_widgets_block_editor', '__return_false' ); // Disables the block editor from managing widgets. add_filter( 'use_widgets_block_editor', '__return_false' ); } else { // Front-end only. // Use fusion_library()->get_option() instead of Avada()->settings->get() or fusion_get_option() // to avoid an infinite loop 'caused by the Avada constructor calling this object again. $load_block_styles = fusion_library()->get_option( 'load_block_styles' ); if ( 'off' !== $load_block_styles ) { add_filter( 'fusion_dynamic_css_final', [ $this, 'add_css_vars_to_css' ], PHP_INT_MAX ); } // Remove block styles if not explicitly set to ON. // If AUTO we'll be adding them conditionally. if ( 'on' !== $load_block_styles ) { add_action( 'wp_enqueue_scripts', [ $this, 'dequeue_block_styles' ], 999 ); } // Run checks and conditionally add block-styles // if there are blocks present on this page. if ( 'auto' === $load_block_styles ) { add_filter( 'render_block', [ $this, 'set_has_blocks' ] ); add_action( 'wp_footer', [ $this, 'maybe_add_block_styles' ], 0 ); } } } /** * Enqueue admin editor assets. * * @access public * @since 6.0 * @return void */ public function enqueue_block_editor_assets() { wp_enqueue_script( 'fusion-block-editor-scripts', Avada::$template_dir_url . '/assets/admin/js/block-editor.js', [ 'jquery' ], Avada::get_theme_version(), true ); wp_enqueue_style( 'fusion-block-editor-styles', Avada::$template_dir_url . '/assets/css/dynamic/blocks.min.css', [], Avada::get_theme_version() ); if ( Avada()->settings->get( 'enable_block_editor_backend_styles' ) ) { $this->add_admin_custom_css(); } } /** * Add fusion-body and other classes to admin pages. * * @access public * @since 6.0 * @param string $body_classes The body classes as a string. * @return string */ public function add_admin_body_classes( $body_classes ) { $body_classes .= ' fusion-body'; $body_classes .= is_rtl() ? ' rtl' : ' ltr'; return $body_classes; } /** * Add custom CSS to the block editor admin. * * @access private * @since 6.0 * @return void */ private function add_admin_custom_css() { $custom_css = ''; $custom_css .= $this->get_admin_content_width_styles(); $custom_css .= $this->get_admin_typography_styles(); $custom_css .= $this->get_admin_general_styles(); $custom_css .= $this->get_css_vars(); wp_add_inline_style( 'fusion-block-editor-styles', $custom_css ); } /** * Get content width for block editor admin. * * @access private * @since 6.0 * @return string The content width styles. */ private function get_admin_content_width_styles() { $custom_css = ''; // Site width. $site_wdidth = Avada()->settings->get( 'site_width' ); $custom_css .= ' .wp-block:not([data-align="wide"]):not([data-align="full"]), .wp-block:not([data-align="wide"]):not([data-align="full"]) > * { max-width: ' . $site_wdidth . '; }'; // Single-sidebar Layouts. $single_sidebar_gutter = Avada()->settings->get( 'sidebar_gutter' ); $sidebar_width = Fusion_Sanitize::size( Avada()->settings->get( 'sidebar_width' ) ); if ( ! Fusion_Sanitize::get_unit( $sidebar_width ) ) { $sidebar_width = ( 100 > intval( $sidebar_width ) ) ? $sidebar_width . '%' : $sidebar_width . 'px'; } $custom_css .= ' .block-editor-page.has-sidebar .wp-block:not([data-align="wide"]):not([data-align="full"]) > * { max-width: ' . Fusion_Sanitize::add_css_values( [ '100%', '-' . $sidebar_width, '-' . $single_sidebar_gutter ] ) . '; }'; // Double-Sidebar layouts. $dual_sidebar_gutter = Avada()->settings->get( 'dual_sidebar_gutter' ); $sidebar_2_1_width = Fusion_Sanitize::size( Avada()->settings->get( 'sidebar_2_1_width' ) ); if ( ! Fusion_Sanitize::get_unit( $sidebar_2_1_width ) ) { $sidebar_2_1_width = ( 100 > intval( $sidebar_2_1_width ) ) ? $sidebar_2_1_width . '%' : $sidebar_2_1_width . 'px'; } $sidebar_2_2_width = Fusion_Sanitize::size( Avada()->settings->get( 'sidebar_2_2_width' ) ); if ( ! Fusion_Sanitize::get_unit( $sidebar_2_2_width ) ) { $sidebar_2_2_width = ( 100 > intval( $sidebar_2_2_width ) ) ? $sidebar_2_2_width . '%' : $sidebar_2_2_width . 'px'; } $custom_css .= ' .block-editor-page.double-sidebars .wp-block:not([data-align="wide"]):not([data-align="full"]) > * { max-width: ' . Fusion_Sanitize::add_css_values( [ '100%', '-' . $sidebar_2_1_width, '-' . $sidebar_2_2_width, '-' . $dual_sidebar_gutter, '-' . $dual_sidebar_gutter ] ) . '; }'; return $custom_css; } /** * Add dynamic typography styles. * * @access public * @since 6.0 * @return string The admin typgography styles. */ public function get_admin_typography_styles() { $dynamic_css = Fusion_Dynamic_CSS::get_instance(); $dynamic_css_helpers = $dynamic_css->get_helpers(); $custom_css = ''; for ( $i = 0; $i < 7; $i++ ) { if ( 0 === $i ) { $selector = '.block-editor .editor-styles-wrapper'; $typography_setting = 'body_typography'; } else { $selector = '.fusion-body .wp-block-heading h' . $i; $typography_setting = 'h' . $i . '_typography'; } $custom_css .= $selector . '{ font-family: ' . $dynamic_css_helpers->combined_font_family( Avada()->settings->get( $typography_setting ) ) . '; font-weight: ' . intval( Avada()->settings->get( $typography_setting, 'font-weight' ) ) . '; letter-spacing: ' . Fusion_Sanitize::size( Avada()->settings->get( $typography_setting, 'letter-spacing' ), 'px' ) . '; font-style: ' . Avada()->settings->get( $typography_setting, 'font-style' ) . '; line-height: ' . Fusion_Sanitize::size( Avada()->settings->get( $typography_setting, 'line-height' ) ) . '; font-size: ' . Fusion_Sanitize::size( Avada()->settings->get( $typography_setting, 'font-size' ) ) . '; color: ' . Fusion_Sanitize::color( Avada()->settings->get( $typography_setting, 'color' ) ) . '; }'; } $google_fonts = Avada_Google_Fonts::get_instance(); $custom_css .= $google_fonts->add_inline_css( $custom_css ); return $custom_css; } /** * Get the general admin editor styles. * * @access private * @since 6.0 * @return string The dynamic general styles. */ private function get_admin_general_styles() { $custom_css = ''; $custom_css .= ' .editor-styles-wrapper a, .editor-styles-wrapper a:before, .editor-styles-wrapper a:after { text-decoration: none; color: ' . Fusion_Sanitize::color( Avada()->settings->get( 'link_color' ) ) . '; }'; // Add bg color. $bg_color = $this->get_post_bg_color(); $custom_css .= '.block-editor .editor-styles-wrapper{background-color:' . $bg_color . ';}'; $custom_css .= $this->add_color_css(); return $custom_css; } /** * Get the CSS vars for dynamic styles. * * @access private * @since 6.0 * @return string The CSS vars. */ private function get_css_vars() { $dynamic_css = Fusion_Dynamic_CSS::get_instance(); $dynamic_css_helpers = $dynamic_css->get_helpers(); $css_vars_string = ''; $css_vars = [ 'link_color' => Fusion_Sanitize::color( Avada()->settings->get( 'link_color' ) ), 'primary_color' => Fusion_Sanitize::color( Avada()->settings->get( 'primary_color' ) ), 'meta_font_size' => Fusion_Sanitize::size( Avada()->settings->get( 'meta_font_size' ) ), 'form_input_height' => Fusion_Sanitize::size( Avada()->settings->get( 'form_input_height' ) ), 'form_bg_color' => Fusion_Sanitize::color( Avada()->settings->get( 'form_bg_color' ) ), 'form_border_color' => Fusion_Sanitize::color( Avada()->settings->get( 'form_border_color' ) ), 'form_focus_border_color' => Fusion_Sanitize::color( Avada()->settings->get( 'form_focus_border_color' ) ), 'form_border_width-top' => Fusion_Sanitize::size( Avada()->settings->get( 'form_border_width', 'top' ) ), 'form_border_width-right' => Fusion_Sanitize::size( Avada()->settings->get( 'form_border_width', 'right' ) ), 'form_border_width-bottom' => Fusion_Sanitize::size( Avada()->settings->get( 'form_border_width', 'bottom' ) ), 'form_border_width-left' => Fusion_Sanitize::size( Avada()->settings->get( 'form_border_width', 'left' ) ), 'form_border_radius' => Fusion_Sanitize::size( Avada()->settings->get( 'form_border_radius' ), 'px' ), 'form_text_color' => Fusion_Sanitize::color( Avada()->settings->get( 'form_text_color' ) ), 'form_text_size' => Fusion_Sanitize::size( Avada()->settings->get( 'form_text_size' ) ), 'testimonial_bg_color' => Fusion_Sanitize::color( Avada()->settings->get( 'testimonial_bg_color' ) ), 'sep_color' => Fusion_Sanitize::color( Avada()->settings->get( 'sep_color' ) ), ]; $css_button_vars = [ 'button_accent_color' => Fusion_Sanitize::color( Avada()->settings->get( 'button_accent_color' ) ), 'button_accent_hover_color' => Fusion_Sanitize::color( Avada()->settings->get( 'button_accent_hover_color' ) ), 'button_border_color' => Fusion_Sanitize::color( Avada()->settings->get( 'button_border_color' ) ), 'button_border_hover_color' => Fusion_Sanitize::color( Avada()->settings->get( 'button_border_hover_color' ) ), 'button_text_transform' => Avada()->settings->get( 'button_text_transform' ), 'button_gradient_top_color' => Fusion_Sanitize::color( Avada()->settings->get( 'button_gradient_top_color' ) ), 'button_gradient_top_color_hover' => Fusion_Sanitize::color( Avada()->settings->get( 'button_gradient_top_color_hover' ) ), 'button_gradient_bottom_color' => Fusion_Sanitize::color( Avada()->settings->get( 'button_gradient_bottom_color' ) ), 'button_gradient_bottom_color_hover' => Fusion_Sanitize::color( Avada()->settings->get( 'button_gradient_bottom_color_hover' ) ), 'button_border_width-top' => Fusion_Sanitize::size( Avada()->settings->get( 'button_border_width', 'top' ), 'px' ), 'button_border_width-right' => Fusion_Sanitize::size( Avada()->settings->get( 'button_border_width', 'right' ), 'px' ), 'button_border_width-bottom' => Fusion_Sanitize::size( Avada()->settings->get( 'button_border_width', 'bottom' ), 'px' ), 'button_border_width-left' => Fusion_Sanitize::size( Avada()->settings->get( 'button_border_width', 'left' ), 'px' ), 'button-border-radius-top-left' => Fusion_Sanitize::size( Avada()->settings->get( 'button_border_radius', 'top_left' ), 'px' ), 'button-border-radius-top-right' => Fusion_Sanitize::size( Avada()->settings->get( 'button_border_radius', 'top_right' ), 'px' ), 'button-border-radius-bottom-right' => Fusion_Sanitize::size( Avada()->settings->get( 'button_border_radius', 'bottom_right' ), 'px' ), 'button-border-radius-bottom-left' => Fusion_Sanitize::size( Avada()->settings->get( 'button_border_radius', 'bottom_left' ), 'px' ), 'button_typography-font-family' => $dynamic_css_helpers->combined_font_family( Avada()->settings->get( 'button_typography' ) ), 'button_typography-font-weight' => intval( Avada()->settings->get( 'button_typography', 'font-weight' ) ), 'button_typography-font-style' => Avada()->settings->get( 'button_typography', 'font-style' ), 'button_typography-letter-spacing' => Fusion_Sanitize::size( Avada()->settings->get( 'button_typography', 'letter-spacing' ) ) . 'px', 'button_box_shadow' => '3d' === Avada()->settings->get( 'button_type' ) ? 'inset 0px 1px 0px #ffffff, 0px 3px 0px ' . Fusion_Sanitize::color( Avada()->settings->get( 'button_bevel_color' ) ) . ', 1px 5px 5px 3px rgba(0, 0, 0, 0.3)' : 'none', 'button_padding' => '11px 23px', 'button_font_size' => '13px', 'button_line_height' => '16px', ]; $css_vars = apply_filters( 'fusion_block_editor_css_vars', array_merge( $css_vars, $css_button_vars ) ); foreach ( $css_vars as $key => $value ) { $css_vars_string .= '--' . $key . ':' . $value . ';'; } return ':root{' . $css_vars_string . '}'; } /** * Add theme support. * * @access public * @since 6.0 * @return void */ public function add_theme_supports() { // Add support for full and wide align images. add_theme_support( 'align-wide' ); // Add support for the basic, native block styles. add_theme_support( 'wp-block-styles' ); if ( Avada()->settings->get( 'enable_block_editor_backend_styles' ) ) { // Add the editor styles. add_theme_support( 'editor-styles' ); // Set UI to dark mode if bg is dark. $bg_color = $this->get_post_bg_color(); $brightness_level = Fusion_Color::new_color( $bg_color )->brightness; if ( isset( $brightness_level['total'] ) && $brightness_level['total'] < 140 ) { add_theme_support( 'dark-editor-style' ); } } // Add custom editor font sizes. $body_font_size = Avada()->settings->get( 'body_typography', 'font-size' ); $body_font_size_in_px = absint( Fusion_Sanitize::convert_font_size_to_px( $body_font_size, $body_font_size ) ); $body_font_size_in_px = $body_font_size_in_px ? $body_font_size_in_px : 13; $font_size = [ 'small' => $body_font_size_in_px * 0.75, 'normal' => $body_font_size_in_px, 'large' => $body_font_size_in_px * 1.5, 'xlarge' => $body_font_size_in_px * 2, 'huge' => $body_font_size_in_px * 3, ]; $font_size = apply_filters( 'fusion_block_editor_font_sizes', $font_size, $body_font_size_in_px ); add_theme_support( 'editor-font-sizes', [ [ 'name' => __( 'Small', 'Avada' ), 'shortName' => __( 'S', 'Avada' ), 'size' => $font_size['small'], 'slug' => 'small', ], [ 'name' => __( 'Normal', 'Avada' ), 'shortName' => __( 'M', 'Avada' ), 'size' => $font_size['normal'], 'slug' => 'normal', ], [ 'name' => __( 'Large', 'Avada' ), 'shortName' => __( 'L', 'Avada' ), 'size' => $font_size['large'], 'slug' => 'large', ], [ 'name' => __( 'XLarge', 'Avada' ), 'shortName' => __( 'XL', 'Avada' ), 'size' => $font_size['xlarge'], 'slug' => 'xlarge', ], [ 'name' => __( 'Huge', 'Avada' ), 'shortName' => __( 'XXL', 'Avada' ), 'size' => $font_size['huge'], 'slug' => 'huge', ], ] ); $this->add_color_palette_support(); } /** * Add support for Avada's color palette. * * @access public * @since 7.10 * @return void */ public function add_color_palette_support() { $old_color_palette = []; // Get default core color palette from wp-includes/theme.json. if ( class_exists( 'WP_Theme_JSON_Resolver' ) ) { $settings = WP_Theme_JSON_Resolver::get_core_data()->get_settings(); if ( isset( $settings['color']['palette']['default'] ) ) { $old_color_palette = $settings['color']['palette']['default']; } } // Get the Avada colors. $avada_color_palette = AWB_Global_Colors()->get_palette(); $new_color_palette = []; foreach ( $avada_color_palette as $index => $color ) { $new_color_palette[] = [ 'name' => esc_html( $color['label'] ), 'slug' => 'awb-color-' . esc_html( str_replace( 'color', '', str_replace( 'custom_color_', 'custom-', $index ) ) ), 'color' => esc_html( $color['color'] ), ]; } // Merge the old and new color palettes. $new_color_palette = ! empty( $old_color_palette ) ? array_merge( $new_color_palette, $old_color_palette ) : $new_color_palette; // Apply the new color palette. add_theme_support( 'editor-color-palette', $new_color_palette ); } /** * Adjust some block classes to get Avada specific styling. * * @access public * @since 6.0 * @param string $block_content The actual block content. * @param array $block Additional block parameter. * @return string The changed block content. */ public function adjust_block_classes( $block_content, $block ) { $block_name = isset( $block['blockName'] ) ? str_replace( 'core/', '', $block['blockName'] ) : ''; switch ( $block_name ) { case 'search': $block_content = str_replace( 'wp-block-search__button', 'fusion-button-default fusion-button-default-size wp-block-search__button', $block_content ); break; case 'file': $block_content = str_replace( 'wp-block-file__button', 'fusion-button-default fusion-button-default-size wp-block-file__button', $block_content ); break; } return $block_content; } /** * Sets the $has_blocks static var. * * @access public * @since 6.0 * @param string $block_content The actual block content. * @return string Returns the $block_content unmodified. */ public function set_has_blocks( $block_content ) { self::$has_blocks = true; return $block_content; } /** * Remove block styles, if no blocks are on the page. * * @access public * @since 6.0 * @return void */ public function dequeue_block_styles() { wp_dequeue_style( 'global-styles' ); wp_dequeue_style( 'wp-block-library' ); wp_dequeue_style( 'wp-block-library-theme' ); wp_dequeue_style( 'classic-theme-styles' ); } /** * Checks if we need to add the block styles. * * @access public * @since 6.2.0 * @return void */ public function maybe_add_block_styles() { if ( self::$has_blocks ) { wp_enqueue_style( 'global-styles' ); wp_enqueue_style( 'wp-block-library' ); wp_enqueue_style( 'wp-block-library-theme' ); wp_enqueue_style( 'classic-theme-styles' ); } } /** * Add css-vars to the final CSS. * * @access public * @since 6.0 * @param string $css The CSS. * @return string */ public function add_css_vars_to_css( $css ) { $color_css = $this->add_color_css(); return ':root{--button_padding:11px 23px;}' . $color_css . $css; } /** * Add Avada colors to the CSS. * * @access public * @since 7.10 * @return string The color CSS. */ public function add_color_css() { // Get the Avada colors. $avada_color_palette = Avada()->settings->get( 'color_palette' ); $color_css = ''; if ( is_array( $avada_color_palette ) ) { foreach ( $avada_color_palette as $index => $color ) { $color_css .= '.has-awb-color-' . esc_html( str_replace( 'color', '', $index ) ) . '-color{color:' . esc_html( $color['color'] ) . ';}'; $color_css .= '.has-awb-color-' . esc_html( str_replace( 'color', '', $index ) ) . '-background-color{background-color:' . esc_html( $color['color'] ) . ';}'; } } return $color_css; } /** * Get the CSS vars for dynamic styles. * * @access private * @since 6.0.2 * @param int $post_id The post-ID. * @return string The bg color value. */ private function get_post_bg_color( $post_id = 0 ) { global $post; if ( ! $post_id ) { if ( isset( $post->ID ) ) { $post_id = $post->ID; } elseif ( isset( $_GET ) && isset( $_GET['post'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification $post_id = wp_unslash( $_GET['post'] ); // phpcs:ignore WordPress.Security.NonceVerification, WordPress.Security.ValidatedSanitizedInput } } $po_bg_color = ''; if ( $post_id ) { $po_bg_color = fusion_get_option( 'content_bg_color' ); } if ( ! empty( $po_bg_color ) ) { $bg_color = Fusion_Sanitize::color( $po_bg_color ); } else { $bg_color = Fusion_Sanitize::color( Avada()->settings->get( 'content_bg_color' ) ); } return $bg_color; } }
Cokiee Shell Web 1.0, Coded By Razor
Neueste Kommentare