Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
03/24/2011 05:26:18 AM (10 years ago)
Author:
johnjamesjacoby
Message:

This first pass at WP Admin Bar integration unhooks all WP core menus and replaces them with a full set of action based routines to handle the creation of admin bar menus at a BP component class level. This allows future external components to manipulate core menus or add their own with relative ease. Currently works off the BP_USE_WP_ADMIN_BAR constant, and should eventually phase out the BuddyBar in the long-term.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-activity/bp-activity-loader.php

    r3917 r4151  
    101101
    102102        // Determine user to use
    103         if ( isset( $bp->displayed_user->domain ) ) {
     103        if ( isset( $bp->displayed_user->domain ) )
    104104            $user_domain = $bp->displayed_user->domain;
    105             $user_login  = $bp->displayed_user->userdata->user_login;
    106         } elseif ( isset( $bp->loggedin_user->domain ) ) {
     105        elseif ( isset( $bp->loggedin_user->domain ) )
    107106            $user_domain = $bp->loggedin_user->domain;
    108             $user_login  = $bp->loggedin_user->userdata->user_login;
    109         } else {
     107        else
    110108            return;
    111         }
    112109
    113110        // User link
     
    124121        );
    125122
     123        // @ mentions
     124        $sub_nav[] = array(
     125            'name'            => __( 'Mentions', 'buddypress' ),
     126            'slug'            => 'mentions',
     127            'parent_url'      => $activity_link,
     128            'parent_slug'     => $this->slug,
     129            'screen_function' => 'bp_activity_screen_mentions',
     130            'position'        => 20,
     131            'item_css_id'     => 'activity-mentions'
     132        );
     133
     134        // Favorite activity items
     135        $sub_nav[] = array(
     136            'name'            => __( 'Favorites', 'buddypress' ),
     137            'slug'            => 'favorites',
     138            'parent_url'      => $activity_link,
     139            'parent_slug'     => $this->slug,
     140            'screen_function' => 'bp_activity_screen_favorites',
     141            'position'        => 30,
     142            'item_css_id'     => 'activity-favs'
     143        );
     144
    126145        // Additional menu if friends is active
    127146        if ( bp_is_active( 'friends' ) ) {
     
    132151                'parent_slug'     => $this->slug,
    133152                'screen_function' => 'bp_activity_screen_friends',
    134                 'position'        => 20,
     153                'position'        => 40,
    135154                'item_css_id'     => 'activity-friends'
    136155            ) ;
     
    145164                'parent_slug'     => $this->slug,
    146165                'screen_function' => 'bp_activity_screen_groups',
    147                 'position'        => 30,
     166                'position'        => 50,
    148167                'item_css_id'     => 'activity-groups'
    149168            );
    150169        }
    151170
    152         // Favorite activity items
    153         $sub_nav[] = array(
    154             'name'            => __( 'Favorites', 'buddypress' ),
    155             'slug'            => 'favorites',
    156             'parent_url'      => $activity_link,
    157             'parent_slug'     => $this->slug,
    158             'screen_function' => 'bp_activity_screen_favorites',
    159             'position'        => 40,
    160             'item_css_id'     => 'activity-favs'
    161         );
    162 
    163         // @ mentions
    164         $sub_nav[] = array(
    165             'name'            => sprintf( __( '@%s Mentions', 'buddypress' ), $user_login ),
    166             'slug'            => 'mentions',
    167             'parent_url'      => $activity_link,
    168             'parent_slug'     => $this->slug,
    169             'screen_function' => 'bp_activity_screen_mentions',
    170             'position'        => 50,
    171             'item_css_id'     => 'activity-mentions'
    172         );
    173 
    174171        parent::_setup_nav( $main_nav, $sub_nav );
     172    }
     173
     174    /**
     175     * Set up the admin bar
     176     *
     177     * @global obj $bp
     178     */
     179    function _setup_admin_bar() {
     180        global $bp;
     181
     182        // Menus for logged in user
     183        if ( is_user_logged_in() ) {
     184
     185            // Setup the logged in user variables
     186            $user_domain   = $bp->loggedin_user->domain;
     187            $activity_link = trailingslashit( $user_domain . $this->slug );
     188
     189            // Add the "Activity" sub menu
     190            $wp_admin_nav[] = array(
     191                'parent' => $bp->my_account_menu_id,
     192                'id'     => 'my-account-' . $this->id,
     193                'title'  => __( 'Activity', 'buddypress' ),
     194                'href'   => trailingslashit( $activity_link )
     195            );
     196
     197            // Mentions
     198            $wp_admin_nav[] = array(
     199                'parent' => 'my-account-' . $this->id,
     200                'title'  => __( 'Mentions', 'buddypress' ),
     201                'href'   => trailingslashit( $activity_link . 'mentions' )
     202            );
     203
     204            // Personal
     205            $wp_admin_nav[] = array(
     206                'parent' => 'my-account-' . $this->id,
     207                'title'  => __( 'Personal', 'buddypress' ),
     208                'href'   => trailingslashit( $activity_link )
     209            );
     210
     211            // Favorites
     212            $wp_admin_nav[] = array(
     213                'parent' => 'my-account-' . $this->id,
     214                'title'  => __( 'Favorites', 'buddypress' ),
     215                'href'   => trailingslashit( $activity_link . 'favorites' )
     216            );
     217
     218            // Friends?
     219            if ( bp_is_active( 'friends' ) ) {
     220                $wp_admin_nav[] = array(
     221                    'parent' => 'my-account-' . $this->id,
     222                    'title'  => __( 'Friends', 'buddypress' ),
     223                    'href'   => trailingslashit( $activity_link . bp_get_friends_slug() )
     224                );
     225            }
     226
     227            // Groups?
     228            if ( bp_is_active( 'groups' ) ) {
     229                $wp_admin_nav[] = array(
     230                    'parent' => 'my-account-' . $this->id,
     231                    'title'  => __( 'Groups', 'buddypress' ),
     232                    'href'   => trailingslashit( $activity_link . bp_get_groups_slug() )
     233                );
     234            }
     235        }
     236
     237        parent::_setup_admin_bar( $wp_admin_nav );
    175238    }
    176239
Note: See TracChangeset for help on using the changeset viewer.