Ticket #3153: 3153.006.diff
| File 3153.006.diff, 14.4 KB (added by , 15 years ago) |
|---|
-
bp-core/bp-core-loader.php
53 53 54 54 /** Components ********************************************************/ 55 55 56 // Set the included and optional components 57 $bp->optional_components = apply_filters( 'bp_optional_components', array( 'activity', 'blogs', 'forums', 'friends', 'groups', 'messages', 'settings', 'xprofile', ));56 // Set the included and optional components. 57 $bp->optional_components = array( 'activity', 'forums', 'friends', 'groups', 'messages', 'settings', 'xprofile', ); 58 58 59 // Blogs component only available for multisite 60 if ( is_multisite() ) 61 $bp->optional_components[] = 'blogs'; 62 63 $bp->optional_components = apply_filters( 'bp_optional_components', $bp->optional_components ); 64 59 65 // Set the required components 60 $bp->required_components = apply_filters( 'bp_required_components', array( 'members',) );66 $bp->required_components = apply_filters( 'bp_required_components', array( 'members' ) ); 61 67 62 68 // Get a list of activated components 63 69 if ( $active_components = get_site_option( 'bp-active-components' ) ) { 64 $bp->active_components = apply_filters( 'bp_active_components', $active_components );70 $bp->active_components = apply_filters( 'bp_active_components', $active_components ); 65 71 $bp->deactivated_components = apply_filters( 'bp_deactivated_components', array_values( array_diff( array_values( array_merge( $bp->optional_components, $bp->required_components ) ), array_keys( $bp->active_components ) ) ) ); 66 72 67 73 // Pre 1.3 Backwards compatibility 68 74 } elseif ( $deactivated_components = get_site_option( 'bp-deactivated-components' ) ) { 69 75 // Trim off namespace and filename 70 foreach ( $deactivated_components as $component => $value )76 foreach ( (array) $deactivated_components as $component => $value ) 71 77 $trimmed[] = str_replace( '.php', '', str_replace( 'bp-', '', $component ) ); 72 78 73 79 // Set globals 74 80 $bp->deactivated_components = apply_filters( 'bp_deactivated_components', $trimmed ); 75 81 76 82 // Setup the active components 77 $active_components = array_flip( array_diff( array_values( array_merge( $bp->optional_components, $bp->required_components ) ), array_values( $bp->deactivated_components ) ) );83 $active_components = array_flip( array_diff( array_values( array_merge( $bp->optional_components, $bp->required_components ) ), array_values( $bp->deactivated_components ) ) ); 78 84 79 85 // Loop through active components and set the values 80 foreach( $active_components as $component => $value ) 81 $bp->active_components[$component] = 1; 86 $bp->active_components = array_map( '__return_true', $active_components ); 82 87 83 88 // Set the active component global 84 $bp->active_components = apply_filters( 'bp_active_components', $bp->active_components ); 89 $bp->active_components = apply_filters( 'bp_active_components', $bp->active_components ); 90 91 // Default to all components active 92 } else { 93 // Set globals 94 $bp->deactivated_components = array(); 95 96 // Setup the active components 97 $active_components = array_flip( array_values( array_merge( $bp->optional_components, $bp->required_components ) ) ); 98 99 // Loop through active components and set the values 100 $bp->active_components = array_map( '__return_true', $active_components ); 101 102 // Set the active component global 103 $bp->active_components = apply_filters( 'bp_active_components', $bp->active_components ); 85 104 } 86 105 87 106 // Loop through optional components … … 215 234 // Initialize the BuddyPress Core 216 235 $bp->core = new BP_Core(); 217 236 218 ?> 237 ?> 238 No newline at end of file -
bp-core/bp-core-functions.php
307 307 return; 308 308 309 309 // Don't show these messages during setup or upgrade 310 if ( isset( $bp->mainten ence_mode ) )310 if ( isset( $bp->maintenance_mode ) ) 311 311 return; 312 312 313 313 /** … … 1107 1107 1108 1108 do_action( 'bp_do_404', $redirect ); 1109 1109 1110 $wp_query->set_404(); 1111 status_header( 404 ); 1110 $wp_query->set_404(); 1111 status_header( 404 ); 1112 1112 nocache_headers(); 1113 1113 1114 1114 if ( 'remove_canonical_direct' == $redirect ) -
bp-core/admin/bp-core-update.php
14 14 } 15 15 16 16 function __construct() { 17 // Look for current DB version 18 if ( !$this->database_version = get_site_option( 'bp-db-version' ) ) { 19 if ( $this->database_version = get_option( 'bp-db-version' ) ) { 20 $this->is_network_activate = true; 21 } else { 22 if ( !$this->current_step() ) { 23 setcookie( 'bp-wizard-step', 0, time() + 60 * 60 * 24, COOKIEPATH ); 24 $_COOKIE['bp-wizard-step'] = 0; 25 } 26 } 17 global $bp; 18 19 // Get current DB version 20 $this->database_version = !empty( $bp->database_version ) ? (int) $bp->database_version : 0; 21 22 if ( !empty( $bp->is_network_activate ) ) { 23 $this->is_network_activate = $bp->is_network_activate; 24 25 } elseif ( !$this->current_step() ) { 26 setcookie( 'bp-wizard-step', 0, time() + 60 * 60 * 24, COOKIEPATH ); 27 $_COOKIE['bp-wizard-step'] = 0; 27 28 } 28 29 29 30 $this->new_version = constant( 'BP_DB_VERSION' ); 30 $this->setup_type = ( empty( $this->database_version ) && !(int)get_site_option( 'bp-core-db-version' ) ) ? 'install' : 'update';31 $this->setup_type = !empty( $bp->maintenance_mode ) ? $bp->maintenance_mode : ''; 31 32 $this->current_step = $this->current_step(); 32 33 34 // Remove the admin menu while we update/install 35 remove_action( bp_core_admin_hook(), 'bp_core_add_admin_menu', 9 ); 36 33 37 // Call the save method that will save data and modify $current_step 34 38 if ( isset( $_POST['save'] ) ) 35 39 $this->save( $_POST['save'] ); … … 71 75 if ( $this->is_network_activate ) 72 76 $steps[] = __( 'Multisite Update', 'buddypress' ); 73 77 74 if ( $this->database_version < $this->new_version )78 if ( $this->database_version < (int) $this->new_version ) 75 79 $steps[] = __( 'Database Update', 'buddypress' ); 76 80 77 if ( $this->database_version < 1 225|| !bp_core_get_page_meta() )81 if ( $this->database_version < 1801 || !bp_core_get_page_meta() ) 78 82 $steps[] = __( 'Pages', 'buddypress' ); 79 83 80 84 $steps[] = __( 'Finish', 'buddypress' ); … … 264 268 $blogs_slug = 'blogs'; 265 269 266 270 // Call up old bp-pages to see if a page has been previously linked to Blogs 267 $page_blog_id = is_multisite() && defined( 'BP_ENABLE_MULTIBLOG' ) && BP_ENABLE_MULTIBLOG ? get_current_blog_id() : BP_ROOT_BLOG;268 $existing_pages_data = get_blog_option( $page_blog_id, 'bp-pages' );269 $existing_pages = $existing_pages_data[$page_blog_id];271 $page_blog_id = is_multisite() && defined( 'BP_ENABLE_MULTIBLOG' ) && BP_ENABLE_MULTIBLOG ? get_current_blog_id() : BP_ROOT_BLOG; 272 $existing_pages_data = get_blog_option( $page_blog_id, 'bp-pages' ); 273 $existing_pages = $existing_pages_data[$page_blog_id]; 270 274 271 275 if ( !empty( $existing_pages['blogs'] ) ) 272 276 $existing_blog_page = '&selected=' . $existing_pages['blogs']; … … 718 722 /** Save Step Methods *****************************************************/ 719 723 720 724 function step_db_update_save() { 725 global $bp; 726 721 727 if ( isset( $_POST['submit'] ) ) { 722 728 check_admin_referer( 'bpwizard_db_update' ); 723 729 724 730 // Run the schema install to update tables 725 731 bp_core_install(); 726 732 727 if ( $this->database_version < 1 225)733 if ( $this->database_version < 1801 ) 728 734 $this->update_1_3(); 729 735 736 // Update the active components option early if we're updating 737 if ( 'update' == $this->setup_type ) 738 update_site_option( 'bp-active-components', $bp->active_components ); 739 730 740 return true; 731 741 } 732 742 … … 739 749 if ( isset( $_POST['submit'] ) ) { 740 750 check_admin_referer( 'bpwizard_ms_update' ); 741 751 742 if ( !$active_components = get_ option( 'bp-active-components' ) )752 if ( !$active_components = get_site_option( 'bp-active-components' ) ) 743 753 $active_components = array(); 744 754 745 755 // Transfer important settings from blog options to site options 746 756 $options = array( 747 'bp-db-version' => $this->database_version,748 'bp-active-components' => $active_components,749 'avatar-default' => get_option( 'avatar-default' )757 'bp-db-version' => $this->database_version, 758 'bp-active-components' => $active_components, 759 'avatar-default' => get_option( 'avatar-default' ) 750 760 ); 751 761 bp_core_activate_site_options( $options ); 752 762 … … 758 768 switch_to_blog( BP_ROOT_BLOG ); 759 769 760 770 // Move bp-pages data from the blog options table to site options 761 $page_blog_id = is_multisite() && defined( 'BP_ENABLE_MULTIBLOG' ) && BP_ENABLE_MULTIBLOG ? get_current_blog_id() : BP_ROOT_BLOG;762 $existing_pages_data = get_blog_option( $page_blog_id, 'bp-pages' );763 $existing_pages = $existing_pages_data[$page_blog_id];771 $page_blog_id = is_multisite() && defined( 'BP_ENABLE_MULTIBLOG' ) && BP_ENABLE_MULTIBLOG ? get_current_blog_id() : BP_ROOT_BLOG; 772 $existing_pages_data = get_blog_option( $page_blog_id, 'bp-pages' ); 773 $existing_pages = $existing_pages_data[$page_blog_id]; 764 774 765 $bp_pages = $this->setup_pages( (array)$_POST['bp_pages'] );766 $bp_pages = array_merge( (array)$existing_pages, (array)$bp_pages );775 $bp_pages = $this->setup_pages( (array)$_POST['bp_pages'] ); 776 $bp_pages = array_merge( (array)$existing_pages, (array)$bp_pages ); 767 777 768 778 $existing_pages_data[$page_blog_id] = $bp_pages; 769 779 … … 821 831 foreach ( (array)$existing_pages as $page_id ) 822 832 wp_delete_post( $page_id, true ); 823 833 824 $blog_pages = $this->setup_pages( (array)$_POST['bp_pages'] );825 $page_blog_id = is_multisite() && defined( 'BP_ENABLE_MULTIBLOG' ) && BP_ENABLE_MULTIBLOG ? get_current_blog_id() : BP_ROOT_BLOG;826 $bp_pages = array( $page_blog_id => $blog_pages );834 $blog_pages = $this->setup_pages( (array)$_POST['bp_pages'] ); 835 $page_blog_id = is_multisite() && defined( 'BP_ENABLE_MULTIBLOG' ) && BP_ENABLE_MULTIBLOG ? get_current_blog_id() : BP_ROOT_BLOG; 836 $bp_pages = array( $page_blog_id => $blog_pages ); 827 837 828 838 update_site_option( 'bp-pages', $bp_pages ); 829 839 … … 994 1004 check_admin_referer( 'bpwizard_finish' ); 995 1005 996 1006 // Update the DB version in the database 997 update_site_option( 'bp-db-version', constant( 'BP_DB_VERSION' ));1007 update_site_option( 'bp-db-version', $this->new_version ); 998 1008 delete_site_option( 'bp-core-db-version' ); 999 1009 1000 1010 // Delete the setup cookie … … 1180 1190 * @uses add_submenu_page() WP function to add a submenu item 1181 1191 */ 1182 1192 function bp_core_update_add_admin_menu() { 1183 global $bp , $bp_wizard;1193 global $bp_wizard; 1184 1194 1185 1195 // Only load this version of the menu if this is an upgrade or a new installation 1186 if ( empty( $bp ->maintenence_mode ) )1196 if ( empty( $bp_wizard->setup_type ) ) 1187 1197 return false; 1188 1198 1189 1199 if ( !current_user_can( 'activate_plugins' ) ) 1190 1200 return false; 1191 1201 1192 if ( ' ' == get_site_option( 'bp-db-version' ) && !(int)get_site_option( 'bp-core-db-version' ) && !$bp_wizard->is_network_activate )1202 if ( 'install' == $bp_wizard->setup_type ) 1193 1203 $status = __( 'Setup', 'buddypress' ); 1194 1204 else 1195 1205 $status = __( 'Update', 'buddypress' ); … … 1256 1266 1257 1267 function bp_core_update_do_network_admin() { 1258 1268 $do_network_admin = false; 1259 1269 1260 1270 if ( is_multisite() && ( !defined( 'BP_ENABLE_MULTIBLOG' ) || !BP_ENABLE_MULTIBLOG ) ) 1261 1271 $do_network_admin = true; 1262 1272 1263 1273 return apply_filters( 'bp_core_do_network_admin', $do_network_admin ); 1264 1274 } 1265 1275 1266 1276 function bp_core_update_admin_hook() { 1267 1277 $hook = bp_core_update_do_network_admin() ? 'network_admin_menu' : 'admin_menu'; 1268 1278 1269 1279 return apply_filters( 'bp_core_admin_hook', $hook ); 1270 1280 } 1271 1281 … … 1277 1287 * @global $pagenow The current admin page 1278 1288 */ 1279 1289 function bp_core_update_nag() { 1280 global $bp , $pagenow;1290 global $bp_wizard, $pagenow; 1281 1291 1292 if ( empty( $bp_wizard->setup_type ) ) 1293 return; 1294 1282 1295 if ( !is_super_admin() ) 1283 1296 return; 1284 1297 … … 1287 1300 1288 1301 $url = bp_core_update_do_network_admin() ? network_admin_url( 'admin.php?page=bp-wizard' ) : admin_url( 'admin.php?page=bp-wizard' ); 1289 1302 1290 switch( $bp ->maintenence_mode ) {1303 switch( $bp_wizard->setup_type ) { 1291 1304 case 'update': 1292 1305 $msg = sprintf( __( 'BuddyPress has been updated! Please run the <a href="%s">update wizard</a>.', 'buddypress' ), $url ); 1293 1306 break; -
bp-loader.php
59 59 // Test to see whether this is a new installation or an upgraded version of BuddyPress 60 60 if ( !$bp->database_version = get_site_option( 'bp-db-version' ) ) { 61 61 if ( $bp->database_version = get_option( 'bp-db-version' ) ) { 62 $bp->is_ ms_activate = 1;62 $bp->is_network_activate = 1; 63 63 } else { 64 64 $bp->database_version = get_site_option( 'bp-core-db-version' ); // BP 1.2 option 65 65 } … … 67 67 68 68 // This is a new installation. 69 69 if ( empty( $bp->database_version ) ) { 70 $bp->mainten ence_mode = 'install';70 $bp->maintenance_mode = 'install'; 71 71 require_once( WP_PLUGIN_DIR . '/buddypress/bp-core/admin/bp-core-update.php' ); 72 72 73 73 // There is a previous installation … … 76 76 require_once( WP_PLUGIN_DIR . '/buddypress/bp-core/bp-core-loader.php' ); 77 77 78 78 // Check if an update is required 79 if ( (int)$bp->database_version < (int)constant( 'BP_DB_VERSION' ) || isset( $bp->is_ ms_activate ) ) {80 $bp->mainten ence_mode = 'update';79 if ( (int)$bp->database_version < (int)constant( 'BP_DB_VERSION' ) || isset( $bp->is_network_activate ) ) { 80 $bp->maintenance_mode = 'update'; 81 81 require_once( WP_PLUGIN_DIR . '/buddypress/bp-core/admin/bp-core-update.php' ); 82 82 } 83 83 } … … 86 86 87 87 if ( !function_exists( 'bp_loader_activate' ) ) : 88 88 /** 89 * Defines BP's activation routine. 90 * 91 * Most of BP's crucial setup is handled by the setup wizard. This function takes care of some 92 * issues with incompatible legacy themes, and provides a hook for other functions to know that 93 * BP has been activated. 94 * 95 * @package BuddyPress Core 96 */ 89 * Defines BP's activation routine. 90 * 91 * Most of BP's crucial setup is handled by the setup wizard. This function takes care of some 92 * issues with incompatible legacy themes, and provides a hook for other functions to know that 93 * BP has been activated. 94 * 95 * @package BuddyPress Core 96 */ 97 97 function bp_loader_activate() { 98 98 // Force refresh theme roots. 99 99 delete_site_transient( 'theme_roots' );