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/setup
File: sitepress-schema.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* @package wpml-core
[2] Fix | Delete
*/
[3] Fix | Delete
[4] Fix | Delete
function icl_reset_language_data(){
[5] Fix | Delete
global $wpdb, $sitepress;
[6] Fix | Delete
[7] Fix | Delete
$active = $wpdb->get_col("SELECT code FROM {$wpdb->prefix}icl_languages WHERE active = 1");
[8] Fix | Delete
[9] Fix | Delete
$wpdb->query("TRUNCATE TABLE `{$wpdb->prefix}icl_languages`");
[10] Fix | Delete
SitePress_Setup::fill_languages();
[11] Fix | Delete
$wpdb->query("TRUNCATE TABLE `{$wpdb->prefix}icl_languages_translations`");
[12] Fix | Delete
SitePress_Setup::fill_languages_translations();
[13] Fix | Delete
$wpdb->query("TRUNCATE TABLE `{$wpdb->prefix}icl_flags`");
[14] Fix | Delete
SitePress_Setup::fill_flags();
[15] Fix | Delete
[16] Fix | Delete
//restore active
[17] Fix | Delete
$wpdb->query("UPDATE {$wpdb->prefix}icl_languages SET active=1 WHERE code IN(" . wpml_prepare_in($active) . ")");
[18] Fix | Delete
[19] Fix | Delete
$wpdb->update($wpdb->prefix.'icl_flags', array('from_template'=>0),null);
[20] Fix | Delete
[21] Fix | Delete
$codes = $wpdb->get_col("SELECT code FROM {$wpdb->prefix}icl_languages");
[22] Fix | Delete
foreach($codes as $code){
[23] Fix | Delete
if ( !$code || $wpdb->get_var(
[24] Fix | Delete
$wpdb->prepare( "SELECT lang_code FROM {$wpdb->prefix}icl_flags WHERE lang_code = %s", $code )
[25] Fix | Delete
)
[26] Fix | Delete
) {
[27] Fix | Delete
continue;
[28] Fix | Delete
}
[29] Fix | Delete
if(!file_exists(WPML_PLUGIN_PATH.'/res/flags/'.$code.'.png')){
[30] Fix | Delete
$file = 'nil.png';
[31] Fix | Delete
}else{
[32] Fix | Delete
$file = $code.'.png';
[33] Fix | Delete
}
[34] Fix | Delete
$wpdb->insert($wpdb->prefix.'icl_flags', array('lang_code'=>$code, 'flag'=>$file, 'from_template'=>0));
[35] Fix | Delete
}
[36] Fix | Delete
[37] Fix | Delete
$last_default_language = $sitepress !== null ? $sitepress->get_default_language () : 'en';
[38] Fix | Delete
if ( !in_array ( $last_default_language, $codes ) ) {
[39] Fix | Delete
$allowed_langs = array_intersect ( array_keys ( $sitepress->get_active_languages () ), $codes );
[40] Fix | Delete
$sitepress->set_default_language ( array_pop ( $allowed_langs ) );
[41] Fix | Delete
}
[42] Fix | Delete
[43] Fix | Delete
icl_cache_clear();
[44] Fix | Delete
[45] Fix | Delete
do_action( 'wpml_translation_update', array( 'type' => 'reset' ) );
[46] Fix | Delete
}
[47] Fix | Delete
[48] Fix | Delete
function icl_sitepress_activate() {
[49] Fix | Delete
global $wpdb;
[50] Fix | Delete
[51] Fix | Delete
$charset_collate = SitePress_Setup::get_charset_collate();
[52] Fix | Delete
[53] Fix | Delete
try {
[54] Fix | Delete
SitePress_Setup::fill_languages();
[55] Fix | Delete
SitePress_Setup::fill_languages_translations();
[56] Fix | Delete
SitePress_Setup::fill_flags();
[57] Fix | Delete
[58] Fix | Delete
// translations
[59] Fix | Delete
$table_name = $wpdb->prefix . 'icl_translations';
[60] Fix | Delete
if ( 0 !== strcasecmp( $wpdb->get_var( "SHOW TABLES LIKE '{$table_name}'" ), $table_name ) ) {
[61] Fix | Delete
$sql = "
[62] Fix | Delete
CREATE TABLE IF NOT EXISTS `{$table_name}` (
[63] Fix | Delete
`translation_id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
[64] Fix | Delete
`element_type` VARCHAR( 60 ) NOT NULL DEFAULT 'post_post',
[65] Fix | Delete
`element_id` BIGINT NULL DEFAULT NULL ,
[66] Fix | Delete
`trid` BIGINT NOT NULL ,
[67] Fix | Delete
`language_code` VARCHAR( 7 ) NOT NULL,
[68] Fix | Delete
`source_language_code` VARCHAR( 7 ),
[69] Fix | Delete
UNIQUE KEY `el_type_id` (`element_type`,`element_id`),
[70] Fix | Delete
UNIQUE KEY `trid_lang` (`trid`,`language_code`),
[71] Fix | Delete
KEY `trid` (`trid`),
[72] Fix | Delete
KEY `id_type_language` (`element_id`, `element_type`, `language_code`)
[73] Fix | Delete
) {$charset_collate}";
[74] Fix | Delete
if ( $wpdb->query( $sql ) === false ) {
[75] Fix | Delete
throw new Exception( $wpdb->last_error );
[76] Fix | Delete
}
[77] Fix | Delete
}
[78] Fix | Delete
[79] Fix | Delete
// translation_status table
[80] Fix | Delete
$table_name = $wpdb->prefix . 'icl_translation_status';
[81] Fix | Delete
if ( 0 !== strcasecmp( $wpdb->get_var( "SHOW TABLES LIKE '{$table_name}'" ), $table_name ) ) {
[82] Fix | Delete
$sql = "
[83] Fix | Delete
CREATE TABLE IF NOT EXISTS `{$table_name}` (
[84] Fix | Delete
`rid` bigint(20) NOT NULL AUTO_INCREMENT,
[85] Fix | Delete
`translation_id` bigint(20) NOT NULL,
[86] Fix | Delete
`status` tinyint(4) NOT NULL,
[87] Fix | Delete
`translator_id` bigint(20) NOT NULL,
[88] Fix | Delete
`needs_update` tinyint(4) NOT NULL,
[89] Fix | Delete
`md5` varchar(32) NOT NULL,
[90] Fix | Delete
`translation_service` varchar(16) NOT NULL,
[91] Fix | Delete
`batch_id` int DEFAULT 0 NOT NULL,
[92] Fix | Delete
`translation_package` longtext NOT NULL,
[93] Fix | Delete
`timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
[94] Fix | Delete
`links_fixed` tinyint(4) NOT NULL DEFAULT 0,
[95] Fix | Delete
`_prevstate` longtext,
[96] Fix | Delete
`uuid` varchar(36) NULL,
[97] Fix | Delete
`tp_id` INT NULL DEFAULT NULL,
[98] Fix | Delete
`tp_revision` INT NOT NULL DEFAULT 1,
[99] Fix | Delete
`ts_status` TEXT NULL DEFAULT NULL,
[100] Fix | Delete
PRIMARY KEY (`rid`),
[101] Fix | Delete
UNIQUE KEY `translation_id` (`translation_id`)
[102] Fix | Delete
) {$charset_collate}
[103] Fix | Delete
";
[104] Fix | Delete
if ( $wpdb->query( $sql ) === false ) {
[105] Fix | Delete
throw new Exception( $wpdb->last_error );
[106] Fix | Delete
}
[107] Fix | Delete
}
[108] Fix | Delete
[109] Fix | Delete
// translation jobs
[110] Fix | Delete
$table_name = $wpdb->prefix . 'icl_translate_job';
[111] Fix | Delete
if ( 0 !== strcasecmp( $wpdb->get_var( "SHOW TABLES LIKE '{$table_name}'" ), $table_name ) ) {
[112] Fix | Delete
$sql = "
[113] Fix | Delete
CREATE TABLE IF NOT EXISTS `{$table_name}` (
[114] Fix | Delete
`job_id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
[115] Fix | Delete
`rid` BIGINT UNSIGNED NOT NULL ,
[116] Fix | Delete
`translator_id` INT UNSIGNED NOT NULL ,
[117] Fix | Delete
`translated` TINYINT UNSIGNED NOT NULL DEFAULT 0,
[118] Fix | Delete
`manager_id` INT UNSIGNED NOT NULL ,
[119] Fix | Delete
`revision` INT UNSIGNED NULL,
[120] Fix | Delete
`title` VARCHAR(160) NULL,
[121] Fix | Delete
`deadline_date` DATETIME NULL,
[122] Fix | Delete
`completed_date` DATETIME NULL,
[123] Fix | Delete
`editor` VARCHAR(16) NULL,
[124] Fix | Delete
`editor_job_id` BIGINT(20) UNSIGNED NULL,
[125] Fix | Delete
`edit_timestamp` INT(11) UNSIGNED NULL,
[126] Fix | Delete
INDEX ( `rid` , `translator_id` )
[127] Fix | Delete
) {$charset_collate}
[128] Fix | Delete
";
[129] Fix | Delete
if ( $wpdb->query( $sql ) === false ) {
[130] Fix | Delete
throw new Exception( $wpdb->last_error );
[131] Fix | Delete
}
[132] Fix | Delete
}
[133] Fix | Delete
[134] Fix | Delete
// translate table
[135] Fix | Delete
$table_name = $wpdb->prefix . 'icl_translate';
[136] Fix | Delete
if ( 0 !== strcasecmp( $wpdb->get_var( "SHOW TABLES LIKE '{$table_name}'" ), $table_name ) ) {
[137] Fix | Delete
$sql = "
[138] Fix | Delete
CREATE TABLE IF NOT EXISTS `{$table_name}` (
[139] Fix | Delete
`tid` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
[140] Fix | Delete
`job_id` BIGINT UNSIGNED NOT NULL ,
[141] Fix | Delete
`content_id` BIGINT UNSIGNED NOT NULL ,
[142] Fix | Delete
`timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
[143] Fix | Delete
`field_type` VARCHAR( 160 ) NOT NULL ,
[144] Fix | Delete
`field_wrap_tag` VARCHAR( 16 ) NOT NULL ,
[145] Fix | Delete
`field_format` VARCHAR( 16 ) NOT NULL ,
[146] Fix | Delete
`field_translate` TINYINT NOT NULL ,
[147] Fix | Delete
`field_data` longtext NOT NULL ,
[148] Fix | Delete
`field_data_translated` longtext NOT NULL ,
[149] Fix | Delete
`field_finished` TINYINT NOT NULL DEFAULT 0,
[150] Fix | Delete
INDEX ( `job_id` )
[151] Fix | Delete
) {$charset_collate}
[152] Fix | Delete
";
[153] Fix | Delete
if ( $wpdb->query( $sql ) === false ) {
[154] Fix | Delete
throw new Exception( $wpdb->last_error );
[155] Fix | Delete
}
[156] Fix | Delete
}
[157] Fix | Delete
[158] Fix | Delete
// batches table
[159] Fix | Delete
$table_name = $wpdb->prefix . 'icl_translation_batches';
[160] Fix | Delete
if ( 0 !== strcasecmp( $wpdb->get_var( "SHOW TABLES LIKE '{$table_name}'" ), $table_name ) ) {
[161] Fix | Delete
$sql = "
[162] Fix | Delete
CREATE TABLE IF NOT EXISTS {$wpdb->prefix}icl_translation_batches (
[163] Fix | Delete
`id` int(11) NOT NULL AUTO_INCREMENT,
[164] Fix | Delete
`batch_name` text NOT NULL,
[165] Fix | Delete
`tp_id` int NULL,
[166] Fix | Delete
`ts_url` text NULL,
[167] Fix | Delete
`last_update` DATETIME NULL,
[168] Fix | Delete
PRIMARY KEY (`id`)
[169] Fix | Delete
) {$charset_collate}
[170] Fix | Delete
";
[171] Fix | Delete
if ( $wpdb->query( $sql ) === false ) {
[172] Fix | Delete
throw new Exception( $wpdb->last_error );
[173] Fix | Delete
}
[174] Fix | Delete
}
[175] Fix | Delete
[176] Fix | Delete
// languages locale file names
[177] Fix | Delete
$table_name = $wpdb->prefix . 'icl_locale_map';
[178] Fix | Delete
if ( 0 !== strcasecmp( $wpdb->get_var( "SHOW TABLES LIKE '{$table_name}'" ), $table_name ) ) {
[179] Fix | Delete
$sql = "
[180] Fix | Delete
CREATE TABLE IF NOT EXISTS `{$table_name}` (
[181] Fix | Delete
`code` VARCHAR( 7 ) NOT NULL ,
[182] Fix | Delete
`locale` VARCHAR( 35 ) NOT NULL ,
[183] Fix | Delete
UNIQUE (`code` ,`locale`)
[184] Fix | Delete
) {$charset_collate}";
[185] Fix | Delete
if ( $wpdb->query( $sql ) === false ) {
[186] Fix | Delete
throw new Exception( $wpdb->last_error );
[187] Fix | Delete
}
[188] Fix | Delete
}
[189] Fix | Delete
[190] Fix | Delete
/* general string translation */
[191] Fix | Delete
$translation_priority_default = __( 'Optional', 'sitepress' );
[192] Fix | Delete
$table_name = $wpdb->prefix . 'icl_strings';
[193] Fix | Delete
if ( 0 !== strcasecmp( $wpdb->get_var( "SHOW TABLES LIKE '{$table_name}'" ), $table_name ) ) {
[194] Fix | Delete
$sql = "
[195] Fix | Delete
CREATE TABLE IF NOT EXISTS `{$table_name}` (
[196] Fix | Delete
`id` bigint(20) unsigned NOT NULL auto_increment,
[197] Fix | Delete
`language` varchar(7) NOT NULL,
[198] Fix | Delete
`context` varchar(" . WPML_STRING_TABLE_NAME_CONTEXT_LENGTH . ") NOT NULL,
[199] Fix | Delete
`name` varchar(" . WPML_STRING_TABLE_NAME_CONTEXT_LENGTH . ") NOT NULL,
[200] Fix | Delete
`value` longtext NOT NULL,
[201] Fix | Delete
`string_package_id` BIGINT unsigned NULL,
[202] Fix | Delete
`location` BIGINT unsigned NULL,
[203] Fix | Delete
`wrap_tag` VARCHAR( 16 ) NOT NULL,
[204] Fix | Delete
`type` VARCHAR(40) NOT NULL DEFAULT 'LINE',
[205] Fix | Delete
`title` VARCHAR(160) NULL,
[206] Fix | Delete
`status` TINYINT NOT NULL,
[207] Fix | Delete
`gettext_context` TEXT NOT NULL,
[208] Fix | Delete
`domain_name_context_md5` VARCHAR(32) NOT NULL,
[209] Fix | Delete
`translation_priority` varchar(160) NOT NULL,
[210] Fix | Delete
`word_count` int unsigned NULL,
[211] Fix | Delete
PRIMARY KEY (`id`),
[212] Fix | Delete
UNIQUE KEY `uc_domain_name_context_md5` (`domain_name_context_md5`),
[213] Fix | Delete
KEY `language_context` (`language`, `context`),
[214] Fix | Delete
KEY `icl_strings_name` (`name` ASC),
[215] Fix | Delete
KEY `icl_strings_translation_priority` ( `translation_priority` ASC ),
[216] Fix | Delete
KEY `context` ( `context` )
[217] Fix | Delete
) {$charset_collate}
[218] Fix | Delete
";
[219] Fix | Delete
if ( $wpdb->query( $sql ) === false ) {
[220] Fix | Delete
throw new Exception( $wpdb->last_error );
[221] Fix | Delete
}
[222] Fix | Delete
}
[223] Fix | Delete
[224] Fix | Delete
$table_name = $wpdb->prefix . 'icl_string_translations';
[225] Fix | Delete
if ( 0 !== strcasecmp( $wpdb->get_var( "SHOW TABLES LIKE '{$table_name}'" ), $table_name ) ) {
[226] Fix | Delete
$sql = "
[227] Fix | Delete
CREATE TABLE IF NOT EXISTS `{$table_name}` (
[228] Fix | Delete
`id` bigint(20) unsigned NOT NULL auto_increment,
[229] Fix | Delete
`string_id` bigint(20) unsigned NOT NULL,
[230] Fix | Delete
`language` varchar(10) NOT NULL,
[231] Fix | Delete
`status` tinyint(4) NOT NULL,
[232] Fix | Delete
`value` longtext NULL DEFAULT NULL,
[233] Fix | Delete
`mo_string` longtext NULL DEFAULT NULL,
[234] Fix | Delete
`translator_id` bigint(20) unsigned DEFAULT NULL,
[235] Fix | Delete
`translation_service` varchar(16) DEFAULT '' NOT NULL,
[236] Fix | Delete
`batch_id` int DEFAULT 0 NOT NULL,
[237] Fix | Delete
`translation_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
[238] Fix | Delete
PRIMARY KEY (`id`),
[239] Fix | Delete
UNIQUE KEY `string_language` (`string_id`,`language`)
[240] Fix | Delete
) {$charset_collate}";
[241] Fix | Delete
if ( $wpdb->query( $sql ) === false ) {
[242] Fix | Delete
throw new Exception( $wpdb->last_error );
[243] Fix | Delete
}
[244] Fix | Delete
}
[245] Fix | Delete
[246] Fix | Delete
$table_name = $wpdb->prefix . 'icl_string_status';
[247] Fix | Delete
if ( 0 !== strcasecmp( $wpdb->get_var( "SHOW TABLES LIKE '{$table_name}'" ), $table_name ) ) {
[248] Fix | Delete
$sql = "
[249] Fix | Delete
CREATE TABLE IF NOT EXISTS `{$table_name}` (
[250] Fix | Delete
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
[251] Fix | Delete
`rid` BIGINT NOT NULL ,
[252] Fix | Delete
`string_translation_id` BIGINT NOT NULL ,
[253] Fix | Delete
`timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
[254] Fix | Delete
`md5` VARCHAR( 32 ) NOT NULL,
[255] Fix | Delete
INDEX ( `string_translation_id` )
[256] Fix | Delete
) {$charset_collate}";
[257] Fix | Delete
if ( $wpdb->query( $sql ) === false ) {
[258] Fix | Delete
throw new Exception( $wpdb->last_error );
[259] Fix | Delete
}
[260] Fix | Delete
}
[261] Fix | Delete
[262] Fix | Delete
$table_name = $wpdb->prefix . 'icl_string_positions';
[263] Fix | Delete
if ( 0 !== strcasecmp( $wpdb->get_var( "SHOW TABLES LIKE '{$table_name}'" ), $table_name ) ) {
[264] Fix | Delete
$sql = "
[265] Fix | Delete
CREATE TABLE IF NOT EXISTS `{$table_name}` (
[266] Fix | Delete
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
[267] Fix | Delete
`string_id` BIGINT NOT NULL ,
[268] Fix | Delete
`kind` TINYINT,
[269] Fix | Delete
`position_in_page` VARCHAR( 255 ) NOT NULL,
[270] Fix | Delete
INDEX ( `string_id` )
[271] Fix | Delete
) {$charset_collate}";
[272] Fix | Delete
if ( $wpdb->query( $sql ) === false ) {
[273] Fix | Delete
throw new Exception( $wpdb->last_error );
[274] Fix | Delete
}
[275] Fix | Delete
}
[276] Fix | Delete
[277] Fix | Delete
// message status table
[278] Fix | Delete
$table_name = $wpdb->prefix . 'icl_message_status';
[279] Fix | Delete
if ( 0 !== strcasecmp( $wpdb->get_var( "SHOW TABLES LIKE '{$table_name}'" ), $table_name ) ) {
[280] Fix | Delete
$sql = "
[281] Fix | Delete
CREATE TABLE IF NOT EXISTS `{$table_name}` (
[282] Fix | Delete
`id` bigint(20) unsigned NOT NULL auto_increment,
[283] Fix | Delete
`rid` bigint(20) unsigned NOT NULL,
[284] Fix | Delete
`object_id` bigint(20) unsigned NOT NULL,
[285] Fix | Delete
`from_language` varchar(10) NOT NULL,
[286] Fix | Delete
`to_language` varchar(10) NOT NULL,
[287] Fix | Delete
`timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP,
[288] Fix | Delete
`md5` varchar(32) NOT NULL,
[289] Fix | Delete
`object_type` varchar(64) NOT NULL,
[290] Fix | Delete
`status` smallint(6) NOT NULL,
[291] Fix | Delete
PRIMARY KEY (`id`),
[292] Fix | Delete
UNIQUE KEY `rid` (`rid`),
[293] Fix | Delete
KEY `object_id` (`object_id`)
[294] Fix | Delete
) {$charset_collate}";
[295] Fix | Delete
if ( $wpdb->query( $sql ) === false ) {
[296] Fix | Delete
throw new Exception( $wpdb->last_error );
[297] Fix | Delete
}
[298] Fix | Delete
}
[299] Fix | Delete
[300] Fix | Delete
/* string translation - start */
[301] Fix | Delete
$icl_translation_sql = "
[302] Fix | Delete
CREATE TABLE IF NOT EXISTS {$wpdb->prefix}icl_core_status (
[303] Fix | Delete
`id` BIGINT NOT NULL auto_increment,
[304] Fix | Delete
`rid` BIGINT NOT NULL,
[305] Fix | Delete
`module` VARCHAR( 16 ) NOT NULL ,
[306] Fix | Delete
`origin` VARCHAR( 64 ) NOT NULL ,
[307] Fix | Delete
`target` VARCHAR( 64 ) NOT NULL ,
[308] Fix | Delete
`status` SMALLINT NOT NULL,
[309] Fix | Delete
`tp_revision` INT NOT NULL DEFAULT 1,
[310] Fix | Delete
`ts_status` TEXT NULL DEFAULT NULL,
[311] Fix | Delete
PRIMARY KEY ( `id` ) ,
[312] Fix | Delete
INDEX ( `rid` )
[313] Fix | Delete
) {$charset_collate}
[314] Fix | Delete
";
[315] Fix | Delete
if ( $wpdb->query( $icl_translation_sql ) === false ) {
[316] Fix | Delete
throw new Exception( $wpdb->last_error );
[317] Fix | Delete
}
[318] Fix | Delete
[319] Fix | Delete
$icl_translation_sql = "
[320] Fix | Delete
CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}icl_content_status` (
[321] Fix | Delete
`rid` BIGINT NOT NULL ,
[322] Fix | Delete
`nid` BIGINT NOT NULL ,
[323] Fix | Delete
`timestamp` DATETIME NOT NULL ,
[324] Fix | Delete
`md5` VARCHAR( 32 ) NOT NULL ,
[325] Fix | Delete
PRIMARY KEY ( `rid` ) ,
[326] Fix | Delete
INDEX ( `nid` )
[327] Fix | Delete
) {$charset_collate}
[328] Fix | Delete
";
[329] Fix | Delete
if ( $wpdb->query( $icl_translation_sql ) === false ) {
[330] Fix | Delete
throw new Exception( $wpdb->last_error );
[331] Fix | Delete
}
[332] Fix | Delete
[333] Fix | Delete
$icl_translation_sql = "
[334] Fix | Delete
CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}icl_node` (
[335] Fix | Delete
`nid` BIGINT NOT NULL ,
[336] Fix | Delete
`md5` VARCHAR( 32 ) NOT NULL ,
[337] Fix | Delete
`links_fixed` TINYINT NOT NULL DEFAULT 0,
[338] Fix | Delete
PRIMARY KEY ( `nid` )
[339] Fix | Delete
) {$charset_collate}
[340] Fix | Delete
";
[341] Fix | Delete
if ( $wpdb->query( $icl_translation_sql ) === false ) {
[342] Fix | Delete
throw new Exception( $wpdb->last_error );
[343] Fix | Delete
}
[344] Fix | Delete
[345] Fix | Delete
$icl_translation_sql = "
[346] Fix | Delete
CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}icl_reminders` (
[347] Fix | Delete
`id` BIGINT NOT NULL ,
[348] Fix | Delete
`message` TEXT NOT NULL ,
[349] Fix | Delete
`url` TEXT NOT NULL ,
[350] Fix | Delete
`can_delete` TINYINT NOT NULL ,
[351] Fix | Delete
`show` TINYINT NOT NULL ,
[352] Fix | Delete
PRIMARY KEY ( `id` )
[353] Fix | Delete
) {$charset_collate}
[354] Fix | Delete
";
[355] Fix | Delete
if ( $wpdb->query( $icl_translation_sql ) === false ) {
[356] Fix | Delete
throw new Exception( $wpdb->last_error );
[357] Fix | Delete
}
[358] Fix | Delete
[359] Fix | Delete
} catch ( Exception $e ) {
[360] Fix | Delete
trigger_error( $e->getMessage(), E_USER_ERROR );
[361] Fix | Delete
exit;
[362] Fix | Delete
}
[363] Fix | Delete
[364] Fix | Delete
// don't set the new version if a multi-step upgrade is in progress
[365] Fix | Delete
if ( ! defined( 'ICL_MULTI_STEP_UPGRADE' ) ) {
[366] Fix | Delete
delete_option( 'icl_sitepress_version' );
[367] Fix | Delete
add_option( 'icl_sitepress_version', ICL_SITEPRESS_VERSION, '', true );
[368] Fix | Delete
}
[369] Fix | Delete
[370] Fix | Delete
[371] Fix | Delete
$iclsettings = get_option( 'icl_sitepress_settings' );
[372] Fix | Delete
if ( $iclsettings === false ) {
[373] Fix | Delete
$short_v = implode( '.', array_slice( explode( '.', ICL_SITEPRESS_VERSION ), 0, 3 ) );
[374] Fix | Delete
$settings = array(
[375] Fix | Delete
'hide_upgrade_notice' => $short_v
[376] Fix | Delete
);
[377] Fix | Delete
add_option( 'icl_sitepress_settings', $settings, '', true );
[378] Fix | Delete
} else {
[379] Fix | Delete
// reset ajx_health_flag
[380] Fix | Delete
$iclsettings[ 'ajx_health_checked' ] = 0;
[381] Fix | Delete
$iclsettings[ 'just_reactivated' ] = 1;
[382] Fix | Delete
update_option( 'icl_sitepress_settings', $iclsettings );
[383] Fix | Delete
}
[384] Fix | Delete
[385] Fix | Delete
//Set new caps for all administrator role
[386] Fix | Delete
wpml_enable_capabilities();
[387] Fix | Delete
[388] Fix | Delete
repair_el_type_collate();
[389] Fix | Delete
[390] Fix | Delete
WPML_Media_Duplication_Setup::initialize_settings();
[391] Fix | Delete
[392] Fix | Delete
do_action('wpml_activated');
[393] Fix | Delete
}
[394] Fix | Delete
[395] Fix | Delete
function icl_sitepress_deactivate() {
[396] Fix | Delete
wp_clear_scheduled_hook( 'update_wpml_config_index' );
[397] Fix | Delete
require_once WPML_PLUGIN_PATH . '/inc/cache.php';
[398] Fix | Delete
icl_cache_clear();
[399] Fix | Delete
do_action('wpml_deactivated');
[400] Fix | Delete
}
[401] Fix | Delete
[402] Fix | Delete
function icl_enable_capabilities() {
[403] Fix | Delete
global $wp_roles;
[404] Fix | Delete
[405] Fix | Delete
if ( ! isset( $wp_roles ) || ! is_object( $wp_roles ) ) {
[406] Fix | Delete
$wp_roles = new WP_Roles();
[407] Fix | Delete
}
[408] Fix | Delete
[409] Fix | Delete
$iclsettings = get_option( 'icl_sitepress_settings' );
[410] Fix | Delete
$icl_capabilities = icl_sitepress_get_capabilities();
[411] Fix | Delete
[412] Fix | Delete
//Set WPML capabilities to all roles with cap:"".
[413] Fix | Delete
$roles = $wp_roles->get_names();
[414] Fix | Delete
foreach ( $roles as $current_role => $role_name ) {
[415] Fix | Delete
if ( isset( $wp_roles->roles[ $current_role ][ 'capabilities' ][ 'manage_options' ] ) ) {
[416] Fix | Delete
$role = get_role( $current_role );
[417] Fix | Delete
if ( isset( $role ) && is_object( $role ) ) {
[418] Fix | Delete
for ( $i = 0, $caps_limit = count( $icl_capabilities ); $i < $caps_limit; $i ++ ) {
[419] Fix | Delete
if ( ! isset( $wp_roles->roles[ $current_role ][ 'capabilities' ][ $icl_capabilities[ $i ] ] ) ) {
[420] Fix | Delete
$role->add_cap( $icl_capabilities[ $i ] );
[421] Fix | Delete
}
[422] Fix | Delete
}
[423] Fix | Delete
}
[424] Fix | Delete
[425] Fix | Delete
}
[426] Fix | Delete
}
[427] Fix | Delete
[428] Fix | Delete
$user_admins = get_users( array(
[429] Fix | Delete
'role' => 'administrator'
[430] Fix | Delete
) );
[431] Fix | Delete
[432] Fix | Delete
if ( is_multisite() ) {
[433] Fix | Delete
$super_admins = get_super_admins();
[434] Fix | Delete
[435] Fix | Delete
foreach( $super_admins as $admin ) {
[436] Fix | Delete
$super_admin = new WP_User( $admin );
[437] Fix | Delete
[438] Fix | Delete
if ( ! in_array( $super_admin, $user_admins, true ) ) {
[439] Fix | Delete
$user_admins[] = $super_admin;
[440] Fix | Delete
}
[441] Fix | Delete
}
[442] Fix | Delete
}
[443] Fix | Delete
[444] Fix | Delete
foreach ( $user_admins as $user ) {
[445] Fix | Delete
if ( $user->exists() ) {
[446] Fix | Delete
for ( $i = 0, $caps_limit = count( $icl_capabilities ); $i < $caps_limit; $i ++ ) {
[447] Fix | Delete
$user->add_cap( $icl_capabilities[ $i ] );
[448] Fix | Delete
}
[449] Fix | Delete
}
[450] Fix | Delete
}
[451] Fix | Delete
[452] Fix | Delete
$iclsettings[ 'icl_capabilities_verified' ] = true;
[453] Fix | Delete
update_option( 'icl_sitepress_settings', $iclsettings );
[454] Fix | Delete
}
[455] Fix | Delete
[456] Fix | Delete
/**
[457] Fix | Delete
* Fires at plugins_loaded action, to call icl_enable_capabilities().
[458] Fix | Delete
* https://onthegosystems.myjetbrains.com/youtrack/issue/wpmlcore-5695
[459] Fix | Delete
*/
[460] Fix | Delete
function wpml_enable_capabilities() {
[461] Fix | Delete
global $sitepress_settings;
[462] Fix | Delete
[463] Fix | Delete
/**
[464] Fix | Delete
* In case of multisite, in network activation,
[465] Fix | Delete
* including of pluggable.php before muplugins_loaded event trigger errors -
[466] Fix | Delete
* we postpone executing of icl_enable_capabilities to after plugins_loaded event.
[467] Fix | Delete
*
[468] Fix | Delete
* In other cases we include pluggable.php earlier than in wp-settings.php
[469] Fix | Delete
*/
[470] Fix | Delete
if ( ! did_action( 'muplugins_loaded' ) ) {
[471] Fix | Delete
add_action( 'plugins_loaded', 'wpml_enable_capabilities' );
[472] Fix | Delete
} else {
[473] Fix | Delete
if ( ! function_exists( 'get_user_by' ) ) {
[474] Fix | Delete
require( ABSPATH . WPINC . '/pluggable.php' );
[475] Fix | Delete
}
[476] Fix | Delete
icl_enable_capabilities();
[477] Fix | Delete
$sitepress_settings = get_option( 'icl_sitepress_settings' );
[478] Fix | Delete
}
[479] Fix | Delete
}
[480] Fix | Delete
[481] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function