Skip to:
Content

BuddyPress.org

Ticket #201: bp_adminbar01_bp-core-adminbar.php.patch

File bp_adminbar01_bp-core-adminbar.php.patch, 7.4 KB (added by burtadsit, 16 years ago)

Patch for bp-core-adminbar.php

  • bp-core-adminbar.php

     
    77                return false;
    88
    99        echo '<div id="wp-admin-bar">';
    10         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>';
     10
     11        // **** Do bp-adminbar-logo Actions ********
     12        do_action('bp-adminbar-logo');
     13
    1114        echo '<ul class="main-nav">';
    1215       
    13         // **** "My Account" Menu ******
    14        
     16        // **** Do bp-adminbar-menus Actions ********
     17        do_action('bp-adminbar-menus');
     18
     19        echo '</ul>';
     20        echo '</div>';
     21}
     22
     23// **** Default BuddyPress admin bar logo ********
     24function bp_adminbar_logo() {
     25        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>';
     26}
     27
     28// **** "Log In" and "Sign Up" links (Visible when not logged in) ********
     29function bp_adminbar_login_menu() {
     30        if ( !is_user_logged_in() ) {   
     31                echo '<li  class="bp-login"><a href="' . site_url() . '/wp-login.php?redirect_to=' . urlencode(get_bloginfo('siteurl') . $_SERVER['REQUEST_URI']) . '">' . __('Log In', 'buddypress') . '</a></li>';
     32                // Show "Sign Up" link if registrations are allowed
     33                if (get_site_option('registration') != 'none') {
     34                        echo '<li class="bp-signup"><a href="' . site_url() . '/wp-signup.php">' . __('Create Account', 'buddypress') . '</a></li>';
     35                }
     36        }
     37}
     38
     39// **** "My Account" Menu ******
     40function bp_adminbar_account_menu() {
    1541        if ( is_user_logged_in() ) {
    16        
     42                global $bp;
     43               
    1744                echo '<li><a href="">';
    1845       
    1946                echo __('My Account', 'buddypress') . '</a>';
     
    4774                echo '</ul>';
    4875                echo '</li>';
    4976        }
     77}
     78
     79// return a string indicating user's role in that blog
     80function get_blog_role_for_user($user, $blog ) {       
     81               
     82                $roles=get_usermeta($user,'wp_' . $blog . '_capabilities');
    5083       
    51         // *** "My Blogs" Menu ********
    52        
     84                if ( isset( $roles['subscriber'] ) )
     85                        $role='Subscriber';
     86                elseif  ( isset( $roles['contributor'] ) )
     87                        $role='Contributor';
     88                elseif  ( isset( $roles['author'] ) )
     89                        $role='Author';
     90                elseif ( isset( $roles['editor'] ) )
     91                        $role='Editor';
     92                elseif ( isset( $roles['administrator'] ) )
     93                        $role='Admin';
     94                else
     95                        return false;
     96                       
     97                return $role;
     98}
     99
     100// *** "My Blogs" Menu ********
     101function bp_adminbar_blogs_menu() {
    53102        if ( is_user_logged_in() ) {
     103                global $bp;
     104               
    54105                if ( function_exists('bp_blogs_install') ) {
    55                         $blogs = BP_Blogs_Blog::get_blogs_for_user( $bp['loggedin_userid'] );
     106                        $blogs = get_blogs_of_user( $bp['loggedin_userid'] ); // find *all* blogs with any kind of role
    56107
    57108                        echo '<li><a href="' . $bp['loggedin_domain'] . $bp['blogs']['slug'] . '/my-blogs">';
    58109                        _e('My Blogs', 'buddypress');
    59110                        echo '</a>';
    60111               
    61112                        echo '<ul>';                   
    62                         if ( is_array( $blogs['blogs'] ) ) {
     113                        if ( is_array( $blogs )) {
    63114                       
    64115                                $counter = 0;
    65                                 foreach( $blogs['blogs'] as $blog ) {
     116                                foreach( $blogs as $blog ) {
     117                                        $role = get_blog_role_for_user( $bp['loggedin_userid'], $blog->userblog_id );
     118
    66119                                        $alt = ( $counter % 2 == 0 ) ? ' class="alt"' : '';
    67120                                        echo '<li' . $alt . '>';
    68                                         echo '<a href="' . $blog['siteurl'] . '">' . $blog['title'] . '</a>';
    69                                
    70                                         echo '<ul>';
    71                                         echo '<li class="alt"><a href="' . $blog['siteurl']  . '/wp-admin/">' . __('Dashboard', 'buddypress') . '</a></li>';
    72                                         echo '<li><a href="' . $blog['siteurl']  . '/wp-admin/post-new.php">' . __('New Post', 'buddypress') . '</a></li>';
    73                                         echo '<li class="alt"><a href="' . $blog['siteurl']  . '/wp-admin/edit.php">' . __('Manage Posts', 'buddypress') . '</a></li>';
    74                                         echo '<li><a href="' . $blog['siteurl']  . '/wp-admin/themes.php">' . __('Switch Theme', 'buddypress') . '</a></li>';                                   
    75                                         echo '<li class="alt"><a href="' . $blog['siteurl']  . '/wp-admin/edit-comments.php">' . __('Manage Comments', 'buddypress') . '</a></li>';                                     
    76                                         echo '</ul>';
    77                                
     121                                        echo '<a href="' . $blog->siteurl . '">' . $blog->blogname . '</a>';
     122                                        if (!('Subscriber' == $role)) { // then they have something to display on the flyout menu
     123                                                echo '<ul>';
     124                                                echo '<li class="alt"><a href="' . $blog->siteurl  . '/wp-admin/">' . __('Dashboard', 'buddypress') . '</a></li>';
     125                                                echo '<li><a href="' . $blog->siteurl  . '/wp-admin/post-new.php">' . __('New Post', 'buddypress') . '</a></li>';
     126                                                echo '<li class="alt"><a href="' . $blog->siteurl  . '/wp-admin/edit.php">' . __('Manage Posts', 'buddypress') . '</a></li>';
     127                                                echo '<li class="alt"><a href="' . $blog->siteurl  . '/wp-admin/edit-comments.php">' . __('Manage Comments', 'buddypress') . '</a></li>';                                       
     128                                                if ('Admin' == $role) {
     129                                                        echo '<li><a href="' . $blog->siteurl  . '/wp-admin/themes.php">' . __('Switch Theme', 'buddypress') . '</a></li>';
     130                                                }                                       
     131                                                echo '</ul>';                                   
     132                                        }
    78133                                        echo '</li>';
    79134                                        $counter++;
    80135                                }
     
    90145                        echo '</li>';
    91146                }
    92147        }
    93        
    94         // **** "Notifications" Menu *********
    95        
     148}       
     149
     150// **** "Notifications" Menu *********
     151function bp_adminbar_notifications_menu() {     
    96152        if ( is_user_logged_in() ) {
     153                global $bp;
    97154                echo '<li id="notifications_menu"><a href="' . $bp['loggedin_domain'] . '">';
    98155                _e('Notifications', 'buddypress');
    99156       
     
    117174                echo '</ul>';
    118175                echo '</li>';
    119176        }
    120        
    121         // **** "Blog Authors" Menu (visible when not logged in) ********
    122        
     177}
     178
     179// **** "Blog Authors" Menu (visible when not logged in) ********
     180function bp_adminbar_authors_menu() {
     181        global $current_blog;
    123182        if ( $current_blog->blog_id > 1 ) {
    124183                $authors = get_users_of_blog();
    125184       
     
    146205                        echo '</li>';
    147206                }
    148207        }
     208}
    149209       
    150         // **** "Random" Menu (visible when not logged in) ********
    151         ?>
     210// **** "Random" Menu (visible when not logged in) ********
     211function bp_adminbar_random_menu() {
     212        global $bp; ?>
    152213        <li class="align-right">
    153214                <a href="#"><?php _e( 'Visit', 'buddypress' ) ?></a>
    154215                <ul class="random-list">
     
    164225                        <?php endif; ?>
    165226                </ul>
    166227        </li>
    167         <?php
    168        
    169         echo '</ul>';
    170         echo '</div>';
     228<?php
    171229}
    172230
     231function oci_community_menu() {
     232    echo '<li><a href="http://community.ourcommoninterest.org">Community</a>';
     233                echo '<ul class="oci-community-list">';
     234    echo '<li class="alt"><a href="http://community.ourcommoninterest.org/news">News</a></li>';
     235    echo '<li><a href="http://community.ourcommoninterest.org/members">Members</a></li>';
     236    echo '<li class="alt"><a href="http://community.ourcommoninterest.org/groups">Groups</a></li>';
     237    echo '<li><a href="http://community.ourcommoninterest.org/blogs">Blogs</a></li>';
     238    echo '<li class="alt"><a href="http://ourcommoninterest.org/bbpress">Forums</a></li>';
     239                echo '</ul>';
     240                echo '</li>';
     241}
     242
     243add_action('bp-adminbar-logo','bp_adminbar_logo');
     244add_action('bp-adminbar-menus','bp_adminbar_login_menu',2);
     245add_action('bp-adminbar-menus','oci_community_menu',3);
     246add_action('bp-adminbar-menus','bp_adminbar_account_menu',4);
     247add_action('bp-adminbar-menus','bp_adminbar_blogs_menu',6);
     248add_action('bp-adminbar-menus','bp_adminbar_notifications_menu',8);
     249add_action('bp-adminbar-menus','bp_adminbar_authors_menu',12);
     250add_action('bp-adminbar-menus','bp_adminbar_random_menu',100);
     251
    173252add_action( 'wp_footer', 'bp_core_admin_bar' );
    174 //add_action( 'admin_footer', 'bp_core_admin_bar' )
    175253
    176 ?>
    177  No newline at end of file
     254?>