Skip to:
Content

BuddyPress.org

Ticket #2789: 2789.005.patch

File 2789.005.patch, 9.6 KB (added by boonebgorges, 9 years ago)
  • bp-themes/bp-default/functions.php

     
    8888                // Add a way for the custom header to be styled in the admin panel that controls custom headers.
    8989                add_custom_image_header( 'bp_dtheme_header_style', 'bp_dtheme_admin_header_style' );
    9090        }
     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;
    9196
    9297        // Register buttons for the relevant component templates
    9398        // Friends button
  • bp-core/admin/bp-core-upgrade.php

     
    11<?php
    22
    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 activation
    11 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 to
    17  * site options.
    18  *
    19  * @package BuddyPress Core
    20  */
    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 
    453class BP_Core_Setup_Wizard {
    464        var $current_step;
    475        var $steps;
     
    11601118}
    11611119
    11621120/**
    1163  * bp_core_add_admin_menu_page()
     1121 * bp_core_upgrade_add_admin_menu_page()
    11641122 *
    11651123 * A better version of add_admin_menu_page() that allows positioning of menus.
    11661124 *
    11671125 * @package BuddyPress Core
    11681126 */
    1169 function bp_core_add_admin_menu_page( $args = '' ) {
     1127function bp_core_upgrade_add_admin_menu_page( $args = '' ) {
    11701128        global $menu, $admin_page_hooks, $_registered_pages;
    11711129
    11721130        $defaults = array(
     
    12491207 * @global $wpdb WordPress DB access object.
    12501208 * @uses add_submenu_page() WP function to add a submenu item
    12511209 */
    1252 function bp_core_add_admin_menu() {
     1210function bp_core_upgrade_add_admin_menu() {
    12531211        global $bp_wizard;
    12541212
     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
    12551217        if ( !current_user_can( 'activate_plugins' ) )
    12561218                return false;
    12571219
     
    12611223                $status = __( 'Upgrade', 'buddypress' );
    12621224
    12631225        /* 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(
    12651227                'menu_title' => __( 'BuddyPress', 'buddypress' ),
    12661228                'page_title' => __( 'BuddyPress', 'buddypress' ),
    12671229                'access_level' => 10, 'file' => 'bp-wizard',
     
    12721234        $hook = add_submenu_page( 'bp-wizard', $status, $status, 'manage_options', 'bp-wizard', array( $bp_wizard, 'html' ) );
    12731235
    12741236        /* 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' );
    12761238}
    1277 add_action( 'admin_menu', 'bp_core_add_admin_menu' );
     1239add_action( 'admin_menu', 'bp_core_upgrade_add_admin_menu' );
    12781240
    1279 function bp_core_add_admin_menu_styles() {
     1241function bp_core_upgrade_add_admin_menu_styles() {
    12801242        if ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG )
    12811243                wp_enqueue_style( 'bp-admin-css', apply_filters( 'bp_core_admin_css', plugins_url( $path = '/buddypress' ) . '/bp-core/css/admin.dev.css' ) );
    12821244        else
     
    12921254        </style>
    12931255<?php
    12941256}
     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 */
     1265function 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}
     1281add_action( 'admin_notices', 'bp_core_update_nag', 5 );
     1282
    12951283?>
     1284 No newline at end of file
  • bp-loader.php

     
    1616if ( !defined( 'BP_ROOT_BLOG' ) )
    1717        define( 'BP_ROOT_BLOG', 1 );
    1818
    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// Test to see whether this is a new installation or an upgraded version of BuddyPress
     20$bp_db_version = get_site_option( 'bp-db-version' );
     21
     22if ( !$bp_db_version ) {
     23        define( 'BP_IS_INSTALL', true );
    2424        require_once( WP_PLUGIN_DIR . '/buddypress/bp-core/admin/bp-core-upgrade.php' );
    25 
    26 /***
    27  * If the install or upgrade routine is completed and everything is up to date
    28  * continue loading BuddyPress as normal.
    29  */
    3025} else {
    3126        /***
    3227         * This file will load in each BuddyPress component based on which
     
    3429         */
    3530        require_once( WP_PLUGIN_DIR . '/buddypress/bp-core.php' );
    3631        $bp_deactivated = apply_filters( 'bp_deactivated_components', get_site_option( 'bp-deactivated-components' ) );
    37 
     32       
    3833        do_action( 'bp_core_loaded' );
    39 
     34       
    4035        /* Activity Streams */
    4136        if ( !isset( $bp_deactivated['bp-activity.php'] ) && file_exists( BP_PLUGIN_DIR . '/bp-activity.php') )
    4237                include( BP_PLUGIN_DIR . '/bp-activity.php' );
    43 
     38       
    4439        /* Blog Tracking */
    4540        if ( !isset( $bp_deactivated['bp-blogs.php'] ) && file_exists( BP_PLUGIN_DIR . '/bp-blogs.php') )
    4641                include( BP_PLUGIN_DIR . '/bp-blogs.php' );
    47 
     42       
    4843        /* bbPress Forum Integration */
    4944        if ( !isset( $bp_deactivated['bp-forums.php'] ) && file_exists( BP_PLUGIN_DIR . '/bp-forums.php') )
    5045                include( BP_PLUGIN_DIR . '/bp-forums.php' );
    51 
     46       
    5247        /* Friend Connections */
    5348        if ( !isset( $bp_deactivated['bp-friends.php'] ) && file_exists( BP_PLUGIN_DIR . '/bp-friends.php') )
    5449                include( BP_PLUGIN_DIR . '/bp-friends.php' );
    55 
     50       
    5651        /* Groups Support */
    5752        if ( !isset( $bp_deactivated['bp-groups.php'] ) && file_exists( BP_PLUGIN_DIR . '/bp-groups.php') )
    5853                include( BP_PLUGIN_DIR . '/bp-groups.php' );
    59 
     54       
    6055        /* Private Messaging */
    6156        if ( !isset( $bp_deactivated['bp-messages.php'] ) && file_exists( BP_PLUGIN_DIR . '/bp-messages.php') )
    6257                include( BP_PLUGIN_DIR . '/bp-messages.php' );
    63 
     58       
    6459        /* Extended Profiles */
    6560        if ( !isset( $bp_deactivated['bp-xprofile.php'] ) && file_exists( BP_PLUGIN_DIR . '/bp-xprofile.php') )
    6661                include( BP_PLUGIN_DIR . '/bp-xprofile.php' );
    67 
     62               
     63        // If this is an upgrade, load the upgrade file
     64        if ( $bp_db_version < constant( 'BP_DB_VERSION' ) ) {
     65                define( 'BP_IS_UPGRADE', true );
     66                require_once( WP_PLUGIN_DIR . '/buddypress/bp-core/admin/bp-core-upgrade.php' );
     67        }       
     68       
    6869        add_action( 'plugins_loaded', 'bp_loaded', 20 );
    6970}
    7071
     
    140141        return apply_filters( 'bp_core_get_site_options', $site_options );
    141142}
    142143
    143 /* Activation Function */
     144/**
     145 * Defines BP's activation routine.
     146 *
     147 * Most of BP's crucial setup is handled by the setup wizard. This function takes care of some
     148 * issues with incompatible legacy themes, and provides a hook for other functions to know that
     149 * BP has been activated.
     150 *
     151 * @package BuddyPress Core
     152 */
    144153function bp_loader_activate() {
    145154        /* Force refresh theme roots. */
    146155        delete_site_transient( 'theme_roots' );
    147 
     156       
     157        // Ensure that get_blog_option() is defined on non-MS installations
     158        if ( !function_exists( 'get_blog_option' ) )
     159                require ( WP_PLUGIN_DIR . '/buddypress/bp-core/bp-core-wpabstraction.php' );
     160       
    148161        /* Switch the user to the new bp-default if they are using the old bp-default on activation. */
    149162        if ( 'bp-sn-parent' == get_blog_option( BP_ROOT_BLOG, 'template' ) && 'bp-default' == get_blog_option( BP_ROOT_BLOG, 'stylesheet' ) )
    150163                switch_theme( 'bp-default', 'bp-default' );
  • bp-core.php

     
    314314        if ( !is_super_admin() )
    315315                return false;
    316316
     317        // Don't add this version of the admin menu if a BP upgrade is in progress
     318        // See bp_core_upgrade_add_admin_menu()
     319        if ( defined( 'BP_IS_UPGRADE' ) && BP_IS_UPGRADE )
     320                return false;
     321       
    317322        /* Add the administration tab under the "Site Admin" tab for site administrators */
    318323        $hook = bp_core_add_admin_menu_page( array(
    319324                'menu_title' => __( 'BuddyPress', 'buddypress' ),