WordPress.org

Make WordPress Core


Ignore:
Timestamp:
09/16/2011 05:01:54 AM (7 years ago)
Author:
koopersmith
Message:

Admin bar UX improvements. First pass, see #18197

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/admin-bar.php

    r18468 r18683  
    8383    if ( 0 != $user_id ) {
    8484        /* Add the 'My Account' menu */
    85         $avatar = get_avatar( get_current_user_id(), 16 );
    86         $id = ( ! empty( $avatar ) ) ? 'my-account-with-avatar' : 'my-account';
    87 
    88         $wp_admin_bar->add_menu( array( 'id' => $id, 'title' => $avatar . $user_identity,  'href' => get_edit_profile_url( $user_id ) ) );
     85        $avatar = get_avatar( get_current_user_id(), 28 );
     86        $id     = ( ! empty( $avatar ) ) ? 'my-account-with-avatar' : 'my-account';
     87        $howdy  = sprintf( __('Howdy, %1$s'), $user_identity );
     88
     89        $wp_admin_bar->add_menu( array( 'id' => $id, 'title' => $howdy . $avatar,  'href' => get_edit_profile_url( $user_id ) ) );
    8990
    9091        /* Add the "My Account" sub menus */
     
    9596
    9697/**
    97  * Add the "Dashboard"/"Visit Site" menu.
    98  *
    99  * @since 3.2.0
    100  */
    101 function wp_admin_bar_dashboard_view_site_menu( $wp_admin_bar ) {
    102     $user_id = get_current_user_id();
    103 
    104     if ( 0 != $user_id ) {
    105         if ( is_admin() )
    106             $wp_admin_bar->add_menu( array( 'id' => 'view-site', 'title' => __( 'Visit Site' ), 'href' => home_url() ) );
    107         elseif ( is_multisite() )
    108             $wp_admin_bar->add_menu( array( 'id' => 'dashboard', 'title' => __( 'Dashboard' ), 'href' => get_dashboard_url( $user_id ) ) );
    109         else
    110             $wp_admin_bar->add_menu( array( 'id' => 'dashboard', 'title' => __( 'Dashboard' ), 'href' => admin_url() ) );
    111     }
     98 * Add the "Blog Name" menu in the front end.
     99 *
     100 * @since 3.3.0
     101 */
     102function wp_admin_bar_blog_front_menu( $wp_admin_bar ) {
     103    $blogname = get_bloginfo('name');
     104
     105    if ( empty( $blogname ) )
     106        $blogname = preg_replace( '#^(https?://)?(www.)?#', '', get_home_url() );
     107
     108
     109    $wp_admin_bar->add_menu( array(
     110        'id'    => 'blog-name',
     111        'title' => $blogname,
     112        'href'  => admin_url(),
     113    ) );
     114
     115    // Add Dashboard item.
     116    $wp_admin_bar->add_menu( array(
     117        'id'     => 'dashboard',
     118        'title'  => __( 'Dashboard' ),
     119        'href'   => admin_url(),
     120        'parent' => 'blog-name',
     121    ) );
     122
     123    wp_admin_bar_appearance_menu( $wp_admin_bar );
     124}
     125
     126/**
     127 * Add the "Blog Name" menu in the admin.
     128 *
     129 * @since 3.3.0
     130 */
     131function wp_admin_bar_blog_admin_menu( $wp_admin_bar ) {
     132    global $current_site;
     133
     134    if ( is_network_admin() ) {
     135        $title = sprintf( __('Network Admin: %s'), esc_html($current_site->site_name) );
     136        $url   = '#';
     137    } elseif ( is_user_admin() ) {
     138        $title = sprintf( __('Global Dashboard: %s'), esc_html($current_site->site_name) );
     139        $url   = '#';
     140    } else {
     141        $title = get_bloginfo('name');
     142        $url   = get_home_url();
     143
     144        if ( empty( $title ) )
     145            $title = preg_replace( '#^(https?://)?(www.)?#', '', $url );
     146    }
     147
     148    $wp_admin_bar->add_menu( array(
     149        'id'    => 'blog-name',
     150        'title' => $title,
     151        'href'  => $url,
     152    ) );
    112153}
    113154
     
    121162
    122163    /* Add the 'My Sites' menu if the user has more than one site. */
    123     if ( count( $wp_admin_bar->user->blogs ) <= 1 )
    124         return;
    125 
    126     $wp_admin_bar->add_menu( array(  'id' => 'my-blogs', 'title' => __( 'My Sites' ),  'href' => admin_url( 'my-sites.php' ) ) );
    127 
    128     $default = includes_url('images/wpmini-blue.png');
     164    // if ( count( $wp_admin_bar->user->blogs ) <= 1 )
     165    //  return;
     166
     167    $grey_wp_logo_url = admin_url( 'images/wp-logo.png' );
     168
     169    $grey_wp_logo = '<img src="' . esc_url( $grey_wp_logo_url ) . '" alt="' . esc_attr__( 'Blavatar' ) . '" width="16" height="16" class="blavatar"/>';
     170
     171    if ( is_multisite() )
     172        $url = admin_url( 'my-sites.php' );
     173    else
     174        $url = admin_url();
     175
     176    $wp_admin_bar->add_menu( array(
     177        'id'    => 'my-blogs',
     178        'title' => $grey_wp_logo,
     179        'href'  => $url,
     180    ) );
     181
     182    // Add network admin link
     183    if ( is_multisite() && is_super_admin() && ! is_network_admin() ) {
     184        $wp_admin_bar->add_menu( array(
     185            'parent' => 'my-blogs',
     186            'id'     => 'network-admin',
     187            'title'  => __('Network Admin'),
     188            'href'   => network_admin_url(),
     189        ) );
     190    }
     191
     192    // Add blog links
     193    $blue_wp_logo_url = includes_url('images/wpmini-blue.png');
    129194
    130195    foreach ( (array) $wp_admin_bar->user->blogs as $blog ) {
     196        // Skip the current blog.
     197        if ( $blog->userblog_id == $wp_admin_bar->user->active_blog->blog_id )
     198            continue;
     199
    131200        // @todo Replace with some favicon lookup.
    132         //$blavatar = '<img src="' . esc_url( blavatar_url( blavatar_domain( $blog->siteurl ), 'img', 16, $default ) ) . '" alt="Blavatar" width="16" height="16" />';
    133         $blavatar = '<img src="' . esc_url($default) . '" alt="' . esc_attr__( 'Blavatar' ) . '" width="16" height="16" class="blavatar"/>';
     201        //$blavatar = '<img src="' . esc_url( blavatar_url( blavatar_domain( $blog->siteurl ), 'img', 16, $blue_wp_logo_url ) ) . '" alt="Blavatar" width="16" height="16" />';
     202        $blavatar = '<img src="' . esc_url($blue_wp_logo_url) . '" alt="' . esc_attr__( 'Blavatar' ) . '" width="16" height="16" class="blavatar"/>';
    134203
    135204        $blogname = empty( $blog->blogname ) ? $blog->domain : $blog->blogname;
     
    145214        $wp_admin_bar->add_menu( array( 'parent' => 'blog-' . $blog->userblog_id, 'id' => 'blog-' . $blog->userblog_id . '-v', 'title' => __( 'Visit Site' ), 'href' => get_home_url($blog->userblog_id) ) );
    146215    }
     216
     217    // Add WordPress.org link
     218    $wp_admin_bar->add_menu( array(
     219        'parent' => 'my-blogs',
     220        'id'     => 'wporg',
     221        'title'  => __('WordPress.org'),
     222        'href'   => 'http://wordpress.org',
     223    ) );
    147224}
    148225
     
    281358
    282359    $awaiting_mod = wp_count_comments();
    283     $awaiting_mod = $awaiting_mod->moderated;
    284 
    285     $awaiting_mod = $awaiting_mod ? "<span id='ab-awaiting-mod' class='pending-count'>" . number_format_i18n( $awaiting_mod ) . "</span>" : '';
    286     $wp_admin_bar->add_menu( array( 'id' => 'comments', 'title' => sprintf( __('Comments %s'), $awaiting_mod ), 'href' => admin_url('edit-comments.php') ) );
     360    $awaiting_mod = number_format_i18n( $awaiting_mod->moderated );
     361
     362    $bubble  = "<div class='ab-comments-bubble'>";
     363    $bubble .= "<div class='ab-comments-count'>$awaiting_mod</div>";
     364    $bubble .= "<div class='ab-comments-arrow'></div>";
     365    $bubble .= "</div>";
     366
     367    $wp_admin_bar->add_menu( array(
     368        'id'    => 'comments',
     369        'title' => $bubble,
     370        'href'  => admin_url('edit-comments.php'),
     371    ) );
    287372}
    288373
     
    297382        return;
    298383
    299     $wp_admin_bar->add_menu( array( 'id' => 'appearance', 'title' => __('Appearance'), 'href' => admin_url('themes.php') ) );
     384    $wp_admin_bar->add_menu( array(
     385        'id'     => 'appearance',
     386        'title'  => __('Appearance'),
     387        'href'   => admin_url('themes.php'),
     388        'parent' => 'blog-name',
     389    ) );
    300390
    301391    if ( ! current_user_can( 'edit_theme_options' ) )
     
    335425
    336426    $wp_admin_bar->add_menu( array( 'id' => 'updates', 'title' => $update_title, 'href' => network_admin_url( 'update-core.php' ) ) );
     427}
     428
     429/**
     430 * Add screen options link.
     431 *
     432 * @since 3.3.0
     433 */
     434function wp_admin_bar_screen_options_menu( $wp_admin_bar ) {
     435    $wp_admin_bar->add_menu( array(
     436        'id'    => 'screen-options',
     437        'title' => __('Screen Options'),
     438        'href'  => '#',
     439        'meta'  => array(
     440            'class' => 'screen-meta-toggle hide-if-no-js',
     441        ),
     442    ) );
     443}
     444
     445/**
     446 * Add help link.
     447 *
     448 * @since 3.3.0
     449 */
     450function wp_admin_bar_help_menu( $wp_admin_bar ) {
     451    $wp_admin_bar->add_menu( array(
     452        'id'    => 'help',
     453        'title' => __('Help'),
     454        'href'  => '#',
     455        'meta'  => array(
     456            'class' => 'screen-meta-toggle hide-if-no-js',
     457        ),
     458    ) );
     459}
     460
     461/**
     462 * Add search form.
     463 *
     464 * @since 3.3.0
     465 */
     466function wp_admin_bar_search_menu( $wp_admin_bar ) {
     467    $form  = '<div id="adminbarsearch-wrap">';
     468    $form .= '<form action="' . home_url() . '" method="get" id="adminbarsearch">';
     469    $form .= '<input class="adminbar-input" name="s" id="adminbar-search"';
     470    $form .= 'type="text" value="" maxlength="150" placeholder="' . esc_attr__( 'Search' ) . '" />';
     471    $form .= '<input type="submit" class="adminbar-button" value="' . __('Search') . '"/>';
     472    $form .= '</form>';
     473    $form .= '</div>';
     474
     475    $wp_admin_bar->add_menu( array(
     476        'id'    => 'search',
     477        'title' => $form,
     478        'href'  => '#',
     479        'meta'  => array(
     480            'class'   => 'admin-bar-search',
     481            // @TODO: Replace me with something far less hacky
     482            'onclick' => 'if ( event.target.value != "Search" ) { return false; }',
     483        ),
     484    ) );
    337485}
    338486
Note: See TracChangeset for help on using the changeset viewer.