Skip to:
Content

BuddyPress.org

Changeset 627


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

Integrating admin bar patch from deadpan110/burtadsit

Location:
trunk/bp-core
Files:
2 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?>
  • trunk/bp-core/css/admin-bar.css

    r508 r627  
    1212        background:url(../images/admin_bar_back.gif) #818181 repeat-x !important;
    1313}
    14         #wp-admin-bar * { z-index: 999 !important; }
    15 
    16         #wp-admin-bar img#admin-bar-logo {
    17                 position: absolute !important;
    18                 top: 8px;
    19                 left: 10px;
    20         }
     14
     15#wp-admin-bar * { z-index: 999 !important; }
     16
     17#wp-admin-bar img#admin-bar-logo {
     18        position: absolute !important;
     19        top: 8px;
     20        left: 10px;
     21}
    2122
    2223#wp-admin-bar a img {
     
    3233#wp-admin-bar li a {
    3334        padding: 6px 25px 7px 15px !important;
     35}
     36        #wp-admin-bar li.no-arrow a {
     37                padding-right: 15px !important;
     38        }
     39
     40#wp-admin-bar li:hover, #wp-admin-bar li.hover {
     41        position: static;
    3442}
    3543
     
    4452        padding: 0 !important;
    4553}
    46         #wp-admin-bar ul {
    47                 margin-left: 80px !important;
     54
     55#wp-admin-bar ul {
     56        margin-left: 80px !important;
     57}
     58
     59#wp-admin-bar ul li { /* all list items */
     60        padding: 0 !important;
     61        float: left !important;
     62        background: url( ../images/admin-menu-arrow.gif ) 88% 53% no-repeat;
     63}
     64        #wp-admin-bar ul li.no-arrow {
     65                background: none;
    4866        }
    49                 #wp-admin-bar ul li { /* all list items */
    50                         padding: 0 !important;
    51                         /*height: 30px;*/
    52                         float: left !important;
    53                         background: url( ../images/admin-menu-arrow.gif ) 88% 53% no-repeat;
    54                 }
    55 
    56                 #wp-admin-bar ul li ul a {
    57                         color: #666 !important;
    58                 }
    59                
    60                 #wp-admin-bar ul li.align-right {
    61                         position: absolute;
    62                         right: 0;
    63                 }
    64                
    65                         #wp-admin-bar ul li a {
    66                                 display: block !important;
    67                                 font-size: 12px !important;
    68                                 font-family: "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Tahoma, Verdana, Arial, sans-serif !important;
    69                                 text-decoration: none !important;
    70                                 color: #fff !important;
    71                         }
    72                        
    73                         #wp-admin-bar ul.main-nav li:hover, #wp-admin-bar ul.main-nav li.sfhover, #wp-admin-bar ul.main-nav li ul li.sfhover {
    74                                 background-color: #666 !important;
    75                         }
    76                                 #wp-admin-bar ul.main-nav li ul li:hover a, #wp-admin-bar ul.main-nav li ul li.sfhover a {
    77                                         background-color: #888 !important;
    78                                         color: #fff !important;
    79                                 }
    80                                
    81                                 #wp-admin-bar ul.main-nav li ul li:hover ul li a {
    82                                         background-color: inherit !important;
    83                                         color: #666 !important;
    84                                 }
    85                                         #wp-admin-bar ul.main-nav li ul li ul li:hover a, #wp-admin-bar ul.main-nav li ul li ul li.sfhover a {
    86                                                 color: #fff !important;
    87                                         }
    88                                
     67       
     68#wp-admin-bar ul li ul a {
     69        color: #666 !important;
     70}
     71
     72#wp-admin-bar ul li.align-right {
     73        position: absolute;
     74        right: 0;
     75}
     76
     77#wp-admin-bar ul li a {
     78        display: block !important;
     79        font-size: 12px !important;
     80        font-family: "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Tahoma, Verdana, Arial, sans-serif !important;
     81        text-decoration: none !important;
     82        color: #fff !important;
     83}
     84
     85#wp-admin-bar ul.main-nav li:hover, #wp-admin-bar ul.main-nav li.sfhover, #wp-admin-bar ul.main-nav li ul li.sfhover {
     86        background-color: #666 !important;
     87}
     88
     89#wp-admin-bar ul.main-nav li ul li:hover a, #wp-admin-bar ul.main-nav li ul li.sfhover a {
     90        background-color: #888 !important;
     91        color: #fff !important;
     92}
     93
     94#wp-admin-bar ul.main-nav li ul li:hover ul li.alt a {
     95        background-color: #fafafa !important;
     96        color: #666 !important;
     97}
     98
     99#wp-admin-bar ul.main-nav li ul li:hover ul li a {
     100        background-color: #f4f4f4 !important;
     101        color: #666 !important;
     102}
     103
     104#wp-admin-bar ul.main-nav li ul li:hover ul li:hover a {
     105        background-color: #888 !important;
     106        color: white !important;
     107}
     108
     109#wp-admin-bar ul.main-nav li ul li ul li:hover a, #wp-admin-bar ul.main-nav li ul li ul li.sfhover a {
     110        color: #fff !important;
     111}
    89112
    90113/* second-level lists */
    91114
    92 #wp-admin-bar ul li ul { 
     115#wp-admin-bar ul li ul {
    93116        position: absolute !important;
    94117        width: 185px !important;
    95         left: -999em !important; /* using left instead of display to hide menus because display: none isn't read by screen readers */
    96         height: auto !important;
     118        left: -999em !important;
    97119        margin-left: 0 !important;
    98120}
    99         #wp-admin-bar ul li ul li {
    100                 float: none !important;
    101                 margin: 0 !important;
    102                 border: none !important;
    103                 border-bottom: 1px solid #f4f4f4 !important;
    104                 background-color: #f4f4f4 !important;
    105                 border-left: 1px solid #ccc !important;
    106                 border-right: 1px solid #ccc !important;
    107                 margin-bottom: -1px !important;
    108         }
    109                 #wp-admin-bar ul li ul li.alt {
    110                         background-color: #fafafa !important;
    111                         border-bottom: 1px solid #fafafa !important;
    112                 }
    113                
    114                 #wp-admin-bar ul li ul li:last-child {
    115                         border-bottom: 1px solid #ccc !important;
    116                         -moz-border-radius-bottomleft: 4px !important;
    117                         -khtml-border-bottom-left-radius: 4px !important;
    118                         -webkit-border-bottom-left-radius: 4px !important;
    119                         border-bottom-left-radius: 4px !important;
    120                         -moz-border-radius-bottomright: 4px !important;
    121                         -khtml-border-bottom-right-radius: 4px !important;
    122                         -webkit-border-bottom-right-radius: 4px !important;
    123                         border-bottom-right-radius: 4px !important;
    124                 }
    125        
    126         #wp-admin-bar ul.main-nav li ul li a:hover, #wp-admin-bar ul.main-nav li.sfhover ul li a:hover {
    127                 background-color: #888 !important;
    128         }
    129        
    130         #wp-admin-bar ul li div.admin-bar-clear {
    131                 clear: both !important;
    132                 background-color: #eee !important;
    133                 border-bottom: 3px solid #eee !important;
    134         }
     121
     122#wp-admin-bar ul li ul li {
     123        float: left !important;
     124        width: 183px;
     125        margin: 0 !important;
     126        border: none !important;
     127        border-bottom: 1px solid #f4f4f4 !important;
     128        background-color: #f4f4f4 !important;
     129        border-left: 1px solid #ccc !important;
     130        border-right: 1px solid #ccc !important;
     131        margin-bottom: -1px !important;
     132}
     133
     134#wp-admin-bar ul li ul li.alt {
     135        background-color: #fafafa !important;
     136        border-bottom: 1px solid #fafafa !important;
     137}
     138
     139#wp-admin-bar ul li ul li:last-child {
     140        border-bottom: 1px solid #ccc !important;
     141        -moz-border-radius-bottomleft: 4px !important;
     142        -khtml-border-bottom-left-radius: 4px !important;
     143        -webkit-border-bottom-left-radius: 4px !important;
     144        border-bottom-left-radius: 4px !important;
     145        -moz-border-radius-bottomright: 4px !important;
     146        -khtml-border-bottom-right-radius: 4px !important;
     147        -webkit-border-bottom-right-radius: 4px !important;
     148        border-bottom-right-radius: 4px !important;
     149}
     150
     151#wp-admin-bar ul.main-nav li ul li a:hover, #wp-admin-bar ul.main-nav li.sfhover ul li a:hover {
     152        background-color: #888 !important;
     153}
     154
     155#wp-admin-bar ul li div.admin-bar-clear {
     156        clear: both !important;
     157        background-color: #eee !important;
     158        border-bottom: 3px solid #eee !important;
     159}
    135160
    136161/* third-and-above-level lists */
    137162
    138 #wp-admin-bar ul li ul ul { 
     163#wp-admin-bar ul li ul ul {
    139164        margin: -28px 0 0 183px !important;
    140165}
     
    196221        -webkit-border-radius: 2px !important;
    197222        margin-left: 2px !important;
    198 }
     223} 
Note: See TracChangeset for help on using the changeset viewer.