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/wp-conte.../plugins/sitepres.../inc/upgrade-...
File: upgrade-2.0.0.php
<?php
[0] Fix | Delete
function icl_upgrade_2_0_0_steps($step, $stepper){
[1] Fix | Delete
global $wpdb, $sitepress, $wp_post_types, $sitepress_settings;
[2] Fix | Delete
[3] Fix | Delete
if(!isset($sitepress)) $sitepress = new SitePress;
[4] Fix | Delete
[5] Fix | Delete
$TranslationManagement = new TranslationManagement;
[6] Fix | Delete
[7] Fix | Delete
$default_language = $sitepress->get_default_language();
[8] Fix | Delete
[9] Fix | Delete
define('ICL_TM_DISABLE_ALL_NOTIFICATIONS', true); // make sure no notifications are being sent
[10] Fix | Delete
[11] Fix | Delete
//if(defined('icl_upgrade_2_0_0_runonce')){
[12] Fix | Delete
// return;
[13] Fix | Delete
//}
[14] Fix | Delete
//define('icl_upgrade_2_0_0_runonce', true);
[15] Fix | Delete
[16] Fix | Delete
// fix source_language_code
[17] Fix | Delete
// assume that the lowest element_id is the source language
[18] Fix | Delete
ini_set('max_execution_time', 300);
[19] Fix | Delete
[20] Fix | Delete
$post_types = array_keys($wp_post_types);
[21] Fix | Delete
foreach($post_types as $pt){
[22] Fix | Delete
$types[] = 'post_' . $pt;
[23] Fix | Delete
}
[24] Fix | Delete
[25] Fix | Delete
$temp_upgrade_data = get_option('icl_temp_upgrade_data',
[26] Fix | Delete
array('step' => 0, 'offset' => 0));
[27] Fix | Delete
[28] Fix | Delete
switch($step) {
[29] Fix | Delete
[30] Fix | Delete
case 1:
[31] Fix | Delete
// if the tables are missing, call the plugin activation routine
[32] Fix | Delete
$table_name = $wpdb->prefix.'icl_translation_status';
[33] Fix | Delete
if($wpdb->get_var("SHOW TABLES LIKE '{$table_name}'") != $table_name){
[34] Fix | Delete
icl_sitepress_activate();
[35] Fix | Delete
}
[36] Fix | Delete
[37] Fix | Delete
$wpdb->query("ALTER TABLE `{$wpdb->prefix}icl_translations` CHANGE `element_type` `element_type` VARCHAR( 32 ) NOT NULL DEFAULT 'post_post'");
[38] Fix | Delete
$wpdb->query("ALTER TABLE `{$wpdb->prefix}icl_translations` CHANGE `element_id` `element_id` BIGINT( 20 ) NULL DEFAULT NULL ");
[39] Fix | Delete
[40] Fix | Delete
[41] Fix | Delete
// fix source_language_code
[42] Fix | Delete
// all source documents must have null
[43] Fix | Delete
if ( isset( $types ) ) {
[44] Fix | Delete
$wpdb->query($wpdb->prepare("UPDATE {$wpdb->prefix}icl_translations SET source_language_code = NULL
[45] Fix | Delete
WHERE element_type IN('".join("','", $types)."') AND source_language_code = '' AND language_code=%s", $default_language ));
[46] Fix | Delete
// get translated documents with missing source language
[47] Fix | Delete
$res = $wpdb->get_results($wpdb->prepare("
[48] Fix | Delete
SELECT translation_id, trid, language_code
[49] Fix | Delete
FROM {$wpdb->prefix}icl_translations
[50] Fix | Delete
WHERE (source_language_code = '' OR source_language_code IS NULL)
[51] Fix | Delete
AND element_type IN('".join("','", $types)."')
[52] Fix | Delete
AND language_code <> %s
[53] Fix | Delete
", $default_language
[54] Fix | Delete
));
[55] Fix | Delete
foreach($res as $row){
[56] Fix | Delete
$wpdb->query($wpdb->prepare("UPDATE {$wpdb->prefix}icl_translations SET source_language_code = %s WHERE translation_id=%d", $default_language, $row->translation_id));
[57] Fix | Delete
}
[58] Fix | Delete
}
[59] Fix | Delete
[60] Fix | Delete
$temp_upgrade_data['step'] = 2;
[61] Fix | Delete
update_option('icl_temp_upgrade_data', $temp_upgrade_data);
[62] Fix | Delete
[63] Fix | Delete
return array('message' => __('Processing translations...', 'sitepress'));
[64] Fix | Delete
break;
[65] Fix | Delete
[66] Fix | Delete
case 2:
[67] Fix | Delete
[68] Fix | Delete
$limit = 100;
[69] Fix | Delete
$offset = $temp_upgrade_data['offset'];
[70] Fix | Delete
$processing = FALSE;
[71] Fix | Delete
[72] Fix | Delete
[73] Fix | Delete
//loop existing translations
[74] Fix | Delete
if ( isset( $types ) ) {
[75] Fix | Delete
$res = $wpdb->get_results( $wpdb->prepare(
[76] Fix | Delete
"SELECT * FROM {$wpdb->prefix}icl_translations
[77] Fix | Delete
WHERE element_type IN(" . wpml_prepare_in( $types ) . " )
[78] Fix | Delete
AND source_language_code IS NULL LIMIT %d OFFSET %d", array($limit, $offset)
[79] Fix | Delete
));
[80] Fix | Delete
foreach( $res as $row){
[81] Fix | Delete
$processing = TRUE;
[82] Fix | Delete
// grab translations
[83] Fix | Delete
$translations = $sitepress->get_element_translations($row->trid, $row->element_type);
[84] Fix | Delete
[85] Fix | Delete
$md5 = 0;
[86] Fix | Delete
$table_name = $wpdb->prefix.'icl_node';
[87] Fix | Delete
if($wpdb->get_var("SHOW TABLES LIKE '{$table_name}'") == $table_name){
[88] Fix | Delete
list($md5, $links_fixed) = $wpdb->get_row($wpdb->prepare("
[89] Fix | Delete
SELECT md5, links_fixed FROM {$wpdb->prefix}icl_node
[90] Fix | Delete
WHERE nid = %d
[91] Fix | Delete
", $row->element_id), ARRAY_N);
[92] Fix | Delete
}
[93] Fix | Delete
if(!$md5){
[94] Fix | Delete
$md5 = $TranslationManagement->post_md5($row->element_id);
[95] Fix | Delete
}
[96] Fix | Delete
[97] Fix | Delete
$translation_package = $TranslationManagement->create_translation_package($row->element_id);
[98] Fix | Delete
[99] Fix | Delete
[100] Fix | Delete
foreach($translations as $lang => $t){
[101] Fix | Delete
if(!$t->original){
[102] Fix | Delete
[103] Fix | Delete
// determine service and status
[104] Fix | Delete
$service = 'local';
[105] Fix | Delete
$needs_update = 0;
[106] Fix | Delete
[107] Fix | Delete
list($rid, $status, $current_md5) = $wpdb->get_row($wpdb->prepare("
[108] Fix | Delete
SELECT c.rid, n.status , c.md5
[109] Fix | Delete
FROM {$wpdb->prefix}icl_content_status c
[110] Fix | Delete
JOIN {$wpdb->prefix}icl_core_status n ON c.rid = n.rid
[111] Fix | Delete
WHERE c.nid = %d AND target = %s
[112] Fix | Delete
ORDER BY rid DESC
[113] Fix | Delete
LIMIT 1
[114] Fix | Delete
", $row->element_id, $lang), ARRAY_N);
[115] Fix | Delete
[116] Fix | Delete
$translator_id = false;
[117] Fix | Delete
if($rid){
[118] Fix | Delete
if($current_md5 != $md5){
[119] Fix | Delete
$needs_update = 1;
[120] Fix | Delete
}
[121] Fix | Delete
if($status == 3){
[122] Fix | Delete
$status = 10;
[123] Fix | Delete
}else{
[124] Fix | Delete
$status = 2;
[125] Fix | Delete
}
[126] Fix | Delete
$service = 'icanlocalize';
[127] Fix | Delete
[128] Fix | Delete
foreach($sitepress_settings['icl_lang_status'] as $lpair){
[129] Fix | Delete
if($lpair['from'] == $row->language_code && $lpair['to'] == $lang && isset($lpair['translators'][0]['id'])){
[130] Fix | Delete
$translator_id = $lpair['translators'][0]['id'];
[131] Fix | Delete
break;
[132] Fix | Delete
}
[133] Fix | Delete
}
[134] Fix | Delete
[135] Fix | Delete
}else{
[136] Fix | Delete
$status = 10;
[137] Fix | Delete
$translator_id = $wpdb->get_var($wpdb->prepare("SELECT post_author FROM {$wpdb->posts} WHERE ID=%d", $t->element_id));
[138] Fix | Delete
$tlp = get_user_meta($translator_id, $wpdb->prefix.'language_pairs', true);
[139] Fix | Delete
$tlp[$row->language_code][$lang] = 1;
[140] Fix | Delete
$TranslationManagement->edit_translator($translator_id, $tlp);
[141] Fix | Delete
}
[142] Fix | Delete
[143] Fix | Delete
[144] Fix | Delete
// add translation_status record
[145] Fix | Delete
list($newrid) = $TranslationManagement->update_translation_status(array(
[146] Fix | Delete
'translation_id' => $t->translation_id,
[147] Fix | Delete
'status' => $status,
[148] Fix | Delete
'translator_id' => $translator_id,
[149] Fix | Delete
'needs_update' => $needs_update,
[150] Fix | Delete
'md5' => $md5,
[151] Fix | Delete
'translation_service' => $service,
[152] Fix | Delete
'translation_package' => serialize($translation_package),
[153] Fix | Delete
'links_fixed' => intval(isset($links_fixed)?$links_fixed:0)
[154] Fix | Delete
));
[155] Fix | Delete
[156] Fix | Delete
$job_id = $TranslationManagement->add_translation_job( $newrid, $translator_id, $translation_package );
[157] Fix | Delete
if ( $job_id && $status == 10 ) {
[158] Fix | Delete
do_action( 'wpml_save_job_fields_from_post', $job_id );
[159] Fix | Delete
}
[160] Fix | Delete
}
[161] Fix | Delete
}
[162] Fix | Delete
}
[163] Fix | Delete
}
[164] Fix | Delete
if ($processing) {
[165] Fix | Delete
update_option('icl_temp_upgrade_data', array('step' => 2, 'offset' => intval($offset+100)));
[166] Fix | Delete
$stepper->setNextStep(2);
[167] Fix | Delete
} else {
[168] Fix | Delete
update_option('icl_temp_upgrade_data', array('step' => 3, 'offset' => 99999999999999999999));
[169] Fix | Delete
}
[170] Fix | Delete
$message = $processing ? __('Processing translations...', 'sitepress') : __('Finalizing upgrade...', 'sitepress');
[171] Fix | Delete
return array('message' => $message);
[172] Fix | Delete
break;
[173] Fix | Delete
[174] Fix | Delete
[175] Fix | Delete
case 3:
[176] Fix | Delete
// removing the plugins text table; importing data into a Sitepress setting
[177] Fix | Delete
$results = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}icl_plugins_texts");
[178] Fix | Delete
if(!empty($results)){
[179] Fix | Delete
foreach($results as $row){
[180] Fix | Delete
$cft[$row->attribute_name] = $row->translate + 1;
[181] Fix | Delete
}
[182] Fix | Delete
if ( isset( $cft ) ) {
[183] Fix | Delete
$iclsettings['translation-management']['custom_fields_translation'] = $cft;
[184] Fix | Delete
$sitepress->save_settings($iclsettings);
[185] Fix | Delete
}
[186] Fix | Delete
[187] Fix | Delete
$wpdb->query("DROP TABLE {$wpdb->prefix}icl_plugins_texts");
[188] Fix | Delete
}
[189] Fix | Delete
[190] Fix | Delete
$iclsettings['language_selector_initialized'] = 1;
[191] Fix | Delete
[192] Fix | Delete
if(get_option('_force_mp_post_http')){
[193] Fix | Delete
$iclsettings['troubleshooting_options']['http_communication'] = intval(get_option('_force_mp_post_http'));
[194] Fix | Delete
delete_option('_force_mp_post_http');
[195] Fix | Delete
}
[196] Fix | Delete
[197] Fix | Delete
$sitepress->save_settings($iclsettings);
[198] Fix | Delete
[199] Fix | Delete
$iclsettings['migrated_2_0_0'] = 1;
[200] Fix | Delete
$sitepress->save_settings($iclsettings);
[201] Fix | Delete
delete_option('icl_temp_upgrade_data');
[202] Fix | Delete
return array('message' => __('Done', 'sitepress'), 'completed' => 1);
[203] Fix | Delete
break;
[204] Fix | Delete
[205] Fix | Delete
default:
[206] Fix | Delete
return array('error' => __('Missing step', 'sitepress'), 'stop' => 1);
[207] Fix | Delete
}
[208] Fix | Delete
}
[209] Fix | Delete
[210] Fix | Delete
// $iclsettings defined in upgrade.php
[211] Fix | Delete
if(empty($iclsettings['migrated_2_0_0'])){
[212] Fix | Delete
wp_enqueue_script('icl-stepper', ICL_PLUGIN_URL . '/inc/upgrade-functions/2.0.0/stepper.js', array('jquery'));
[213] Fix | Delete
add_filter('admin_notices', 'icl_migrate_2_0_0');
[214] Fix | Delete
add_action('icl_ajx_custom_call', 'icl_ajx_upgrade_2_0_0', 1, 2);
[215] Fix | Delete
}
[216] Fix | Delete
[217] Fix | Delete
[218] Fix | Delete
function icl_migrate_2_0_0() {
[219] Fix | Delete
$ajax_action = 'wpml_upgrade_2_0_0';
[220] Fix | Delete
$ajax_action_none = wp_create_nonce($ajax_action);
[221] Fix | Delete
$link = 'index.php?icl_ajx_action=' . $ajax_action . '&nonce=' . $ajax_action_none;
[222] Fix | Delete
$txt = get_option('icl_temp_upgrade_data', FALSE) ? __('Resume Upgrade Process', 'sitepress') : __('Run Upgrade Process', 'sitepress');
[223] Fix | Delete
echo '<div class="message error" id="icl-migrate"><p><strong>'.__('WPML requires database upgrade', 'sitepress').'</strong></p>'
[224] Fix | Delete
.'<p>' . __('This normally takes a few seconds, but may last up to several minutes of very large databases.', 'sitepress') . '</p>'
[225] Fix | Delete
. '<p><a href="' . $link . '" style="" id="icl-migrate-start">' . $txt . '</a></p>'
[226] Fix | Delete
. '<div id="icl-migrate-progress" style="display:none; margin: 10px 0 20px 0;">'
[227] Fix | Delete
. '</div></div>';
[228] Fix | Delete
}
[229] Fix | Delete
[230] Fix | Delete
function icl_ajx_upgrade_2_0_0($call, $request){
[231] Fix | Delete
if($call == 'wpml_upgrade_2_0_0'){
[232] Fix | Delete
$error = 0;
[233] Fix | Delete
$completed = 0;
[234] Fix | Delete
$stop = 0;
[235] Fix | Delete
$message = __('Starting the upgrade process...', 'sitepress');
[236] Fix | Delete
include_once WPML_PLUGIN_PATH . '/inc/upgrade-functions/2.0.0/stepper.php';
[237] Fix | Delete
include_once WPML_PLUGIN_PATH . '/inc/upgrade-functions/upgrade-2.0.0.php';
[238] Fix | Delete
$temp_upgrade_data = get_option('icl_temp_upgrade_data',
[239] Fix | Delete
array('step' => 0, 'offset' => 0));
[240] Fix | Delete
$step = isset($request['step']) ? $request['step'] : $temp_upgrade_data['step'];
[241] Fix | Delete
$migration = new Icl_Stepper($step);
[242] Fix | Delete
$migration->registerSteps(
[243] Fix | Delete
'icl_upgrade_2_0_0_steps',
[244] Fix | Delete
'icl_upgrade_2_0_0_steps',
[245] Fix | Delete
'icl_upgrade_2_0_0_steps');
[246] Fix | Delete
if (isset($request['init'])) {
[247] Fix | Delete
echo json_encode(array(
[248] Fix | Delete
'error' => $error,
[249] Fix | Delete
'output' => $migration->render(),
[250] Fix | Delete
'step' => $migration->getNextStep(),
[251] Fix | Delete
'message' => __('Creating new tables...', 'sitepress'),
[252] Fix | Delete
'stop' => $stop,
[253] Fix | Delete
));
[254] Fix | Delete
exit;
[255] Fix | Delete
}
[256] Fix | Delete
$data = $migration->init();
[257] Fix | Delete
@extract($data, EXTR_OVERWRITE);
[258] Fix | Delete
echo json_encode(array(
[259] Fix | Delete
'error' => $error,
[260] Fix | Delete
'completed' => $completed,
[261] Fix | Delete
'message' => $message,
[262] Fix | Delete
'step' => $migration->getNextStep(),
[263] Fix | Delete
'barWidth' => $migration->barWidth(),
[264] Fix | Delete
'stop' => $stop,
[265] Fix | Delete
));
[266] Fix | Delete
}
[267] Fix | Delete
}
[268] Fix | Delete
[269] Fix | Delete
?>
[270] Fix | Delete
[271] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function