| [ Index ] |
|
Code source de Mantis 1.1.0rc3 |
1 <?php 2 # Mantis - a php based bugtracking system 3 4 # Copyright (C) 2000 - 2002 Kenzaburo Ito - kenito@300baud.org 5 # Copyright (C) 2002 - 2007 Mantis Team - mantisbt-dev@lists.sourceforge.net 6 7 # Mantis is free software: you can redistribute it and/or modify 8 # it under the terms of the GNU General Public License as published by 9 # the Free Software Foundation, either version 2 of the License, or 10 # (at your option) any later version. 11 # 12 # Mantis is distributed in the hope that it will be useful, 13 # but WITHOUT ANY WARRANTY; without even the implied warranty of 14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 # GNU General Public License for more details. 16 # 17 # You should have received a copy of the GNU General Public License 18 # along with Mantis. If not, see <http://www.gnu.org/licenses/>. 19 20 # Changes applied to 0.18 database 21 22 # -------------------------------------------------------- 23 # $Id: 0_18_inc.php,v 1.30.16.1 2007-10-13 22:35:09 giallu Exp $ 24 # -------------------------------------------------------- 25 ?> 26 <?php 27 require( dirname( dirname( __FILE__ ) ) . DIRECTORY_SEPARATOR . 'db_table_names_inc.php' ); 28 29 $upgrades = array(); 30 31 $upgrades[] = new FunctionUpgrade( 32 '0.18-vb-1', 33 'Add index on bug_id field in mantis_bug_file_table.', 34 'upgrade_0_18_vb_1' ); 35 36 $upgrades[] = new SQLUpgrade( 37 'filtersdb-1', 38 'Add mantis_filters_table', 39 "CREATE TABLE $t_filters_table ( 40 id int(7) unsigned NOT NULL auto_increment, 41 user_id int(7) NOT NULL, 42 project_id int(7) NOT NULL, 43 is_public BOOL, 44 name char(64) NOT NULL, 45 filter_string text NOT NULL, 46 PRIMARY KEY (id))" 47 ); 48 49 function upgrade_0_18_vb_1() { 50 global $t_bug_file_table; 51 52 if ( !db_key_exists_on_field( $t_bug_file_table, 'bug_id', 'MUL' ) ) { 53 $query = "ALTER TABLE $t_bug_file_table ADD INDEX bug_id ( bug_id )"; 54 $result = @db_query( $query ); 55 56 if ( false == $result ) { 57 return false; 58 } 59 } 60 61 return true; 62 } 63 64 $upgrades[] = new FunctionUpgrade( 65 'emailsevs-1', 66 'Add the necessary columns for email severity filtering', 67 'emailseverities_fix_1' ); 68 69 function emailseverities_fix_1() { 70 global $t_user_pref_table; 71 72 if ( !db_field_exists( 'email_on_priority_minimum_severity', $t_user_pref_table ) ) { 73 $query = "ALTER TABLE $t_user_pref_table ADD email_on_priority_minimum_severity INT(2) DEFAULT '10' NOT NULL 74 AFTER email_on_priority"; 75 76 $result = @db_query( $query ); 77 78 if ( false == $result ) { 79 return false; 80 } 81 } 82 83 if ( !db_field_exists( 'email_on_status_minimum_severity', $t_user_pref_table ) ) { 84 $query = "ALTER TABLE $t_user_pref_table ADD email_on_status_minimum_severity INT(2) DEFAULT '10' NOT NULL 85 AFTER email_on_priority_minimum_severity"; 86 87 $result = @db_query( $query ); 88 89 if ( false == $result ) { 90 return false; 91 } 92 } 93 94 if ( !db_field_exists( 'email_on_bugnote_minimum_severity', $t_user_pref_table ) ) { 95 $query = "ALTER TABLE $t_user_pref_table ADD email_on_bugnote_minimum_severity INT(2) DEFAULT '10' NOT NULL 96 AFTER email_on_status_minimum_severity"; 97 98 $result = @db_query( $query ); 99 100 if ( false == $result ) { 101 return false; 102 } 103 } 104 105 if ( !db_field_exists( 'email_on_reopened_minimum_severity', $t_user_pref_table ) ) { 106 $query = "ALTER TABLE $t_user_pref_table ADD email_on_reopened_minimum_severity INT(2) DEFAULT '10' NOT NULL 107 AFTER email_on_bugnote_minimum_severity"; 108 109 $result = @db_query( $query ); 110 111 if ( false == $result ) { 112 return false; 113 } 114 } 115 116 if ( !db_field_exists( 'email_on_closed_minimum_severity', $t_user_pref_table ) ) { 117 $query = "ALTER TABLE $t_user_pref_table ADD email_on_closed_minimum_severity INT(2) DEFAULT '10' NOT NULL 118 AFTER email_on_reopened_minimum_severity"; 119 120 $result = @db_query( $query ); 121 122 if ( false == $result ) { 123 return false; 124 } 125 } 126 127 if ( !db_field_exists( 'email_on_resolved_minimum_severity', $t_user_pref_table ) ) { 128 $query = "ALTER TABLE $t_user_pref_table ADD email_on_resolved_minimum_severity INT(2) DEFAULT '10' NOT NULL 129 AFTER email_on_closed_minimum_severity"; 130 131 $result = @db_query( $query ); 132 133 if ( false == $result ) { 134 return false; 135 } 136 } 137 138 if ( !db_field_exists( 'email_on_feedback_minimum_severity', $t_user_pref_table ) ) { 139 $query = "ALTER TABLE $t_user_pref_table ADD email_on_feedback_minimum_severity INT(2) DEFAULT '10' NOT NULL 140 AFTER email_on_resolved_minimum_severity"; 141 142 $result = @db_query( $query ); 143 144 if ( false == $result ) { 145 return false; 146 } 147 } 148 149 if ( !db_field_exists( 'email_on_assigned_minimum_severity', $t_user_pref_table ) ) { 150 $query = "ALTER TABLE $t_user_pref_table ADD email_on_assigned_minimum_severity INT(2) DEFAULT '10' NOT NULL 151 AFTER email_on_feedback_minimum_severity"; 152 153 $result = @db_query( $query ); 154 155 if ( false == $result ) { 156 return false; 157 } 158 } 159 160 if ( !db_field_exists( 'email_on_new_minimum_severity', $t_user_pref_table ) ) { 161 $query = "ALTER TABLE $t_user_pref_table ADD email_on_new_minimum_severity INT(2) DEFAULT '10' NOT NULL 162 AFTER email_on_assigned_minimum_severity"; 163 164 $result = @db_query( $query ); 165 166 if ( false == $result ) { 167 return false; 168 } 169 } 170 171 return true; 172 } 173 174 175 $upgrades[] = new SQLUpgrade( 176 'sponsorship-1', 177 'Add sponsorships table', 178 "CREATE TABLE IF NOT EXISTS mantis_sponsorship_table ( 179 id int(7) NOT NULL auto_increment, 180 bug_id int(7) NOT NULL default '0', 181 user_id int(7) NOT NULL default '0', 182 amount int(7) NOT NULL default '0', 183 logo varchar(128) NOT NULL default '', 184 url varchar(128) NOT NULL default '', 185 paid int(1) NOT NULL default '0', 186 date_submitted datetime NOT NULL default '1970-01-01 00:00:01', 187 last_updated datetime NOT NULL default '1970-01-01 00:00:01', 188 PRIMARY KEY (id), 189 KEY bug_id (bug_id), 190 KEY user_id (user_id) 191 ) TYPE=MyISAM COMMENT='A table for sponsorships' AUTO_INCREMENT=1" ); 192 193 $upgrades[] = new SQLUpgrade( 194 'sponsorship-2', 195 'Add sponsorship_total to bug table', 196 "ALTER TABLE $t_bug_table ADD sponsorship_total INT( 7 ) DEFAULT '0' NOT NULL" ); 197 198 $upgrades[] = new SQLUpgrade( 199 'sponsorship-3', 200 'Add an index on sponsorship_total in bug table', 201 "ALTER TABLE $t_bug_table ADD INDEX sponsorship_total ( sponsorship_total )" ); 202 203 $upgrades[] = new SQLUpgrade( 204 'fixed_in_version-1', 205 'Add fixed_in_version field to bug table.', 206 "ALTER TABLE $t_bug_table ADD fixed_in_version VARCHAR( 64 ) NOT NULL AFTER version" ); 207 208 $upgrades[] = new SQLUpgrade( 209 'fixed_in_version-2', 210 'Add index on fixed_in_version field in bug table.', 211 "ALTER TABLE $t_bug_table ADD INDEX ( fixed_in_version )" ); 212 213 $upgrades[] = new SQLUpgrade( 214 'user_realname', 215 'Add real name to user information.', 216 "ALTER TABLE $t_user_table ADD realname VARCHAR( 64 ) NOT NULL AFTER username" ); 217 218 $upgrades[] = new SQLUpgrade( 219 'custom_fields-1', 220 'Allow custom fields to be set/required for resolve/close/report/update', 221 "ALTER TABLE $t_custom_field_table ADD display_resolve BOOL NOT NULL default '0'" ); 222 223 $upgrades[] = new SQLUpgrade( 224 'custom_fields-2', 225 'Allow custom fields to be set/required for resolve/close/report/update', 226 "ALTER TABLE $t_custom_field_table ADD display_close BOOL NOT NULL default '0'" ); 227 228 $upgrades[] = new SQLUpgrade( 229 'custom_fields-3', 230 'Allow custom fields to be set/required for resolve/close/report/update', 231 "ALTER TABLE $t_custom_field_table ADD require_report BOOL NOT NULL default '0'" ); 232 233 $upgrades[] = new SQLUpgrade( 234 'custom_fields-4', 235 'Allow custom fields to be set/required for resolve/close/report/update', 236 "ALTER TABLE $t_custom_field_table ADD require_update BOOL NOT NULL default '0'" ); 237 238 $upgrades[] = new SQLUpgrade( 239 'custom_fields-5', 240 'Allow custom fields to be set/required for resolve/close/report/update', 241 "ALTER TABLE $t_custom_field_table ADD require_resolve BOOL NOT NULL default '0'" ); 242 243 $upgrades[] = new SQLUpgrade( 244 'custom_fields-6', 245 'Allow custom fields to be set/required for resolve/close/report/update', 246 "ALTER TABLE $t_custom_field_table ADD require_close BOOL NOT NULL default '0'" ); 247 248 $upgrades[] = new SQLUpgrade( 249 'version_remove_pk', 250 'Remove project_id+version primary key', 251 "ALTER TABLE $t_project_version_table DROP PRIMARY KEY" ); 252 253 $upgrades[] = new SQLUpgrade( 254 'version_add_version_', 255 'Add id to version table and use it as primary key', 256 "ALTER TABLE $t_project_version_table ADD id INT( 7 ) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST" ); 257 258 $upgrades[] = new SQLUpgrade( 259 'version_add_project_', 260 'Add a unique index for project_id + version combination.', 261 "ALTER TABLE $t_project_version_table ADD UNIQUE project_version ( project_id , version )" ); 262 263 $upgrades[] = new SQLUpgrade( 264 'version_add_descript', 265 'Add description field to versions.', 266 "ALTER TABLE $t_project_version_table ADD description TEXT NOT NULL" ); 267 268 $upgrades[] = new SQLUpgrade( 269 'version_add_released', 270 'Add released flag to determine whether the version was released or still a future release.', 271 "ALTER TABLE $t_project_version_table ADD released TINYINT( 1 ) DEFAULT '1' NOT NULL" ); 272 273 # ====================================================================== 274 # Author: Marcello Scata' <marcelloscata at users.sourceforge.net> ITALY 275 # ====================================================================== 276 # UPGRADE THE DATABASE TO IMPLEMENT THE RELATIONSHIPS 277 # -------------------------------------------------------- 278 # The script executes the following steps: 279 # - Add index on source_bug_id field in mantis_bug_relationship_table 280 # - Add index on destination_bug_id field in mantis_bug_relationship_table 281 # - For each bug with the duplicate_id field filled out: 282 # Check if there is already a relationship set between bug and duplicate bug 283 # if yes then do nothing and continue with the next bug 284 # if no then 285 # add the relationship between bug and duplicate bug 286 # search in history of bug the line in which is recorded the duplicate id information 287 # and replace it with the appropriate history record for relationship (same user id, same time-stamp) 288 # add an history record in the duplicate bug with same user id, same time-stamp with bug 289 # - THE CONTENT OF THE DUPLICATE_ID FIELD IS NOT MODIFIED 290 # -------------------------------------------------------- 291 292 $upgrades[] = new FunctionUpgrade( 293 'relationship-1', 294 'Add index on source_bug_id field in mantis_bug_relationship_table', 295 'upgrade_0_18_relationship_1' ); 296 297 function upgrade_0_18_relationship_1() { 298 global $t_bug_relationship_table; 299 300 if ( !db_key_exists_on_field( $t_bug_relationship_table, 'source_bug_id', 'MUL' ) ) { 301 $query = "ALTER TABLE $t_bug_relationship_table ADD INDEX ( source_bug_id )"; 302 $result = @db_query( $query ); 303 304 if ( false == $result ) { 305 return false; 306 } 307 } 308 309 return true; 310 } 311 312 $upgrades[] = new FunctionUpgrade( 313 'relationship-2', 314 'Add index on destination_bug_id field in mantis_bug_relationship_table', 315 'upgrade_0_18_relationship_2' ); 316 317 function upgrade_0_18_relationship_2() { 318 global $t_bug_relationship_table; 319 320 if ( !db_key_exists_on_field( $t_bug_relationship_table, 'destination_bug_id', 'MUL' ) ) { 321 $query = "ALTER TABLE $t_bug_relationship_table ADD INDEX ( destination_bug_id )"; 322 $result = @db_query( $query ); 323 324 if ( false == $result ) { 325 return false; 326 } 327 } 328 329 return true; 330 } 331 332 $upgrades[] = new FunctionUpgrade( 333 'relationship-3', 334 'Translate duplicate id information in a new duplicate relationship', 335 'upgrade_0_18_relationship_3' ); 336 337 function upgrade_0_18_relationship_3() { 338 global $t_bug_relationship_table, $t_bug_table, $t_bug_history_table; 339 340 $query = "SELECT id, duplicate_id 341 FROM $t_bug_table 342 WHERE duplicate_id != '';"; 343 $result = db_query( $query ); 344 $t_count = db_num_rows( $result ); 345 346 for ( $i = 0 ; $i < $t_count ; $i++ ) { 347 $t_bug = db_fetch_array( $result ); 348 $t_bug_id = $t_bug['id']; 349 $t_duplicate_bug_id = $t_bug['duplicate_id']; 350 351 $query = "SELECT id 352 FROM $t_bug_relationship_table 353 WHERE 354 (source_bug_id = '$t_bug_id' and 355 destination_bug_id = '$t_duplicate_bug_id') or 356 (destination_bug_id = '$t_bug_id' and 357 source_bug_id = '$t_duplicate_bug_id');"; 358 $result2 = db_query( $query ); 359 $t_count2 = db_num_rows( $result2 ); 360 361 if( $t_count2 > 0 ) { 362 continue; 363 } 364 365 $query = "INSERT INTO $t_bug_relationship_table 366 ( source_bug_id, destination_bug_id, relationship_type ) 367 VALUES 368 ( '" . $t_bug_id . "', '" . $t_duplicate_bug_id . "', '" . BUG_DUPLICATE . "')"; 369 db_query( $query ); 370 371 $query = "SELECT id, user_id, date_modified 372 FROM $t_bug_history_table 373 WHERE 374 bug_id = '$t_bug_id' and 375 field_name = 'duplicate_id' and 376 new_value = '$t_duplicate_bug_id';"; 377 $result2 = db_query( $query ); 378 $t_count2 = db_num_rows( $result2 ); 379 380 if ( $t_count2 < 1) { 381 continue; 382 } 383 384 $t_history_bug = db_fetch_array( $result2 ); 385 $t_history_id = $t_history_bug['id']; 386 $t_history_user_id = $t_history_bug['user_id']; 387 $t_duplicate_bug_last_update = $t_history_bug['date_modified']; 388 389 $query = "UPDATE $t_bug_history_table 390 SET field_name = '', 391 old_value = '" . BUG_DUPLICATE . "', 392 type = '" . BUG_ADD_RELATIONSHIP . "' 393 WHERE id='$t_history_id'"; 394 db_query( $query ); 395 396 $query = "INSERT INTO $t_bug_history_table 397 ( user_id, bug_id, date_modified, type, old_value, new_value ) 398 VALUES 399 ( '$t_history_user_id', '$t_duplicate_bug_id', '" . $t_duplicate_bug_last_update . "', " . 400 BUG_ADD_RELATIONSHIP . ", " . BUG_HAS_DUPLICATE . ", '$t_bug_id' )"; 401 db_query( $query ); 402 } 403 404 return true; 405 } 406 407 $upgrades[] = new FunctionUpgrade( 408 'relationship-4', 409 'Fix swapped value in duplicate relationship', 410 'upgrade_0_18_relationship_4' ); 411 412 function upgrade_0_18_relationship_4() { 413 global $t_bug_relationship_table, $t_bug_table; 414 415 $query = "SELECT id, duplicate_id 416 FROM $t_bug_table 417 WHERE duplicate_id != '';"; 418 $result = db_query( $query ); 419 $t_count = db_num_rows( $result ); 420 421 for ( $i = 0 ; $i < $t_count ; $i++ ) { 422 $t_bug = db_fetch_array( $result ); 423 $t_bug_id = $t_bug['id']; 424 $t_duplicate_bug_id = $t_bug['duplicate_id']; 425 426 $query = "SELECT id 427 FROM $t_bug_relationship_table 428 WHERE 429 relationship_type = '" . BUG_DUPLICATE . "' and 430 source_bug_id = '$t_duplicate_bug_id' and 431 destination_bug_id = '$t_bug_id';"; 432 $result2 = db_query( $query ); 433 $t_count2 = db_num_rows( $result2 ); 434 435 if( $t_count2 != 1 ) { 436 continue; 437 } 438 439 $t_relationship = db_fetch_array( $result2 ); 440 $t_relationship_id = $t_relationship['id']; 441 442 $query = "UPDATE $t_bug_relationship_table 443 SET source_bug_id = '$t_bug_id', 444 destination_bug_id = '$t_duplicate_bug_id' 445 WHERE id='$t_relationship_id'"; 446 db_query( $query ); 447 } 448 449 return true; 450 } 451 452 if ( config_get_global( 'differentiate_duplicates' ) ) { 453 $upgrades[] = new SQLUpgrade( 454 'user-duplicate', 455 'Add realname duplicate field to user table', 456 "ALTER TABLE $t_user_table ADD duplicate_realname INT( 1 ) DEFAULT '0'" ); 457 458 $upgrades[] = new FunctionUpgrade( 459 'user-duplicate-fix', 460 'set values for duplicate_realname', 461 'upgrade_0_18_user_duplicate' ); 462 } 463 464 function upgrade_0_18_user_duplicate() { 465 global $t_user_table; 466 467 $query = "SELECT realname FROM $t_user_table 468 WHERE realname != '' 469 GROUP BY realname 470 HAVING count(realname) > 1"; 471 $result = db_query( $query ); 472 $t_count = db_num_rows( $result ); 473 for ( $i = 0 ; $i < $t_count ; $i++ ) { 474 $t_row = db_fetch_array( $result ); 475 $t_name = $t_row['realname']; 476 $query = "UPDATE $t_user_table 477 SET duplicate_realname = 'Y' 478 WHERE realname='$t_name'"; 479 db_query( $query ); 480 } 481 482 return true; 483 } 484 485 486 $upgrades[] = new SQLUpgrade( 487 'cat_user_id_unsigned', 488 'Change the user_id in mantis_project_category_table to unsigned int.', 489 "ALTER TABLE $t_project_category_table CHANGE user_id user_id INT( 7 ) UNSIGNED DEFAULT '0' NOT NULL" ); 490 491 $upgrades[] = new SQLUpgrade( 492 'custom_fields-7', 493 'Allow custom fields to be hidden/displayed for report/update', 494 "ALTER TABLE $t_custom_field_table ADD display_report BOOL NOT NULL default '1'" ); 495 496 $upgrades[] = new SQLUpgrade( 497 'custom_fields-8', 498 'Allow custom fields to be hidden/displayed for report/update', 499 "ALTER TABLE $t_custom_field_table ADD display_update BOOL NOT NULL default '1'" ); 500 501 $upgrades[] = new SQLUpgrade( 502 'custom_fields-9', 503 'Rename Column', 504 "ALTER TABLE $t_custom_field_table ADD require_resolved BOOL NOT NULL default '0'" ); 505 506 $upgrades[] = new SQLUpgrade( 507 'custom_fields-10', 508 'Rename Column', 509 "UPDATE $t_custom_field_table SET require_resolved = require_resolve" ); 510 511 $upgrades[] = new SQLUpgrade( 512 'custom_fields-11', 513 'Rename Column', 514 "ALTER TABLE $t_custom_field_table DROP require_resolve" ); 515 516 $upgrades[] = new SQLUpgrade( 517 'custom_fields-12', 518 'Rename Column', 519 "ALTER TABLE $t_custom_field_table ADD display_resolved BOOL NOT NULL default '0'" ); 520 521 $upgrades[] = new SQLUpgrade( 522 'custom_fields-13', 523 'Rename Column', 524 "UPDATE $t_custom_field_table SET display_resolved = display_resolve" ); 525 526 $upgrades[] = new SQLUpgrade( 527 'custom_fields-14', 528 'Rename Column', 529 "ALTER TABLE $t_custom_field_table DROP display_resolve" ); 530 531 $upgrades[] = new SQLUpgrade( 532 'custom_fields-15', 533 'Rename Column', 534 "ALTER TABLE $t_custom_field_table ADD display_closed BOOL NOT NULL default '0'" ); 535 536 $upgrades[] = new SQLUpgrade( 537 'custom_fields-16', 538 'Rename Column', 539 "UPDATE $t_custom_field_table SET display_closed = display_close" ); 540 541 $upgrades[] = new SQLUpgrade( 542 'custom_fields-17', 543 'Rename Column', 544 "ALTER TABLE $t_custom_field_table DROP display_close" ); 545 546 $upgrades[] = new SQLUpgrade( 547 'custom_fields-18', 548 'Rename Column', 549 "ALTER TABLE $t_custom_field_table ADD require_closed BOOL NOT NULL default '0'" ); 550 551 $upgrades[] = new SQLUpgrade( 552 'custom_fields-19', 553 'Rename Column', 554 "UPDATE $t_custom_field_table SET require_closed = require_close" ); 555 556 $upgrades[] = new SQLUpgrade( 557 'custom_fields-20', 558 'Rename Column', 559 "ALTER TABLE $t_custom_field_table DROP require_close" ); 560 561 $upgrades[] = new FunctionUpgrade( 562 'lost-password', 563 'Add the necessary columns for managing lost passwords', 564 'lostpassword_fix_1' ); 565 566 function lostpassword_fix_1() { 567 global $t_user_table; 568 569 if ( !db_field_exists( 'failed_login_count', $t_user_table ) ) { 570 $query = "ALTER TABLE $t_user_table ADD failed_login_count INT(2) DEFAULT '0' NOT NULL 571 AFTER login_count"; 572 573 $result = @db_query( $query ); 574 575 if ( false == $result ) { 576 return false; 577 } 578 } 579 580 if ( !db_field_exists( 'lost_password_in_progress_count', $t_user_table ) ) { 581 $query = "ALTER TABLE $t_user_table ADD lost_password_in_progress_count INT(2) DEFAULT '0' NOT NULL 582 AFTER login_count"; 583 584 $result = @db_query( $query ); 585 586 if ( false == $result ) { 587 return false; 588 } 589 } 590 591 return true; 592 } 593 594 $upgrades[] = new FunctionUpgrade( 595 'delete-admin-over', 596 'Delete any project level access overrides for admin users', 597 'upgrade_0_18_del_admin_override' ); 598 599 function upgrade_0_18_del_admin_override() { 600 global $t_user_table, $t_project_user_list_table; 601 602 $t_admin = ADMINISTRATOR; 603 $query = "select p.user_id 604 FROM $t_project_user_list_table p, $t_user_table u 605 WHERE ( ( p.user_id = u.id ) AND ( u.access_level >= $t_admin ) )"; 606 $result = db_query( $query ); 607 $t_count = db_num_rows( $result ); 608 for ( $i = 0 ; $i < $t_count ; $i++ ) { 609 $t_row = db_fetch_array( $result ); 610 $t_user = $t_row['user_id']; 611 $query = "DELETE FROM $t_project_user_list_table 612 WHERE user_id=$t_user"; 613 db_query( $query ); 614 } 615 616 return true; 617 } 618 619 $upgrades[] = new SQLUpgrade( 620 '0.18-bugnote-limit', 621 'Add email_bugnote_limit to user preference table', 622 "ALTER TABLE $t_user_pref_table ADD email_bugnote_limit INT( 2 ) NOT NULL AFTER email_on_new_minimum_severity" ); 623 624 $upgrades[] = new SQLUpgrade( 625 '0.18-bugnote-order', 626 'Add bugnote_order to user preference table', 627 "ALTER TABLE $t_user_pref_table ADD bugnote_order VARCHAR( 4 ) NOT NULL DEFAULT '" . config_get_global( 'default_bugnote_order' ) . "' AFTER redirect_delay" ); 628 629 $upgrades[] = new FunctionUpgrade( 630 'cb_ml_upgrade', 631 'Upgrade custom field types (checkbox, list, multilist) to support advanced filtering', 632 'upgrade_0_19_checkbox_list_multilist_upgrade' ); 633 634 function upgrade_0_19_checkbox_list_multilist_upgrade() { 635 global $t_custom_field_string_table, $t_custom_field_table; 636 $t_checkbox = CUSTOM_FIELD_TYPE_CHECKBOX; 637 $t_multilist = CUSTOM_FIELD_TYPE_MULTILIST; 638 $query = "SELECT f.field_id, f.bug_id, f.value FROM $t_custom_field_string_table f 639 LEFT JOIN $t_custom_field_table s ON f.field_id = s.id 640 WHERE (s.type = $t_checkbox) OR (s.type = $t_multilist)"; 641 $result = db_query( $query ); 642 $t_count = db_num_rows( $result ); 643 for ( $i = 0; $i < $t_count; $i++ ) { 644 $t_row = db_fetch_array( $result ); 645 $t_value = $t_row['value']; 646 if ( '' != $t_value ) { 647 $t_field_id = $t_row['field_id']; 648 $t_bug_id = $t_row['bug_id']; 649 $query = "UPDATE $t_custom_field_string_table 650 SET value = '|$t_value|' 651 WHERE (field_id = $t_field_id) AND (bug_id = $t_bug_id)"; 652 db_query( $query ); 653 } 654 } 655 656 return true; 657 } 658 659 return $upgrades; 660 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
| Généré le : Thu Nov 29 09:42:17 2007 | par Balluche grâce à PHPXref 0.7 |
|