Skip to:
Content

BuddyPress.org

Ticket #3294: 3294.1.diff

File 3294.1.diff, 11.6 KB (added by boonebgorges, 13 years ago)
  • bp-members/bp-members-adminbar.php

    function bp_members_admin_bar_my_account_logout() { 
    123123if ( defined( 'BP_USE_WP_ADMIN_BAR' ) )
    124124        add_action( 'bp_setup_admin_bar', 'bp_members_admin_bar_my_account_logout', 9999 );
    125125
     126function bp_members_admin_bar_user_admin_menu() {
     127        global $wpdb, $bp, $wp_admin_bar;
     128
     129        // Only show if viewing a user
     130        if ( !bp_is_user() )
     131                return false;
     132
     133        // Don't show this menu to non site admins or if you're viewing your own profile
     134        if ( !current_user_can( 'edit_users' ) || bp_is_my_profile() )
     135                return false;
     136               
     137        $avatar = bp_get_displayed_user_avatar( array( 'type' => 'thumb', 'width' => '10',                      'height' => '10' ) );
     138        $parent_id = $avatar ? 'user-admin-with-avatar' : 'user-admin';
     139       
     140        $wp_admin_bar->add_menu( array( 'id' => $parent_id, 'title' => /* $avatar . */ __( 'User Admin' ), 'href' => bp_displayed_user_domain() ) );
     141 
     142        // Account Status
     143        $wp_admin_bar->add_menu( array(
     144                'parent' => $parent_id,
     145                'id'     => 'account-status',
     146                'title'  => __( 'Account Status', 'buddypress' ),
     147                'href'   => bp_displayed_user_domain()
     148        ) );
     149       
     150        // Account Status > Spam/unspam this user
     151        if ( !bp_core_is_user_spammer( bp_displayed_user_id() ) ) {
     152                $wp_admin_bar->add_menu( array(
     153                        'parent' => 'account-status',
     154                        'id'     => 'spam',
     155                        'title'  => sprintf( __( 'Mark %s as Spam', 'buddypress' ), esc_attr( bp_get_displayed_user_fullname() ) ),
     156                        'href'   => wp_nonce_url( bp_displayed_user_domain() . 'admin/mark-spammer/', 'mark-unmark-spammer' ),
     157                        'meta'   => array( 'onclick' => 'confirm(" ' . __( 'Are you sure you want to mark this user as a spammer?', 'buddypress' ) . '");' )
     158                ) );
     159        } else {
     160                $wp_admin_bar->add_menu( array(
     161                        'parent' => 'account-status',
     162                        'id'     => 'unspam',
     163                        'title'  => __( 'Not a Spammer', 'buddypress' ),
     164                        'href'   => wp_nonce_url( bp_displayed_user_domain() . 'admin/unmark-spammer/', 'mark-unmark-spammer' ),
     165                        'meta'   => array( 'onclick' => 'confirm(" ' . __( 'Are you sure you want to unmark this user as a spammer?', 'buddypress' ) . '");' )
     166                ) );
     167        }
     168       
     169        // Account Status > Delete this account
     170        $wp_admin_bar->add_menu( array(
     171                'parent' => 'account-status',
     172                'id'     => 'delete-account',
     173                'title'  => sprintf( __( "Delete %s's Account", 'buddypress' ), esc_attr( bp_get_displayed_user_fullname() ) ),
     174                'href'   => wp_nonce_url( bp_displayed_user_domain() . 'admin/delete-user/', 'delete-user' ),
     175                'meta'   => array( 'onclick' => 'confirm(" ' . __( 'Are you sure you want to mark this user as a spammer?', 'buddypress' ) . '");' )
     176        ) );
     177       
     178        if ( bp_is_active( 'activity' ) ) {
     179                // Activity
     180                $wp_admin_bar->add_menu( array( 
     181                        'parent' => $parent_id,
     182                        'id'     => 'activity',
     183                        'title'  => __( "Activity", 'buddypress' ),
     184                        'href'   => bp_get_members_component_link( 'activity' )
     185                ) );
     186               
     187                // Activity > Delete user's activity
     188                $wp_admin_bar->add_menu( array(
     189                        'parent' => 'activity',
     190                        'id'     => 'delete-activity',
     191                        'title'  => sprintf( __( "Delete %s's Activity", 'buddypress' ), esc_attr( bp_get_displayed_user_fullname() ) ),
     192                        'href'   => bp_get_members_component_link( 'activity', 'admin', array( 'clear' => 'all' ), true ),
     193                        'meta'   => array( 'onclick' => 'confirm(" ' . __( "Are you sure you want to delete this user's activity?", 'buddypress' ) . '");' )
     194                ) );
     195        }
     196       
     197        if ( bp_is_active( 'xprofile' ) ) {
     198                // Profile
     199                $wp_admin_bar->add_menu( array( 
     200                        'parent' => $parent_id,
     201                        'id'     => 'profile',
     202                        'title'  => __( "Profile", 'buddypress' ),
     203                        'href'   => bp_get_members_component_link( 'profile' )
     204                ) );
     205               
     206                // Profile > Edit this user's profile
     207                $wp_admin_bar->add_menu( array(
     208                        'parent' => 'profile',
     209                        'id'     => 'edit-profile',
     210                        'title'  => sprintf( __( "Edit %s's Profile", 'buddypress' ), esc_attr( bp_get_displayed_user_fullname() ) ),
     211                        'href'   => bp_get_members_component_link( 'profile', 'edit' )
     212                ) );
     213               
     214                // Profile > Edit this user's avatar
     215                $wp_admin_bar->add_menu( array(
     216                        'parent' => 'profile',
     217                        'id'     => 'edit-avatar',
     218                        'title'  => sprintf( __( "Edit %s's Avatar", 'buddypress' ), esc_attr( bp_get_displayed_user_fullname() ) ),
     219                        'href'   => bp_get_members_component_link( 'profile', 'change-avatar' )
     220                ) );
     221        }
     222       
     223        if ( bp_is_active( 'messages' ) ) {
     224                // Messages
     225                $wp_admin_bar->add_menu( array( 
     226                        'parent' => $parent_id,
     227                        'id'     => 'messages',
     228                        'title'  => __( "Messages", 'buddypress' ),
     229                        'href'   => bp_get_members_component_link( 'messages' )
     230                ) );
     231               
     232                // Messages > Empty this user's inbox
     233                $wp_admin_bar->add_menu( array(
     234                        'parent' => 'messages',
     235                        'id'     => 'empty-inbox',
     236                        'title'  => sprintf( __( "Empty %s's Inbox", 'buddypress' ), esc_attr( bp_get_displayed_user_fullname() ) ),
     237                        'href'   => bp_get_members_component_link( 'messages', 'admin', array( 'clear' => 'inbox' ), true ),
     238                        'meta'   => array( 'onclick' => 'confirm(" ' . __( "Are you sure you want to empty this user's inbox?", 'buddypress' ) . '");' )
     239                ) );
     240                       
     241                // Messages > Empty this user's sentbox
     242                $wp_admin_bar->add_menu( array(
     243                        'parent' => 'messages',
     244                        'id'     => 'empty-sentbox',
     245                        'title'  => sprintf( __( "Empty %s's Sent Box", 'buddypress' ), esc_attr( bp_get_displayed_user_fullname() ) ),
     246                        'href'   => bp_get_members_component_link( 'messages', 'admin', array( 'clear' => 'sentbox' ), true ),
     247                        'meta'   => array( 'onclick' => 'confirm(" ' . __( "Are you sure you want to empty this user's Sent box?", 'buddypress' ) . '");' )
     248                ) );
     249               
     250                // Messages > Empty all of this user's messages
     251                $wp_admin_bar->add_menu( array(
     252                        'parent' => 'messages',
     253                        'id'     => 'empty-all',
     254                        'title'  => sprintf( __( "Empty All %s's Messages", 'buddypress' ), esc_attr( bp_get_displayed_user_fullname() ) ),
     255                        'href'   => bp_get_members_component_link( 'messages', 'admin', array( 'clear' => 'all' ), true ),
     256                        'meta'   => array( 'onclick' => 'confirm(" ' . __( "Are you sure you want to empty this user's messages?", 'buddypress' ) . '");' )
     257                ) );
     258        }
     259       
     260        if ( bp_is_active( 'friends' ) ) {
     261                // Friends
     262                $wp_admin_bar->add_menu( array( 
     263                        'parent' => $parent_id,
     264                        'id'     => 'friends',
     265                        'title'  => __( "Friends", 'buddypress' ),
     266                        'href'   => bp_get_members_component_link( 'friends' )
     267                ) );
     268               
     269                // Friends > Remove this user's friendships
     270                $wp_admin_bar->add_menu( array(
     271                        'parent' => 'friends',
     272                        'id'     => 'remove-friendships',
     273                        'title'  => sprintf( __( "Remove %s's Friendships", 'buddypress' ), esc_attr( bp_get_displayed_user_fullname() ) ),
     274                        'href'   => bp_get_members_component_link( 'friends', 'admin', array( 'clear' => 'friendships' ), true ),
     275                        'meta'   => array( 'onclick' => 'confirm(" ' . __( "Are you sure you want to remove this user's friendships?", 'buddypress' ) . '");' )
     276                ) );
     277                       
     278                // Friends > Clear this user's friend requests
     279                $wp_admin_bar->add_menu( array(
     280                        'parent' => 'friends',
     281                        'id'     => 'clear-friendship-requests',
     282                        'title'  => sprintf( __( "Clear %s's Friendship Requests", 'buddypress' ), esc_attr( bp_get_displayed_user_fullname() ) ),
     283                        'href'   => bp_get_members_component_link( 'friends', 'admin', array( 'clear' => 'invites' ), true ),
     284                        'meta'   => array( 'onclick' => 'confirm(" ' . __( "Are you sure you want to clear this user's friendship requests?", 'buddypress' ) . '");' )
     285                ) );
     286        }
     287       
     288        if ( bp_is_active( 'groups' ) ) {
     289                // Groups
     290                $wp_admin_bar->add_menu( array( 
     291                        'parent' => $parent_id,
     292                        'id'     => 'groups',
     293                        'title'  => __( "Groups", 'buddypress' ),
     294                        'href'   => bp_get_members_component_link( 'groups' )
     295                ) );
     296               
     297                // Groups > Remove this user from all groups
     298                $wp_admin_bar->add_menu( array(
     299                        'parent' => 'groups',
     300                        'id'     => 'remove-groups',
     301                        'title'  => sprintf( __( "Remove %s From All Groups", 'buddypress' ), esc_attr( bp_get_displayed_user_fullname() ) ),
     302                        'href'   => bp_get_members_component_link( 'groups', 'admin', array( 'clear' => 'memberships' ), true ),
     303                        'meta'   => array( 'onclick' => 'confirm(" ' . __( "Are you sure you want to remove this user from all groups?", 'buddypress' ) . '");' )
     304                ) );
     305                       
     306                // Groups > Clear this user's group invites
     307                $wp_admin_bar->add_menu( array(
     308                        'parent' => 'groups',
     309                        'id'     => 'clear-group-invites',
     310                        'title'  => sprintf( __( "Clear %s's Group Invitations", 'buddypress' ), esc_attr( bp_get_displayed_user_fullname() ) ),
     311                        'href'   => bp_get_members_component_link( 'groups', 'admin', array( 'clear' => 'invites' ), true ),
     312                        'meta'   => array( 'onclick' => 'confirm(" ' . __( "Are you sure you want to clear this user's group invitations?", 'buddypress' ) . '");' )
     313                ) );
     314        }
     315       
     316        if ( bp_is_active( 'forums' ) ) {
     317                // Forums
     318                $wp_admin_bar->add_menu( array( 
     319                        'parent' => $parent_id,
     320                        'id'     => 'forums',
     321                        'title'  => __( "Forums", 'buddypress' ),
     322                        'href'   => bp_get_members_component_link( 'forums' )
     323                ) );
     324               
     325                // Forums > Delete this user's topics
     326                $wp_admin_bar->add_menu( array(
     327                        'parent' => 'forums',
     328                        'id'     => 'delete-topics',
     329                        'title'  => sprintf( __( "Delete %s's Topics", 'buddypress' ), esc_attr( bp_get_displayed_user_fullname() ) ),
     330                        'href'   => bp_get_members_component_link( 'forums', 'admin', array( 'clear' => 'topics' ), true ),
     331                        'meta'   => array( 'onclick' => 'confirm(" ' . __( "Are you sure you want to delete this user's forum topics?", 'buddypress' ) . '");' )
     332                ) );
     333                       
     334                // Forums > Delete this user's forum replies
     335                $wp_admin_bar->add_menu( array(
     336                        'parent' => 'forums',
     337                        'id'     => 'delete-replies',
     338                        'title'  => sprintf( __( "Delete %s's Replies", 'buddypress' ), esc_attr( bp_get_displayed_user_fullname() ) ),
     339                        'href'   => bp_get_members_component_link( 'forums', 'admin', array( 'clear' => 'replies' ), true ),
     340                        'meta'   => array( 'onclick' => 'confirm(" ' . __( "Are you sure you want to delete this user's forum replies?", 'buddypress' ) . '");' )
     341                ) );
     342               
     343                // Forums > Delete all of this user's forum posts
     344                $wp_admin_bar->add_menu( array(
     345                        'parent' => 'forums',
     346                        'id'     => 'delete-posts',
     347                        'title'  => sprintf( __( "Delete All %s's Posts", 'buddypress' ), esc_attr( bp_get_displayed_user_fullname() ) ),
     348                        'href'   => bp_get_members_component_link( 'forums', 'admin', array( 'clear' => 'all' ), true ),
     349                        'meta'   => array( 'onclick' => 'confirm(" ' . __( "Are you sure you want to delete all of this user's forum posts?", 'buddypress' ) . '");' )
     350                ) );
     351        }
     352
     353        if ( bp_is_active( 'settings' ) ) {
     354                // Settings
     355                $wp_admin_bar->add_menu( array( 
     356                        'parent' => $parent_id,
     357                        'id'     => 'settings',
     358                        'title'  => __( "Settings", 'buddypress' ),
     359                        'href'   => bp_get_members_component_link( 'settings' )
     360                ) );
     361               
     362                // Settings > Edit this user's general settings
     363                $wp_admin_bar->add_menu( array(
     364                        'parent' => 'settings',
     365                        'id'     => 'edit-general-settings',
     366                        'title'  => sprintf( __( "Edit %s's General Settings", 'buddypress' ), esc_attr( bp_get_displayed_user_fullname() ) ),
     367                        'href'   => bp_get_members_component_link( 'settings', 'general' )
     368                ) );
     369                       
     370                // Settings > Edit this user's notification settings
     371                $wp_admin_bar->add_menu( array(
     372                        'parent' => 'settings',
     373                        'id'     => 'edit-notifications-settings',
     374                        'title'  => sprintf( __( "Edit %s's Notification Settings", 'buddypress' ), esc_attr( bp_get_displayed_user_fullname() ) ),
     375                        'href'   => bp_get_members_component_link( 'settings', 'notifications' )
     376                ) );
     377        }
     378}
     379add_action( 'bp_setup_admin_bar', 'bp_members_admin_bar_user_admin_menu', 75 );
     380
    126381?>
     382 No newline at end of file