📄 0_18_inc.php
字号:
global $t_bug_relationship_table, $t_bug_table, $t_bug_history_table; $query = "SELECT id, duplicate_id FROM $t_bug_table WHERE duplicate_id != '';"; $result = db_query( $query ); $t_count = db_num_rows( $result ); for ( $i = 0 ; $i < $t_count ; $i++ ) { $t_bug = db_fetch_array( $result ); $t_bug_id = $t_bug['id']; $t_duplicate_bug_id = $t_bug['duplicate_id']; $query = "SELECT id FROM $t_bug_relationship_table WHERE (source_bug_id = '$t_bug_id' and destination_bug_id = '$t_duplicate_bug_id') or (destination_bug_id = '$t_bug_id' and source_bug_id = '$t_duplicate_bug_id');"; $result2 = db_query( $query ); $t_count2 = db_num_rows( $result2 ); if( $t_count2 > 0 ) { continue; } $query = "INSERT INTO $t_bug_relationship_table ( source_bug_id, destination_bug_id, relationship_type ) VALUES ( '" . $t_bug_id . "', '" . $t_duplicate_bug_id . "', '" . BUG_DUPLICATE . "')"; db_query( $query ); $query = "SELECT id, user_id, date_modified FROM $t_bug_history_table WHERE bug_id = '$t_bug_id' and field_name = 'duplicate_id' and new_value = '$t_duplicate_bug_id';"; $result2 = db_query( $query ); $t_count2 = db_num_rows( $result2 ); if ( $t_count2 < 1) { continue; } $t_history_bug = db_fetch_array( $result2 ); $t_history_id = $t_history_bug['id']; $t_history_user_id = $t_history_bug['user_id']; $t_duplicate_bug_last_update = $t_history_bug['date_modified']; $query = "UPDATE $t_bug_history_table SET field_name = '', old_value = '" . BUG_DUPLICATE . "', type = '" . BUG_ADD_RELATIONSHIP . "' WHERE id='$t_history_id'"; db_query( $query ); $query = "INSERT INTO $t_bug_history_table ( user_id, bug_id, date_modified, type, old_value, new_value ) VALUES ( '$t_history_user_id', '$t_duplicate_bug_id', '" . $t_duplicate_bug_last_update . "', " . BUG_ADD_RELATIONSHIP . ", " . BUG_HAS_DUPLICATE . ", '$t_bug_id' )"; db_query( $query ); } return true; } $upgrades[] = new FunctionUpgrade( 'relationship-4', 'Fix swapped value in duplicate relationship', 'upgrade_0_18_relationship_4' ); function upgrade_0_18_relationship_4() { global $t_bug_relationship_table, $t_bug_table; $query = "SELECT id, duplicate_id FROM $t_bug_table WHERE duplicate_id != '';"; $result = db_query( $query ); $t_count = db_num_rows( $result ); for ( $i = 0 ; $i < $t_count ; $i++ ) { $t_bug = db_fetch_array( $result ); $t_bug_id = $t_bug['id']; $t_duplicate_bug_id = $t_bug['duplicate_id']; $query = "SELECT id FROM $t_bug_relationship_table WHERE relationship_type = '" . BUG_DUPLICATE . "' and source_bug_id = '$t_duplicate_bug_id' and destination_bug_id = '$t_bug_id';"; $result2 = db_query( $query ); $t_count2 = db_num_rows( $result2 ); if( $t_count2 != 1 ) { continue; } $t_relationship = db_fetch_array( $result2 ); $t_relationship_id = $t_relationship['id']; $query = "UPDATE $t_bug_relationship_table SET source_bug_id = '$t_bug_id', destination_bug_id = '$t_duplicate_bug_id' WHERE id='$t_relationship_id'"; db_query( $query ); } return true; } if ( config_get_global( 'differentiate_duplicates' ) ) { $upgrades[] = new SQLUpgrade( 'user-duplicate', 'Add realname duplicate field to user table', "ALTER TABLE $t_user_table ADD duplicate_realname INT( 1 ) DEFAULT '0'" ); $upgrades[] = new FunctionUpgrade( 'user-duplicate-fix', 'set values for duplicate_realname', 'upgrade_0_18_user_duplicate' ); } function upgrade_0_18_user_duplicate() { global $t_user_table; $query = "SELECT realname FROM $t_user_table WHERE realname != '' GROUP BY realname HAVING count(realname) > 1"; $result = db_query( $query ); $t_count = db_num_rows( $result ); for ( $i = 0 ; $i < $t_count ; $i++ ) { $t_row = db_fetch_array( $result ); $t_name = $t_row['realname']; $query = "UPDATE $t_user_table SET duplicate_realname = 'Y' WHERE realname='$t_name'"; db_query( $query ); } return true; } $upgrades[] = new SQLUpgrade( 'cat_user_id_unsigned', 'Change the user_id in mantis_project_category_table to unsigned int.', "ALTER TABLE $t_project_category_table CHANGE user_id user_id INT( 7 ) UNSIGNED DEFAULT '0' NOT NULL" ); $upgrades[] = new SQLUpgrade( 'custom_fields-7', 'Allow custom fields to be hidden/displayed for report/update', "ALTER TABLE $t_custom_field_table ADD display_report BOOL NOT NULL default '1'" ); $upgrades[] = new SQLUpgrade( 'custom_fields-8', 'Allow custom fields to be hidden/displayed for report/update', "ALTER TABLE $t_custom_field_table ADD display_update BOOL NOT NULL default '1'" ); $upgrades[] = new SQLUpgrade( 'custom_fields-9', 'Rename Column', "ALTER TABLE $t_custom_field_table ADD require_resolved BOOL NOT NULL default '0'" ); $upgrades[] = new SQLUpgrade( 'custom_fields-10', 'Rename Column', "UPDATE $t_custom_field_table SET require_resolved = require_resolve" ); $upgrades[] = new SQLUpgrade( 'custom_fields-11', 'Rename Column', "ALTER TABLE $t_custom_field_table DROP require_resolve" ); $upgrades[] = new SQLUpgrade( 'custom_fields-12', 'Rename Column', "ALTER TABLE $t_custom_field_table ADD display_resolved BOOL NOT NULL default '0'" ); $upgrades[] = new SQLUpgrade( 'custom_fields-13', 'Rename Column', "UPDATE $t_custom_field_table SET display_resolved = display_resolve" ); $upgrades[] = new SQLUpgrade( 'custom_fields-14', 'Rename Column', "ALTER TABLE $t_custom_field_table DROP display_resolve" ); $upgrades[] = new SQLUpgrade( 'custom_fields-15', 'Rename Column', "ALTER TABLE $t_custom_field_table ADD display_closed BOOL NOT NULL default '0'" ); $upgrades[] = new SQLUpgrade( 'custom_fields-16', 'Rename Column', "UPDATE $t_custom_field_table SET display_closed = display_close" ); $upgrades[] = new SQLUpgrade( 'custom_fields-17', 'Rename Column', "ALTER TABLE $t_custom_field_table DROP display_close" ); $upgrades[] = new SQLUpgrade( 'custom_fields-18', 'Rename Column', "ALTER TABLE $t_custom_field_table ADD require_closed BOOL NOT NULL default '0'" ); $upgrades[] = new SQLUpgrade( 'custom_fields-19', 'Rename Column', "UPDATE $t_custom_field_table SET require_closed = require_close" ); $upgrades[] = new SQLUpgrade( 'custom_fields-20', 'Rename Column', "ALTER TABLE $t_custom_field_table DROP require_close" ); $upgrades[] = new FunctionUpgrade( 'lost-password', 'Add the necessary columns for managing lost passwords', 'lostpassword_fix_1' ); function lostpassword_fix_1() { global $t_user_table; if ( !db_field_exists( 'failed_login_count', $t_user_table ) ) { $query = "ALTER TABLE $t_user_table ADD failed_login_count INT(2) DEFAULT '0' NOT NULL AFTER login_count"; $result = @db_query( $query ); if ( false == $result ) { return false; } } if ( !db_field_exists( 'lost_password_in_progress_count', $t_user_table ) ) { $query = "ALTER TABLE $t_user_table ADD lost_password_in_progress_count INT(2) DEFAULT '0' NOT NULL AFTER login_count"; $result = @db_query( $query ); if ( false == $result ) { return false; } } return true; } $upgrades[] = new FunctionUpgrade( 'delete-admin-over', 'Delete any project level access overrides for admin users', 'upgrade_0_18_del_admin_override' ); function upgrade_0_18_del_admin_override() { global $t_user_table, $t_project_user_list_table; $t_admin = ADMINISTRATOR; $query = "select p.user_id FROM $t_project_user_list_table p, $t_user_table u WHERE ( ( p.user_id = u.id ) AND ( u.access_level >= $t_admin ) )"; $result = db_query( $query ); $t_count = db_num_rows( $result ); for ( $i = 0 ; $i < $t_count ; $i++ ) { $t_row = db_fetch_array( $result ); $t_user = $t_row['user_id']; $query = "DELETE FROM $t_project_user_list_table WHERE user_id=$t_user"; db_query( $query ); } return true; } $upgrades[] = new SQLUpgrade( '0.18-bugnote-limit', 'Add email_bugnote_limit to user preference table', "ALTER TABLE $t_user_pref_table ADD email_bugnote_limit INT( 2 ) NOT NULL AFTER email_on_new_minimum_severity" ); $upgrades[] = new SQLUpgrade( '0.18-bugnote-order', 'Add bugnote_order to user preference table', "ALTER TABLE $t_user_pref_table ADD bugnote_order VARCHAR( 4 ) NOT NULL DEFAULT '" . config_get_global( 'default_bugnote_order' ) . "' AFTER redirect_delay" ); $upgrades[] = new FunctionUpgrade( 'cb_ml_upgrade', 'Upgrade custom field types (checkbox, list, multilist) to support advanced filtering', 'upgrade_0_19_checkbox_list_multilist_upgrade' ); function upgrade_0_19_checkbox_list_multilist_upgrade() { global $t_custom_field_string_table, $t_custom_field_table; $t_checkbox = CUSTOM_FIELD_TYPE_CHECKBOX; $t_multilist = CUSTOM_FIELD_TYPE_MULTILIST; $query = "SELECT f.field_id, f.bug_id, f.value FROM $t_custom_field_string_table f LEFT JOIN $t_custom_field_table s ON f.field_id = s.id WHERE (s.type = $t_checkbox) OR (s.type = $t_multilist)"; $result = db_query( $query ); $t_count = db_num_rows( $result ); for ( $i = 0; $i < $t_count; $i++ ) { $t_row = db_fetch_array( $result ); $t_value = $t_row['value']; if ( '' != $t_value ) { $t_field_id = $t_row['field_id']; $t_bug_id = $t_row['bug_id']; $query = "UPDATE $t_custom_field_string_table SET value = '|$t_value|' WHERE (field_id = $t_field_id) AND (bug_id = $t_bug_id)"; db_query( $query ); } } return true; } return $upgrades;?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -