Ticket #2789: 2789.008.patch
File 2789.008.patch, 10.2 KB (added by , 14 years ago) |
---|
-
bp-themes/bp-default/functions.php
40 40 * Temporary work-around to prevent errors with bp-default being active 41 41 * when BuddyPress is not installed. 42 42 */ 43 if ( !constant( 'BP_VERSION' ) || !get_site_option( 'bp-db-version' ) ) {43 /*if ( !constant( 'BP_VERSION' ) || !get_site_option( 'bp-db-version' ) ) { 44 44 switch_theme( 'twentyten', 'twentyten' ); 45 45 wp_redirect( $_SERVER['HTTP_REFERER'] ); 46 46 exit; 47 } 47 }*/ 48 48 49 49 if ( !function_exists( 'bp_dtheme_setup' ) ) : 50 50 /** -
bp-core/admin/bp-core-update.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; … … 819 777 if ( $this->current_version < 1225 ) 820 778 $this->update_1_3(); 821 779 780 // Update the DB version in the database 781 update_site_option( 'bp-db-version', constant( 'BP_DB_VERSION' ) ); 782 delete_site_option( 'bp-core-db-version' ); 783 822 784 return true; 823 785 } 824 786 … … 1045 1007 function step_finish_save() { 1046 1008 if ( isset( $_POST['submit'] ) ) { 1047 1009 check_admin_referer( 'bpwizard_finish' ); 1048 1010 1049 1011 // Delete the setup cookie 1050 1012 @setcookie( 'bp-wizard-step', '', time() - 3600, COOKIEPATH ); 1051 1013 … … 1183 1145 } 1184 1146 1185 1147 /** 1186 * bp_core_ add_admin_menu_page()1148 * bp_core_update_add_admin_menu_page() 1187 1149 * 1188 1150 * A better version of add_admin_menu_page() that allows positioning of menus. 1189 1151 * 1190 1152 * @package BuddyPress Core 1191 1153 */ 1192 function bp_core_ add_admin_menu_page( $args = '' ) {1154 function bp_core_update_add_admin_menu_page( $args = '' ) { 1193 1155 global $menu, $admin_page_hooks, $_registered_pages; 1194 1156 1195 1157 $defaults = array( … … 1246 1208 add_action( 'admin_footer', 'bp_core_wizard_thickbox' ); 1247 1209 1248 1210 /** 1249 * bp_core_ add_admin_menu()1211 * bp_core_update_add_admin_menu() 1250 1212 * 1251 1213 * Adds the "BuddyPress" admin submenu item to the Site Admin tab. 1252 1214 * … … 1255 1217 * @global $wpdb WordPress DB access object. 1256 1218 * @uses add_submenu_page() WP function to add a submenu item 1257 1219 */ 1258 function bp_core_ add_admin_menu() {1220 function bp_core_update_add_admin_menu() { 1259 1221 global $bp_wizard; 1260 1222 1223 // Only load this version of the menu if this is an upgrade or a new installation 1224 if ( ( !defined( 'BP_IS_UPGRADE' ) || !BP_IS_UPGRADE ) && ( !defined( 'BP_IS_INSTALL' ) || !BP_IS_INSTALL ) ) 1225 return false; 1226 1261 1227 if ( !current_user_can( 'activate_plugins' ) ) 1262 1228 return false; 1263 1229 … … 1267 1233 $status = __( 'Update', 'buddypress' ); 1268 1234 1269 1235 // Add the administration tab under the "Site Admin" tab for site administrators 1270 bp_core_ add_admin_menu_page( array(1236 bp_core_update_add_admin_menu_page( array( 1271 1237 'menu_title' => __( 'BuddyPress', 'buddypress' ), 1272 1238 'page_title' => __( 'BuddyPress', 'buddypress' ), 1273 1239 'capability' => 'manage_options', … … 1279 1245 $hook = add_submenu_page( 'bp-wizard', $status, $status, 'manage_options', 'bp-wizard', array( $bp_wizard, 'html' ) ); 1280 1246 1281 1247 // Add a hook for css/js 1282 add_action( "admin_print_styles-$hook", 'bp_core_ add_admin_menu_styles' );1248 add_action( "admin_print_styles-$hook", 'bp_core_update_add_admin_menu_styles' ); 1283 1249 } 1284 add_action( is_multisite() ? 'network_admin_menu' : 'admin_menu', 'bp_core_ add_admin_menu', 9 );1250 add_action( is_multisite() ? 'network_admin_menu' : 'admin_menu', 'bp_core_update_add_admin_menu', 9 ); 1285 1251 1286 function bp_core_ add_admin_menu_styles() {1252 function bp_core_update_add_admin_menu_styles() { 1287 1253 if ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) 1288 1254 wp_enqueue_style( 'bp-admin-css', apply_filters( 'bp_core_admin_css', plugins_url( $path = '/buddypress' ) . '/bp-core/css/admin.dev.css' ) ); 1289 1255 else … … 1312 1278 <?php 1313 1279 } 1314 1280 add_action( 'admin_head', 'bp_core_add_admin_menu_styles' ); 1281 1282 /** 1283 * Adds an admin nag about running the BP upgrade/install wizard 1284 * 1285 * @package BuddyPress Core 1286 * @since 1.3 1287 * @global $pagenow The current admin page 1288 */ 1289 function bp_core_update_nag() { 1290 global $pagenow; 1291 1292 if ( !is_super_admin() ) 1293 return; 1294 1295 if ( 'admin.php' == $pagenow && ( empty( $_GET['page'] ) || 'bp-wizard' == $_GET['page'] ) ) 1296 return; 1297 1298 if ( defined( 'BP_IS_UPGRADE' ) && BP_IS_UPGRADE ) 1299 $msg = sprintf( __( 'BuddyPress has been updated! Please run the <a href="%s">upgrade wizard</a>.', 'buddypress' ), admin_url( 'admin.php?page=bp-wizard' ) ); 1300 else if ( defined( 'BP_IS_INSTALL' ) && BP_IS_INSTALL ) 1301 $msg = sprintf( __( 'BuddyPress has been installed! Please run the <a href="%s">upgrade wizard</a>.', 'buddypress' ), admin_url( 'admin.php?page=bp-wizard' ) ); 1302 1303 echo "<div class='update-nag'>$msg</div>"; 1304 } 1305 add_action( 'admin_notices', 'bp_core_update_nag', 5 ); 1306 1315 1307 ?> 1308 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 update. If so, load the install/update routine only. 22 */ 23 if ( get_site_option( 'bp-db-version' ) < constant( 'BP_DB_VERSION' ) ) { 19 // Register BuddyPress themes contained within the bp-themes 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 // This is a new installation. Run the wizard before loading BP core files 29 define( 'BP_IS_INSTALL', true ); 24 30 require_once( WP_PLUGIN_DIR . '/buddypress/bp-core/admin/bp-core-update.php' ); 25 26 /***27 * If the install or update 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 … … 64 65 /* Extended Profiles */ 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' ); 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-update.php' ); 73 } 67 74 68 75 add_action( 'plugins_loaded', 'bp_loaded', 20 ); 69 76 } … … 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 if ( !function_exists( 'get_blog_option' ) ) 164 require ( WP_PLUGIN_DIR . '/buddypress/bp-core/bp-core-wpabstraction.php' ); 165 148 166 /* Switch the user to the new bp-default if they are using the old bp-default on activation. */ 149 167 if ( 'bp-sn-parent' == get_blog_option( BP_ROOT_BLOG, 'template' ) && 'bp-default' == get_blog_option( BP_ROOT_BLOG, 'stylesheet' ) ) 150 168 switch_theme( 'bp-default', 'bp-default' ); -
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 … … 313 310 function bp_core_add_admin_menu() { 314 311 if ( !is_super_admin() ) 315 312 return false; 313 314 // Don't add this version of the admin menu if a BP upgrade is in progress 315 // See bp_core_update_add_admin_menu() 316 if ( defined( 'BP_IS_UPGRADE' ) && BP_IS_UPGRADE ) 317 return false; 316 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( … … 1969 1971 } else { 1970 1972 /* Get current theme info */ 1971 1973 $ct = current_theme_info(); 1972 1974 1973 1975 /* The best way to remove this notice is to add a "buddypress" tag to your active theme's CSS header. */ 1974 1976 if ( !defined( 'BP_SILENCE_THEME_NOTICE' ) && !in_array( 'buddypress', (array)$ct->tags ) ) { ?> 1975 1977 <div id="message" class="updated fade">