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/wp-conte.../themes/Divi/includes/builder/frontend.../theme-bu...
File: api.php
// Maybe ask the user to make a decision on how to deal with global layouts.
[500] Fix | Delete
if ( ( ! $override_default_website_template || ! $has_default_template ) && $has_global_layouts ) {
[501] Fix | Delete
$incoming_layout_duplicate_decision = $_->array_get( $_POST, 'incoming_layout_duplicate_decision', '' );
[502] Fix | Delete
[503] Fix | Delete
if ( 'duplicate' === $incoming_layout_duplicate_decision ) {
[504] Fix | Delete
$incoming_layout_duplicate = true;
[505] Fix | Delete
} else if ( 'relink' === $incoming_layout_duplicate_decision ) {
[506] Fix | Delete
$incoming_layout_duplicate = false;
[507] Fix | Delete
} else {
[508] Fix | Delete
wp_send_json_error( array(
[509] Fix | Delete
'code' => ET_Theme_Builder_Api_Errors::PORTABILITY_REQUIRE_INCOMING_LAYOUT_DUPLICATE_DECISION,
[510] Fix | Delete
'error' => $i18n['This import contains references to global layouts.'],
[511] Fix | Delete
) );
[512] Fix | Delete
}
[513] Fix | Delete
}
[514] Fix | Delete
[515] Fix | Delete
// Make imported preset overrides to avoid collisions with local presets
[516] Fix | Delete
if ( $import_presets && is_array( $presets ) && ! empty( $presets ) ) {
[517] Fix | Delete
$presets_rewrite_map = $portability->prepare_to_import_layout_presets( $presets );
[518] Fix | Delete
}
[519] Fix | Delete
[520] Fix | Delete
// Prepare import steps.
[521] Fix | Delete
$layout_id_map = array();
[522] Fix | Delete
$layout_keys = array( 'header', 'body', 'footer' );
[523] Fix | Delete
$id = md5( get_current_user_id() . '_' . uniqid( 'et_theme_builder_import_', true ) );
[524] Fix | Delete
$transient = 'et_theme_builder_import_' . get_current_user_id() . '_' . $id;
[525] Fix | Delete
$steps_files = array();
[526] Fix | Delete
[527] Fix | Delete
foreach ( $export['templates'] as $index => $template ) {
[528] Fix | Delete
foreach ( $layout_keys as $key ) {
[529] Fix | Delete
$layout_id = (int) $_->array_get( $template, array( 'layouts', $key, 'id' ), 0 );
[530] Fix | Delete
[531] Fix | Delete
if ( 0 === $layout_id ) {
[532] Fix | Delete
continue;
[533] Fix | Delete
}
[534] Fix | Delete
[535] Fix | Delete
$layout = $_->array_get( $export, array( 'layouts', $layout_id ), null );
[536] Fix | Delete
[537] Fix | Delete
if ( empty( $layout ) ) {
[538] Fix | Delete
continue;
[539] Fix | Delete
}
[540] Fix | Delete
[541] Fix | Delete
// Use a temporary string id to avoid numerical keys being reset by various array functions.
[542] Fix | Delete
$template_id = 'template_' . $index;
[543] Fix | Delete
$is_global = (bool) $_->array_get( $layout, 'theme_builder.is_global', false );
[544] Fix | Delete
$create_new = ( $template['default'] && $override_default_website_template ) || ! $is_global || $incoming_layout_duplicate;
[545] Fix | Delete
[546] Fix | Delete
if ( $create_new ) {
[547] Fix | Delete
$temp_id = 'tbi-step-' . count( $steps_files );
[548] Fix | Delete
[549] Fix | Delete
et_theme_builder_api_import_theme_builder_save_layout( $portability, $template_id, $layout_id, $layout, $temp_id, $transient );
[550] Fix | Delete
[551] Fix | Delete
$steps_files[] = array(
[552] Fix | Delete
'id' => $temp_id,
[553] Fix | Delete
'group' => $transient,
[554] Fix | Delete
);
[555] Fix | Delete
} else {
[556] Fix | Delete
if ( ! isset( $layout_id_map[ $layout_id ] ) ) {
[557] Fix | Delete
$layout_id_map[ $layout_id ] = array();
[558] Fix | Delete
}
[559] Fix | Delete
[560] Fix | Delete
$layout_id_map[ $layout_id ][ $template_id ] = 'use_global';
[561] Fix | Delete
}
[562] Fix | Delete
}
[563] Fix | Delete
}
[564] Fix | Delete
[565] Fix | Delete
set_transient( $transient, array(
[566] Fix | Delete
'ready' => false,
[567] Fix | Delete
'steps' => $steps_files,
[568] Fix | Delete
'templates' => $export['templates'],
[569] Fix | Delete
'override_default_website_template' => $override_default_website_template,
[570] Fix | Delete
'incoming_layout_duplicate' => $incoming_layout_duplicate,
[571] Fix | Delete
'layout_id_map' => $layout_id_map,
[572] Fix | Delete
'presets' => $presets,
[573] Fix | Delete
'import_presets' => $import_presets,
[574] Fix | Delete
'presets_rewrite_map' => $presets_rewrite_map,
[575] Fix | Delete
), 60 * 60 * 24 );
[576] Fix | Delete
[577] Fix | Delete
wp_send_json_success( array(
[578] Fix | Delete
'id' => $id,
[579] Fix | Delete
'steps' => count( $steps_files ),
[580] Fix | Delete
) );
[581] Fix | Delete
}
[582] Fix | Delete
add_action( 'wp_ajax_et_theme_builder_api_import_theme_builder', 'et_theme_builder_api_import_theme_builder' );
[583] Fix | Delete
[584] Fix | Delete
function et_theme_builder_api_import_theme_builder_step() {
[585] Fix | Delete
if ( ! et_pb_is_allowed( 'theme_builder' ) ) {
[586] Fix | Delete
wp_send_json_error();
[587] Fix | Delete
}
[588] Fix | Delete
[589] Fix | Delete
et_builder_security_check(
[590] Fix | Delete
'et_theme_builder_portability',
[591] Fix | Delete
et_core_portability_cap( 'et_theme_builder' ),
[592] Fix | Delete
'et_theme_builder_api_import_theme_builder',
[593] Fix | Delete
'nonce'
[594] Fix | Delete
);
[595] Fix | Delete
[596] Fix | Delete
$_ = et_();
[597] Fix | Delete
$id = sanitize_text_field( $_->array_get( $_POST, 'id', '' ) );
[598] Fix | Delete
$step = (int) $_->array_get( $_POST, 'step', 0 );
[599] Fix | Delete
$chunk = (int) $_->array_get( $_POST, 'chunk', 0 );
[600] Fix | Delete
$transient = 'et_theme_builder_import_' . get_current_user_id() . '_' . $id;
[601] Fix | Delete
$export = get_transient( $transient );
[602] Fix | Delete
[603] Fix | Delete
if ( false === $export ) {
[604] Fix | Delete
wp_send_json_error();
[605] Fix | Delete
}
[606] Fix | Delete
[607] Fix | Delete
$layout_keys = array( 'header', 'body', 'footer' );
[608] Fix | Delete
$portability = et_core_portability_load( 'et_theme_builder' );
[609] Fix | Delete
$steps = $export['steps'];
[610] Fix | Delete
$ready = empty( $steps );
[611] Fix | Delete
$layout_id_map = $export['layout_id_map'];
[612] Fix | Delete
$presets = $export['presets'];
[613] Fix | Delete
$presets_rewrite_map = $export['presets_rewrite_map'];
[614] Fix | Delete
$import_presets = $export['import_presets'];
[615] Fix | Delete
$templates = array();
[616] Fix | Delete
$template_settings = array();
[617] Fix | Delete
$chunks = 1;
[618] Fix | Delete
[619] Fix | Delete
if ( ! $ready ) {
[620] Fix | Delete
$import_step = et_theme_builder_api_import_theme_builder_load_layout( $portability, $steps[ $step ]['id'], $steps[ $step ]['group'] );
[621] Fix | Delete
$import_step = array_merge( $import_step, array( 'presets' => $presets ) );
[622] Fix | Delete
$import_step = array_merge( $import_step, array( 'presets_rewrite_map' => $presets_rewrite_map ) );
[623] Fix | Delete
$import_step['import_presets'] = $import_presets;
[624] Fix | Delete
$result = $portability->import_theme_builder( $id, $import_step, count( $steps ), $step, $chunk );
[625] Fix | Delete
[626] Fix | Delete
if ( false === $result ) {
[627] Fix | Delete
wp_send_json_error();
[628] Fix | Delete
}
[629] Fix | Delete
[630] Fix | Delete
$ready = $result['ready'];
[631] Fix | Delete
$chunks = $result['chunks'];
[632] Fix | Delete
[633] Fix | Delete
foreach ( $result['layout_id_map'] as $old_id => $new_ids ) {
[634] Fix | Delete
$layout_id_map[ $old_id ] = array_merge(
[635] Fix | Delete
$_->array_get( $layout_id_map, $old_id, array() ),
[636] Fix | Delete
$new_ids
[637] Fix | Delete
);
[638] Fix | Delete
}
[639] Fix | Delete
}
[640] Fix | Delete
[641] Fix | Delete
if ( $ready ) {
[642] Fix | Delete
if ( $import_presets && is_array( $presets ) && ! empty( $presets ) ) {
[643] Fix | Delete
if ( ! $portability->import_global_presets( $presets ) ) {
[644] Fix | Delete
$presets_error = apply_filters( 'et_core_portability_import_error_message', '' );
[645] Fix | Delete
[646] Fix | Delete
if ( $presets_error ) {
[647] Fix | Delete
wp_send_json_error( array(
[648] Fix | Delete
'code' => ET_Theme_Builder_Api_Errors::PORTABILITY_IMPORT_PRESETS_FAILURE,
[649] Fix | Delete
'error' => $presets_error,
[650] Fix | Delete
) );
[651] Fix | Delete
}
[652] Fix | Delete
}
[653] Fix | Delete
}
[654] Fix | Delete
[655] Fix | Delete
$portability->delete_temp_files( $transient );
[656] Fix | Delete
[657] Fix | Delete
$conditions = array();
[658] Fix | Delete
[659] Fix | Delete
foreach ( $export['templates'] as $index => $template ) {
[660] Fix | Delete
$sanitized = et_theme_builder_sanitize_template( $template );
[661] Fix | Delete
[662] Fix | Delete
foreach ( $layout_keys as $key ) {
[663] Fix | Delete
$old_layout_id = (int) $_->array_get( $sanitized, array( 'layouts', $key, 'id' ), 0 );
[664] Fix | Delete
$layout_id = et_()->array_get( $layout_id_map, array( $old_layout_id, 'template_' . $index ), '' );
[665] Fix | Delete
$layout_id = ! empty( $layout_id ) ? $layout_id : 0;
[666] Fix | Delete
[667] Fix | Delete
$_->array_set( $sanitized, array( 'layouts', $key, 'id' ), $layout_id );
[668] Fix | Delete
}
[669] Fix | Delete
[670] Fix | Delete
$conditions = array_merge( $conditions, $sanitized['use_on'], $sanitized['exclude_from'] );
[671] Fix | Delete
[672] Fix | Delete
$templates[] = $sanitized;
[673] Fix | Delete
}
[674] Fix | Delete
[675] Fix | Delete
// Load all conditions from templates.
[676] Fix | Delete
$conditions = array_unique( $conditions );
[677] Fix | Delete
$template_settings = array_replace(
[678] Fix | Delete
et_theme_builder_get_flat_template_settings_options(),
[679] Fix | Delete
et_theme_builder_load_template_setting_options( $conditions )
[680] Fix | Delete
);
[681] Fix | Delete
$valid_settings = array_keys( $template_settings );
[682] Fix | Delete
[683] Fix | Delete
// Strip all invalid conditions from templates.
[684] Fix | Delete
foreach ( $templates as $index => $template ) {
[685] Fix | Delete
$templates[ $index ]['use_on'] = array_values( array_intersect( $template['use_on'], $valid_settings ) );
[686] Fix | Delete
$templates[ $index ]['exclude_from'] = array_values( array_intersect( $template['exclude_from'], $valid_settings ) );
[687] Fix | Delete
}
[688] Fix | Delete
} else {
[689] Fix | Delete
set_transient( $transient, array_merge( $export, array(
[690] Fix | Delete
'layout_id_map' => $layout_id_map,
[691] Fix | Delete
) ), 60 * 60 * 24 );
[692] Fix | Delete
}
[693] Fix | Delete
[694] Fix | Delete
wp_send_json_success( array(
[695] Fix | Delete
'chunks' => $chunks,
[696] Fix | Delete
'templates' => $templates,
[697] Fix | Delete
'templateSettings' => $template_settings,
[698] Fix | Delete
) );
[699] Fix | Delete
}
[700] Fix | Delete
add_action( 'wp_ajax_et_theme_builder_api_import_theme_builder_step', 'et_theme_builder_api_import_theme_builder_step' );
[701] Fix | Delete
[702] Fix | Delete
12
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function