Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-conte.../themes/Divi/includes/builder
File: class-et-builder-element.php
case 'parent':
[16000] Fix | Delete
$_modules = $parent_modules;
[16001] Fix | Delete
break;
[16002] Fix | Delete
[16003] Fix | Delete
case 'child':
[16004] Fix | Delete
$_modules = $child_modules;
[16005] Fix | Delete
break;
[16006] Fix | Delete
[16007] Fix | Delete
default:
[16008] Fix | Delete
$_modules = array_merge( $parent_modules, $child_modules );
[16009] Fix | Delete
break;
[16010] Fix | Delete
}
[16011] Fix | Delete
[16012] Fix | Delete
$module_fields = array();
[16013] Fix | Delete
[16014] Fix | Delete
$custom_css_unwanted_types = array( 'custom_css', 'column_settings_css', 'column_settings_css_fields', 'column_settings_custom_css' );
[16015] Fix | Delete
foreach( $_modules as $_module_slug => $_module ) {
[16016] Fix | Delete
// filter modules by slug if needed
[16017] Fix | Delete
if ( 'all' !== $module_type && $module_type !== $_module_slug ) {
[16018] Fix | Delete
continue;
[16019] Fix | Delete
}
[16020] Fix | Delete
[16021] Fix | Delete
$module_fields[ $_module_slug ] = $_module->custom_css_fields;
[16022] Fix | Delete
[16023] Fix | Delete
foreach ( $module_fields[ $_module_slug ] as &$item ) {
[16024] Fix | Delete
$item['hover'] = self::$_->array_get( $item, 'hover', 'tabs' );
[16025] Fix | Delete
$item['mobile_options'] = self::$_->array_get( $item, 'mobile_options', true );
[16026] Fix | Delete
}
[16027] Fix | Delete
[16028] Fix | Delete
// Automatically added module ID and module class fields to setting modal's CSS tab
[16029] Fix | Delete
if ( ! empty( $_module->fields_unprocessed ) ) {
[16030] Fix | Delete
foreach ( $_module->fields_unprocessed as $field_unprocessed_key => $field_unprocessed ) {
[16031] Fix | Delete
$has_tab_slug = isset( $field_unprocessed['tab_slug'] );
[16032] Fix | Delete
$is_css_field = $has_tab_slug && 'custom_css' === $field_unprocessed['tab_slug'];
[16033] Fix | Delete
$has_type = isset( $field_unprocessed['type'] );
[16034] Fix | Delete
$is_unwanted_css_field = $has_type && in_array( $field_unprocessed['type'], $custom_css_unwanted_types );
[16035] Fix | Delete
$is_template_inside_css_tab = is_string( $field_unprocessed ) && self::$option_template->is_template_inside_tab( 'custom_css', $field_unprocessed );
[16036] Fix | Delete
[16037] Fix | Delete
// Option template's template that might be rendered in custom_css tab
[16038] Fix | Delete
if ( ( $is_css_field && ! $is_unwanted_css_field ) || $is_template_inside_css_tab ) {
[16039] Fix | Delete
$module_fields[ $_module_slug ][ $field_unprocessed_key ] = $field_unprocessed;
[16040] Fix | Delete
}
[16041] Fix | Delete
}
[16042] Fix | Delete
}
[16043] Fix | Delete
[16044] Fix | Delete
// Some module types must be separated for the Global Presets.
[16045] Fix | Delete
// For example we keep all section types as `et_pb_section` however they need different Global Presets.
[16046] Fix | Delete
$additional_slugs = self::$global_presets_manager->get_module_additional_slugs( $_module_slug );
[16047] Fix | Delete
foreach ( $additional_slugs as $alias ) {
[16048] Fix | Delete
$module_fields[ $alias ] = $module_fields[ $_module_slug ];
[16049] Fix | Delete
}
[16050] Fix | Delete
}
[16051] Fix | Delete
[16052] Fix | Delete
if ( 'all' !== $module_type ) {
[16053] Fix | Delete
return $module_fields[ $module_type ];
[16054] Fix | Delete
}
[16055] Fix | Delete
[16056] Fix | Delete
return $module_fields;
[16057] Fix | Delete
}
[16058] Fix | Delete
[16059] Fix | Delete
static function get_modules_i10n( $post_type = '', $mode = 'all', $module_type = 'all' ) {
[16060] Fix | Delete
$parent_modules = self::get_parent_modules( $post_type );
[16061] Fix | Delete
$child_modules = self::get_child_modules( $post_type );
[16062] Fix | Delete
[16063] Fix | Delete
switch ( $mode ) {
[16064] Fix | Delete
case 'parent':
[16065] Fix | Delete
$_modules = $parent_modules;
[16066] Fix | Delete
break;
[16067] Fix | Delete
[16068] Fix | Delete
case 'child':
[16069] Fix | Delete
$_modules = $child_modules;
[16070] Fix | Delete
break;
[16071] Fix | Delete
[16072] Fix | Delete
default:
[16073] Fix | Delete
$_modules = array_merge( $parent_modules, $child_modules );
[16074] Fix | Delete
break;
[16075] Fix | Delete
}
[16076] Fix | Delete
[16077] Fix | Delete
$fields = array();
[16078] Fix | Delete
[16079] Fix | Delete
foreach( $_modules as $_module_slug => $_module ) {
[16080] Fix | Delete
// filter modules by slug if needed
[16081] Fix | Delete
if ( 'all' !== $module_type && $module_type !== $_module_slug ) {
[16082] Fix | Delete
continue;
[16083] Fix | Delete
}
[16084] Fix | Delete
[16085] Fix | Delete
$fields[$_module_slug] = array(
[16086] Fix | Delete
'addNew' => $_module->add_new_child_text()
[16087] Fix | Delete
);
[16088] Fix | Delete
}
[16089] Fix | Delete
[16090] Fix | Delete
if ( 'all' !== $module_type ) {
[16091] Fix | Delete
return $fields[ $module_type ];
[16092] Fix | Delete
}
[16093] Fix | Delete
[16094] Fix | Delete
return $fields;
[16095] Fix | Delete
}
[16096] Fix | Delete
[16097] Fix | Delete
public static function get_modules_transitions( $post_type = '', $mode = 'all', $module_type = 'all' ) {
[16098] Fix | Delete
/**
[16099] Fix | Delete
* @var ET_Builder_Element[] $_modules
[16100] Fix | Delete
*/
[16101] Fix | Delete
[16102] Fix | Delete
$parent_modules = self::get_parent_modules( $post_type );
[16103] Fix | Delete
$child_modules = self::get_child_modules( $post_type );
[16104] Fix | Delete
$fields = array();
[16105] Fix | Delete
[16106] Fix | Delete
switch ( $mode ) {
[16107] Fix | Delete
case 'parent':
[16108] Fix | Delete
$_modules = $parent_modules;
[16109] Fix | Delete
break;
[16110] Fix | Delete
[16111] Fix | Delete
case 'child':
[16112] Fix | Delete
$_modules = $child_modules;
[16113] Fix | Delete
break;
[16114] Fix | Delete
[16115] Fix | Delete
default:
[16116] Fix | Delete
$_modules = array_merge( $parent_modules, $child_modules );
[16117] Fix | Delete
break;
[16118] Fix | Delete
}
[16119] Fix | Delete
[16120] Fix | Delete
foreach ( $_modules as $_module_slug => $_module ) {
[16121] Fix | Delete
// filter modules by slug if needed
[16122] Fix | Delete
if ( 'all' !== $module_type && $module_type !== $_module_slug ) {
[16123] Fix | Delete
continue;
[16124] Fix | Delete
}
[16125] Fix | Delete
[16126] Fix | Delete
$fields[ $_module_slug ] = $_module->get_transition_fields_css_props();
[16127] Fix | Delete
}
[16128] Fix | Delete
[16129] Fix | Delete
return $fields;
[16130] Fix | Delete
}
[16131] Fix | Delete
[16132] Fix | Delete
public static function get_module_items_configs( $post_type ) {
[16133] Fix | Delete
$modules = self::get_parent_and_child_modules( $post_type );
[16134] Fix | Delete
$configs = array();
[16135] Fix | Delete
[16136] Fix | Delete
foreach ( $modules as $slug => $module ) {
[16137] Fix | Delete
if ( isset( $module->module_items_config ) ) {
[16138] Fix | Delete
$configs[ $slug ] = $module->module_items_config;
[16139] Fix | Delete
}
[16140] Fix | Delete
}
[16141] Fix | Delete
[16142] Fix | Delete
return $configs;
[16143] Fix | Delete
}
[16144] Fix | Delete
[16145] Fix | Delete
static function get_module_fields( $post_type, $module ) {
[16146] Fix | Delete
$_modules = self::get_parent_and_child_modules( $post_type );
[16147] Fix | Delete
[16148] Fix | Delete
if ( ! empty( $_modules[ $module ] ) ) {
[16149] Fix | Delete
return $_modules[ $module ]->fields_unprocessed;
[16150] Fix | Delete
}
[16151] Fix | Delete
return false;
[16152] Fix | Delete
}
[16153] Fix | Delete
[16154] Fix | Delete
static function get_parent_module_fields( $post_type, $module ) {
[16155] Fix | Delete
if ( ! empty( self::$parent_modules[ $post_type ][ $module ] ) ) {
[16156] Fix | Delete
return self::$parent_modules[ $post_type ][ $module ]->get_complete_fields();
[16157] Fix | Delete
}
[16158] Fix | Delete
return false;
[16159] Fix | Delete
}
[16160] Fix | Delete
[16161] Fix | Delete
static function get_child_module_fields( $post_type, $module ) {
[16162] Fix | Delete
if ( ! empty( self::$child_modules[ $post_type ][ $module ] ) ) {
[16163] Fix | Delete
return self::$child_modules[ $post_type ][ $module ]->get_complete_fields();
[16164] Fix | Delete
}
[16165] Fix | Delete
return false;
[16166] Fix | Delete
}
[16167] Fix | Delete
[16168] Fix | Delete
static function get_parent_module_field( $post_type, $module, $field ) {
[16169] Fix | Delete
$fields = self::get_parent_module_fields( $post_type, $module );
[16170] Fix | Delete
if ( ! empty( $fields[ $field ] ) ) {
[16171] Fix | Delete
return $fields[ $field ];
[16172] Fix | Delete
}
[16173] Fix | Delete
return false;
[16174] Fix | Delete
}
[16175] Fix | Delete
[16176] Fix | Delete
static function get_font_icon_fields( $post_type = '' ) {
[16177] Fix | Delete
$_modules = self::get_parent_and_child_modules( $post_type );
[16178] Fix | Delete
$module_fields = array();
[16179] Fix | Delete
[16180] Fix | Delete
foreach ( $_modules as $module_name => $module ) {
[16181] Fix | Delete
foreach ($module->fields_unprocessed as $module_field_name => $module_field) {
[16182] Fix | Delete
if ( isset( $module_field['type'] ) && 'select_icon' === $module_field['type'] ) {
[16183] Fix | Delete
$module_fields[ $module_name ][ $module_field_name ] = true;
[16184] Fix | Delete
}
[16185] Fix | Delete
}
[16186] Fix | Delete
}
[16187] Fix | Delete
[16188] Fix | Delete
return $module_fields;
[16189] Fix | Delete
}
[16190] Fix | Delete
[16191] Fix | Delete
/**
[16192] Fix | Delete
* Retrieves credits of custom modules for VB
[16193] Fix | Delete
*
[16194] Fix | Delete
* @return array of credits info by module slug
[16195] Fix | Delete
*/
[16196] Fix | Delete
public static function get_custom_modules_credits( $post_type = '' ) {
[16197] Fix | Delete
$result = array();
[16198] Fix | Delete
[16199] Fix | Delete
$modules = self::get_parent_and_child_modules( $post_type );
[16200] Fix | Delete
[16201] Fix | Delete
/**
[16202] Fix | Delete
* @var $module_slug string
[16203] Fix | Delete
* @var $module ET_Builder_Module
[16204] Fix | Delete
*/
[16205] Fix | Delete
foreach ( $modules as $module_slug => $module ) {
[16206] Fix | Delete
// Include custom module credits for displaying them within VB
[16207] Fix | Delete
if ( $module->_is_official_module ) {
[16208] Fix | Delete
continue;
[16209] Fix | Delete
} else {
[16210] Fix | Delete
if ( isset( $module->module_credits ) && is_array( $module->module_credits ) ) {
[16211] Fix | Delete
$result[ $module_slug ] = $module->module_credits;
[16212] Fix | Delete
}
[16213] Fix | Delete
}
[16214] Fix | Delete
}
[16215] Fix | Delete
[16216] Fix | Delete
return $result;
[16217] Fix | Delete
}
[16218] Fix | Delete
[16219] Fix | Delete
static function get_media_quries( $for_js=false ) {
[16220] Fix | Delete
$media_queries = array(
[16221] Fix | Delete
'min_width_1405' => '@media only screen and ( min-width: 1405px )',
[16222] Fix | Delete
'1100_1405' => '@media only screen and ( min-width: 1100px ) and ( max-width: 1405px)',
[16223] Fix | Delete
'981_1405' => '@media only screen and ( min-width: 981px ) and ( max-width: 1405px)',
[16224] Fix | Delete
'981_1100' => '@media only screen and ( min-width: 981px ) and ( max-width: 1100px )',
[16225] Fix | Delete
'min_width_981' => '@media only screen and ( min-width: 981px )',
[16226] Fix | Delete
'max_width_980' => '@media only screen and ( max-width: 980px )',
[16227] Fix | Delete
'768_980' => '@media only screen and ( min-width: 768px ) and ( max-width: 980px )',
[16228] Fix | Delete
'min_width_768' => '@media only screen and ( min-width: 768px )',
[16229] Fix | Delete
'max_width_767' => '@media only screen and ( max-width: 767px )',
[16230] Fix | Delete
'max_width_479' => '@media only screen and ( max-width: 479px )',
[16231] Fix | Delete
);
[16232] Fix | Delete
[16233] Fix | Delete
$media_queries['mobile'] = $media_queries['max_width_767'];
[16234] Fix | Delete
[16235] Fix | Delete
$media_queries = apply_filters( 'et_builder_media_queries', $media_queries );
[16236] Fix | Delete
[16237] Fix | Delete
if ( 'for_js' === $for_js ) {
[16238] Fix | Delete
$processed_queries = array();
[16239] Fix | Delete
[16240] Fix | Delete
foreach ( $media_queries as $key => $value ) {
[16241] Fix | Delete
$processed_queries[] = array( $key, $value );
[16242] Fix | Delete
}
[16243] Fix | Delete
} else {
[16244] Fix | Delete
$processed_queries = $media_queries;
[16245] Fix | Delete
}
[16246] Fix | Delete
[16247] Fix | Delete
return $processed_queries;
[16248] Fix | Delete
}
[16249] Fix | Delete
[16250] Fix | Delete
static function set_media_queries() {
[16251] Fix | Delete
self::$media_queries = self::get_media_quries();
[16252] Fix | Delete
}
[16253] Fix | Delete
[16254] Fix | Delete
static function get_media_query( $name ) {
[16255] Fix | Delete
if ( ! isset( self::$media_queries[ $name ] ) ) {
[16256] Fix | Delete
return false;
[16257] Fix | Delete
}
[16258] Fix | Delete
[16259] Fix | Delete
return self::$media_queries[ $name ];
[16260] Fix | Delete
}
[16261] Fix | Delete
[16262] Fix | Delete
static function get_style_key() {
[16263] Fix | Delete
if ( self::is_theme_builder_layout() ) {
[16264] Fix | Delete
return self::get_layout_id();
[16265] Fix | Delete
}
[16266] Fix | Delete
[16267] Fix | Delete
// Use a generic key in all other cases.
[16268] Fix | Delete
// For example, injector plugins that repeat a layout in a loop
[16269] Fix | Delete
// need to group that CSS under the same key.
[16270] Fix | Delete
return 'post';
[16271] Fix | Delete
}
[16272] Fix | Delete
[16273] Fix | Delete
static function get_style_array( $internal = false, $key = 0 ) {
[16274] Fix | Delete
$styles = $internal ? self::$internal_modules_styles : self::$styles;
[16275] Fix | Delete
[16276] Fix | Delete
if ( 0 === $key ) {
[16277] Fix | Delete
$key = self::get_style_key();
[16278] Fix | Delete
}
[16279] Fix | Delete
[16280] Fix | Delete
return isset( $styles[ $key ] ) ? $styles[ $key ] : array();
[16281] Fix | Delete
}
[16282] Fix | Delete
[16283] Fix | Delete
/**
[16284] Fix | Delete
* Intended to be used for unit testing
[16285] Fix | Delete
*
[16286] Fix | Delete
* @intendedForTesting
[16287] Fix | Delete
*/
[16288] Fix | Delete
static function reset_styles() {
[16289] Fix | Delete
self::$internal_modules_styles = array();
[16290] Fix | Delete
self::$styles = array();
[16291] Fix | Delete
self::$media_queries = array();
[16292] Fix | Delete
}
[16293] Fix | Delete
[16294] Fix | Delete
static function get_style( $internal = false, $key = 0 ) {
[16295] Fix | Delete
// use appropriate array depending on which styles we need
[16296] Fix | Delete
$styles_array = self::get_style_array( $internal, $key );
[16297] Fix | Delete
[16298] Fix | Delete
if ( empty( $styles_array ) ) {
[16299] Fix | Delete
return '';
[16300] Fix | Delete
}
[16301] Fix | Delete
[16302] Fix | Delete
global $et_user_fonts_queue;
[16303] Fix | Delete
[16304] Fix | Delete
$output = '';
[16305] Fix | Delete
[16306] Fix | Delete
if ( ! empty( $et_user_fonts_queue ) ) {
[16307] Fix | Delete
$output .= et_builder_enqueue_user_fonts( $et_user_fonts_queue );
[16308] Fix | Delete
}
[16309] Fix | Delete
[16310] Fix | Delete
$styles_by_media_queries = $styles_array;
[16311] Fix | Delete
$styles_count = (int) count( $styles_by_media_queries );
[16312] Fix | Delete
$media_queries_order = array_merge( array( 'general' ), array_values( self::$media_queries ) );
[16313] Fix | Delete
[16314] Fix | Delete
// make sure styles in the array ordered by media query correctly from bigger to smaller screensize
[16315] Fix | Delete
$styles_by_media_queries_sorted = array_merge( array_flip( $media_queries_order ), $styles_by_media_queries );
[16316] Fix | Delete
[16317] Fix | Delete
foreach ( $styles_by_media_queries_sorted as $media_query => $styles ) {
[16318] Fix | Delete
// skip wrong values which were added during the array sorting
[16319] Fix | Delete
if ( ! is_array( $styles ) ) {
[16320] Fix | Delete
continue;
[16321] Fix | Delete
}
[16322] Fix | Delete
[16323] Fix | Delete
$media_query_output = '';
[16324] Fix | Delete
$wrap_into_media_query = 'general' !== $media_query;
[16325] Fix | Delete
[16326] Fix | Delete
// sort styles by priority
[16327] Fix | Delete
et_()->uasort( $styles, array( 'ET_Builder_Element', 'compare_by_priority' ) );
[16328] Fix | Delete
[16329] Fix | Delete
// get each rule in a media query
[16330] Fix | Delete
foreach ( $styles as $selector => $settings ) {
[16331] Fix | Delete
$media_query_output .= sprintf(
[16332] Fix | Delete
'%3$s%4$s%1$s { %2$s }',
[16333] Fix | Delete
$selector,
[16334] Fix | Delete
$settings['declaration'],
[16335] Fix | Delete
"\n",
[16336] Fix | Delete
( $wrap_into_media_query ? "\t" : '' )
[16337] Fix | Delete
);
[16338] Fix | Delete
}
[16339] Fix | Delete
[16340] Fix | Delete
// All css rules that don't use media queries are assigned to the "general" key.
[16341] Fix | Delete
// Wrap all non-general settings into media query.
[16342] Fix | Delete
if ( $wrap_into_media_query ) {
[16343] Fix | Delete
$media_query_output = sprintf(
[16344] Fix | Delete
'%3$s%3$s%1$s {%2$s%3$s}',
[16345] Fix | Delete
$media_query,
[16346] Fix | Delete
$media_query_output,
[16347] Fix | Delete
"\n"
[16348] Fix | Delete
);
[16349] Fix | Delete
}
[16350] Fix | Delete
[16351] Fix | Delete
$output .= $media_query_output;
[16352] Fix | Delete
}
[16353] Fix | Delete
[16354] Fix | Delete
return $output;
[16355] Fix | Delete
}
[16356] Fix | Delete
[16357] Fix | Delete
static function get_column_video_background( $args = array(), $conditional_tags = array(), $current_page = array() ) {
[16358] Fix | Delete
if ( empty( $args ) ) {
[16359] Fix | Delete
return false;
[16360] Fix | Delete
}
[16361] Fix | Delete
[16362] Fix | Delete
$formatted_args = array();
[16363] Fix | Delete
[16364] Fix | Delete
foreach ( $args as $key => $value) {
[16365] Fix | Delete
$key_length = strlen( $key );
[16366] Fix | Delete
$formatted_args[ substr( $key, 0, ( $key_length - 2 ) ) ] = $value;
[16367] Fix | Delete
}
[16368] Fix | Delete
[16369] Fix | Delete
return self::get_video_background( $formatted_args, $conditional_tags, $current_page );
[16370] Fix | Delete
}
[16371] Fix | Delete
[16372] Fix | Delete
/**
[16373] Fix | Delete
* Generate video background markup.
[16374] Fix | Delete
*
[16375] Fix | Delete
* @since 3.23 Add support for responsive settings.
[16376] Fix | Delete
*
[16377] Fix | Delete
* @param array $args Background values.
[16378] Fix | Delete
* @param array $conditional_tags Conditional tags.
[16379] Fix | Delete
* @param array $current_page Current page info.
[16380] Fix | Delete
* @return mixed Mixed background content generated as video markup.
[16381] Fix | Delete
*/
[16382] Fix | Delete
static function get_video_background( $args = array(), $conditional_tags = array(), $current_page = array() ) {
[16383] Fix | Delete
$base_name = isset( $args['computed_variables'] ) && isset( $args['computed_variables']['base_name'] ) ? $args['computed_variables']['base_name'] : 'background';
[16384] Fix | Delete
$device = isset( $args['computed_variables'] ) && isset( $args['computed_variables']['device'] ) ? $args['computed_variables']['device'] : 'desktop';
[16385] Fix | Delete
$suffix = ! empty( $device ) && 'desktop' !== $device ? "_{$device}" : '';
[16386] Fix | Delete
[16387] Fix | Delete
$defaults = array(
[16388] Fix | Delete
"{$base_name}_video_mp4{$suffix}" => '',
[16389] Fix | Delete
"{$base_name}_video_webm{$suffix}" => '',
[16390] Fix | Delete
"{$base_name}_video_width{$suffix}" => '',
[16391] Fix | Delete
"{$base_name}_video_height{$suffix}" => '',
[16392] Fix | Delete
);
[16393] Fix | Delete
[16394] Fix | Delete
$args = wp_parse_args( $args, $defaults );
[16395] Fix | Delete
[16396] Fix | Delete
if ( '' === $args["{$base_name}_video_mp4{$suffix}"] && '' === $args["{$base_name}_video_webm{$suffix}"] ) {
[16397] Fix | Delete
return false;
[16398] Fix | Delete
}
[16399] Fix | Delete
[16400] Fix | Delete
return do_shortcode( sprintf( '
[16401] Fix | Delete
<video loop="loop" autoplay playsinline muted %3$s%4$s>
[16402] Fix | Delete
%1$s
[16403] Fix | Delete
%2$s
[16404] Fix | Delete
</video>',
[16405] Fix | Delete
( '' !== $args["{$base_name}_video_mp4{$suffix}"] ? sprintf( '<source type="video/mp4" src="%s" />', esc_url( $args["{$base_name}_video_mp4{$suffix}"] ) ) : '' ),
[16406] Fix | Delete
( '' !== $args["{$base_name}_video_webm{$suffix}"] ? sprintf( '<source type="video/webm" src="%s" />', esc_url( $args["{$base_name}_video_webm{$suffix}"] ) ) : '' ),
[16407] Fix | Delete
( '' !== $args["{$base_name}_video_width{$suffix}"] ? sprintf( ' width="%s"', esc_attr( intval( $args["{$base_name}_video_width{$suffix}"] ) ) ) : '' ),
[16408] Fix | Delete
( '' !== $args["{$base_name}_video_height{$suffix}"] ? sprintf( ' height="%s"', esc_attr( intval( $args["{$base_name}_video_height{$suffix}"] ) ) ) : '' )
[16409] Fix | Delete
) );
[16410] Fix | Delete
}
[16411] Fix | Delete
[16412] Fix | Delete
static function clean_internal_modules_styles( $need_internal_styles = true ) {
[16413] Fix | Delete
// clean the styles array
[16414] Fix | Delete
self::$internal_modules_styles[ self::get_style_key() ] = array();
[16415] Fix | Delete
// set the flag to make sure new styles will be saved to the correct place
[16416] Fix | Delete
self::$prepare_internal_styles = $need_internal_styles;
[16417] Fix | Delete
// generate unique number to make sure module classes will be unique if shortcode is generated via ajax
[16418] Fix | Delete
self::$internal_modules_counter = rand( 10000, 99999 );
[16419] Fix | Delete
}
[16420] Fix | Delete
[16421] Fix | Delete
/**
[16422] Fix | Delete
* Set the field dependencies based on the `show_if` or `show_if_not` key from the
[16423] Fix | Delete
* field.
[16424] Fix | Delete
* @param string $slug The module's slug. ie `et_pb_section`
[16425] Fix | Delete
* @param string $field_id The field id. id `background_color`
[16426] Fix | Delete
* @param array $field_info Associative array of the field's data.
[16427] Fix | Delete
*/
[16428] Fix | Delete
protected static function set_field_dependencies( $slug, $field_id, $field_info ) {
[16429] Fix | Delete
// bail if the field_info is not an array.
[16430] Fix | Delete
if ( ! is_array( $field_info ) || ! self::$_->array_get( $field_info, 'bb_support', true ) ) {
[16431] Fix | Delete
return;
[16432] Fix | Delete
}
[16433] Fix | Delete
[16434] Fix | Delete
// otherwise we keep going.
[16435] Fix | Delete
foreach ( array( 'show_if', 'show_if_not' ) as $dependency_type ) {
[16436] Fix | Delete
if ( ! isset( $field_info[ $dependency_type ] ) ) {
[16437] Fix | Delete
continue;
[16438] Fix | Delete
}
[16439] Fix | Delete
[16440] Fix | Delete
if ( ! self::$data_utils->is_assoc_array( $field_info[ $dependency_type ] ) ) {
[16441] Fix | Delete
continue;
[16442] Fix | Delete
}
[16443] Fix | Delete
[16444] Fix | Delete
foreach ( $field_info[ $dependency_type ] as $dependency => $value ) {
[16445] Fix | Delete
// dependency -> dependent (eg. et_pb_signup.provider.affects.first_name_field.show_if: mailchimp)
[16446] Fix | Delete
$address = self::$_->esc_array( array( $slug, $dependency, 'affects', $field_id, $dependency_type ), 'esc_attr' );
[16447] Fix | Delete
[16448] Fix | Delete
self::$data_utils->array_set( self::$field_dependencies, $address, self::$_->esc_array( $value, 'esc_attr' ) );
[16449] Fix | Delete
[16450] Fix | Delete
// dependent -> dependency (eg. et_pb_signup.first_name_field.show_if.provider: mailchimp)
[16451] Fix | Delete
$address = self::$_->esc_array( array( $slug, $field_id, $dependency_type, $dependency ), 'esc_attr' );
[16452] Fix | Delete
[16453] Fix | Delete
self::$data_utils->array_set( self::$field_dependencies, $address, self::$_->esc_array( $value, 'esc_attr' ) );
[16454] Fix | Delete
}
[16455] Fix | Delete
}
[16456] Fix | Delete
}
[16457] Fix | Delete
[16458] Fix | Delete
public static function get_field_dependencies( $post_type ) {
[16459] Fix | Delete
if ( self::$field_dependencies ) {
[16460] Fix | Delete
return self::$field_dependencies;
[16461] Fix | Delete
}
[16462] Fix | Delete
[16463] Fix | Delete
$all_modules = self::get_parent_and_child_modules( $post_type );
[16464] Fix | Delete
[16465] Fix | Delete
foreach ( $all_modules as $module_slug => $module ) {
[16466] Fix | Delete
// Get all the fields.
[16467] Fix | Delete
$all_fields = $module->sort_fields( $module->_get_fields() );
[16468] Fix | Delete
foreach ( $all_fields as $field_id => $field_info ) {
[16469] Fix | Delete
if ( isset( $field_info['type'] ) && 'composite' === $field_info['type'] ) {
[16470] Fix | Delete
foreach ( $field_info['composite_structure'] as $field ) {
[16471] Fix | Delete
foreach ( $field['controls'] as $control => $data ) {
[16472] Fix | Delete
self::set_field_dependencies( $module_slug, $control, $data );
[16473] Fix | Delete
}
[16474] Fix | Delete
}
[16475] Fix | Delete
}
[16476] Fix | Delete
self::set_field_dependencies( $module_slug, $field_id, $field_info );
[16477] Fix | Delete
}
[16478] Fix | Delete
}
[16479] Fix | Delete
[16480] Fix | Delete
return self::$field_dependencies;
[16481] Fix | Delete
}
[16482] Fix | Delete
[16483] Fix | Delete
static function set_style( $function_name, $style ) {
[16484] Fix | Delete
$selectors = is_array( $style['selector'] ) ? $style['selector'] : array( $style['selector'] );
[16485] Fix | Delete
foreach ( $selectors as $item ) {
[16486] Fix | Delete
foreach ( self::$_->sanitize_css_placeholders( $item ) as $selector ) {
[16487] Fix | Delete
$selector = apply_filters( "{$function_name}_css_selector", $selector );
[16488] Fix | Delete
self::_set_style( $function_name, array_merge( $style, array( 'selector' => $selector ) ) );
[16489] Fix | Delete
}
[16490] Fix | Delete
}
[16491] Fix | Delete
}
[16492] Fix | Delete
[16493] Fix | Delete
/**
[16494] Fix | Delete
* Applies the responsive and hover style for a specified option
[16495] Fix | Delete
*
[16496] Fix | Delete
* @since 3.25.3
[16497] Fix | Delete
*
[16498] Fix | Delete
* @param string $option
[16499] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function