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-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}
Note: See TracChangeset for help on using the changeset viewer.