Changeset 8301
- Timestamp:
- 04/21/2014 04:08:32 PM (10 years ago)
- Location:
- branches/2.0
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.0/bp-core/admin/bp-core-functions.php
r8272 r8301 277 277 'name' => __( 'Register', 'buddypress' ) 278 278 ); 279 280 bp_core_maybe_install_signups();281 279 } 282 280 … … 795 793 796 794 /** 797 * Check if the signups table needs to be created.798 *799 * @since BuddyPress (2.0.0)800 *801 * @global $wpdb802 */803 function bp_core_maybe_install_signups() {804 global $wpdb;805 806 // Multisite installations already have the signups table.807 if ( ! empty( $wpdb->signups ) ) {808 return;809 }810 811 $bp_signups = bp_core_get_table_prefix() . 'signups';812 813 // Check for the table814 $suppress = $wpdb->suppress_errors();815 $table_exists = $wpdb->get_results( "DESCRIBE {$bp_signups};" );816 $wpdb->suppress_errors( $suppress );817 818 // Bail if the table exists819 if ( ! empty( $table_exists ) ) {820 return;821 }822 823 // Signups is not there and we need it so let's create it824 require_once( buddypress()->plugin_dir . '/bp-core/admin/bp-core-schema.php' );825 826 bp_core_install_signups();827 }828 829 /**830 795 * Add "Mark as Spam/Ham" button to user row actions. 831 796 * -
branches/2.0/bp-core/admin/bp-core-schema.php
r8196 r8301 349 349 } 350 350 351 /** Signups *******************************************************************/ 352 351 353 /** 352 354 * Install the signups table. … … 360 362 global $wpdb; 361 363 362 // Multisite installations already have the signups table 363 if ( ! empty( $wpdb->signups ) ) { 364 return; 365 } 366 367 $wpdb->signups = bp_core_get_table_prefix() . 'signups'; 368 369 // Setting the charset to be sure WordPress upgrade.php is loaded 370 $charset_collate = bp_core_set_charset(); 364 // Signups is not there and we need it so let's create it 365 require_once( buddypress()->plugin_dir . '/bp-core/admin/bp-core-schema.php' ); 366 require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); 367 368 // Never use bp_core_get_table_prefix() for any global users tables 369 $wpdb->signups = $wpdb->base_prefix . 'signups'; 371 370 372 371 // Use WP's core CREATE TABLE query 373 372 $create_queries = wp_get_db_schema( 'ms_global' ); 374 375 373 if ( ! is_array( $create_queries ) ) { 376 374 $create_queries = explode( ';', $create_queries ); … … 381 379 foreach ( $create_queries as $key => $query ) { 382 380 if ( preg_match( "|CREATE TABLE ([^ ]*)|", $query, $matches ) ) { 383 if ( $wpdb->signups != trim( $matches[1], '`' )) {381 if ( trim( $matches[1], '`' ) !== $wpdb->signups ) { 384 382 unset( $create_queries[ $key ] ); 385 383 } … … 387 385 } 388 386 387 // Run WordPress's database upgrader 389 388 if ( ! empty( $create_queries ) ) { 390 389 dbDelta( $create_queries ); 391 390 } 392 391 } 392 393 /** 394 * Update the signups table, adding `signup_id` column and drop `domain` index. 395 * 396 * This is necessary because WordPress's `pre_schema_upgrade()` function wraps 397 * table ALTER's in multisite checks, and other plugins may have installed their 398 * own sign-ups table; Eg: Gravity Forms User Registration Add On 399 * 400 * @since BuddyPress (2.0.1) 401 * 402 * @see pre_schema_upgrade() 403 * @link https://core.trac.wordpress.org/ticket/27855 WordPress Trac Ticket 404 * @link https://buddypress.trac.wordpress.org/ticket/5563 BuddyPress Trac Ticket 405 * 406 * @global WPDB $wpdb 407 */ 408 function bp_core_upgrade_signups() { 409 global $wpdb; 410 411 // Never use bp_core_get_table_prefix() for any global users tables 412 $wpdb->signups = $wpdb->base_prefix . 'signups'; 413 414 // Attempt to alter the signups table 415 $wpdb->query( "ALTER TABLE {$wpdb->signups} ADD signup_id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST" ); 416 $wpdb->query( "ALTER TABLE {$wpdb->signups} DROP INDEX domain" ); 417 } -
branches/2.0/bp-core/bp-core-update.php
r8196 r8301 236 236 bp_update_to_2_0(); 237 237 } 238 239 // 2.0.1 240 if ( $raw_db_version < 8300 ) { 241 bp_update_to_2_0_1(); 242 } 238 243 } 239 244 … … 243 248 bp_version_bump(); 244 249 } 250 251 /** Upgrade Routines **********************************************************/ 245 252 246 253 /** … … 339 346 * - Migrate last_activity data from usermeta to activity table 340 347 * - Add values for all BuddyPress options to the options table 348 * 349 * @since BuddyPress (2.0.0) 341 350 */ 342 351 function bp_update_to_2_0() { … … 355 364 if ( ! is_multisite() ) { 356 365 357 if ( empty( $wpdb->signups ) ) { 358 bp_core_install_signups(); 359 } 366 // Maybe install the signups table 367 bp_core_maybe_install_signups(); 360 368 361 369 $signups = get_users( array( … … 401 409 402 410 /** 411 * 412 * @since BuddyPress (2.0.1) 413 * 414 * @return void 415 */ 416 function bp_update_to_2_0_1() { 417 bp_core_maybe_upgrade_signups(); 418 } 419 420 /** 403 421 * Redirect user to BP's What's New page on first page load after activation. 404 422 * … … 423 441 // Add the transient to redirect 424 442 set_transient( '_bp_activation_redirect', true, 30 ); 443 } 444 445 /** Signups *******************************************************************/ 446 447 /** 448 * Check if the signups table already exists 449 * 450 * @since BuddyPress (2.0.1) 451 * 452 * @global WPDB $wpdb 453 * 454 * @return bool If signups table exists 455 */ 456 function bp_core_signups_table_exists() { 457 global $wpdb; 458 459 // Some installations may already have a signups table (multisite, plugins, etc...) 460 if ( ! empty( $wpdb->signups ) ) { 461 return true; 462 } 463 464 // Check for the table (we suppress errors because users shouldn't see this) 465 $old_suppress = $wpdb->suppress_errors(); 466 467 // Never use bp_core_get_table_prefix() for any global users tables 468 $table_exists = $wpdb->get_results( "DESCRIBE {$wpdb->base_prefix}signups;" ); 469 470 // Restore previous error suppression setting 471 $wpdb->suppress_errors( $old_suppress ); 472 473 // Return whether or not the table exists 474 return (bool) $table_exists; 475 } 476 477 /** 478 * Check if the signups table needs to be created. 479 * 480 * @since BuddyPress (2.0.0) 481 * 482 * @global WPDB $wpdb 483 * 484 * @return bool If signups table exists 485 */ 486 function bp_core_maybe_install_signups() { 487 488 // Bail if we are explicitly not upgrading global tables 489 if ( defined( 'DO_NOT_UPGRADE_GLOBAL_TABLES' ) ) { 490 return false; 491 } 492 493 // Try to install the sign-ups table 494 if ( ! is_multisite() && ! bp_core_signups_table_exists() ) { 495 bp_core_install_signups(); 496 } 497 498 // Return whether or not the table exists now 499 return (bool) bp_core_signups_table_exists(); 500 } 501 502 /** 503 * Check if the signups table needs to be upgraded. 504 * 505 * Update the signups table, adding `signup_id` column and drop `domain` index. 506 * 507 * This is necessary because WordPress's `pre_schema_upgrade()` function wraps 508 * table ALTER's in multisite checks, and other plugins may have installed their 509 * own sign-ups table; Eg: Gravity Forms User Registration Add On 510 * 511 * @since BuddyPress (2.0.1) 512 * 513 * @see pre_schema_upgrade() 514 * @link https://core.trac.wordpress.org/ticket/27855 WordPress Trac Ticket 515 * @link https://buddypress.trac.wordpress.org/ticket/5563 BuddyPress Trac Ticket 516 * 517 * @return bool If signups table exists 518 */ 519 function bp_core_maybe_upgrade_signups() { 520 521 // Bail if we are explicitly not upgrading global tables 522 if ( defined( 'DO_NOT_UPGRADE_GLOBAL_TABLES' ) ) { 523 return false; 524 } 525 526 // Actually upgrade the sign-ups table 527 if ( bp_core_maybe_install_signups() ) { 528 bp_core_upgrade_signups(); 529 } 530 531 // Return whether or not the table exists now 532 return (bool) bp_core_signups_table_exists(); 425 533 } 426 534 -
branches/2.0/bp-loader.php
r8278 r8301 304 304 /** Versions **************************************************/ 305 305 306 $this->version = '2.0 ';307 $this->db_version = 7892;306 $this->version = '2.0.1'; 307 $this->db_version = 8300; 308 308 309 309 /** Loading ***************************************************/
Note: See TracChangeset
for help on using the changeset viewer.