Make WordPress Core

Changeset 16077


Ignore:
Timestamp:
10/29/2010 03:17:22 PM (13 years ago)
Author:
ryan
Message:

Beginnings of new admin bar organization. see #14772

Location:
trunk/wp-includes
Files:
2 edited

Legend:

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

    r16076 r16077  
    8181 */
    8282function wp_admin_bar_my_account_menu() {
    83     global $wp_admin_bar;
     83    global $wp_admin_bar, $user_identity;
    8484
    8585    /* Add the 'My Account' menu */
    86     $wp_admin_bar->add_menu( array( 'id' => 'my-account', 'title' => __( 'My Account' ),  'href' => admin_url('profile.php'), ) );
     86    $wp_admin_bar->add_menu( array( 'id' => 'my-account', 'title' => $user_identity,  'href' => admin_url('profile.php'), ) );
    8787
    8888    /* Add the "My Account" sub menus */
     
    101101
    102102    /* Add the 'My Dashboards' menu if the user has more than one site. */
    103     if ( count( $wp_admin_bar->user->blogs ) > 1 ) {
    104         $wp_admin_bar->add_menu( array(  'id' => 'my-blogs', 'title' => __( 'My Sites' ),  'href' => $wp_admin_bar->user->account_domain, ) );
    105 
    106         $default = includes_url('images/wpmini-blue.png');
    107 
    108         foreach ( (array) $wp_admin_bar->user->blogs as $blog ) {
    109             $blogdomain = preg_replace( '!^https?://!', '', $blog->siteurl );
    110             // @todo Replace with some favicon lookup.
    111             //$blavatar = '<img src="' . esc_url( blavatar_url( blavatar_domain( $blog->siteurl ), 'img', 16, $default ) ) . '" alt="Blavatar" width="16" height="16" />';
    112             $blavatar = '<img src="' . esc_url($default) . '" alt="' . esc_attr__( 'Blavatar' ) . '" width="16" height="16" />';
    113 
    114             $marker = '';
    115             if ( strlen($blog->blogname) > 35 )
    116                 $marker = '...';
    117 
    118             if ( empty( $blog->blogname ) )
    119                 $blogname = $blog->domain;
    120             else
    121                 $blogname = substr( $blog->blogname, 0, 35 ) . $marker;
    122 
    123             if ( ! isset( $blog->visible ) || $blog->visible === true ) {
    124                 $wp_admin_bar->add_menu( array( 'parent' => 'my-blogs', 'id' => 'blog-' . $blog->userblog_id, 'title' => $blavatar . $blogname,  'href' => $wp_admin_bar->proto . $blogdomain . '/wp-admin/', ) );
    125                 $wp_admin_bar->add_menu( array( 'parent' => 'blog-' . $blog->userblog_id, 'id' => 'blog-' . $blog->userblog_id . '-d', 'title' => __( 'Dashboard' ), 'href' => $wp_admin_bar->proto . $blogdomain . '/wp-admin/', ) );
    126                 $wp_admin_bar->add_menu( array( 'parent' => 'blog-' . $blog->userblog_id, 'id' => 'blog-' . $blog->userblog_id . '-n', 'title' => __( 'New Post' ), 'href' => $wp_admin_bar->proto . $blogdomain . '/wp-admin/post-new.php', ) );
    127 
    128                 // @todo, stats plugins should add this:
    129                 //$wp_admin_bar->add_menu( array( 'parent' => 'blog-' . $blog->userblog_id, 'id' => 'blog-' . $blog->userblog_id . '-s', 'title' => __( 'Site Stats' ), 'href' => $wp_admin_bar->proto . $blogdomain . '/wp-admin/index.php?page=stats' ) );
    130                
    131                 $wp_admin_bar->add_menu( array( 'parent' => 'blog-' . $blog->userblog_id, 'id' => 'blog-' . $blog->userblog_id . '-c', 'title' => __( 'Manage Comments' ), 'href' => $wp_admin_bar->proto . $blogdomain . '/wp-admin/edit-comments.php', ) );
    132                 $wp_admin_bar->add_menu( array( 'parent' => 'blog-' . $blog->userblog_id, 'id' => 'blog-' . $blog->userblog_id . '-v', 'title' => __( 'Visit Site' ), 'href' => $wp_admin_bar->proto . $blogdomain, ) );
    133             }
     103    if ( count( $wp_admin_bar->user->blogs ) <= 1 )
     104        return;
     105
     106    $wp_admin_bar->add_menu( array(  'id' => 'my-blogs', 'title' => __( 'My Sites' ),  'href' => $wp_admin_bar->user->account_domain, ) );
     107
     108    $default = includes_url('images/wpmini-blue.png');
     109
     110    foreach ( (array) $wp_admin_bar->user->blogs as $blog ) {
     111        $blogdomain = preg_replace( '!^https?://!', '', $blog->siteurl );
     112        // @todo Replace with some favicon lookup.
     113        //$blavatar = '<img src="' . esc_url( blavatar_url( blavatar_domain( $blog->siteurl ), 'img', 16, $default ) ) . '" alt="Blavatar" width="16" height="16" />';
     114        $blavatar = '<img src="' . esc_url($default) . '" alt="' . esc_attr__( 'Blavatar' ) . '" width="16" height="16" />';
     115
     116        $marker = '';
     117        if ( strlen($blog->blogname) > 35 )
     118            $marker = '...';
     119
     120        if ( empty( $blog->blogname ) )
     121            $blogname = $blog->domain;
     122        else
     123            $blogname = substr( $blog->blogname, 0, 35 ) . $marker;
     124
     125        if ( ! isset( $blog->visible ) || $blog->visible === true ) {
     126            $wp_admin_bar->add_menu( array( 'parent' => 'my-blogs', 'id' => 'blog-' . $blog->userblog_id, 'title' => $blavatar . $blogname,  'href' => $wp_admin_bar->proto . $blogdomain . '/wp-admin/', ) );
     127            $wp_admin_bar->add_menu( array( 'parent' => 'blog-' . $blog->userblog_id, 'id' => 'blog-' . $blog->userblog_id . '-d', 'title' => __( 'Dashboard' ), 'href' => $wp_admin_bar->proto . $blogdomain . '/wp-admin/', ) );
     128            $wp_admin_bar->add_menu( array( 'parent' => 'blog-' . $blog->userblog_id, 'id' => 'blog-' . $blog->userblog_id . '-n', 'title' => __( 'New Post' ), 'href' => $wp_admin_bar->proto . $blogdomain . '/wp-admin/post-new.php', ) );
     129
     130            // @todo, stats plugins should add this:
     131            //$wp_admin_bar->add_menu( array( 'parent' => 'blog-' . $blog->userblog_id, 'id' => 'blog-' . $blog->userblog_id . '-s', 'title' => __( 'Site Stats' ), 'href' => $wp_admin_bar->proto . $blogdomain . '/wp-admin/index.php?page=stats' ) );
     132           
     133            $wp_admin_bar->add_menu( array( 'parent' => 'blog-' . $blog->userblog_id, 'id' => 'blog-' . $blog->userblog_id . '-c', 'title' => __( 'Manage Comments' ), 'href' => $wp_admin_bar->proto . $blogdomain . '/wp-admin/edit-comments.php', ) );
     134            $wp_admin_bar->add_menu( array( 'parent' => 'blog-' . $blog->userblog_id, 'id' => 'blog-' . $blog->userblog_id . '-v', 'title' => __( 'Visit Site' ), 'href' => $wp_admin_bar->proto . $blogdomain, ) );
    134135        }
    135 
    136         /* Add the "Manage Sites" menu item */
    137         // @todo, use dashboard site.
    138         $wp_admin_bar->add_menu( array( 'parent' => 'my-blogs', 'id' => 'manage-blogs', 'title' => __( 'Manage Sites' ), admin_url('my-sites.php'), ) );
    139 
    140     /* Add the 'My Dashboard' menu if the user only has one site. */
    141     } else {
    142         $wp_admin_bar->add_menu( array( 'id' => 'my-blogs', 'title' => __( 'My Site' ), 'href' => $wp_admin_bar->user->account_domain, ) );
    143         $wp_admin_bar->add_menu( array( 'parent' => 'my-blogs', 'id' => 'blog-1-d', 'title' => __( 'Dashboard' ), 'href' => admin_url(),) );
    144         $wp_admin_bar->add_menu( array( 'parent' => 'my-blogs', 'id' => 'blog-1-n', 'title' => __( 'New Post' ), 'href' => admin_url('post-new.php'),) );
    145 
    146         // @todo Stats plugins should add this.
    147         //$wp_admin_bar->add_menu( array( 'parent' => 'my-blogs', 'id' => 'blog-1-s', 'title' => __( 'Site Stats' ), 'href' => admin_url('index.php?page=stats') ) );
    148 
    149         $wp_admin_bar->add_menu( array( 'parent' => 'my-blogs', 'id' => 'blog-1-c','title' => __( 'Manage Comments' ), 'href' => admin_url('edit-comments.php'), ) );
    150         $wp_admin_bar->add_menu( array( 'parent' => 'my-blogs', 'id' => 'blog-1-v', 'title' => __( 'Visit Site' ), 'href' => home_url(),) );
    151     }
     136    }
     137
     138    /* Add the "Manage Sites" menu item */
     139    // @todo, use dashboard site.
     140    $wp_admin_bar->add_menu( array( 'parent' => 'my-blogs', 'id' => 'manage-blogs', 'title' => __( 'Manage Sites' ), admin_url('my-sites.php'), ) );
    152141}
    153142
     
    163152}
    164153
    165 /**
    166  * Site info menu
     154
     155/**
     156 * Provide a shortlink.
    167157 *
    168158 * @since 3.1.0
    169159 */
    170 function wp_admin_bar_bloginfo_menu() {
    171     global $wp_admin_bar;
    172    
     160function wp_admin_bar_shortlink_menu() {
     161    global $wp_admin_bar;
     162
    173163    $short = wp_get_shortlink( 0, 'query' );
     164
    174165    if ( ! empty( $short) )
    175         $wp_admin_bar->add_menu( array( 'id' => 'get-shortlink', 'title' => __( 'Get Shortlink' ), 'href' => '', ) );
     166        $wp_admin_bar->add_menu( array( 'id' => 'get-shortlink', 'title' => __( 'Shortlink' ), 'href' => '', ) );
    176167}
    177168
     
    181172 * @since 3.1.0
    182173 */
    183 function wp_admin_bar_edit_menu() {
     174function wp_admin_bar_edit_menu () {
    184175    global $wp_admin_bar, $wp_query;
    185176
    186177    $current_object = $wp_query->get_queried_object();
    187178
    188     if ( empty( $current_object ) )
    189         return false;
    190 
     179    if ( empty($current_object) )
     180        return;
     181
     182    // @todo Use proper type name in edit strings
    191183    if ( ! empty( $current_object->post_type ) && ( $post_type_object = get_post_type_object( $current_object->post_type ) ) && current_user_can( $post_type_object->cap->edit_post, $current_object->ID ) ) {
    192         $wp_admin_bar->add_menu( array( 'id' => 'edit', 'title' => __( 'Edit' ),  'href' => get_edit_post_link( $current_object->ID ), ) );
     184        $wp_admin_bar->add_menu( array( 'id' => 'edit', 'title' => __( 'Edit Post' ),  'href' => get_edit_post_link( $current_object->ID ), ) );
    193185    } elseif ( ! empty( $current_object->taxonomy ) &&  ( $tax = get_taxonomy( $current_object->taxonomy ) ) && current_user_can( $tax->cap->edit_terms ) ) {
    194         $wp_admin_bar->add_menu( array( 'id' => 'edit', 'title' => __( 'Edit' ), 'href' => get_edit_term_link( $current_object->term_id, $current_object->taxonomy ), ) );
    195     }
     186        $wp_admin_bar->add_menu( array( 'id' => 'edit', 'title' => __( 'Edit Post' ), 'href' => get_edit_term_link( $current_object->term_id, $current_object->taxonomy ), ) );
     187    }
     188}
     189
     190function wp_admin_bar_new_content_menu() {
     191    global $wp_admin_bar;
     192
     193    // @todo Handle CPTs, use post type object for strings
     194    $actions = array(
     195        'post-new.php' => array(__('Post'), 'edit_posts', 'new-post'),
     196        'post-new.php?post_type=page' => array(__('Page'), 'edit_pages', 'new-page'),
     197    );
     198
     199    $user_can = false;
     200    foreach ( $actions as $action ) {
     201        if ( current_user_can($action[1]) ) {
     202            $user_can = true;
     203            break;
     204        }
     205    }
     206
     207    if ( !$user_can )
     208        return;
     209
     210    $wp_admin_bar->add_menu( array( 'id' => 'new-content', 'title' => __( 'New Content' ), 'href' => '', ) );
     211
     212    foreach ( $actions as $link => $action ) {
     213        $wp_admin_bar->add_menu( array( 'parent' => 'new-content', 'id' => $action[2], 'title' => $action[0], 'href' => admin_url($link) ) );
     214    }
     215}
     216
     217function wp_admin_bar_comments_menu() {
     218    global $wp_admin_bar;
     219
     220    if ( !current_user_can('edit_posts') )
     221        return;
     222
     223    $awaiting_mod = wp_count_comments();
     224    $awaiting_mod = $awaiting_mod->moderated;
     225
     226    // @todo styling for awaiting mod count. Don't show count if zero?
     227    $wp_admin_bar->add_menu( array( 'id' => 'comments', 'title' => sprintf( __('Comments %s'), "<span id='awaiting-mod' class='count-$awaiting_mod'><span class='pending-count'>" . number_format_i18n($awaiting_mod) . "</span></span>" ), 'href' => admin_url('comments.php') ) );
    196228}
    197229
  • trunk/wp-includes/admin-bar/admin-bar-class.php

    r16070 r16077  
    179179        add_action( 'wp_before_admin_bar_render', 'wp_admin_bar_my_account_menu', 20 );
    180180        add_action( 'wp_before_admin_bar_render', 'wp_admin_bar_my_blogs_menu', 30 );
    181         add_action( 'wp_before_admin_bar_render', 'wp_admin_bar_blog_separator', 40 );
    182         add_action( 'wp_before_admin_bar_render', 'wp_admin_bar_bloginfo_menu', 50 );
    183         add_action( 'wp_before_admin_bar_render', 'wp_admin_bar_edit_menu', 100 );
     181        add_action( 'wp_before_admin_bar_render', 'wp_admin_bar_edit_menu', 40 );
     182        add_action( 'wp_before_admin_bar_render', 'wp_admin_bar_new_content_menu', 50 );
     183        add_action( 'wp_before_admin_bar_render', 'wp_admin_bar_comments_menu', 60 );
     184        add_action( 'wp_before_admin_bar_render', 'wp_admin_bar_shortlink_menu', 70 );
    184185       
    185186        if ( is_multisite() && is_super_admin() && function_exists('wp_admin_bar_superadmin_settings_menu') )
Note: See TracChangeset for help on using the changeset viewer.