Ticket #32678: 32678.2.diff
File 32678.2.diff, 18.1 KB (added by , 10 years ago) |
---|
-
src/wp-admin/menu.php
41 41 $submenu[ 'index.php' ][10] = array( sprintf( __('Updates %s'), "<span class='update-plugins count-{$update_data['counts']['total']}' title='{$update_data['title']}'><span class='update-count'>" . number_format_i18n($update_data['counts']['total']) . "</span></span>" ), $cap, 'update-core.php'); 42 42 unset( $cap ); 43 43 } 44 $submenu[ 'index.php' ][15] = array( __('About'), 'read', 'about.php' ); 44 45 45 46 $menu[4] = array( '', 'read', 'separator1', '', 'wp-menu-separator' ); 46 47 … … 155 156 $submenu['themes.php'][10] = array( __( 'Menus' ), 'edit_theme_options', 'nav-menus.php' ); 156 157 } 157 158 158 if ( current_theme_supports( 'custom-header' ) && current_user_can( 'customize') ) {159 $customize_header_url = add_query_arg( array( 'autofocus' => array( 'control' => 'header_image' ) ), $customize_url );160 $submenu['themes.php'][15] = array( __( 'Header' ), $appearance_cap, esc_url( $customize_header_url ), '', 'hide-if-no-customize' );161 }162 163 if ( current_theme_supports( 'custom-background' ) && current_user_can( 'customize') ) {164 $customize_background_url = add_query_arg( array( 'autofocus' => array( 'control' => 'background_image' ) ), $customize_url );165 $submenu['themes.php'][20] = array( __( 'Background' ), $appearance_cap, esc_url( $customize_background_url ), '', 'hide-if-no-customize' );166 }167 168 159 unset( $customize_url ); 169 160 170 161 unset( $appearance_cap ); -
src/wp-includes/admin-bar.php
96 96 } 97 97 98 98 /** 99 * Add the WordPress logo menu.100 *101 * @since 3.3.0102 *103 * @param WP_Admin_Bar $wp_admin_bar104 */105 function wp_admin_bar_wp_menu( $wp_admin_bar ) {106 $wp_admin_bar->add_menu( array(107 'id' => 'wp-logo',108 'title' => '<span class="ab-icon"></span><span class="screen-reader-text">' . __( 'About WordPress' ) . '</span>',109 'href' => self_admin_url( 'about.php' ),110 ) );111 112 if ( is_user_logged_in() ) {113 // Add "About WordPress" link114 $wp_admin_bar->add_menu( array(115 'parent' => 'wp-logo',116 'id' => 'about',117 'title' => __('About WordPress'),118 'href' => self_admin_url( 'about.php' ),119 ) );120 }121 122 // Add WordPress.org link123 $wp_admin_bar->add_menu( array(124 'parent' => 'wp-logo-external',125 'id' => 'wporg',126 'title' => __('WordPress.org'),127 'href' => __('https://wordpress.org/'),128 ) );129 130 // Add codex link131 $wp_admin_bar->add_menu( array(132 'parent' => 'wp-logo-external',133 'id' => 'documentation',134 'title' => __('Documentation'),135 'href' => __('https://codex.wordpress.org/'),136 ) );137 138 // Add forums link139 $wp_admin_bar->add_menu( array(140 'parent' => 'wp-logo-external',141 'id' => 'support-forums',142 'title' => __('Support Forums'),143 'href' => __('https://wordpress.org/support/'),144 ) );145 146 // Add feedback link147 $wp_admin_bar->add_menu( array(148 'parent' => 'wp-logo-external',149 'id' => 'feedback',150 'title' => __('Feedback'),151 'href' => __('https://wordpress.org/support/forum/requests-and-feedback'),152 ) );153 }154 155 /**156 99 * Add the sidebar toggle button. 157 100 * 158 101 * @since 3.8.0 … … 278 221 279 222 $title = wp_html_excerpt( $blogname, 40, '…' ); 280 223 224 $notification = false; 225 $awaiting_mod = wp_count_comments(); 226 if ( current_user_can( 'edit_posts' ) && $awaiting_mod->moderated > 0 ) { 227 $notification = true; 228 } elseif ( ! is_multisite() && current_user_can( 'update_plugins' ) ) { 229 $update_data = wp_get_update_data(); 230 if ( $update_data['counts']['plugins'] > 0 ) { 231 $notification = true; 232 } 233 } 234 281 235 $wp_admin_bar->add_menu( array( 282 236 'id' => 'site-name', 283 237 'title' => $title, 284 238 'href' => is_admin() ? home_url( '/' ) : admin_url(), 239 'meta' => array( 240 'class' => ( ! is_admin() && $notification ) ? 'notification-pending' : '', 241 ), 285 242 ) ); 286 243 287 244 // Create submenu items. … … 313 270 'href' => admin_url(), 314 271 ) ); 315 272 316 // Add the a ppearancesubmenu items.317 wp_admin_bar_a ppearance_menu( $wp_admin_bar );273 // Add the admin submenu items. 274 wp_admin_bar_admin_menu( $wp_admin_bar ); 318 275 } 319 276 } 320 277 … … 629 586 } 630 587 631 588 /** 632 * Add edit comments link with awaiting moderation count bubble.589 * Add "Customize" menu. 633 590 * 634 * @since 3.1.0591 * @since 4.3.0 635 592 * 636 593 * @param WP_Admin_Bar $wp_admin_bar 637 594 */ 638 function wp_admin_bar_comments_menu( $wp_admin_bar ) { 639 if ( !current_user_can('edit_posts') ) 640 return; 641 642 $awaiting_mod = wp_count_comments(); 643 $awaiting_mod = $awaiting_mod->moderated; 644 $awaiting_title = esc_attr( sprintf( _n( '%s comment awaiting moderation', '%s comments awaiting moderation', $awaiting_mod ), number_format_i18n( $awaiting_mod ) ) ); 645 646 $icon = '<span class="ab-icon"></span>'; 647 $title = '<span id="ab-awaiting-mod" class="ab-label awaiting-mod pending-count count-' . $awaiting_mod . '">' . number_format_i18n( $awaiting_mod ) . '</span>'; 648 649 $wp_admin_bar->add_menu( array( 650 'id' => 'comments', 651 'title' => $icon . $title, 652 'href' => admin_url('edit-comments.php'), 653 'meta' => array( 'title' => $awaiting_title ), 654 ) ); 595 function wp_admin_bar_customize_menu( $wp_admin_bar ) { 596 if ( current_user_can( 'customize' ) ) { 597 $current_url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; 598 $customize_url = add_query_arg( 'url', urlencode( $current_url ), wp_customize_url() ); 599 $title = '<span class="ab-icon"></span><span class="ab-label">' . __( 'Customize' ) . '</span>'; 600 $wp_admin_bar->add_menu( array( 601 'id' => 'customize', 602 'title' => $title, 603 'href' => $customize_url, 604 'meta' => array( 605 'class' => 'hide-if-no-customize', 606 ), 607 ) ); 608 add_action( 'wp_before_admin_bar_render', 'wp_customize_support_script' ); 609 } 655 610 } 656 611 657 612 /** 658 * Add a ppearancesubmenu items to the "Site Name" menu.613 * Add admin submenu items to the "Site Name" menu. 659 614 * 660 * @since 3.1.0615 * @since 4.3.0 661 616 * 662 617 * @param WP_Admin_Bar $wp_admin_bar 663 618 */ 664 function wp_admin_bar_a ppearance_menu( $wp_admin_bar ) {665 $wp_admin_bar->add_group( array( 'parent' => 'site-name', 'id' => 'a ppearance' ) );619 function wp_admin_bar_admin_menu( $wp_admin_bar ) { 620 $wp_admin_bar->add_group( array( 'parent' => 'site-name', 'id' => 'admin' ) ); 666 621 667 $current_url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];668 $c ustomize_url = add_query_arg( 'url', urlencode( $current_url ), wp_customize_url());622 // Post types. 623 $cpts = (array) get_post_types( array( 'show_in_admin_bar' => true ), 'objects' ); 669 624 670 if ( current_user_can( 'switch_themes' ) ) { 671 $wp_admin_bar->add_menu( array( 672 'parent' => 'appearance', 673 'id' => 'themes', 674 'title' => __( 'Themes' ), 675 'href' => admin_url( 'themes.php' ), 676 'meta' => array( 677 'class' => 'hide-if-customize', 678 ), 679 ) ); 625 if ( isset( $cpts['post'] ) && current_user_can( $cpts['post']->cap->edit_posts ) ) { 626 $actions[ 'edit.php' ] = array( $cpts['post']->labels->name, 'edit-posts' ); 627 } 680 628 681 if ( current_user_can( 'customize' ) ) { 682 $wp_admin_bar->add_menu( array( 683 'parent' => 'appearance', 684 'id' => 'customize-themes', 685 'title' => __( 'Themes' ), 686 'href' => add_query_arg( urlencode( 'autofocus[section]' ), 'themes', $customize_url ), // urlencode() needed due to #16859 687 'meta' => array( 688 'class' => 'hide-if-no-customize', 689 ), 690 ) ); 691 } 629 if ( isset( $cpts['attachment'] ) && current_user_can( 'edit_posts' ) ) { 630 $actions[ 'upload.php' ] = array( $cpts['attachment']->labels->name, 'edit-media' ); 692 631 } 693 632 694 if ( current_user_can( 'customize' ) ) { 695 $wp_admin_bar->add_menu( array( 696 'parent' => 'appearance', 697 'id' => 'customize', 698 'title' => __('Customize'), 699 'href' => $customize_url, 700 'meta' => array( 701 'class' => 'hide-if-no-customize', 702 ), 703 ) ); 704 add_action( 'wp_before_admin_bar_render', 'wp_customize_support_script' ); 633 if ( isset( $cpts['page'] ) && current_user_can( $cpts['page']->cap->edit_posts ) ) { 634 $actions[ 'edit.php?post_type=page' ] = array( $cpts['page']->labels->name, 'edit-pages' ); 705 635 } 706 636 707 if ( ! current_user_can( 'edit_theme_options' ) ) { 708 return; 637 unset( $cpts['post'], $cpts['page'], $cpts['attachment'] ); 638 639 // Add any additional custom post types. 640 foreach ( $cpts as $cpt ) { 641 if ( ! current_user_can( $cpt->cap->edit_posts ) ) 642 continue; 643 644 $key = 'edit.php?post_type=' . $cpt->name; 645 $actions[ $key ] = array( $cpt->labels->name, 'edit-' . $cpt->name ); 709 646 } 710 647 711 if ( current_theme_supports( 'widgets' ) ) { 712 $wp_admin_bar->add_menu( array( 713 'parent' => 'appearance', 714 'id' => 'widgets', 715 'title' => __( 'Widgets' ), 716 'href' => admin_url( 'widgets.php' ), 717 'meta' => array( 718 'class' => 'hide-if-customize', 719 ), 720 ) ); 648 if ( $actions ) { 649 foreach ( $actions as $link => $action ) { 650 list( $title, $id ) = $action; 721 651 722 if ( current_user_can( 'customize' ) ) {723 652 $wp_admin_bar->add_menu( array( 724 'parent' => 'appearance', 725 'id' => 'customize-widgets', 726 'title' => __( 'Widgets' ), 727 'href' => add_query_arg( urlencode( 'autofocus[panel]' ), 'widgets', $customize_url ), // urlencode() needed due to #16859 728 'meta' => array( 729 'class' => 'hide-if-no-customize', 730 ), 653 'parent' => 'admin', 654 'id' => $id, 655 'title' => $title, 656 'href' => admin_url( $link ) 731 657 ) ); 732 658 } 733 659 } 734 660 735 if ( current_theme_supports( 'menus' ) || current_theme_supports( 'widgets' ) ) 736 $wp_admin_bar->add_menu( array( 'parent' => 'appearance', 'id' => 'menus', 'title' => __('Menus'), 'href' => admin_url('nav-menus.php') ) ); 661 // Comments 662 if ( current_user_can( 'edit_posts' ) ) { 663 $awaiting_mod = wp_count_comments(); 664 $awaiting_mod = $awaiting_mod->moderated; 665 $wp_admin_bar->add_menu( array( 666 'parent' => 'admin', 667 'id' => 'comments', 668 'title' => sprintf( __( 'Comments %s' ), "<span class='awaiting-mod count-$awaiting_mod'><span class='pending-count'>" . number_format_i18n( $awaiting_mod ) . "</span></span>" ), 669 'href' => admin_url( 'edit-comments.php' ), 670 ) ); 671 } 737 672 738 if ( current_theme_supports( 'custom-background' ) ) { 673 // Appearance. 674 if ( current_user_can( 'switch_themes' ) || current_user_can( 'edit_theme_options' ) ) { 739 675 $wp_admin_bar->add_menu( array( 740 'parent' => 'appearance', 741 'id' => 'background', 742 'title' => __( 'Background' ), 743 'href' => admin_url( 'themes.php?page=custom-background' ), 744 'meta' => array( 745 'class' => 'hide-if-customize', 746 ), 676 'parent' => 'admin', 677 'id' => 'themes', 678 'title' => __( 'Appearance' ), // @todo should we just say themes here since there isn't a submenu? 679 'href' => admin_url( 'themes.php' ) 747 680 ) ); 681 } 748 682 749 if ( current_user_can( 'customize' ) ) { 750 $wp_admin_bar->add_menu( array( 751 'parent' => 'appearance', 752 'id' => 'customize-background', 753 'title' => __( 'Background' ), 754 'href' => add_query_arg( urlencode( 'autofocus[control]' ), 'background_image', $customize_url ), // urlencode() needed due to #16859 755 'meta' => array( 756 'class' => 'hide-if-no-customize', 757 ), 758 ) ); 683 // Plugins. 684 if ( current_user_can( 'activate_plugins' ) ) { 685 if ( ! is_multisite() && current_user_can( 'update_plugins' ) ) { 686 $update_data = wp_get_update_data(); 687 $count = "<span class='update-plugins count-{$update_data['counts']['plugins']}'><span class='plugin-count'>" . number_format_i18n($update_data['counts']['plugins']) . "</span></span>"; 688 } else { 689 $count = ''; 759 690 } 691 $wp_admin_bar->add_menu( array( 692 'parent' => 'admin', 693 'id' => 'plugins', 694 'title' => sprintf( __( 'Plugins %s' ), $count ), 695 'href' => admin_url( 'plugins.php' ) 696 ) ); 760 697 } 761 698 762 if ( current_theme_supports( 'custom-header' ) ) { 699 // Users. 700 if ( current_user_can( 'list_users' ) ) { 763 701 $wp_admin_bar->add_menu( array( 764 'parent' => 'appearance', 765 'id' => 'header', 766 'title' => __( 'Header' ), 767 'href' => admin_url( 'themes.php?page=custom-header' ), 768 'meta' => array( 769 'class' => 'hide-if-customize', 770 ), 702 'parent' => 'admin', 703 'id' => 'edit-users', 704 'title' => __( 'Users' ), 705 'href' => admin_url( 'users.php' ) 771 706 ) ); 707 } 772 708 773 if ( current_user_can( 'customize' ) ) { 774 $wp_admin_bar->add_menu( array( 775 'parent' => 'appearance', 776 'id' => 'customize-header', 777 'title' => __( 'Header' ), 778 'href' => add_query_arg( urlencode( 'autofocus[control]' ), 'header_image', $customize_url ), // urlencode() needed due to #16859 779 'meta' => array( 780 'class' => 'hide-if-no-customize', 781 ), 782 ) ); 783 } 709 // Users. 710 if ( current_user_can( 'edit_posts' ) ) { 711 $wp_admin_bar->add_menu( array( 712 'parent' => 'admin', 713 'id' => 'tools', 714 'title' => __( 'Tools' ), 715 'href' => admin_url( 'tools.php' ) 716 ) ); 784 717 } 785 718 719 // Settings. 720 if ( current_user_can( 'manage_options' ) ) { 721 $wp_admin_bar->add_menu( array( 722 'parent' => 'admin', 723 'id' => 'settings', 724 'title' => __( 'Settings' ), 725 'href' => admin_url( 'options.php' ) 726 ) ); 727 } 786 728 } 787 729 788 730 /** … … 854 796 'class' => 'ab-top-secondary', 855 797 ), 856 798 ) ); 857 858 $wp_admin_bar->add_group( array(859 'parent' => 'wp-logo',860 'id' => 'wp-logo-external',861 'meta' => array(862 'class' => 'ab-sub-secondary',863 ),864 ) );865 799 } 866 800 867 801 /** -
src/wp-includes/class-wp-admin-bar.php
553 553 554 554 // Site related. 555 555 add_action( 'admin_bar_menu', 'wp_admin_bar_sidebar_toggle', 0 ); 556 add_action( 'admin_bar_menu', 'wp_admin_bar_wp_menu', 10 );557 556 add_action( 'admin_bar_menu', 'wp_admin_bar_my_sites_menu', 20 ); 558 557 add_action( 'admin_bar_menu', 'wp_admin_bar_site_menu', 30 ); 558 add_action( 'admin_bar_menu', 'wp_admin_bar_customize_menu', 35 ); 559 559 add_action( 'admin_bar_menu', 'wp_admin_bar_updates_menu', 40 ); 560 560 561 561 // Content related. 562 562 if ( ! is_network_admin() && ! is_user_admin() ) { 563 add_action( 'admin_bar_menu', 'wp_admin_bar_comments_menu', 60 );564 563 add_action( 'admin_bar_menu', 'wp_admin_bar_new_content_menu', 70 ); 565 564 } 566 565 add_action( 'admin_bar_menu', 'wp_admin_bar_edit_menu', 80 ); -
src/wp-includes/css/admin-bar.css
458 458 width: auto; 459 459 } 460 460 461 /**462 * WP Logo463 */464 #wpadminbar #wp-admin-bar-wp-logo > .ab-item .ab-icon {465 width: 15px;466 height: 20px;467 margin-right: 0;468 padding: 6px 0 5px;469 }470 471 #wpadminbar #wp-admin-bar-wp-logo > .ab-item {472 padding: 0 7px;473 }474 475 #wpadminbar #wp-admin-bar-wp-logo > .ab-item .ab-icon:before {476 content: '\f120';477 top: 2px;478 }479 480 461 /* 481 462 * My Sites & Site Title 482 463 */ … … 501 482 margin: 6px 8px 0 -2px; 502 483 } 503 484 504 #wpadminbar #wp-admin-bar- appearance{505 margin-top: -12px;485 #wpadminbar #wp-admin-bar-site-name-default { 486 padding-bottom: 2px; 506 487 } 507 488 489 #wpadminbar #wp-admin-bar-themes { 490 margin-top: 8px; 491 } 492 508 493 #wpadminbar #wp-admin-bar-my-sites > .ab-item:before, 509 494 #wpadminbar #wp-admin-bar-site-name > .ab-item:before { 510 495 content: '\f112'; … … 517 502 } 518 503 519 504 #wpadminbar #wp-admin-bar-site-name > .ab-item:before { 520 content: "\f226"; 505 content: "\f120"; 506 top: 2px; 521 507 } 522 508 523 509 .wp-admin #wpadminbar #wp-admin-bar-site-name > .ab-item:before { … … 529 515 /** 530 516 * Comments 531 517 */ 532 #wpadminbar #wp-admin-bar-comments .ab-icon { 533 margin-right: 6px; 518 #wp-admin-bar-site-name.notification-pending:before { 519 content: ""; 520 width: 6px; 521 height: 6px; 522 background: #d54e21; 523 position: absolute; 524 top: 6px; 525 left: 23px; 526 border-radius: 100%; 527 z-index: 1; 534 528 } 535 529 536 #wpadminbar #wp-admin-bar-comments .ab-icon:before { 537 content: '\f101'; 538 top: 3px; 530 #wpadminbar .awaiting-mod, 531 #wpadminbar .update-plugins { 532 display: inline-block; 533 background-color: #d54e21; 534 color: #fff; 535 font-size: 9px; 536 line-height: 17px; 537 font-weight: 600; 538 margin: 5px 0 0 2px; 539 vertical-align: top; 540 -webkit-border-radius: 10px; 541 border-radius: 10px; 542 z-index: 26; 539 543 } 540 544 541 #wpadminbar #wp-admin-bar-comments .count-0 { 542 opacity: .5; 545 #wpadminbar li .awaiting-mod span, 546 #wpadminbar li span.update-plugins span { 547 display: block; 548 padding: 0 6px; 549 font-size: 9px; 550 line-height: 17px; 543 551 } 544 552 553 #wpadminbar li span.count-0 { 554 display: none; 555 } 556 545 557 /** 546 558 * New Content 547 559 */ … … 551 563 } 552 564 553 565 /** 566 * Customize 567 */ 568 #wpadminbar #wp-admin-bar-customize .ab-icon { 569 margin-right: 6px; 570 } 571 572 #wpadminbar #wp-admin-bar-customize .ab-icon:before { 573 content: '\f180'; 574 top: 2px; 575 } 576 577 /** 554 578 * Updates 555 579 */ 556 580 #wpadminbar #wp-admin-bar-updates .ab-icon:before { … … 846 870 display: none; 847 871 } 848 872 849 /* WP logo */850 #wpadminbar #wp-admin-bar-wp-logo > .ab-item {851 padding: 0;852 }853 854 #wpadminbar #wp-admin-bar-wp-logo > .ab-item .ab-icon {855 padding: 0;856 width: 52px;857 height: 46px;858 text-align: center;859 vertical-align: top;860 }861 862 #wpadminbar #wp-admin-bar-wp-logo > .ab-item .ab-icon:before {863 font: 28px/1 'dashicons' !important;864 top: -3px;865 }866 867 873 #wpadminbar .ab-icon, 868 874 #wpadminbar .ab-item:before { 869 875 padding: 0; … … 937 943 top: 3px; 938 944 } 939 945 940 /* C omments*/941 #wpadminbar #wp-admin-bar-c omments.ab-icon {946 /* Customize */ 947 #wpadminbar #wp-admin-bar-customize .ab-icon { 942 948 margin: 0; 943 949 } 944 950 945 #wpadminbar #wp-admin-bar-c omments.ab-icon:before {951 #wpadminbar #wp-admin-bar-customize .ab-icon:before { 946 952 display: block; 947 953 font-size: 34px; 948 954 height: 46px; … … 1002 1008 } 1003 1009 1004 1010 #wpadminbar li#wp-admin-bar-menu-toggle, 1005 #wpadminbar li#wp-admin-bar-wp-logo,1006 1011 #wpadminbar li#wp-admin-bar-my-sites, 1007 1012 #wpadminbar li#wp-admin-bar-updates, 1008 1013 #wpadminbar li#wp-admin-bar-site-name, 1009 1014 #wpadminbar li#wp-admin-bar-new-content, 1010 1015 #wpadminbar li#wp-admin-bar-edit, 1011 #wpadminbar li#wp-admin-bar-c omments,1016 #wpadminbar li#wp-admin-bar-customize, 1012 1017 #wpadminbar li#wp-admin-bar-my-account { 1013 1018 display: block; 1014 1019 }