Ticket #2789: 2789.006.patch
File 2789.006.patch, 9.0 KB (added by , 14 years ago) |
---|
-
bp-themes/bp-default/functions.php
89 89 add_custom_image_header( 'bp_dtheme_header_style', 'bp_dtheme_admin_header_style' ); 90 90 } 91 91 92 // When BP is first installed, bp_is_active() won't be defined on the final step of the 93 // wizard. This is a workaround. 94 if ( !function_exists( 'bp_is_active' ) ) 95 return; 96 92 97 // Register buttons for the relevant component templates 93 98 // Friends button 94 99 if ( bp_is_active( 'friends' ) ) -
bp-core/admin/bp-core-upgrade.php
1 1 <?php 2 2 3 if ( !defined( 'BP_ROOT_BLOG' ) )4 define( 'BP_ROOT_BLOG', 1 );5 6 require_once( dirname( dirname( __FILE__ ) ) . '/bp-core-wpabstraction.php' );7 8 register_theme_directory( WP_PLUGIN_DIR . '/buddypress/bp-themes' );9 10 // Install site options on activation11 bp_core_activate_site_options( array( 'bp-disable-account-deletion' => 0, 'bp-disable-avatar-uploads' => 0, 'bp-disable-blogforum-comments' => 0, 'bp-disable-forum-directory' => 0, 'bp-disable-profile-sync' => 0 ) );12 13 /**14 * bp_core_activate_site_options()15 *16 * When switching from single to multisite we need to copy blog options to17 * site options.18 *19 * @package BuddyPress Core20 */21 function bp_core_activate_site_options( $keys = array() ) {22 global $bp;23 24 $bp->site_options = bp_core_get_site_options();25 26 if ( !empty( $keys ) && is_array( $keys ) ) {27 $errors = false;28 29 foreach ( $keys as $key => $default ) {30 if ( empty( $bp->site_options[ $key ] ) ) {31 $bp->site_options[ $key ] = get_blog_option( BP_ROOT_BLOG, $key, $default );32 33 if ( !update_site_option( $key, $bp->site_options[ $key ] ) )34 $errors = true;35 }36 }37 38 if ( empty( $errors ) )39 return true;40 }41 42 return false;43 }44 45 3 class BP_Core_Setup_Wizard { 46 4 var $current_step; 47 5 var $steps; … … 1160 1118 } 1161 1119 1162 1120 /** 1163 * bp_core_ add_admin_menu_page()1121 * bp_core_upgrade_add_admin_menu_page() 1164 1122 * 1165 1123 * A better version of add_admin_menu_page() that allows positioning of menus. 1166 1124 * 1167 1125 * @package BuddyPress Core 1168 1126 */ 1169 function bp_core_ add_admin_menu_page( $args = '' ) {1127 function bp_core_upgrade_add_admin_menu_page( $args = '' ) { 1170 1128 global $menu, $admin_page_hooks, $_registered_pages; 1171 1129 1172 1130 $defaults = array( … … 1249 1207 * @global $wpdb WordPress DB access object. 1250 1208 * @uses add_submenu_page() WP function to add a submenu item 1251 1209 */ 1252 function bp_core_ add_admin_menu() {1210 function bp_core_upgrade_add_admin_menu() { 1253 1211 global $bp_wizard; 1254 1212 1213 // Only load this version of the menu if this is an upgrade or a new installation 1214 if ( ( !defined( 'BP_IS_UPGRADE' ) || !BP_IS_UPGRADE ) && ( !defined( 'BP_IS_INSTALL' ) || !BP_IS_INSTALL ) ) 1215 return false; 1216 1255 1217 if ( !current_user_can( 'activate_plugins' ) ) 1256 1218 return false; 1257 1219 … … 1261 1223 $status = __( 'Upgrade', 'buddypress' ); 1262 1224 1263 1225 /* Add the administration tab under the "Site Admin" tab for site administrators */ 1264 bp_core_ add_admin_menu_page( array(1226 bp_core_upgrade_add_admin_menu_page( array( 1265 1227 'menu_title' => __( 'BuddyPress', 'buddypress' ), 1266 1228 'page_title' => __( 'BuddyPress', 'buddypress' ), 1267 1229 'access_level' => 10, 'file' => 'bp-wizard', … … 1272 1234 $hook = add_submenu_page( 'bp-wizard', $status, $status, 'manage_options', 'bp-wizard', array( $bp_wizard, 'html' ) ); 1273 1235 1274 1236 /* Add a hook for css/js */ 1275 add_action( "admin_print_styles-$hook", 'bp_core_ add_admin_menu_styles' );1237 add_action( "admin_print_styles-$hook", 'bp_core_upgrade_add_admin_menu_styles' ); 1276 1238 } 1277 add_action( 'admin_menu', 'bp_core_ add_admin_menu' );1239 add_action( 'admin_menu', 'bp_core_upgrade_add_admin_menu' ); 1278 1240 1279 function bp_core_ add_admin_menu_styles() {1241 function bp_core_upgrade_add_admin_menu_styles() { 1280 1242 if ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) 1281 1243 wp_enqueue_style( 'bp-admin-css', apply_filters( 'bp_core_admin_css', plugins_url( $path = '/buddypress' ) . '/bp-core/css/admin.dev.css' ) ); 1282 1244 else … … 1292 1254 </style> 1293 1255 <?php 1294 1256 } 1257 1258 /** 1259 * Adds an admin nag about running the BP upgrade/install wizard 1260 * 1261 * @package BuddyPress Core 1262 * @since 1.3 1263 * @global $pagenow The current admin page 1264 */ 1265 function bp_core_update_nag() { 1266 if ( !is_super_admin() ) 1267 return; 1268 1269 global $pagenow; 1270 1271 if ( 'admin.php' == $pagenow && ( empty( $_GET['page'] ) || 'bp-wizard' == $_GET['page'] ) ) 1272 return; 1273 1274 if ( defined( 'BP_IS_UPGRADE' ) && BP_IS_UPGRADE ) 1275 $msg = sprintf( __( 'BuddyPress has been updated! Please run the <a href="%s">upgrade wizard</a>.', 'buddypress' ), admin_url( 'admin.php?page=bp-wizard' ) ); 1276 else if ( defined( 'BP_IS_INSTALL' ) && BP_IS_INSTALL ) 1277 $msg = sprintf( __( 'BuddyPress has been installed! Please run the <a href="%s">upgrade wizard</a>.', 'buddypress' ), admin_url( 'admin.php?page=bp-wizard' ) ); 1278 1279 echo "<div class='update-nag'>$msg</div>"; 1280 } 1281 add_action( 'admin_notices', 'bp_core_update_nag', 5 ); 1282 1295 1283 ?> 1284 No newline at end of file -
bp-loader.php
10 10 */ 11 11 12 12 define( 'BP_VERSION', '1.3-bleeding' ); 13 define( 'BP_DB_VERSION', 1225);13 define( 'BP_DB_VERSION', 3704 ); 14 14 15 15 // Define on which blog ID BuddyPress should run 16 16 if ( !defined( 'BP_ROOT_BLOG' ) ) 17 17 define( 'BP_ROOT_BLOG', 1 ); 18 18 19 /*** 20 * Check if this is the first time BuddyPress has been loaded, or the first time 21 * since an upgrade. If so, load the install/upgrade routine only. 22 */ 23 if ( get_site_option( 'bp-db-version' ) < constant( 'BP_DB_VERSION' ) ) { 19 // Register BuddyPress themes contained within the bp-theme folder 20 register_theme_directory( WP_PLUGIN_DIR . '/buddypress/bp-themes' ); 21 22 // Test to see whether this is a new installation or an upgraded version of BuddyPress 23 $bp_db_version = get_site_option( 'bp-db-version' ); 24 if ( ! $bp_db_version ) 25 $bp_db_version = get_site_option( 'bp-core-db-version' ); // BP 1.2 option name 26 27 if ( ! $bp_db_version ) { 28 define( 'BP_IS_INSTALL', true ); 24 29 require_once( WP_PLUGIN_DIR . '/buddypress/bp-core/admin/bp-core-upgrade.php' ); 25 30 26 /***27 * If the install or upgrade routine is completed and everything is up to date28 * continue loading BuddyPress as normal.29 */30 31 } else { 31 32 /*** 32 33 * This file will load in each BuddyPress component based on which … … 65 66 if ( !isset( $bp_deactivated['bp-xprofile.php'] ) && file_exists( BP_PLUGIN_DIR . '/bp-xprofile.php') ) 66 67 include( BP_PLUGIN_DIR . '/bp-xprofile.php' ); 67 68 69 // If this is an upgrade, load the upgrade file 70 if ( $bp_db_version < constant( 'BP_DB_VERSION' ) ) { 71 define( 'BP_IS_UPGRADE', true ); 72 require_once( WP_PLUGIN_DIR . '/buddypress/bp-core/admin/bp-core-upgrade.php' ); 73 } 74 68 75 add_action( 'plugins_loaded', 'bp_loaded', 20 ); 69 76 } 70 77 … … 140 147 return apply_filters( 'bp_core_get_site_options', $site_options ); 141 148 } 142 149 143 /* Activation Function */ 150 /** 151 * Defines BP's activation routine. 152 * 153 * Most of BP's crucial setup is handled by the setup wizard. This function takes care of some 154 * issues with incompatible legacy themes, and provides a hook for other functions to know that 155 * BP has been activated. 156 * 157 * @package BuddyPress Core 158 */ 144 159 function bp_loader_activate() { 145 160 /* Force refresh theme roots. */ 146 161 delete_site_transient( 'theme_roots' ); 147 162 163 // Ensure that get_blog_option() is defined on non-MS installations 164 if ( !function_exists( 'get_blog_option' ) ) 165 require ( WP_PLUGIN_DIR . '/buddypress/bp-core/bp-core-wpabstraction.php' ); 166 148 167 /* Switch the user to the new bp-default if they are using the old bp-default on activation. */ 149 168 if ( 'bp-sn-parent' == get_blog_option( BP_ROOT_BLOG, 'template' ) && 'bp-default' == get_blog_option( BP_ROOT_BLOG, 'stylesheet' ) ) 150 169 switch_theme( 'bp-default', 'bp-default' ); … … 159 178 } 160 179 register_deactivation_hook( 'buddypress/bp-loader.php', 'bp_loader_deactivate' ); 161 180 162 ?> 181 ?> 182 No newline at end of file -
bp-core.php
42 42 if ( !defined( 'BP_DISABLE_ADMIN_BAR' ) ) 43 43 require ( BP_PLUGIN_DIR . '/bp-core/bp-core-adminbar.php' ); 44 44 45 /* Register BuddyPress themes contained within the bp-theme folder */46 register_theme_directory( WP_PLUGIN_DIR . '/buddypress/bp-themes' );47 45 48 49 46 /* "And now for something completely different" .... */ 50 47 51 48 … … 314 311 if ( !is_super_admin() ) 315 312 return false; 316 313 314 // Don't add this version of the admin menu if a BP upgrade is in progress 315 // See bp_core_upgrade_add_admin_menu() 316 if ( defined( 'BP_IS_UPGRADE' ) && BP_IS_UPGRADE ) 317 return false; 318 317 319 /* Add the administration tab under the "Site Admin" tab for site administrators */ 318 320 $hook = bp_core_add_admin_menu_page( array( 319 321 'menu_title' => __( 'BuddyPress', 'buddypress' ),