Пример #1
0
/**
 * Main installer
 *
 * Can be passed an optional array of components to explicitly run installation
 * routines on, typically the first time a component is activated in Settings.
 *
 * @since BuddyPress (1.0.0)
 *
 * @param array $active_components Components to install
 */
function bp_core_install($active_components = false)
{
    // If no components passed, get all the active components from the main site
    if (empty($active_components)) {
        $active_components = apply_filters('bp_active_components', bp_get_option('bp-active-components'));
    }
    // Install Activity Streams even when inactive (to store last_activity data)
    bp_core_install_activity_streams();
    // Install the signups table
    bp_core_maybe_install_signups();
    // Notifications
    if (!empty($active_components['notifications'])) {
        bp_core_install_notifications();
    }
    // Friend Connections
    if (!empty($active_components['friends'])) {
        bp_core_install_friends();
    }
    // Extensible Groups
    if (!empty($active_components['groups'])) {
        bp_core_install_groups();
    }
    // Private Messaging
    if (!empty($active_components['messages'])) {
        bp_core_install_private_messaging();
    }
    // Extended Profiles
    if (!empty($active_components['xprofile'])) {
        bp_core_install_extended_profiles();
    }
    // Blog tracking
    if (!empty($active_components['blogs'])) {
        bp_core_install_blog_tracking();
    }
}
function bp_core_install($active_components = false)
{
    if (empty($active_components)) {
        $active_components = apply_filters('bp_active_components', bp_get_option('bp-active-components'));
    }
    // Core DB Tables
    bp_core_install_notifications();
    // Activity Streams
    if (!empty($active_components['activity'])) {
        bp_core_install_activity_streams();
    }
    // Friend Connections
    if (!empty($active_components['friends'])) {
        bp_core_install_friends();
    }
    // Extensible Groups
    if (!empty($active_components['groups'])) {
        bp_core_install_groups();
    }
    // Private Messaging
    if (!empty($active_components['messages'])) {
        bp_core_install_private_messaging();
    }
    // Extended Profiles
    if (!empty($active_components['xprofile'])) {
        bp_core_install_extended_profiles();
    }
    // Blog tracking
    if (!empty($active_components['blogs'])) {
        bp_core_install_blog_tracking();
    }
}
/**
 * 2.7.0 update routine.
 *
 * - Add email unsubscribe salt.
 * - Save legacy directory titles to the corresponding WP pages.
 * - Add ignore deprecated code option (false for updates).
 *
 * @since 2.7.0
 */
function bp_update_to_2_7()
{
    bp_add_option('bp-emails-unsubscribe-salt', base64_encode(wp_generate_password(64, true, true)));
    // Update post_titles
    bp_migrate_directory_page_titles();
    /*
     * Add `parent_id` column to groups table.
     * Also handled by `bp_core_install()`.
     */
    if (bp_is_active('groups')) {
        bp_core_install_groups();
        // Invalidate all cached group objects.
        global $wpdb;
        $bp = buddypress();
        $group_ids = $wpdb->get_col("SELECT id FROM {$bp->groups->table_name}");
        foreach ($group_ids as $group_id) {
            wp_cache_delete($group_id, 'bp_groups');
        }
    }
    // Do not ignore deprecated code for existing installs.
    bp_add_option('_bp_ignore_deprecated_code', false);
}