Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
12/06/2008 02:30:26 AM (17 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.