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
/home/sportsfe.../httpdocs/clone/wp-conte.../themes/Divi/includes/builder/module/settings/migratio...
File: ColumnOptions.php
<?php
[0] Fix | Delete
[1] Fix | Delete
class ET_Builder_Module_Settings_Migration_ColumnOptions extends ET_Builder_Module_Settings_Migration {
[2] Fix | Delete
[3] Fix | Delete
public $version = '3.25';
[4] Fix | Delete
[5] Fix | Delete
public $add_missing_fields = true;
[6] Fix | Delete
[7] Fix | Delete
public $columnSettingsFromRow = array();
[8] Fix | Delete
[9] Fix | Delete
public $fieldsWithSuffix = array(
[10] Fix | Delete
'padding' => array( 'tablet', 'phone', 'last_edited', '_hover', '_hover_enabled' ),
[11] Fix | Delete
'padding_top' => array( '_hover', '_hover_enabled' ),
[12] Fix | Delete
'padding_right' => array( '_hover', '_hover_enabled' ),
[13] Fix | Delete
'padding_bottom' => array( '_hover', '_hover_enabled' ),
[14] Fix | Delete
'padding_left' => array( '_hover', '_hover_enabled' ),
[15] Fix | Delete
'background_color' => array( '_hover', '_hover_enabled' ),
[16] Fix | Delete
'custom_css_before' => array( '_hover', '_hover_enabled' ),
[17] Fix | Delete
'custom_css_main' => array( '_hover', '_hover_enabled' ),
[18] Fix | Delete
'custom_css_after' => array( '_hover', '_hover_enabled' ),
[19] Fix | Delete
);
[20] Fix | Delete
[21] Fix | Delete
public $fieldsWithSuffixAppended = array(
[22] Fix | Delete
'custom_padding' => '__no_suffix__',
[23] Fix | Delete
'custom_padding_tablet' => 'custom_padding',
[24] Fix | Delete
'custom_padding_phone' => 'custom_padding',
[25] Fix | Delete
'custom_padding_last_edited' => 'custom_padding',
[26] Fix | Delete
'custom_padding__hover' => '__no_suffix__',
[27] Fix | Delete
'custom_padding__hover_enabled' => 'custom_padding',
[28] Fix | Delete
'background_color__hover' => 'background_color',
[29] Fix | Delete
'background_color__hover_enabled' => 'background_color',
[30] Fix | Delete
'custom_css_before' => '__no_suffix__',
[31] Fix | Delete
'custom_css_main_element' => '__no_suffix__',
[32] Fix | Delete
'custom_css_after' => '__no_suffix__',
[33] Fix | Delete
'custom_css_before__hover' => 'custom_css_before',
[34] Fix | Delete
'custom_css_main_element__hover' => 'custom_css_main_element',
[35] Fix | Delete
'custom_css_after__hover' => 'custom_css_after',
[36] Fix | Delete
'custom_css_before__hover_enabled' => 'custom_css_before',
[37] Fix | Delete
'custom_css_main_element__hover_enabled' => 'custom_css_main_element',
[38] Fix | Delete
'custom_css_after__hover_enabled' => 'custom_css_after',
[39] Fix | Delete
);
[40] Fix | Delete
[41] Fix | Delete
public function get_modules() {
[42] Fix | Delete
return array( 'et_pb_row', 'et_pb_column', 'et_pb_row_inner', 'et_pb_column_inner', );
[43] Fix | Delete
}
[44] Fix | Delete
[45] Fix | Delete
public function get_fields() {
[46] Fix | Delete
$fields = array();
[47] Fix | Delete
$fields_to_migrate = array(
[48] Fix | Delete
'module_id',
[49] Fix | Delete
'module_class',
[50] Fix | Delete
'background_color',
[51] Fix | Delete
'bg_img',
[52] Fix | Delete
'background_size',
[53] Fix | Delete
'background_position',
[54] Fix | Delete
'background_repeat',
[55] Fix | Delete
'background_blend',
[56] Fix | Delete
'padding_top',
[57] Fix | Delete
'padding_right',
[58] Fix | Delete
'padding_bottom',
[59] Fix | Delete
'padding_left',
[60] Fix | Delete
'padding',
[61] Fix | Delete
'parallax',
[62] Fix | Delete
'parallax_method',
[63] Fix | Delete
'custom_css_before',
[64] Fix | Delete
'custom_css_main',
[65] Fix | Delete
'custom_css_after',
[66] Fix | Delete
'use_background_color_gradient',
[67] Fix | Delete
'background_color_gradient_type',
[68] Fix | Delete
'background_color_gradient_direction',
[69] Fix | Delete
'background_color_gradient_direction_radial',
[70] Fix | Delete
'background_color_gradient_start',
[71] Fix | Delete
'background_color_gradient_end',
[72] Fix | Delete
'background_color_gradient_start_position',
[73] Fix | Delete
'background_color_gradient_end_position',
[74] Fix | Delete
'background_color_gradient_overlays_image',
[75] Fix | Delete
'background_video_mp4',
[76] Fix | Delete
'background_video_webm',
[77] Fix | Delete
'background_video_width',
[78] Fix | Delete
'background_video_height',
[79] Fix | Delete
'allow_player_pause',
[80] Fix | Delete
'background_video_pause_outside_viewport',
[81] Fix | Delete
);
[82] Fix | Delete
[83] Fix | Delete
foreach ( $this->get_modules() as $module ) {
[84] Fix | Delete
foreach( $fields_to_migrate as $field_name_raw ) {
[85] Fix | Delete
$field_name = $field_name_raw;
[86] Fix | Delete
[87] Fix | Delete
if ( in_array( $module, array( 'et_pb_row', 'et_pb_row_inner' ) ) ) {
[88] Fix | Delete
$max_columns_number = 'et_pb_row_inner' === $module ? 4 : 6;
[89] Fix | Delete
for ( $i = 1; $i <= $max_columns_number; $i++ ) {
[90] Fix | Delete
if ( array_key_exists( $field_name_raw, $this->fieldsWithSuffix ) ) {
[91] Fix | Delete
foreach ( $this->fieldsWithSuffix[ $field_name_raw ] as $suffix ) {
[92] Fix | Delete
$fields[ "${field_name}_${i}_$suffix" ] = array(
[93] Fix | Delete
'affected_fields' => array(
[94] Fix | Delete
"${field_name}_${i}_$suffix" => array( 'et_pb_row', 'et_pb_row_inner' ),
[95] Fix | Delete
),
[96] Fix | Delete
);
[97] Fix | Delete
}
[98] Fix | Delete
}
[99] Fix | Delete
[100] Fix | Delete
$fields[ "${field_name}_${i}" ] = array(
[101] Fix | Delete
'affected_fields' => array(
[102] Fix | Delete
"${field_name}_${i}" => array( 'et_pb_row', 'et_pb_row_inner' ),
[103] Fix | Delete
),
[104] Fix | Delete
);
[105] Fix | Delete
}
[106] Fix | Delete
}
[107] Fix | Delete
[108] Fix | Delete
if ( in_array( $module, array( 'et_pb_column', 'et_pb_column_inner' ) ) ) {
[109] Fix | Delete
if ( in_array( $field_name, array( 'padding_top', 'padding_right', 'padding_bottom', 'padding_left' ) ) ) {
[110] Fix | Delete
continue;
[111] Fix | Delete
}
[112] Fix | Delete
[113] Fix | Delete
switch( $field_name ) {
[114] Fix | Delete
case 'bg_img' :
[115] Fix | Delete
$field_name = 'background_image';
[116] Fix | Delete
break;
[117] Fix | Delete
case 'padding' :
[118] Fix | Delete
$field_name = 'custom_padding';
[119] Fix | Delete
break;
[120] Fix | Delete
case 'custom_css_main' :
[121] Fix | Delete
$field_name = 'custom_css_main_element';
[122] Fix | Delete
break;
[123] Fix | Delete
}
[124] Fix | Delete
[125] Fix | Delete
if ( array_key_exists( $field_name_raw, $this->fieldsWithSuffix ) ) {
[126] Fix | Delete
foreach ( $this->fieldsWithSuffix[ $field_name_raw ] as $suffix ) {
[127] Fix | Delete
$fields[ "${field_name}_${suffix}" ] = array(
[128] Fix | Delete
'affected_fields' => array(
[129] Fix | Delete
"${field_name}_${suffix}" => array( 'et_pb_column', 'et_pb_column_inner' ),
[130] Fix | Delete
),
[131] Fix | Delete
);
[132] Fix | Delete
}
[133] Fix | Delete
}
[134] Fix | Delete
[135] Fix | Delete
$fields[ $field_name ] = array(
[136] Fix | Delete
'affected_fields' => array(
[137] Fix | Delete
$field_name => array( 'et_pb_column', 'et_pb_column_inner' ),
[138] Fix | Delete
),
[139] Fix | Delete
);
[140] Fix | Delete
}
[141] Fix | Delete
}
[142] Fix | Delete
}
[143] Fix | Delete
[144] Fix | Delete
return $fields;
[145] Fix | Delete
}
[146] Fix | Delete
[147] Fix | Delete
public function migrate_padding( $row_address, $column_index, $field_name, $saved_value ) {
[148] Fix | Delete
$padding_sides = array( 'padding_top', 'padding_right', 'padding_bottom', 'padding_left' );
[149] Fix | Delete
$padding_combined = array();
[150] Fix | Delete
$suffix = str_replace( 'padding', '', $field_name );
[151] Fix | Delete
[152] Fix | Delete
// If padding was migrated already, no need to process it again.
[153] Fix | Delete
if ( ! empty( $saved_value ) ) {
[154] Fix | Delete
return $saved_value;
[155] Fix | Delete
}
[156] Fix | Delete
[157] Fix | Delete
foreach ( $padding_sides as $side ) {
[158] Fix | Delete
if ( isset( $this->columnSettingsFromRow[ $row_address ], $this->columnSettingsFromRow[ $row_address ][ "${side}_${column_index}${suffix}" ] ) ) {
[159] Fix | Delete
$padding_combined[] = $this->columnSettingsFromRow[ $row_address ][ "${side}_${column_index}${suffix}" ];
[160] Fix | Delete
} else {
[161] Fix | Delete
$padding_combined[] = '';
[162] Fix | Delete
}
[163] Fix | Delete
}
[164] Fix | Delete
[165] Fix | Delete
return implode( '|', $padding_combined );
[166] Fix | Delete
}
[167] Fix | Delete
[168] Fix | Delete
public function migrate( $field_name, $current_value, $module_slug, $saved_value, $saved_field_name, $attrs, $content, $module_address ) {
[169] Fix | Delete
if ( in_array( $module_slug, array( 'et_pb_row', 'et_pb_row_inner' ) ) ) {
[170] Fix | Delete
$this->columnSettingsFromRow[ $module_address ][ $field_name ] = $saved_value;
[171] Fix | Delete
[172] Fix | Delete
return '';
[173] Fix | Delete
}
[174] Fix | Delete
[175] Fix | Delete
if ( in_array( $module_slug, array( 'et_pb_column', 'et_pb_column_inner' ) ) ) {
[176] Fix | Delete
$row_level = 'et_pb_column_inner' === $module_slug ? 3 : 2;
[177] Fix | Delete
$address_array = explode( '.', $module_address );
[178] Fix | Delete
$parent_row = implode( '.', array_slice( $address_array, 0, $row_level ) );
[179] Fix | Delete
$column_index = (int) implode( '', array_slice( $address_array, $row_level, 1 ) ) + 1;
[180] Fix | Delete
[181] Fix | Delete
if ( in_array( $field_name, array_keys( $this->fieldsWithSuffixAppended ) ) ) {
[182] Fix | Delete
$field_name_without_suffix = $this->fieldsWithSuffixAppended[ $field_name ];
[183] Fix | Delete
$field_name_replacement = $field_name_without_suffix;
[184] Fix | Delete
[185] Fix | Delete
if ( in_array( $field_name, array( 'custom_padding', 'custom_padding__hover' ) ) ) {
[186] Fix | Delete
$field_name = str_replace( 'custom_', '', $field_name );
[187] Fix | Delete
}
[188] Fix | Delete
[189] Fix | Delete
if ( 'custom_css_main_element' === $field_name ) {
[190] Fix | Delete
$field_name = 'custom_css_main';
[191] Fix | Delete
}
[192] Fix | Delete
[193] Fix | Delete
if ( in_array( $field_name, array( 'custom_padding_phone', 'custom_padding_tablet', 'custom_padding_last_edited', 'custom_padding__hover', 'custom_padding__hover_enabled' ) ) ) {
[194] Fix | Delete
$field_name_replacement = 'padding';
[195] Fix | Delete
}
[196] Fix | Delete
[197] Fix | Delete
if ( in_array( $field_name, array( 'custom_css_main_element__hover', 'custom_css_main_element__hover_enabled' ) ) ) {
[198] Fix | Delete
$field_name_replacement = 'custom_css_main';
[199] Fix | Delete
}
[200] Fix | Delete
[201] Fix | Delete
// Insert the column index in the middle of field name right before suffix.
[202] Fix | Delete
$row_field_name = '__no_suffix__' === $field_name_without_suffix ? "${field_name}_${column_index}" : str_replace( $field_name_without_suffix, "${field_name_replacement}_${column_index}", $field_name );
[203] Fix | Delete
} else {
[204] Fix | Delete
$row_field_name = 'background_image' === $field_name ? "bg_img_${column_index}" : "${field_name}_${column_index}";
[205] Fix | Delete
}
[206] Fix | Delete
[207] Fix | Delete
if ( in_array( $field_name, array( 'padding', 'padding__hover' ) ) ) {
[208] Fix | Delete
return $this->migrate_padding( $parent_row, $column_index, $field_name, $saved_value );
[209] Fix | Delete
}
[210] Fix | Delete
[211] Fix | Delete
if ( isset( $this->columnSettingsFromRow[ $parent_row ], $this->columnSettingsFromRow[ $parent_row ][ $row_field_name ] ) && ! empty( $this->columnSettingsFromRow[ $parent_row ][ $row_field_name ] ) ) {
[212] Fix | Delete
return $this->columnSettingsFromRow[ $parent_row ][ $row_field_name ];
[213] Fix | Delete
}
[214] Fix | Delete
}
[215] Fix | Delete
return $saved_value;
[216] Fix | Delete
}
[217] Fix | Delete
}
[218] Fix | Delete
[219] Fix | Delete
return new ET_Builder_Module_Settings_Migration_ColumnOptions();
[220] Fix | Delete
[221] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function