Modificar la Admin Bar de Buddypress

/ / Programacion

Tener una franja de color negro en la cabecera de la página web no es una funcionalidad que hayamos pensado tener en nuestra página cuando la diseñamos, y desde que instalamos BuddyPress, esta función parece ser algo obligatorio para la navegación por toda la web; aunque he encontrado la manera de modificar la función bp_core_admin_bar que gestiona esta funcionalidad.

Para integrar la BuddyPress Admin Bar en mi diseño, he utilizado la siguiente función:
[sourcecode language=’php’] if ( function_exists( ‘bp_core_admin_bar’ ) ) bp_core_admin_bar();
[/sourcecode]

Y este es el código resultante de modificar el fichero bp-core-adminbar.php:
[sourcecode language=’php’] <?php

function bp_core_admin_bar() {
global $bp, $wpdb, $current_blog, $doing_admin_bar;

$doing_admin_bar = true;

if ( (int)get_site_option( 'hide-loggedout-adminbar' ) &amp;&amp; !is_user_logged_in() )
return false;

echo '';

// **** Do bp-adminbar-menus Actions ********
do_action( 'bp_adminbar_menus' );
}

// **** "Log In" and "Sign Up" links (Visible when not logged in) ********
function bp_adminbar_login_menu() {
global $bp;

if ( !is_user_logged_in() ) {
echo '

  • root_domain . ‘/wp-login.php?redirect_to=’ . urlencode( $bp->root_domain ) . ‘”>’ . __( ‘Log In’, ‘buddypress’ ) . ‘
  • ‘;

    // Show “Sign Up” link if registrations are allowed
    if ( get_site_option( ‘registration’ ) != ‘none’ ) {
    echo ‘

  • ‘ . __( ‘Sign Up’, ‘buddypress’ ) . ‘
  • ‘;
    }
    }
    }

    // **** “My Account” Menu ******
    function bp_adminbar_account_menu() {
    global $bp;

    if ( !$bp->bp_nav )
    return false;

    /* Sort the nav by key as the array has been put together in different locations */
    $bp->bp_nav = bp_core_sort_nav_items( $bp->bp_nav );

    if ( is_user_logged_in() ) {

    echo ‘

  • ‘;
    echo __( ‘My Account’, ‘buddypress’ ) . ‘
    ‘;
    echo ‘

    ‘;
    echo ‘

  • ‘;
    }
    }

    // return a string indicating user’s role in that blog
    function get_blog_role_for_user( $user, $blog ) {

    // If the user is a site admin, just display admin.
    if ( is_site_admin() )
    return __( ‘Admin’, ‘buddypress’);

    $roles = get_usermeta( $user, ‘wp_’ . $blog . ‘_capabilities’ );

    if ( isset( $roles[‘subscriber’] ) )
    $role = __( ‘Subscriber’, ‘buddypress’ );
    elseif ( isset( $roles[‘contributor’] ) )
    $role = __( ‘Contributor’, ‘buddypress’ );
    elseif ( isset( $roles[‘author’] ) )
    $role = __( ‘Author’, ‘buddypress’ );
    elseif ( isset( $roles[‘editor’] ) )
    $role = __( ‘Editor’, ‘buddypress’ );
    elseif ( isset( $roles[‘administrator’] ) )
    $role = __( ‘Admin’, ‘buddypress’ );
    else
    return false;

    return $role;
    }

    // *** “My Blogs” Menu ********
    function bp_adminbar_blogs_menu() {
    if ( is_user_logged_in() ) {
    global $bp;

    if ( function_exists(‘bp_blogs_install’) ) {

    if ( !$blogs = wp_cache_get( ‘bp_blogs_of_user_’ . $bp->loggedin_user->id, ‘bp’ ) ) {
    $blogs = get_blogs_of_user( $bp->loggedin_user->id );
    wp_cache_set( ‘bp_blogs_of_user_’ . $bp->loggedin_user->id, $blogs, ‘bp’ );
    }

    echo ‘

  • ‘;
    _e( ‘My Blogs’, ‘buddypress’ );
    echo ‘
    ‘;

    echo ‘

    ‘;
    echo ‘

  • ‘;
    }
    }
    }

    // **** “Notifications” Menu *********
    function bp_adminbar_notifications_menu() {
    if ( is_user_logged_in() ) {
    global $bp;

    echo ‘

  • ‘;
    _e( ‘Notifications’, ‘buddypress’ );
    if ( $notifications = bp_core_get_notifications_for_user( $bp->loggedin_user->id ) ) { ?>

    <?php
    }

    echo '‘;
    echo ‘

      ‘;

      if ( $notifications ) { ?>

      <?php for ( $i = 0; $i

    • domain ?>”>
    • <?php
      }

      echo '

    ‘;
    echo ‘

  • ‘;
    }
    }

    add_action( ‘bp_adminbar_menus’, ‘bp_adminbar_login_menu’, 2 );
    add_action( ‘bp_adminbar_menus’, ‘bp_adminbar_account_menu’, 6 );
    add_action( ‘bp_adminbar_menus’, ‘bp_adminbar_blogs_menu’, 4 );
    add_action( ‘bp_adminbar_menus’, ‘bp_adminbar_notifications_menu’, 8 );
    ?>
    [/sourcecode]

    Deja un comentario

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *