OwlCyberSecurity - MANAGER
Edit File: class-redux-functions.php
<?php /** * Redux Framework Private Functions Container Class * * @class Redux_Functions * @package Redux_Framework/Classes * @since 3.0.0 */ // Exit if accessed directly. defined( 'ABSPATH' ) || exit; // Don't duplicate me! if ( ! class_exists( 'Redux_Functions', false ) ) { /** * Redux Functions Class * A Class of useful functions that can/should be shared among all Redux files. * * @since 3.0.0 */ class Redux_Functions { /** * ReduxFramework object pointer. * * @var object */ public static $parent; /** * ReduxFramework shim object pointer. * * @var object */ public static $_parent; // phpcs:ignore PSR2.Classes.PropertyDeclaration.Underscore /** * Check for the existence of class name via an array of class names. * * @param array $class_names Array of class names. * * @return string|bool */ public static function class_exists_ex( array $class_names = array() ) { foreach ( $class_names as $class_name ) { if ( class_exists( $class_name ) ) { return $class_name; } } return false; } /** * Check for the existence of file name via an array of file names. * * @param array $file_names Array of file names. * * @return string|bool */ public static function file_exists_ex( array $file_names = array() ) { foreach ( $file_names as $file_name ) { if ( file_exists( $file_name ) ) { return $file_name; } } return false; } /** Extract data: * $field = field_array * $value = field values * $core = Redux instance */ /** * Parse args to handle deep arrays. The WP one does not. * * @param array|string $args Array of args. * @param array $defaults Defaults array. * * @return array */ public static function parse_args( $args, array $defaults ): array { $arr = array(); if ( ! is_array( $args ) ) { $arr[] = $args; } else { $arr = $args; } $result = $defaults; foreach ( $arr as $k => $v ) { if ( is_array( $v ) && isset( $result[ $k ] ) ) { $result[ $k ] = self::parse_args( $v, $result[ $k ] ); } else { $result[ $k ] = $v; } } return $result; } /** * Deprecated: Return min tag for JS and CSS files in dev_mode. * * @deprecated No longer using camelCase naming conventions. * * @return string */ public static function isMin(): string { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName return self::is_min(); } /** * Return min tag for JS and CSS files in dev_mode. * * @return string */ public static function is_min(): string { $min = '.min'; $dev_mode = false; $instances = Redux::all_instances(); if ( ! empty( $instances ) ) { foreach ( $instances as $instance ) { if ( empty( self::$parent ) ) { self::$parent = $instance; self::$_parent = self::$parent; } if ( ! empty( $instance->args['dev_mode'] ) ) { $dev_mode = true; self::$parent = $instance; self::$_parent = self::$parent; } } if ( $dev_mode ) { $min = ''; } } return $min; } /** * Parse CSS from an output/compiler array * * @param array $css_array CSS data. * @param string $style CSS style. * @param string $value CSS values. * * @return string CSS string * @since 3.2.8 * @access private */ public static function parse_css( array $css_array = array(), string $style = '', string $value = '' ): string { // Something wrong happened. if ( 0 === count( $css_array ) ) { return ''; } else { $css = ''; $important = false; if ( isset( $css_array['important'] ) && true === $css_array['important'] ) { $important = '!important'; unset( $css_array['important'] ); } foreach ( $css_array as $element => $selector ) { // The old way. if ( 0 === $element ) { return self::the_old_way( $css_array, $style ); } // New way continued. $css_style = $element . ':' . $value . $important . ';'; $css .= $selector . '{' . $css_style . '}'; } } return $css; } /** * Parse CSS shim. * * @param array $css_array CSS data. * @param string $style CSS style. * @param string $value CSS values. * * @deprecated 4.0 * * @return string CSS string * @since 4.0.0 * @access public */ public static function parseCSS( array $css_array = array(), string $style = '', string $value = '' ): string { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName _deprecated_function( __CLASS__ . '::' . __FUNCTION__, '4.0', __CLASS__ . '::parse_css( $css_array, $style, $value )' ); return self::parse_css( $css_array, $style, $value ); } /** * Parse CSS the old way, without mode options. * * @param array $css_array CSS data. * @param string $style CSS style. * * @return string */ private static function the_old_way( array $css_array, string $style ): string { $keys = implode( ',', $css_array ); return $keys . '{' . $style . '}'; } /** * Return s. * * @access public * @since 4.0.0 * @return string */ public static function gs(): string { return get_option( 're' . 'dux_p' . 'ro_lic' . 'ense_key', '' ); // phpcs:ignore Generic.Strings.UnnecessaryStringConcat.Found } /** * Deprecated Initialized the WordPress filesystem, if it already isn't. * * @since 3.2.3 * @access public * @deprecated NO longer using camelCase naming conventions. * * @return void */ public static function initWpFilesystem() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName // phpcs:ignore Squiz.Commenting.InlineComment.InvalidEndChar _deprecated_function( __CLASS__ . '::' . __FUNCTION__, '4.0', __CLASS__ . '::init_wp_filesystem()' ); self::init_wp_filesystem(); } /** * Initialized the WordPress filesystem, if it already isn't. * * @since 3.2.3 * @access public * * @return void */ public static function init_wp_filesystem() { global $wp_filesystem; // Initialize the WordPress filesystem, no more using file_put_contents function. if ( empty( $wp_filesystem ) ) { require_once ABSPATH . '/wp-includes/pluggable.php'; require_once ABSPATH . '/wp-admin/includes/file.php'; WP_Filesystem(); } } /** * TRU. * * @param string $string . * @param string $opt_name . * * @deprecated Ad Remover extension no longer necessary. * * @return void */ public static function tru( string $string, string $opt_name ) { _deprecated_function( __CLASS__ . '::' . __FUNCTION__, '4.0', '' ); } /** * DAT. * * @param string $fname . * @param string $opt_name . * * @deprecated Ad Remover extension no longer necessary. * * @return void */ public static function dat( string $fname, string $opt_name ) { _deprecated_function( __CLASS__ . '::' . __FUNCTION__, '4.0', '' ); } /** * BUB. * * @param string $fname . * @param string $opt_name . * * @deprecated Ad Remover extension no longer necessary. * * @return void */ public static function bub( string $fname, string $opt_name ) { _deprecated_function( __CLASS__ . '::' . __FUNCTION__, '4.0', '' ); } /** * YO. * * @param string $fname . * @param string $opt_name . * * @deprecated Ad Remover extension no longer necessary. * * @return void */ public static function yo( string $fname, string $opt_name ) { _deprecated_function( __CLASS__ . '::' . __FUNCTION__, '4.0', '' ); } /** * Sanitize camelCase keys in an array, makes then snake_case. * * @param array $arr Array of keys. * * @return array */ public static function sanitize_camel_case_array_keys( array $arr ): array { $keys = array_keys( $arr ); $values = array_values( $arr ); $result = preg_replace_callback( '/[A-Z]/', function ( $matches ) { return '-' . Redux_Core::strtolower( $matches[0] ); }, $keys ); return array_combine( $result, $values ); } /** * Converts an array into an html data string. * * @param array $data example input: array('id'=>'true'). * * @return string $data_string example output: data-id='true' */ public static function create_data_string( array $data = array() ): string { $data_string = ''; foreach ( $data as $key => $value ) { if ( is_array( $value ) ) { $value = implode( '|', $value ); } $data_string .= ' data-' . $key . '=' . Redux_Helpers::make_bool_str( $value ) . ' '; } return $data_string; } } }