| 1 | <?php
|
|---|
| 2 |
|
|---|
| 3 | function bp_core_admin_bar() {
|
|---|
| 4 | global $bp, $wpdb, $current_blog, $doing_admin_bar;
|
|---|
| 5 |
|
|---|
| 6 | $doing_admin_bar = true;
|
|---|
| 7 |
|
|---|
| 8 | if ( !(int)get_site_option( 'show-loggedout-adminbar' ) && !is_user_logged_in() )
|
|---|
| 9 | return false;
|
|---|
| 10 |
|
|---|
| 11 | echo '<div id="wp-admin-bar">';
|
|---|
| 12 |
|
|---|
| 13 | // **** Do bp-adminbar-logo Actions ********
|
|---|
| 14 | do_action( 'bp_adminbar_logo' );
|
|---|
| 15 |
|
|---|
| 16 | echo '<ul class="main-nav">';
|
|---|
| 17 |
|
|---|
| 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 ********
|
|---|
| 26 | function 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( MUPLUGINDIR . '/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) ********
|
|---|
| 31 | function bp_adminbar_login_menu() {
|
|---|
| 32 | if ( !is_user_logged_in() ) {
|
|---|
| 33 | echo '<li class="bp-login no-arrow"><a href="' . get_blog_option( 1, 'siteurl') . '/wp-login.php?redirect_to=' . urlencode(get_blog_option(1, '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="' . get_blog_option( 1, 'siteurl') . '/register">' . __( 'Sign Up', 'buddypress' ) . '</a></li>';
|
|---|
| 38 | }
|
|---|
| 39 | }
|
|---|
| 40 | }
|
|---|
| 41 |
|
|---|
| 42 | // **** "My Account" Menu ******
|
|---|
| 43 | function bp_adminbar_account_menu() {
|
|---|
| 44 | global $bp;
|
|---|
| 45 |
|
|---|
| 46 | /* Sort the nav by key as the array has been put together in different locations */
|
|---|
| 47 | $bp['bp_nav'] = bp_core_sort_nav_items( $bp['bp_nav'] );
|
|---|
| 48 |
|
|---|
| 49 | if ( is_user_logged_in() ) {
|
|---|
| 50 |
|
|---|
| 51 | echo '<li><a href="">';
|
|---|
| 52 |
|
|---|
| 53 | echo __( 'My Account', 'buddypress' ) . '</a>';
|
|---|
| 54 | echo '<ul>';
|
|---|
| 55 |
|
|---|
| 56 | /* Loop through each navigation item */
|
|---|
| 57 | $counter = 0;
|
|---|
| 58 | foreach( $bp['bp_nav'] as $nav_item ) {
|
|---|
| 59 | $alt = ( $counter % 2 == 0 ) ? ' class="alt"' : '';
|
|---|
| 60 |
|
|---|
| 61 | echo '<li' . $alt . '>';
|
|---|
| 62 | echo '<a id="bp-admin-' . $nav_item['css_id'] . '" href="' . $nav_item['link'] . '">' . $nav_item['name'] . '</a>';
|
|---|
| 63 |
|
|---|
| 64 | if ( is_array( $bp['bp_options_nav'][$nav_item['css_id']] ) ) {
|
|---|
| 65 | echo '<ul>';
|
|---|
| 66 | $sub_counter = 0;
|
|---|
| 67 | foreach( $bp['bp_options_nav'][$nav_item['css_id']] as $subnav_item ) {
|
|---|
| 68 | $alt = ( $sub_counter % 2 == 0 ) ? ' class="alt"' : '';
|
|---|
| 69 | echo '<li' . $alt . '><a id="bp-admin-' . $subnav_item['css_id'] . '" href="' . $subnav_item['link'] . '">' . $subnav_item['name'] . '</a></li>';
|
|---|
| 70 | $sub_counter++;
|
|---|
| 71 | }
|
|---|
| 72 | echo '</ul>';
|
|---|
| 73 | }
|
|---|
| 74 |
|
|---|
| 75 | echo '</li>';
|
|---|
| 76 |
|
|---|
| 77 | $counter++;
|
|---|
| 78 | }
|
|---|
| 79 |
|
|---|
| 80 | $alt = ( $counter % 2 == 0 ) ? ' class="alt"' : '';
|
|---|
| 81 |
|
|---|
| 82 | if ( function_exists('wp_logout_url') ) {
|
|---|
| 83 | echo '<li' . $alt . '><a id="bp-admin-logout" href="' . wp_logout_url(site_url()) . '">' . __( 'Log Out', 'buddypress' ) . '</a></li>';
|
|---|
| 84 | } else {
|
|---|
| 85 | echo '<li' . $alt . '><a id="bp-admin-logout" href="' . site_url() . '/wp-login.php?action=logout&redirect_to=' . site_url() . '">' . __( 'Log Out', 'buddypress' ) . '</a></li>';
|
|---|
| 86 | }
|
|---|
| 87 |
|
|---|
| 88 | echo '</ul>';
|
|---|
| 89 | echo '</li>';
|
|---|
| 90 | }
|
|---|
| 91 | }
|
|---|
| 92 |
|
|---|
| 93 | // return a string indicating user's role in that blog
|
|---|
| 94 | function get_blog_role_for_user( $user, $blog ) {
|
|---|
| 95 |
|
|---|
| 96 | // If the user is a site admin, just display admin.
|
|---|
| 97 | if ( is_site_admin() )
|
|---|
| 98 | return __( 'Admin', 'buddypress');
|
|---|
| 99 |
|
|---|
| 100 | $roles = get_usermeta( $user, 'wp_' . $blog . '_capabilities' );
|
|---|
| 101 |
|
|---|
| 102 | if ( isset( $roles['subscriber'] ) )
|
|---|
| 103 | $role = __( 'Subscriber', 'buddypress' );
|
|---|
| 104 | elseif ( isset( $roles['contributor'] ) )
|
|---|
| 105 | $role = __( 'Contributor', 'buddypress' );
|
|---|
| 106 | elseif ( isset( $roles['author'] ) )
|
|---|
| 107 | $role = __( 'Author', 'buddypress' );
|
|---|
| 108 | elseif ( isset( $roles['editor'] ) )
|
|---|
| 109 | $role = __( 'Editor', 'buddypress' );
|
|---|
| 110 | elseif ( isset( $roles['administrator'] ) )
|
|---|
| 111 | $role = __( 'Admin', 'buddypress' );
|
|---|
| 112 | else
|
|---|
| 113 | return false;
|
|---|
| 114 |
|
|---|
| 115 | return $role;
|
|---|
| 116 | }
|
|---|
| 117 |
|
|---|
| 118 | // *** "My Blogs" Menu ********
|
|---|
| 119 | function bp_adminbar_blogs_menu() {
|
|---|
| 120 | if ( is_user_logged_in() ) {
|
|---|
| 121 | global $bp;
|
|---|
| 122 |
|
|---|
| 123 | if ( function_exists('bp_blogs_install') ) {
|
|---|
| 124 | $blogs = get_blogs_of_user( $bp['loggedin_userid'] ); // find *all* blogs with any kind of role
|
|---|
| 125 |
|
|---|
| 126 | echo '<li><a href="' . $bp['loggedin_domain'] . $bp['blogs']['slug'] . '/my-blogs">';
|
|---|
| 127 |
|
|---|
| 128 | _e( 'My Blogs', 'buddypress' );
|
|---|
| 129 |
|
|---|
| 130 | echo '</a>';
|
|---|
| 131 |
|
|---|
| 132 | echo '<ul>';
|
|---|
| 133 | if ( is_array( $blogs )) {
|
|---|
| 134 |
|
|---|
| 135 | $counter = 0;
|
|---|
| 136 | foreach( $blogs as $blog ) {
|
|---|
| 137 | $role = get_blog_role_for_user( $bp['loggedin_userid'], $blog->userblog_id );
|
|---|
| 138 |
|
|---|
| 139 | $alt = ( $counter % 2 == 0 ) ? ' class="alt"' : '';
|
|---|
| 140 | echo '<li' . $alt . '>';
|
|---|
| 141 | echo '<a href="' . $blog->siteurl . '">' . $blog->blogname . ' (' . $role . ')</a>';
|
|---|
| 142 | if (!('Subscriber' == $role)) { // then they have something to display on the flyout menu
|
|---|
| 143 | echo '<ul>';
|
|---|
| 144 | echo '<li class="alt"><a href="' . $blog->siteurl . '/wp-admin/">' . __('Dashboard', 'buddypress') . '</a></li>';
|
|---|
| 145 | echo '<li><a href="' . $blog->siteurl . '/wp-admin/post-new.php">' . __('New Post', 'buddypress') . '</a></li>';
|
|---|
| 146 | echo '<li class="alt"><a href="' . $blog->siteurl . '/wp-admin/edit.php">' . __('Manage Posts', 'buddypress') . '</a></li>';
|
|---|
| 147 | echo '<li class="alt"><a href="' . $blog->siteurl . '/wp-admin/edit-comments.php">' . __('Manage Comments', 'buddypress') . '</a></li>';
|
|---|
| 148 | if ('Admin' == $role) {
|
|---|
| 149 | echo '<li><a href="' . $blog->siteurl . '/wp-admin/themes.php">' . __('Switch Theme', 'buddypress') . '</a></li>';
|
|---|
| 150 | }
|
|---|
| 151 | echo '</ul>';
|
|---|
| 152 | }
|
|---|
| 153 | echo '</li>';
|
|---|
| 154 | $counter++;
|
|---|
| 155 | }
|
|---|
| 156 | }
|
|---|
| 157 |
|
|---|
| 158 | $alt = ( $counter % 2 == 0 ) ? ' class="alt"' : '';
|
|---|
| 159 |
|
|---|
| 160 | echo '<li' . $alt . '>';
|
|---|
| 161 | echo '<a href="' . $bp['loggedin_domain'] . $bp['blogs']['slug'] . '/create-a-blog">' . __('Create a Blog!', 'buddypress') . '</a>';
|
|---|
| 162 | echo '</li>';
|
|---|
| 163 |
|
|---|
| 164 | echo '</ul>';
|
|---|
| 165 | echo '</li>';
|
|---|
| 166 | }
|
|---|
| 167 | }
|
|---|
| 168 | }
|
|---|
| 169 |
|
|---|
| 170 | // **** "Notifications" Menu *********
|
|---|
| 171 | function bp_adminbar_notifications_menu() {
|
|---|
| 172 | if ( is_user_logged_in() ) {
|
|---|
| 173 | global $bp;
|
|---|
| 174 |
|
|---|
| 175 | echo '<li id="bp-admin-notifications_menu"><a href="' . $bp['loggedin_domain'] . '">';
|
|---|
| 176 | _e( 'Notifications', 'buddypress' );
|
|---|
| 177 |
|
|---|
| 178 | if ( $notifications = bp_core_get_notifications_for_user( $bp['loggedin_userid']) ) { ?>
|
|---|
| 179 | <span><?php echo count($notifications) ?></span>
|
|---|
| 180 | <?php
|
|---|
| 181 | }
|
|---|
| 182 |
|
|---|
| 183 | echo '</a>';
|
|---|
| 184 | echo '<ul>';
|
|---|
| 185 |
|
|---|
| 186 | if ( $notifications ) { ?>
|
|---|
| 187 | <?php $counter = 0; ?>
|
|---|
| 188 | <?php for ( $i = 0; $i < count($notifications); $i++ ) { ?>
|
|---|
| 189 | <?php $alt = ( $counter % 2 == 0 ) ? ' class="alt"' : ''; ?>
|
|---|
| 190 | <li<?php echo $alt ?>><?php echo $notifications[$i] ?></li>
|
|---|
| 191 | <?php $counter++; ?>
|
|---|
| 192 | <?php } ?>
|
|---|
| 193 | <?php } else { ?>
|
|---|
| 194 | <li><a href="<?php echo $bp['loggedin_domain'] ?>"><?php _e( 'No new notifications.', 'buddypress' ); ?></a></li>
|
|---|
| 195 | <?php
|
|---|
| 196 | }
|
|---|
| 197 |
|
|---|
| 198 | echo '</ul>';
|
|---|
| 199 | echo '</li>';
|
|---|
| 200 | }
|
|---|
| 201 | }
|
|---|
| 202 |
|
|---|
| 203 | // **** "Blog Authors" Menu (visible when not logged in) ********
|
|---|
| 204 | function bp_adminbar_authors_menu() {
|
|---|
| 205 | global $current_blog;
|
|---|
| 206 |
|
|---|
| 207 | if ( $current_blog->blog_id > 1 ) {
|
|---|
| 208 | $authors = get_users_of_blog();
|
|---|
| 209 |
|
|---|
| 210 | if ( is_array( $authors ) ) {
|
|---|
| 211 | /* This is a blog, render a menu with links to all authors */
|
|---|
| 212 | echo '<li><a href="/">';
|
|---|
| 213 | _e('Blog Authors', 'buddypress');
|
|---|
| 214 | echo '</a>';
|
|---|
| 215 |
|
|---|
| 216 | echo '<ul class="author-list">';
|
|---|
| 217 | foreach( $authors as $author ) {
|
|---|
| 218 | $author = new BP_Core_User( $author->user_id );
|
|---|
| 219 | echo '<li>';
|
|---|
| 220 |
|
|---|
| 221 | echo '<a href="' . $author->user_url . '">';
|
|---|
| 222 | echo $author->avatar_mini;
|
|---|
| 223 | echo ' ' . $author->fullname;
|
|---|
| 224 | echo '<span class="activity">' . $author->last_active . '</span>';
|
|---|
| 225 | echo '</a>';
|
|---|
| 226 | echo '<div class="admin-bar-clear"></div>';
|
|---|
| 227 | echo '</li>';
|
|---|
| 228 | }
|
|---|
| 229 | echo '</ul>';
|
|---|
| 230 | echo '</li>';
|
|---|
| 231 | }
|
|---|
| 232 | }
|
|---|
| 233 | }
|
|---|
| 234 |
|
|---|
| 235 | // **** "Random" Menu (visible when not logged in) ********
|
|---|
| 236 | function bp_adminbar_random_menu() {
|
|---|
| 237 | global $bp; ?>
|
|---|
| 238 | <li class="align-right">
|
|---|
| 239 | <a href="#"><?php _e( 'Visit', 'buddypress' ) ?></a>
|
|---|
| 240 | <ul class="random-list">
|
|---|
| 241 | <li><a href="<?php echo $bp['root_domain'] . '/' . MEMBERS_SLUG . '/?random' ?>"><?php _e( 'Random Member', 'buddypress' ) ?></a></li>
|
|---|
| 242 |
|
|---|
| 243 | <?php if ( function_exists('groups_install') ) : ?>
|
|---|
| 244 | <li class="alt"><a href="<?php echo $bp['root_domain'] . '/' . $bp['groups']['slug'] . '/?random' ?>"><?php _e( 'Random Group', 'buddypress' ) ?></a></li>
|
|---|
| 245 | <?php endif; ?>
|
|---|
| 246 |
|
|---|
| 247 | <?php if ( function_exists('bp_blogs_install') ) : ?>
|
|---|
| 248 | <li><a href="<?php echo $bp['root_domain'] . '/' . $bp['blogs']['slug'] . '/?random-blog' ?>"><?php _e( 'Random Blog', 'buddypress' ) ?></a></li>
|
|---|
| 249 |
|
|---|
| 250 | <?php endif; ?>
|
|---|
| 251 | </ul>
|
|---|
| 252 | </li>
|
|---|
| 253 | <?php
|
|---|
| 254 |
|
|---|
| 255 | $doing_admin_bar = false;
|
|---|
| 256 | }
|
|---|
| 257 |
|
|---|
| 258 | add_action( 'bp_adminbar_logo', 'bp_adminbar_logo' );
|
|---|
| 259 | add_action( 'bp_adminbar_menus', 'bp_adminbar_login_menu', 2 );
|
|---|
| 260 | add_action( 'bp_adminbar_menus', 'bp_adminbar_account_menu', 4 );
|
|---|
| 261 | add_action( 'bp_adminbar_menus', 'bp_adminbar_blogs_menu', 6 );
|
|---|
| 262 | add_action( 'bp_adminbar_menus', 'bp_adminbar_notifications_menu', 8 );
|
|---|
| 263 | add_action( 'bp_adminbar_menus', 'bp_adminbar_authors_menu', 12 );
|
|---|
| 264 | add_action( 'bp_adminbar_menus', 'bp_adminbar_random_menu', 100 );
|
|---|
| 265 |
|
|---|
| 266 | add_action( 'wp_footer', 'bp_core_admin_bar' );
|
|---|
| 267 | add_action( 'admin_footer', 'bp_core_admin_bar' );
|
|---|
| 268 |
|
|---|
| 269 | ?>
|
|---|