Skip to:
Content

BuddyPress.org

Changeset 4151


Ignore:
Timestamp:
03/24/2011 05:26:18 AM (15 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.

Location:
trunk
Files:
13 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
  • trunk/bp-blogs/bp-blogs-loader.php

    r4041 r4151  
    113113                parent::_setup_nav( $main_nav );
    114114        }
    115        
     115
     116        /**
     117         * Set up the admin bar
     118         *
     119         * @global obj $bp
     120         */
     121        function _setup_admin_bar() {
     122                global $bp;
     123
     124                // Menus for logged in user
     125                if ( is_user_logged_in() ) {
     126
     127                        $blogs_link = trailingslashit( $bp->loggedin_user->domain . $this->slug );
     128
     129                        // Add the "Blogs" sub menu
     130                        $wp_admin_nav[] = array(
     131                                'parent' => $bp->my_account_menu_id,
     132                                'id'     => 'my-account-' . $this->id,
     133                                'title'  => __( 'Blogs', 'buddypress' ),
     134                                'href'   => trailingslashit( $blogs_link )
     135                        );
     136
     137                        // My Blogs
     138                        $wp_admin_nav[] = array(
     139                                'parent' => 'my-account-' . $this->id,
     140                                'title'  => __( 'My Blogs', 'buddypress' ),
     141                                'href'   => trailingslashit( $blogs_link . 'my-blogs' )
     142                        );
     143
     144                }
     145
     146                parent::_setup_admin_bar( $wp_admin_nav );
     147        }
     148
    116149        /**
    117150         * Sets up the title for pages and <title>
  • trunk/bp-core/bp-core-adminbar.php

    r3817 r4151  
    22
    33/**
    4  * Reserved for WordPress admin bar functions
     4 * BuddyPress Core Admin Bar
     5 *
     6 * Handles the core functions related to the WordPress Admin Bar
     7 *
     8 * @package BuddyPress
     9 * @subpackage Core
    510 */
    611
     12/**
     13 * Unhook the WordPress core menus. We will be adding our own to replace these.
     14 *
     15 * @todo Single blog/post/group/user/forum/activity menus
     16 * @todo Admin/moderator menus
     17 *
     18 * @since BuddyPress (r4151)
     19 *
     20 * @uses remove_action
     21 * @uses is_network_admin()
     22 * @uses is_user_admin()
     23 */
     24function bp_admin_bar_remove_wp_menus() {
     25        remove_action( 'admin_bar_menu', 'wp_admin_bar_my_account_menu', 10 );
     26        remove_action( 'admin_bar_menu', 'wp_admin_bar_my_sites_menu',   20 );
     27        remove_action( 'admin_bar_menu', 'wp_admin_bar_edit_menu',       30 );
     28        remove_action( 'admin_bar_menu', 'wp_admin_bar_shortlink_menu',  80 );
     29
     30        if ( !is_network_admin() && !is_user_admin() ) {
     31                remove_action( 'admin_bar_menu', 'wp_admin_bar_new_content_menu', 40 );
     32                remove_action( 'admin_bar_menu', 'wp_admin_bar_comments_menu',    50 );
     33                remove_action( 'admin_bar_menu', 'wp_admin_bar_appearance_menu',  60 );
     34        }
     35
     36        remove_action( 'admin_bar_menu', 'wp_admin_bar_updates_menu',    70 );
     37}
     38if ( defined( 'BP_USE_WP_ADMIN_BAR' ) )
     39        add_action( 'bp_init', 'bp_admin_bar_remove_wp_menus', 2 );
     40
    741?>
  • trunk/bp-core/bp-core-component.php

    r3991 r4151  
    5454
    5555        /**
     56         * @var array WordPress admin bar links
     57         */
     58        var $admin_menu;
     59
     60        /**
    5661         * Component loader
    5762         *
     
    189194
    190195                // Register post types
     196                add_action( 'bp_setup_admin_bar',          array ( $this, '_setup_admin_bar'         ), 10 );
     197
     198                // Register post types
    191199                add_action( 'bp_setup_title',              array ( $this, '_setup_title'             ), 10 );
    192200
     
    214222         */
    215223        function _setup_nav( $main_nav = '', $sub_nav = '' ) {
     224
    216225                // No sub nav items without a main nav item
    217226                if ( !empty( $main_nav ) ) {
     
    231240
    232241        /**
     242         * Setup the admin bar
     243         *
     244         * @global obj $wp_admin_bar
     245         * @param array $wp_admin_menus
     246         */
     247        function _setup_admin_bar( $wp_admin_nav = '' ) {
     248
     249                // Do not proceed if constant is not set
     250                if ( !defined( 'BP_USE_WP_ADMIN_BAR' ) )
     251                        return;
     252
     253                // Do we have admin bar menus to add?
     254                if ( !empty( $wp_admin_nav ) ) {
     255
     256                        // Set this objects menus
     257                        $this->admin_menu = $wp_admin_nav;
     258
     259                        // Define the WordPress global
     260                        global $wp_admin_bar;
     261
     262                        // Add each admin menu
     263                        foreach( $this->admin_menu as $admin_menu )
     264                                $wp_admin_bar->add_menu( $admin_menu );
     265                }
     266
     267                // Call action
     268                do_action( 'bp_' . $this->id . '_setup_admin_bar' );
     269        }
     270
     271        /**
    233272         * Setup the component title
    234273         *
  • trunk/bp-core/bp-core-hooks.php

    r3980 r4151  
    2323
    2424// Setup the navigation menu
    25 add_action( 'bp_init',    'bp_setup_nav',            8 );
     25add_action( 'bp_init',    'bp_setup_nav',            7 );
     26
     27// Setup the navigation menu
     28add_action( 'bp_init',    'bp_setup_admin_bar',      8 );
    2629
    2730// Setup the title
    28 add_action( 'bp_init',    'bp_setup_title',          8 );
     31add_action( 'bp_init',    'bp_setup_title',          9 );
    2932
    3033// Setup widgets
     
    5558function bp_setup_nav() {
    5659        do_action( 'bp_setup_nav' );
     60}
     61
     62/**
     63 * Set navigation elements
     64 */
     65function bp_setup_admin_bar() {
     66        do_action( 'bp_setup_admin_bar' );
    5767}
    5868
  • trunk/bp-core/bp-core-loader.php

    r4052 r4151  
    116116                        $bp->pages = bp_core_get_page_names();
    117117
     118                /** Admin Bar *********************************************************/
     119
     120                // Set the 'My Account' global to prevent debug notices
     121                $bp->my_account_menu_id = false;
     122
    118123                /** Component and Action **********************************************/
    119124
  • trunk/bp-forums/bp-forums-loader.php

    r4012 r4151  
    131131                        'screen_function' => 'bp_member_forums_screen_topics',
    132132                        'position'        => 20,
    133                         'item_css_id'     => 'forums-friends'
     133                        'item_css_id'     => 'topics'
    134134                );
    135135
     
    142142                        'screen_function' => 'bp_member_forums_screen_replies',
    143143                        'position'        => 40,
    144                         'item_css_id'     => 'forums-friends'
     144                        'item_css_id'     => 'replies'
    145145                );
    146146
     
    153153                        'screen_function' => 'bp_member_forums_screen_favorites',
    154154                        'position'        => 60,
    155                         'item_css_id'     => 'forums-favs'
     155                        'item_css_id'     => 'favorites'
    156156                );
    157157
    158158                parent::_setup_nav( $main_nav, $sub_nav );
     159        }
     160
     161        /**
     162         * Set up the admin bar
     163         *
     164         * @global obj $bp
     165         */
     166        function _setup_admin_bar() {
     167                global $bp;
     168
     169                // "My Account" menu
     170                if ( is_user_logged_in() ) {
     171
     172                        // Setup the logged in user variables
     173                        $user_domain = $bp->loggedin_user->domain;
     174                        $user_login  = $bp->loggedin_user->userdata->user_login;
     175                        $forums_link = trailingslashit( $user_domain . $this->slug );
     176
     177                        // Add the "My Account" sub menus
     178                        $wp_admin_nav[] = array(
     179                                'parent' => $bp->my_account_menu_id,
     180                                'id'     => 'my-account-' . $this->id,
     181                                'title'  => __( 'Forums', 'buddypress' ),
     182                                'href'   => trailingslashit( $forums_link )
     183                        );
     184
     185                        // Topics
     186                        $wp_admin_nav[] = array(
     187                                'parent' => 'my-account-' . $this->id,
     188                                'title'  => __( 'My Topics', 'buddypress' ),
     189                                'href'   => trailingslashit( $forums_link . 'topics' )
     190                        );
     191
     192                        // Replies
     193                        $wp_admin_nav[] = array(
     194                                'parent' => 'my-account-' . $this->id,
     195                                'title'  => __( 'My Replies', 'buddypress' ),
     196                                'href'   => trailingslashit( $forums_link . 'replies' )
     197                        );
     198
     199                        // Favorites
     200                        $wp_admin_nav[] = array(
     201                                'parent' => 'my-account-' . $this->id,
     202                                'title'  => __( 'My Favorites', 'buddypress' ),
     203                                'href'   => trailingslashit( $forums_link . 'favorites' )
     204                        );
     205                }
     206
     207                parent::_setup_admin_bar( $wp_admin_nav );
    159208        }
    160209
  • trunk/bp-friends/bp-friends-loader.php

    r3917 r4151  
    124124
    125125                parent::_setup_nav( $main_nav, $sub_nav );
     126        }
     127
     128        /**
     129         * Set up the admin bar
     130         *
     131         * @global obj $bp
     132         */
     133        function _setup_admin_bar() {
     134                global $bp;
     135
     136                // "My Account" menu
     137                if ( is_user_logged_in() ) {
     138
     139                        // Setup the logged in user variables
     140                        $user_domain  = $bp->loggedin_user->domain;
     141                        $friends_link = trailingslashit( $user_domain . $this->slug );
     142
     143                        // Pending friend requests
     144                        if ( $count = count( friends_get_friendship_request_user_ids( $bp->loggedin_user->id ) ) ) {
     145                                $title   = sprintf( __( 'Friends <strong>(%s)</strong>',          'buddypress' ), $count );
     146                                $pending = sprintf( __( 'Pending Requests <strong>(%s)</strong>', 'buddypress' ), $count );
     147                        } else {
     148                                $title   = __( 'Friends',             'buddypress' );
     149                                $pending = __( 'No Pending Requests', 'buddypress' );
     150                        }
     151
     152                        // Add the "My Account" sub menus
     153                        $wp_admin_nav[] = array(
     154                                'parent' => $bp->my_account_menu_id,
     155                                'id'     => 'my-account-' . $this->id,
     156                                'title'  => $title,
     157                                'href'   => trailingslashit( $friends_link )
     158                        );
     159
     160                        // My Groups
     161                        $wp_admin_nav[] = array(
     162                                'parent' => 'my-account-' . $this->id,
     163                                'title'  => __( 'My Friends', 'buddypress' ),
     164                                'href'   => trailingslashit( $friends_link )
     165                        );
     166
     167                        // Requests
     168                        $wp_admin_nav[] = array(
     169                                'parent' => 'my-account-' . $this->id,
     170                                'title'  => $pending,
     171                                'href'   => trailingslashit( $friends_link . 'requests' )
     172                        );
     173                }
     174
     175                parent::_setup_admin_bar( $wp_admin_nav );
    126176        }
    127177
  • trunk/bp-groups/bp-groups-loader.php

    r4088 r4151  
    338338
    339339        /**
     340         * Set up the admin bar
     341         *
     342         * @global obj $bp
     343         */
     344        function _setup_admin_bar() {
     345                global $bp;
     346
     347                // Menus for logged in user
     348                if ( is_user_logged_in() ) {
     349
     350                        // Setup the logged in user variables
     351                        $user_domain = $bp->loggedin_user->domain;
     352                        $groups_link = trailingslashit( $user_domain . $this->slug );
     353
     354                        // Pending group invites
     355                        $count = groups_get_invites_for_user( $bp->loggedin_user->id );
     356
     357                        if ( !empty( $count->total ) ) {
     358                                $title   = sprintf( __( 'Groups <strong>(%s)</strong>',          'buddypress' ), $count->total );
     359                                $pending = sprintf( __( 'Pending Invites <strong>(%s)</strong>', 'buddypress' ), $count->total );
     360                        } else {
     361                                $title   = __( 'Groups',             'buddypress' );
     362                                $pending = __( 'No Pending Invites', 'buddypress' );
     363                        }
     364
     365                        // Add the "My Account" sub menus
     366                        $wp_admin_nav[] = array(
     367                                'parent' => $bp->my_account_menu_id,
     368                                'id'     => 'my-account-' . $this->id,
     369                                'title'  => $title,
     370                                'href'   => trailingslashit( $groups_link )
     371                        );
     372
     373                        // My Groups
     374                        $wp_admin_nav[] = array(
     375                                'parent' => 'my-account-' . $this->id,
     376                                'title'  => __( 'My Groups', 'buddypress' ),
     377                                'href'   => trailingslashit( $groups_link )
     378                        );
     379
     380                        // Invitations
     381                        $wp_admin_nav[] = array(
     382                                'parent' => 'my-account-' . $this->id,
     383                                'title'  => $pending,
     384                                'href'   => trailingslashit( $groups_link . 'invites' )
     385                        );
     386                }
     387
     388                parent::_setup_admin_bar( $wp_admin_nav );
     389        }
     390
     391        /**
    340392         * Sets up the title for pages and <title>
    341393         *
  • trunk/bp-members/bp-members-loader.php

    r4088 r4151  
    3838                        'template',
    3939                        'buddybar',
     40                        'adminbar',
    4041                        'functions',
    4142                        'notifications',
  • trunk/bp-messages/bp-messages-loader.php

    r3964 r4151  
    153153                }
    154154
     155                parent::_setup_nav( $main_nav, $sub_nav );
     156        }
     157
     158        /**
     159         * Set up the admin bar
     160         *
     161         * @global obj $bp
     162         */
     163        function _setup_admin_bar() {
     164                global $bp;
     165
     166                // "My Account" menu
     167                if ( is_user_logged_in() ) {
     168
     169                        // Setup the logged in user variables
     170                        $user_domain   = $bp->loggedin_user->domain;
     171                        $messages_link = trailingslashit( $user_domain . $this->slug );
     172
     173                        // Unread message count
     174                        if ( $count = messages_get_unread_count() ) {
     175                                $title = sprintf( __( 'Messages <strong>(%s)</strong>', 'buddypress' ), $count );
     176                                $inbox = sprintf( __( 'Inbox <strong>(%s)</strong>',    'buddypress' ), $count );
     177                        } else {
     178                                $title = __( 'Messages', 'buddypress' );
     179                                $inbox = __( 'Inbox',    'buddypress' );
     180                        }
     181
     182                        // Add main Messages menu
     183                        $wp_admin_nav[] = array(
     184                                'parent' => $bp->my_account_menu_id,
     185                                'id'     => 'my-account-' . $this->id,
     186                                'title'  => $title,
     187                                'href'   => trailingslashit( $messages_link )
     188                        );
     189
     190                        // Inbox
     191                        $wp_admin_nav[] = array(
     192                                'parent' => 'my-account-' . $this->id,
     193                                'title'  => $inbox,
     194                                'href'   => trailingslashit( $messages_link . 'inbox' )
     195                        );
     196
     197                        // Sent Messages
     198                        $wp_admin_nav[] = array(
     199                                'parent' => 'my-account-' . $this->id,
     200                                'title'  => __( 'Sent', 'buddypress' ),
     201                                'href'   => trailingslashit( $messages_link . 'sent' )
     202                        );
     203
     204                        // Compose Message
     205                        $wp_admin_nav[] = array(
     206                                'parent' => 'my-account-' . $this->id,
     207                                'title'  => __( 'Compose', 'buddypress' ),
     208                                'href'   => trailingslashit( $messages_link . 'compose' )
     209                        );
     210
     211                        // Site Wide Notices
     212                        if ( is_super_admin() ) {
     213                                $wp_admin_nav[] = array(
     214                                        'parent' => 'my-account-' . $this->id,
     215                                        'title'  => __( 'All Member Notices', 'buddypress' ),
     216                                        'href'   => trailingslashit( $messages_link . 'notices' )
     217                                );
     218                        }
     219                }
     220
     221                parent::_setup_admin_bar( $wp_admin_nav );
     222        }
     223
     224        /**
     225         * Sets up the title for pages and <title>
     226         *
     227         * @global obj $bp
     228         */
     229        function _setup_title() {
     230                global $bp;
     231
    155232                if ( bp_is_messages_component() ) {
    156233                        if ( bp_is_my_profile() ) {
     
    165242                }
    166243
    167                 parent::_setup_nav( $main_nav, $sub_nav );
     244                parent::_setup_title();
    168245        }
    169246}
  • trunk/bp-settings/bp-settings-loader.php

    r3917 r4151  
    116116                parent::_setup_nav( $main_nav, $sub_nav );
    117117        }
     118
     119        /**
     120         * Set up the admin bar
     121         *
     122         * @global obj $bp
     123         */
     124        function _setup_admin_bar() {
     125                global $bp;
     126
     127                // "My Account" menu
     128                if ( is_user_logged_in() ) {
     129
     130                        // Setup the logged in user variables
     131                        $user_domain   = $bp->loggedin_user->domain;
     132                        $settings_link = trailingslashit( $user_domain . $this->slug );
     133
     134                        // Add main Settings menu
     135                        $wp_admin_nav[] = array(
     136                                'parent' => $bp->my_account_menu_id,
     137                                'id'     => 'my-account-' . $this->id,
     138                                'title'  => __( 'Settings', 'buddypress' ),
     139                                'href'   => trailingslashit( $settings_link )
     140                        );
     141
     142                        // General Account
     143                        $wp_admin_nav[] = array(
     144                                'parent' => 'my-account-' . $this->id,
     145                                'title'  => __( 'General', 'buddypress' ),
     146                                'href'   => trailingslashit( $settings_link . 'general' )
     147                        );
     148
     149                        // Notifications
     150                        $wp_admin_nav[] = array(
     151                                'parent' => 'my-account-' . $this->id,
     152                                'title'  => __( 'Notifications', 'buddypress' ),
     153                                'href'   => trailingslashit( $settings_link . 'notifications' )
     154                        );
     155
     156                        // Delete Account
     157                        if ( !is_super_admin() && empty( $bp->site_options['bp-disable-account-deletion'] ) ) {
     158                                $wp_admin_nav[] = array(
     159                                        'parent' => 'my-account-' . $this->id,
     160                                        'title'  => __( 'Compose', 'buddypress' ),
     161                                        'href'   => trailingslashit( $settings_link . 'delete-account' )
     162                                );
     163                        }
     164                }
     165
     166                parent::_setup_admin_bar( $wp_admin_nav );
     167        }
    118168}
    119169// Create the settingss component
  • trunk/bp-xprofile/bp-xprofile-loader.php

    r3949 r4151  
    152152
    153153        /**
     154         * Set up the admin bar
     155         *
     156         * @global obj $bp
     157         */
     158        function _setup_admin_bar() {
     159                global $bp;
     160
     161                // Menus for logged in user
     162                if ( is_user_logged_in() ) {
     163
     164                        // Profile link
     165                        $profile_link = trailingslashit( $bp->loggedin_user->domain . $this->slug );
     166
     167                        // Add the "Profile" sub menu
     168                        $wp_admin_nav[] = array(
     169                                'parent' => $bp->my_account_menu_id,
     170                                'id'     => 'my-account-' . $this->id,
     171                                'title'  => __( 'Profile', 'buddypress' ),
     172                                'href'   => trailingslashit( $profile_link )
     173                        );
     174
     175                        // View Profile
     176                        $wp_admin_nav[] = array(
     177                                'parent' => 'my-account-' . $this->id,
     178                                'title'  => __( 'View My Profile', 'buddypress' ),
     179                                'href'   => trailingslashit( $profile_link . 'public' )
     180                        );
     181
     182                        // Edit Profile
     183                        $wp_admin_nav[] = array(
     184                                'parent' => 'my-account-' . $this->id,
     185                                'title'  => __( 'Edit My Profile', 'buddypress' ),
     186                                'href'   => trailingslashit( $profile_link . 'edit' )
     187                        );
     188
     189                        // Edit Profile
     190                        $wp_admin_nav[] = array(
     191                                'parent' => 'my-account-' . $this->id,
     192                                'title'  => __( 'Change My Avatar', 'buddypress' ),
     193                                'href'   => trailingslashit( $profile_link . 'change-avatar' )
     194                        );
     195
     196                }
     197
     198                parent::_setup_admin_bar( $wp_admin_nav );
     199        }
     200
     201        /**
    154202         * Sets up the title for pages and <title>
    155203         *
Note: See TracChangeset for help on using the changeset viewer.