Skip to:
Content

BuddyPress.org

Changeset 627


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