Current Path: > home > codekrsu > > ameliagraphics.com > wp-content > plugins > essential-blocks > > includes > Utils
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
CSSParser.php | File | 9219 bytes | November 07 2024 12:12:30. | |
Enqueue.php | File | 4677 bytes | February 26 2025 16:22:10. | |
Helper.php | File | 25527 bytes | January 12 2025 17:13:54. | |
HttpRequest.php | File | 2147 bytes | August 09 2023 14:57:00. | |
Installer.php | File | 3341 bytes | January 12 2025 17:13:54. | |
Migrator.php | File | 743 bytes | August 09 2023 14:57:00. | |
QueryHelper.php | File | 7360 bytes | October 02 2024 10:36:24. | |
Settings.php | File | 3368 bytes | May 08 2025 15:01:12. | |
SvgSanitizer.php | File | 2525 bytes | May 19 2025 15:07:08. | |
TemplateHelpers.php | File | 2160 bytes | August 29 2023 10:12:00. |
<?php namespace EssentialBlocks\Utils; class Helper { /** * Get installed WordPress Plugin List * * @return array */ public static function get_plugins() { if ( ! function_exists( 'get_plugins' ) ) { require_once ABSPATH . 'wp-admin/includes/plugin.php'; } return get_plugins(); } /** * Get Responsive Breakpoints for Localize */ public static function get_responsive_breakpoints() { $settings = get_option( 'eb_settings', [ ] ); $settingsData = [ ]; if ( array_key_exists( 'responsiveBreakpoints', $settings ) ) { $settingsData = $settings[ 'responsiveBreakpoints' ]; if ( gettype( $settingsData ) === 'string' && strlen( $settingsData ) > 0 ) { $settingsData = (array) json_decode( html_entity_decode( stripslashes( $settingsData ) ) ); } } else { $settings[ 'responsiveBreakpoints' ] = wp_json_encode( [ 'tablet' => 1024, 'mobile' => 767 ] ); update_option( 'eb_settings', $settings ); $settingsData = $settings[ 'responsiveBreakpoints' ]; } return $settingsData; } /** * Get Active Plugins List */ public static function get_active_plugin_list() { $active_plugins = get_option( 'active_plugins' ); if ( is_multisite() ) { $all = wp_get_active_network_plugins(); if ( $all ) { $active_plugins = array_merge( $active_plugins, array_map( function ( $each ) { $arr = explode( '/', $each ); return $arr[ count( $arr ) - 2 ] . DIRECTORY_SEPARATOR . end( $arr ); }, $all ) ); } } return $active_plugins; } /** * Get Plugins List for Localize */ public static function get_plugin_list_for_localize() { $all_plugins = self::get_plugins(); $active_plugins = self::get_active_plugin_list(); if ( is_array( $all_plugins ) ) { foreach ( $all_plugins as $key => $plugin ) { $data = [ ]; $data[ 'TextDomain' ] = $plugin[ 'TextDomain' ]; if ( is_array( $active_plugins ) && in_array( $key, $active_plugins ) ) { $data[ 'active' ] = true; } else { $data[ 'active' ] = false; } // Assign $all_plugins[ $key ] = $data; } } return $all_plugins; } /** * Check if json string * * @param string $context json string. * * @return boolean * @since 4.3.3 * @access public */ public static function isJson( $string ) { if ( ! is_string( $string ) ) { return false; } json_decode( $string ); return json_last_error() === JSON_ERROR_NONE; } /** * Used HTML properties * * @param array $tags Allowed HTML tags. * @param string $context Context. * * @return array * @since 4.3.0 * @access public */ public function eb_allowed_html( $tags, $context ) { if ( 'post' !== $context ) { return $tags; } $global_attributes = [ 'aria-describedby' => true, 'aria-details' => true, 'aria-label' => true, 'aria-labelledby' => true, 'aria-hidden' => true, 'class' => true, 'data-*' => true, 'dir' => true, 'id' => true, 'lang' => true, 'style' => true, 'title' => true, 'role' => true, 'xml:lang' => true ]; if ( isset( $tags[ 'div' ] ) ) { $tags[ 'div' ][ 'name' ] = true; } if ( isset( $tags[ 'form' ] ) ) { $tags[ 'form' ][ 'class' ] = true; } else { $tags[ 'form' ] = [ 'class' => true ]; } if ( ! isset( $tags[ 'svg' ] ) ) { $tags[ 'svg' ] = array_merge( [ 'xmlns' => true, 'width' => true, 'height' => true, 'viewbox' => true ], $global_attributes ); } if ( ! isset( $tags[ 'g' ] ) ) { $tags[ 'g' ] = [ 'fill' => true ]; } if ( ! isset( $tags[ 'title' ] ) ) { $tags[ 'title' ] = [ 'title' => true ]; } if ( ! isset( $tags[ 'path' ] ) ) { $tags[ 'path' ] = [ 'd' => true, 'fill' => true ]; } if ( ! isset( $tags[ 'input' ] ) ) { $tags[ 'input' ] = [ ]; } $tags[ 'input' ] = array_merge( $tags[ 'input' ], [ 'type' => true, 'name' => true, 'value' => true, 'placeholder' => true, 'required' => true, 'checked' => true ], $global_attributes ); if ( ! isset( $tags[ 'textarea' ] ) ) { $tags[ 'textarea' ] = [ ]; } $tags[ 'textarea' ] = array_merge( $tags[ 'textarea' ], [ 'name' => true, 'required' => true, 'placeholder' => true, 'rows' => true ], $global_attributes ); if ( ! isset( $tags[ 'select' ] ) ) { $tags[ 'select' ] = [ ]; } $tags[ 'select' ] = array_merge( $tags[ 'select' ], [ 'name' => true, 'required' => true, 'placeholder' => true, 'value' => true ], $global_attributes ); if ( ! isset( $tags[ 'option' ] ) ) { $tags[ 'option' ] = [ ]; } $tags[ 'option' ] = array_merge( $tags[ 'option' ], [ 'name' => true, 'required' => true, 'placeholder' => true, 'selected' => true, 'value' => true ], $global_attributes ); return $tags; } /** * Define Global Colors * * @return array * @since 4.4.0 * @access public */ public static function global_colors() { return [ (object) [ 'color' => '#101828', 'name' => 'Primary Color', 'slug' => 'primary', 'var' => '--eb-global-primary-color' ], (object) [ 'color' => '#475467', 'name' => 'Secondary Color', 'slug' => 'secondary', 'var' => '--eb-global-secondary-color' ], (object) [ 'color' => '#98A2B3', 'name' => 'Tertiary Color', 'slug' => 'tertiary', 'var' => '--eb-global-tertiary-color' ], (object) [ 'color' => '#475467', 'name' => 'Text Color', 'slug' => 'text', 'var' => '--eb-global-text-color' ], (object) [ 'color' => '#1D2939', 'name' => 'Heading Color', 'slug' => 'heading', 'var' => '--eb-global-heading-color' ], (object) [ 'color' => '#444CE7', 'name' => 'Link Color', 'slug' => 'link', 'var' => '--eb-global-link-color' ], (object) [ 'color' => '#F9FAFB', 'name' => 'Background Color', 'slug' => 'background', 'var' => '--eb-global-background-color' ], (object) [ 'color' => '#FFFFFF', 'name' => 'Button Text Color', 'slug' => 'buttonText', 'var' => '--eb-global-button-text-color' ], (object) [ 'color' => '#101828', 'name' => 'Button Background Color', 'slug' => 'buttonBackground', 'var' => '--eb-global-button-background-color' ] ]; } /** * Define Gradient Colors * * @return array * @since 4.4.0 * @access public */ public static function gradient_colors() { return [ (object) [ 'color' => 'linear-gradient(90deg, hsla(259, 84%, 78%, 1) 0%, hsla(206, 67%, 75%, 1) 100%)', 'name' => 'Primary Color', 'slug' => 'gradientPrimary', 'var' => '--eb-gradient-primary-color' ], (object) [ 'color' => 'linear-gradient(90deg, hsla(18, 76%, 85%, 1) 0%, hsla(203, 69%, 84%, 1) 100%)', 'name' => 'Secondary Color', 'slug' => 'gradientSecondary', 'var' => '--eb-gradient-secondary-color' ], (object) [ 'color' => 'linear-gradient(90deg, hsla(248, 21%, 15%, 1) 0%, hsla(250, 14%, 61%, 1) 100%)', 'name' => 'Tertiary Color', 'slug' => 'gradientTertiary', 'var' => '--eb-gradient-tertiary-color' ], (object) [ 'color' => 'linear-gradient(90deg, rgb(250, 250, 250) 0%, rgb(233, 233, 233) 49%, rgb(244, 243, 243) 100%)', 'name' => 'Background Color', 'slug' => 'gradientBackground', 'var' => '--eb-gradient-background-color' ] ]; } /** * array filter recursive for check if any block exists in block list * * @param array $arrayList Array List. * @param string $match Array key to match * * @return boolean * @since 4.3.0 * @access public */ public static function array_filter_recursive( $arrayList, $match ) { foreach ( $arrayList as $block ) { if ( $match === $block[ 'blockName' ] ) { return true; } if ( isset( $block[ 'innerBlocks' ] ) && count( $block[ 'innerBlocks' ] ) > 0 ) { if ( self::array_filter_recursive( $block[ 'innerBlocks' ], $match ) ) { return true; } } } return false; } public static function calculate_read_time( $text ) { if ( empty( $text ) ) { return 0; } $text = preg_replace( '/<([a-z][a-z0-9]*)[^>]*?(\/?)>/si', '<$1$2>', $text ); $text = wp_strip_all_tags( $text ); $wpm = 200; $words = str_word_count( trim( $text ) ); $time = ceil( $words / $wpm ); return $time; } /** * Remove HTML Tags with Inner Contents * * @param string $content * @param mixed $tags * @return string */ public static function removeHtmlTagWithInnerContents( $contant, $tags ) { if ( is_array( $tags ) ) { foreach ( $tags as $tag ) { $contant = preg_replace( sprintf( '/<%1$s\b[^>]*>(.*?)<\/%1$s>/is', $tag ), '', $contant ); } } else { $contant = preg_replace( '/<figure\b[^>]*>(.*?)<\/figure>/is', '', $contant ); } return $contant; } public static function is_isset( $value, $default = '' ) { return isset( $_POST[ $value ] ) ? sanitize_text_field( $_POST[ $value ] ) : $default; } public static function load_google_font( $fonts, $handler ) { if ( is_array( $fonts ) && ! empty( $fonts ) ) { $gfonts = ''; $gfonts_attr = ':100,100italic,200,200italic,300,300italic,400,400italic,500,500italic,600,600italic,700,700italic,800,800italic,900,900italic'; foreach ( $fonts as $font ) { $gfonts .= str_replace( ' ', '+', trim( $font ) ) . $gfonts_attr . '|'; } if ( ! empty( $gfonts ) ) { $query_args = [ 'family' => $gfonts ]; wp_register_style( $handler, add_query_arg( $query_args, '//fonts.googleapis.com/css' ), [ ], ESSENTIAL_BLOCKS_VERSION ); wp_enqueue_style( $handler ); } // Reset. $gfonts = ''; } } public static function build_url( $url, $params = [ ] ) { $url_components = wp_parse_url( $url ); $_build_query = http_build_query( $params ); $_build_query .= ! empty( $url_components[ 'query' ] ) ? '&' . $url_components[ 'query' ] : ''; $_build_query .= ! empty( $url_components[ 'fragment' ] ) ? '#' . $url_components[ 'fragment' ] : ''; return $url_components[ 'scheme' ] . '://' . $url_components[ 'host' ] . '/' . trim( $url_components[ 'path' ], '/' ) . '?' . $_build_query; } protected static function get_views_path( $name ) { $file = ESSENTIAL_BLOCKS_DIR_PATH . 'views/' . $name . '.php'; if ( file_exists( $file ) ) { return $file; } return false; } /** * Get views for front-end display * * @param string $name it will be file name only from the view's folder. * @param array $data * @return void */ public static function views( $name, $data = [ ] ) { $__file = static::get_views_path( $name ); $helper = static::class; extract( $data, EXTR_SKIP ); if ( is_readable( $__file ) ) { include $__file; } } /** * Convert Recursive Array to String * * @param array $array * @param string $seperator * @param boolean $valueOnly | optional * @return string */ public static function recursive_implode( $array, $seperator, $valueOnly = false ) { $result = ''; if ( isset( $array[ 'value' ] ) && $valueOnly ) { $array = $array[ 'value' ]; } if ( is_array( $array ) ) { foreach ( $array as $key => $value ) { if ( is_array( $value ) ) { $result .= self::recursive_implode( $value, $seperator, true ) . $seperator; } else { $result .= $value . $seperator; } } } elseif ( is_string( $array ) ) { $result .= $array . $seperator; } $result = substr( $result, 0, 0 - strlen( $seperator ) ); return $result; } public static function recursive_implode_acf( $array, $seperator ) { $result = ''; if ( is_array( $array ) ) { foreach ( $array as $key => $value ) { if ( is_array( $value ) || is_object( $value ) ) { $result .= self::recursive_implode_acf( (array) $value, $seperator ); } else { $value = $value ? $value : 'Null'; $index = is_numeric( $key ) ? '' : $key . ': '; $result .= $index . $value . $seperator; } } } elseif ( is_string( $array ) ) { $result .= $array . $seperator; } return $result; } /** * check isset & not empty and return data */ public static function get_data( $arr, $key, $default = null ) { return isset( $arr[ $key ] ) && ! empty( $arr[ $key ] ) ? $arr[ $key ] : $default; } /** * array of object to string */ public static function array_column_from_json( $arr, $handle, $json = true ) { $arr = $json ? json_decode( $arr, true ) : $arr; $arr = array_column( $arr, $handle ); return $arr; } /** * Is Gutenberg Editor */ public static function eb_is_gutenberg_editor( $pagenow, $param ) { if ( $pagenow == 'post-new.php' || $pagenow == 'post.php' || $pagenow == 'site-editor.php' ) { return true; } if ( $pagenow == 'themes.php' && ! empty( $param ) && str_contains( $param, 'gutenberg-edit-site' ) ) { return true; } return false; } public static function eb_get_icon_type( $value ) { if ( strpos( $value, 'fa-' ) !== false ) { return 'fontawesome'; } return 'dashicon'; } public static function eb_render_icon( $icon_type, $class_name, $icon ) { if ( $icon_type === 'dashicon' ) { // Render Dashicon return '<span class="dashicon dashicons ' . $icon . ' ' . $class_name . '"></span>'; } elseif ( $icon_type === 'fontawesome' ) { // Render FontAwesome icon return '<i class="' . $icon . ' ' . $class_name . '"></i>'; } // Handle other icon types or return an error message return esc_html__( "Invalid icon type", "essential-blocks" ); } /** * Get HTML for a gallery image. * * Hooks: woocommerce_gallery_thumbnail_size, woocommerce_gallery_image_size and woocommerce_gallery_full_size accept name based image sizes, or an array of width/height values. * * @param int $attachment_id Attachment ID. * @param bool $main_image Is this the main image or a thumbnail?. * @return string */ public static function get_product_gallery_image_html( $attachment_id, $main_image = false ) { $gallery_thumbnail = wc_get_image_size( 'gallery_thumbnail' ); $thumbnail_size = apply_filters( 'woocommerce_gallery_thumbnail_size', [ $gallery_thumbnail[ 'width' ], $gallery_thumbnail[ 'height' ] ] ); $image_size = apply_filters( 'woocommerce_gallery_image_size', $main_image ? 'woocommerce_single' : $thumbnail_size ); $full_size = apply_filters( 'woocommerce_gallery_full_size', apply_filters( 'woocommerce_product_thumbnails_large_size', 'full' ) ); $thumbnail_src = wp_get_attachment_image_src( $attachment_id, $thumbnail_size ); $full_src = wp_get_attachment_image_src( $attachment_id, $full_size ); $alt_text = trim( wp_strip_all_tags( get_post_meta( $attachment_id, '_wp_attachment_image_alt', true ) ) ); $image = wp_get_attachment_image( $attachment_id, $image_size, false, [ 'class' => 'eb-product-gallery-image', 'alt' => $alt_text, 'data-large_image' => esc_url( $full_src[ 0 ] ), 'data-large_image_width' => esc_attr( $full_src[ 1 ] ), 'data-large_image_height' => esc_attr( $full_src[ 2 ] ) ] ); return $image; } /** * return value from json array * * @param array $arr * * @return array */ public static function get_value_from_json_array( $arr ) { if ( isset( $arr ) && is_array( $arr ) && count( $arr ) > 0 ) { $values = [ ]; foreach ( $arr as $key => $value ) { if ( is_array( $value ) && count( $value ) > 0 && isset( $value[ 'value' ] ) ) { array_push( $values, $value[ 'value' ] ); } } if ( count( $values ) > 0 ) { return $values; } } return [ ]; } /** * Essential Blocks Settings (by key) * * @param string $key array key. * * @return array | boolean * @since 5.1.0 */ public static function get_eb_settings( $key = '' ) { $settings = get_option( 'eb_settings', [ ] ); if ( strlen( $key ) > 0 ) { if ( isset( $settings[ $key ] ) ) { return $settings[ $key ]; } else { return false; } } return $settings; } /** * Version Update warning * * @param mixed $current_version * @param mixed $new_version * @return void */ public static function version_update_warning( $current_version, $new_version, $upgrade_notice ) { $current_version_minor_part = explode( '.', $current_version )[ 1 ]; $new_version_minor_part = explode( '.', $new_version )[ 1 ]; $notice = ''; if ( $current_version_minor_part === $new_version_minor_part ) { if ( ! $upgrade_notice ) { return; } } if ( $current_version_minor_part !== $new_version_minor_part ) { $notice .= 'We highly recommend you to backup your site before upgrading to the new version.'; } ?> <style> hr.eb-update-warning__separator { margin: 15px -13px; border-color: #dba618; } .eb-update-warning .dashicons { display: inline-block; color: #F49B07; } .eb-update-warning .eb-update-warning__title { display: inline-block; font-size: 1.05em; color: #444; font-weight: 500; margin-bottom: 10px; } .eb-update-warning__message { margin-bottom: 15px; } .update-message.notice-warning p:empty { display: none; } </style> <hr class="eb-update-warning__separator" /> <div class="eb-update-warning"> <div> <span class="dashicons dashicons-info"></span> <div class="eb-update-warning__title"> <?php echo esc_html__( 'Heads up!', 'essential-blocks' ); ?> </div> <div class="eb-update-warning__message"> <?php echo wp_kses_post( $notice ); ?> </div> <?php if ( $upgrade_notice !== false ) { ?> <hr class="eb-update-warning__separator" /> <div class="eb-update-warning__message"> <span class="dashicons dashicons-info"></span> <div class="eb-update-warning__title"> <?php echo esc_html__( 'What\'s new?', 'essential-blocks' ); ?> </div> <div class="eb-update-warning__message"> <?php echo wp_kses_post( $upgrade_notice ); ?> </div> </div> <?php }?> </div> </div> <?php } }
SILENT KILLER Tool