Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
12/06/2008 02:30:26 AM (18 years ago)
Author:
apeatling
Message:

Integrating admin bar patch from deadpan110/burtadsit

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-core/bp-core-adminbar.php

    r623 r627  
    1010
    1111        echo '<div id="wp-admin-bar">';
    12         echo '<a href="' . get_blog_option( 1, 'siteurl' ) . '"><img id="admin-bar-logo" src="' . site_url() . '/wp-content/mu-plugins/bp-core/images/admin_bar_logo.gif" alt="BuddyPress" /></a>';
     12
     13        // **** Do bp-adminbar-logo Actions ********
     14        do_action( 'bp-adminbar-logo' );
     15
    1316        echo '<ul class="main-nav">';
    1417       
    15         // **** "My Account" Menu ******
    16        
     18        // **** Do bp-adminbar-menus Actions ********
     19        do_action( 'bp-adminbar-menus' );
     20
     21        echo '</ul>';
     22        echo '</div>';
     23}
     24
     25// **** Default BuddyPress admin bar logo ********
     26function bp_adminbar_logo() {
     27        echo '<a href="' . get_blog_option( 1, 'siteurl' ) . '"><img id="admin-bar-logo" src="' . apply_filters( 'bp_admin_bar_logo_src', site_url() . '/wp-content/mu-plugins/bp-core/images/admin_bar_logo.gif' ) . '" alt="' . apply_filters( 'bp_admin_bar_logo_alt_text', __( 'BuddyPress', 'buddypress' ) ) . '" /></a>';
     28}
     29
     30// **** "Log In" and "Sign Up" links (Visible when not logged in) ********
     31function bp_adminbar_login_menu() {
     32        if ( !is_user_logged_in() ) {   
     33                echo '<li class="bp-login no-arrow"><a href="' . site_url() . '/wp-login.php?redirect_to=' . urlencode(get_bloginfo('siteurl') . $_SERVER['REQUEST_URI']) . '">' . __( 'Log In', 'buddypress' ) . '</a></li>';
     34               
     35                // Show "Sign Up" link if registrations are allowed
     36                if ( get_site_option( 'registration' ) != 'none' ) {
     37                        echo '<li class="bp-signup no-arrow"><a href="' . site_url() . '/wp-signup.php">' . __( 'Create Account', 'buddypress' ) . '</a></li>';
     38                }
     39        }
     40}
     41
     42// **** "My Account" Menu ******
     43function bp_adminbar_account_menu() {
    1744        if ( is_user_logged_in() ) {
    18        
     45                global $bp;
     46               
    1947                echo '<li><a href="">';
    2048       
    21                 echo __('My Account', 'buddypress') . '</a>';
     49                echo __( 'My Account', 'buddypress' ) . '</a>';
    2250                echo '<ul>';
    2351       
    … …  
    2654                foreach( $bp['bp_nav'] as $nav_item ) {
    2755                        $alt = ( $counter % 2 == 0 ) ? ' class="alt"' : '';
     56                       
    2857                        echo '<li' . $alt . '>';
    2958                        echo '<a id="' . $nav_item['css_id'] . '" href="' . $nav_item['link'] . '">' . $nav_item['name'] . '</a>';
    … …  
    4170               
    4271                        echo '</li>';
     72                       
    4373                        $counter++;
    4474                }
    … …  
    5080                echo '</li>';
    5181        }
    52        
    53         // *** "My Blogs" Menu ********
    54        
     82}
     83
     84// return a string indicating user's role in that blog
     85function get_blog_role_for_user( $user, $blog ) {
     86        $roles = get_usermeta( $user, 'wp_' . $blog . '_capabilities' );
     87
     88        if ( isset( $roles['subscriber'] ) )
     89                $role = __( 'Subscriber', 'buddypress' );
     90        elseif  ( isset( $roles['contributor'] ) )
     91                $role = __( 'Contributor', 'buddypress' );
     92        elseif  ( isset( $roles['author'] ) )
     93                $role = __( 'Author', 'buddypress' );
     94        elseif ( isset( $roles['editor'] ) )
     95                $role = __( 'Editor', 'buddypress' );
     96        elseif ( isset( $roles['administrator'] ) )
     97                $role = __( 'Admin', 'buddypress' );
     98        else
     99                return false;
     100       
     101        return $role;
     102}
     103
     104// *** "My Blogs" Menu ********
     105function bp_adminbar_blogs_menu() {
    55106        if ( is_user_logged_in() ) {
     107                global $bp;
     108       
    56109                if ( function_exists('bp_blogs_install') ) {
    57                         $blogs = BP_Blogs_Blog::get_blogs_for_user( $bp['loggedin_userid'] );
     110                        $blogs = get_blogs_of_user( $bp['loggedin_userid'] ); // find *all* blogs with any kind of role
    58111
    59112                        echo '<li><a href="' . $bp['loggedin_domain'] . $bp['blogs']['slug'] . '/my-blogs">';
    60                         _e('My Blogs', 'buddypress');
     113                       
     114                        _e( 'My Blogs', 'buddypress' );
     115                       
    61116                        echo '</a>';
    62                
     117       
    63118                        echo '<ul>';                   
    64                         if ( is_array( $blogs['blogs'] ) ) {
    65                        
     119                        if ( is_array( $blogs )) {
     120               
    66121                                $counter = 0;
    67                                 foreach( $blogs['blogs'] as $blog ) {
     122                                foreach( $blogs as $blog ) {
     123                                        $role = get_blog_role_for_user( $bp['loggedin_userid'], $blog->userblog_id );
     124
    68125                                        $alt = ( $counter % 2 == 0 ) ? ' class="alt"' : '';
    69126                                        echo '<li' . $alt . '>';
    70                                         echo '<a href="' . $blog['siteurl'] . '">' . $blog['title'] . '</a>';
    71                                
    72                                         echo '<ul>';
    73                                         echo '<li class="alt"><a href="' . $blog['siteurl']  . '/wp-admin/">' . __('Dashboard', 'buddypress') . '</a></li>';
    74                                         echo '<li><a href="' . $blog['siteurl']  . '/wp-admin/post-new.php">' . __('New Post', 'buddypress') . '</a></li>';
    75                                         echo '<li class="alt"><a href="' . $blog['siteurl']  . '/wp-admin/edit.php">' . __('Manage Posts', 'buddypress') . '</a></li>';
    76                                         echo '<li><a href="' . $blog['siteurl']  . '/wp-admin/themes.php">' . __('Switch Theme', 'buddypress') . '</a></li>';                                   
    77                                         echo '<li class="alt"><a href="' . $blog['siteurl']  . '/wp-admin/edit-comments.php">' . __('Manage Comments', 'buddypress') . '</a></li>';                                     
    78                                         echo '</ul>';
    79                                
     127                                        echo '<a href="' . $blog->siteurl . '">' . $blog->blogname . '</a>';
     128                                        if (!('Subscriber' == $role)) { // then they have something to display on the flyout menu
     129                                                echo '<ul>';
     130                                                echo '<li class="alt"><a href="' . $blog->siteurl  . '/wp-admin/">' . __('Dashboard', 'buddypress') . '</a></li>';
     131                                                echo '<li><a href="' . $blog->siteurl  . '/wp-admin/post-new.php">' . __('New Post', 'buddypress') . '</a></li>';
     132                                                echo '<li class="alt"><a href="' . $blog->siteurl  . '/wp-admin/edit.php">' . __('Manage Posts', 'buddypress') . '</a></li>';
     133                                                echo '<li class="alt"><a href="' . $blog->siteurl  . '/wp-admin/edit-comments.php">' . __('Manage Comments', 'buddypress') . '</a></li>';                                       
     134                                                if ('Admin' == $role) {
     135                                                        echo '<li><a href="' . $blog->siteurl  . '/wp-admin/themes.php">' . __('Switch Theme', 'buddypress') . '</a></li>';
     136                                                }                                       
     137                                                echo '</ul>';                                   
     138                                        }
    80139                                        echo '</li>';
    81140                                        $counter++;
    82141                                }
    83142                        }
    84                
     143       
    85144                        $alt = ( $counter % 2 == 0 ) ? ' class="alt"' : '';
    86145
    … …  
    88147                        echo '<a href="' . $bp['loggedin_domain'] . $bp['blogs']['slug'] . '/create-a-blog">' . __('Create a Blog!', 'buddypress') . '</a>';
    89148                        echo '</li>';
    90                
     149       
    91150                        echo '</ul>';
    92151                        echo '</li>';
    93152                }
    94153        }
    95        
    96         // **** "Notifications" Menu *********
    97        
     154}       
     155
     156// **** "Notifications" Menu *********
     157function bp_adminbar_notifications_menu() {     
    98158        if ( is_user_logged_in() ) {
     159                global $bp;
     160               
    99161                echo '<li id="notifications_menu"><a href="' . $bp['loggedin_domain'] . '">';
    100                 _e('Notifications', 'buddypress');
     162                _e( 'Notifications', 'buddypress' );
    101163       
    102164                if ( $notifications = bp_core_get_notifications_for_user( $bp['loggedin_userid']) ) { ?>
    … …  
    104166                <?php
    105167                }
     168               
    106169                echo '</a>';
    107170                echo '<ul>';
     171               
    108172                if ( $notifications ) { ?>
    109173                        <?php $counter = 0; ?>
    … …  
    117181                <?php
    118182                }
     183               
    119184                echo '</ul>';
    120185                echo '</li>';
    121186        }
    122        
    123         // **** "Blog Authors" Menu (visible when not logged in) ********
     187}
     188
     189// **** "Blog Authors" Menu (visible when not logged in) ********
     190function bp_adminbar_authors_menu() {
     191        global $current_blog;
    124192       
    125193        if ( $current_blog->blog_id > 1 ) {
    … …  
    149217                }
    150218        }
    151        
    152         // **** "Random" Menu (visible when not logged in) ********
    153         ?>
     219}
     220       
     221// **** "Random" Menu (visible when not logged in) ********
     222function bp_adminbar_random_menu() {
     223        global $bp; ?>
    154224        <li class="align-right">
    155225                <a href="#"><?php _e( 'Visit', 'buddypress' ) ?></a>
    … …  
    175245}
    176246
     247add_action( 'bp-adminbar-logo', 'bp_adminbar_logo' );
     248add_action( 'bp-adminbar-menus', 'bp_adminbar_login_menu', 2 );
     249add_action( 'bp-adminbar-menus', 'bp_adminbar_account_menu', 4 );
     250add_action( 'bp-adminbar-menus', 'bp_adminbar_blogs_menu', 6 );
     251add_action( 'bp-adminbar-menus', 'bp_adminbar_notifications_menu', 8 );
     252add_action( 'bp-adminbar-menus', 'bp_adminbar_authors_menu', 12 );
     253add_action( 'bp-adminbar-menus', 'bp_adminbar_random_menu', 100 );
     254
    177255add_action( 'wp_footer', 'bp_core_admin_bar' );
    178 //add_action( 'admin_footer', 'bp_core_admin_bar' )
    179256
    180257?>
Note: See TracChangeset for help on using the changeset viewer.