Make WordPress Core


Ignore:
Timestamp:
09/16/2011 05:01:54 AM (15 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.