WordPress.org

Make WordPress Core

Ticket #23450: 23450.7.diff

File 23450.7.diff, 36.3 KB (added by DrewAPicture, 5 years ago)

Screen options attribute toggles

  • wp-admin/css/wp-admin.css

     
    60016001        overflow: auto;
    60026002}
    60036003
     6004.wp-full-overlay-sidebar-content .accordion-section:first-child {
     6005        border-top: 1px solid #fff;
     6006}
     6007
    60046008/* Close Link */
    60056009.wp-full-overlay .close-full-overlay {
    60066010        text-decoration: none;
     
    71667170        display: block;
    71677171}
    71687172
     7173#nav-menu-meta ul.outer-border {
     7174        -webkit-border-radius: 3px;
     7175        border-radius: 3px;
     7176}
     7177
     7178.accordion-section ul.category-tabs,
     7179.accordion-section ul.add-menu-item-tabs,
     7180.accordion-section ul.wp-tab-bar {
     7181        margin: 0;
     7182}
     7183
     7184.accordion-section .categorychecklist {
     7185        margin: 13px 0;
     7186}
     7187
     7188#nav-menu-meta .accordion-section-content {
     7189        padding: 18px 13px;
     7190}
     7191
     7192#nav-menu-meta .button-controls {
     7193        margin-bottom: 0;
     7194}
     7195
    71697196#nav-menus-frame {
    71707197        margin-left: 300px;
    71717198        margin-top: 28px;
     
    72957322}
    72967323
    72977324.nav-menus-php #post-body {
    7298         padding: 0 10px;
     7325        padding: 0 10px 10px;
    72997326        border-width: 1px 0;
    73007327        border-style: solid;
    73017328}
     
    73657392}
    73667393
    73677394/* Add Menu Item Boxes */
    7368 .postbox .howto input {
     7395.postbox .howto input,
     7396.accordion-container .howto input {
    73697397        width: 180px;
    73707398        float: right;
    73717399}
    73727400
     7401.accordion-container .outer-border {
     7402        margin-top: 0;
     7403}
     7404
     7405.accordion-container .accordion-section:first-child {
     7406        -webkit-border-top-right-radius: 3px;
     7407        -webkit-border-top-left-radius: 3px;
     7408        border-top-right-radius: 3px;
     7409        border-top-left-radius: 3px;
     7410}
     7411
     7412.accordion-container .accordion-section:last-child {
     7413        -webkit-border-bottom-right-radius: 3px;
     7414        -webkit-border-bottom-left-radius: 3px;
     7415        border-bottom-right-radius: 3px;
     7416        border-bottom-left-radius: 3px;
     7417}
     7418
    73737419.customlinkdiv .howto input {
    7374         width: 200px;
     7420        width: 180px;
    73757421}
    73767422
     7423.customlinkdiv p {
     7424        margin-top: 0
     7425}
     7426
    73777427#nav-menu-theme-locations .howto select {
    73787428        width: 100%;
    73797429}
     
    87828832        margin: 0;
    87838833}
    87848834
     8835.accordion-section:first-child {
     8836        border-top: 1px solid #dfdfdf;
     8837}
     8838
    87858839.accordion-section:last-child {
    87868840        box-shadow: 0 1px 0 0px #fff;
    87878841}
     
    87898843.accordion-section.open .accordion-section-content {
    87908844        display: block;
    87918845        background: #fdfdfd;
     8846        border-left: 1px solid #dfdfdf;
     8847        border-right: 1px solid #dfdfdf;
    87928848}
    87938849
    87948850.accordion-section.open:hover {
     
    88058861        margin: 0;
    88068862        padding: 15px 20px;
    88078863        position: relative;
     8864        border-left: 1px solid #dfdfdf;
     8865        border-right: 1px solid #dfdfdf;
    88088866
    88098867        cursor: pointer;
    88108868
     
    88788936        background-image:    -moz-linear-gradient(bottom, #6d6d6d, #808080);
    88798937        background-image:      -o-linear-gradient(bottom, #6d6d6d, #808080);
    88808938        background-image: linear-gradient(to top, #6d6d6d, #808080);
     8939        border-left: 1px solid #808080;
     8940        border-right: 1px solid #808080;
    88818941}
    88828942
    88838943.control-section.accordion-section:hover,
  • wp-admin/includes/nav-menu.php

     
    385385 * @since 3.0.0
    386386 **/
    387387function wp_nav_menu_setup() {
    388         // Register meta boxes
    389388        wp_nav_menu_post_type_meta_boxes();
    390         add_meta_box( 'add-custom-links', __( 'Add Links' ), 'wp_nav_menu_item_link_meta_box', 'nav-menus', 'side', 'default' );
     389        wp_nav_menu_item_link_meta_box();
    391390        wp_nav_menu_taxonomy_meta_boxes();
    392391
    393         // Register advanced menu items (columns)
    394         add_filter( 'manage_nav-menus_columns', 'wp_nav_menu_manage_columns');
    395 
    396392        // If first time editing, disable advanced items by default.
    397393        if( false === get_user_option( 'managenav-menuscolumnshidden' ) ) {
    398394                $user = wp_get_current_user();
     
    438434 * @since 3.0.0
    439435 */
    440436function wp_nav_menu_post_type_meta_boxes() {
    441         $post_types = get_post_types( array( 'show_in_nav_menus' => true ), 'object' );
     437        // Reverse array to show pages as first item
     438        $post_types = array_reverse( get_post_types( array( 'show_in_nav_menus' => true ), 'object' ) );
    442439
    443440        if ( ! $post_types )
    444441                return;
     
    447444                $post_type = apply_filters( 'nav_menu_meta_box_object', $post_type );
    448445                if ( $post_type ) {
    449446                        $id = $post_type->name;
    450                         add_meta_box( "add-{$id}", $post_type->labels->name, 'wp_nav_menu_item_post_type_meta_box', 'nav-menus', 'side', 'default', $post_type );
     447                        wp_nav_menu_item_post_type_meta_box( $post_type );
    451448                }
    452449        }
    453450}
     
    467464                $tax = apply_filters( 'nav_menu_meta_box_object', $tax );
    468465                if ( $tax ) {
    469466                        $id = $tax->name;
    470                         add_meta_box( "add-{$id}", $tax->labels->name, 'wp_nav_menu_item_taxonomy_meta_box', 'nav-menus', 'side', 'default', $tax );
     467                        wp_nav_menu_item_taxonomy_meta_box( $tax );
    471468                }
    472469        }
    473470}
     
    564561        );
    565562
    566563        ?>
    567         <div class="customlinkdiv" id="customlinkdiv">
     564        <li class="control-section accordion-section" id="accordion-section-title_tagline">
     565                <h3 title="" tabindex="0" class="accordion-section-title"><?php _e( 'Links' ); ?></h3>
     566                <div class="customlinkdiv accordion-section-content" id="customlinkdiv">
    568567
    569568                        <input type="hidden" value="custom" name="menu-item[<?php echo $_nav_menu_placeholder; ?>][menu-item-type]" />
    570569                        <p id="menu-item-url-wrap">
     
    577576                        <p id="menu-item-name-wrap">
    578577                                <label class="howto" for="custom-menu-item-name">
    579578                                        <span><?php _e( 'Link Text' ); ?></span>
    580                                         <input id="custom-menu-item-name" name="menu-item[<?php echo $_nav_menu_placeholder; ?>][menu-item-title]" type="text" class="regular-text menu-item-textbox input-with-default-title" title="<?php esc_attr_e('Menu Item'); ?>" />
     579                                        <input id="custom-menu-item-name" name="menu-item[<?php echo $_nav_menu_placeholder; ?>][menu-item-title]" type="text" class="regular-text menu-item-textbox input-with-default-title" title="<?php esc_attr_e( 'Menu Item' ); ?>" />
    581580                                </label>
    582581                        </p>
    583582
    584                 <p class="button-controls">
    585                         <span class="add-to-menu">
    586                                 <input type="submit"<?php wp_nav_menu_disabled_check( $nav_menu_selected_id ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e('Add to Menu'); ?>" name="add-custom-menu-item" id="submit-customlinkdiv" />
    587                                 <span class="spinner"></span>
    588                         </span>
    589                 </p>
     583                        <p class="button-controls">
     584                                <span class="add-to-menu">
     585                                        <input type="submit"<?php wp_nav_menu_disabled_check( $nav_menu_selected_id ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e( 'Add to Menu' ); ?>" name="add-custom-menu-item" id="submit-customlinkdiv" />
     586                                        <span class="spinner"></span>
     587                                </span>
     588                        </p>
    590589
    591         </div><!-- /.customlinkdiv -->
     590                </div><!-- /.customlinkdiv -->
     591        </li>
    592592        <?php
    593593}
    594594
     
    600600 * @param string $object Not used.
    601601 * @param string $post_type The post type object.
    602602 */
    603 function wp_nav_menu_item_post_type_meta_box( $object, $post_type ) {
     603function wp_nav_menu_item_post_type_meta_box( $post_type ) {
    604604        global $_nav_menu_placeholder, $nav_menu_selected_id;
    605605
    606         $post_type_name = $post_type['args']->name;
     606        $post_type_name = $post_type->name;
    607607
    608608        // paginate browsing for large numbers of post objects
    609609        $per_page = 50;
     
    621621                'update_post_meta_cache' => false
    622622        );
    623623
    624         if ( isset( $post_type['args']->_default_query ) )
    625                 $args = array_merge($args, (array) $post_type['args']->_default_query );
     624        if ( isset( $post_type->_default_query ) )
     625                $args = array_merge( $args, (array) $post_type->_default_query );
    626626
    627627        // @todo transient caching of these results with proper invalidation on updating of a post of this type
    628628        $get_posts = new WP_Query;
    629629        $posts = $get_posts->query( $args );
    630         if ( ! $get_posts->post_count ) {
    631                 echo '<p>' . __( 'No items.' ) . '</p>';
    632                 return;
     630        if ( ! $get_posts->post_count ) { ?>
     631
     632                <li class="control-section accordion-section" id="accordion-section-title_tagline">
     633                        <h3 title="" tabindex="0" class="accordion-section-title"><?php echo esc_html( $post_type->labels->name ); ?></h3>
     634                        <div id="posttype-<?php echo esc_attr( $post_type_name ); ?>" class="posttypediv accordion-section-content">
     635                                <?php _e( 'No items.' ); ?>
     636                        </div>
     637                </li>
     638        <?php return;
    633639        }
    634640
    635         $post_type_object = get_post_type_object($post_type_name);
     641        $post_type_object = get_post_type_object( $post_type_name );
    636642
    637643        $num_pages = $get_posts->max_num_pages;
    638644
     
    681687        );
    682688
    683689        ?>
    684         <div id="posttype-<?php echo $post_type_name; ?>" class="posttypediv">
    685                 <ul id="posttype-<?php echo $post_type_name; ?>-tabs" class="posttype-tabs add-menu-item-tabs">
    686                         <li <?php echo ( 'most-recent' == $current_tab ? ' class="tabs"' : '' ); ?>><a class="nav-tab-link" href="<?php if ( $nav_menu_selected_id ) echo esc_url(add_query_arg($post_type_name . '-tab', 'most-recent', remove_query_arg($removed_args))); ?>#tabs-panel-posttype-<?php echo $post_type_name; ?>-most-recent"><?php _e('Most Recent'); ?></a></li>
    687                         <li <?php echo ( 'all' == $current_tab ? ' class="tabs"' : '' ); ?>><a class="nav-tab-link" href="<?php if ( $nav_menu_selected_id ) echo esc_url(add_query_arg($post_type_name . '-tab', 'all', remove_query_arg($removed_args))); ?>#<?php echo $post_type_name; ?>-all"><?php _e('View All'); ?></a></li>
    688                         <li <?php echo ( 'search' == $current_tab ? ' class="tabs"' : '' ); ?>><a class="nav-tab-link" href="<?php if ( $nav_menu_selected_id ) echo esc_url(add_query_arg($post_type_name . '-tab', 'search', remove_query_arg($removed_args))); ?>#tabs-panel-posttype-<?php echo $post_type_name; ?>-search"><?php _e('Search'); ?></a></li>
    689                 </ul>
     690        <li class="control-section accordion-section" id="accordion-section-title_tagline">
     691                <h3 title="" tabindex="0" class="accordion-section-title"><?php echo esc_html( $post_type->labels->name ); ?></h3>
     692                <div id="posttype-<?php echo esc_attr( $post_type_name ); ?>" class="posttypediv accordion-section-content">
     693                        <ul id="posttype-<?php echo esc_attr( $post_type_name ); ?>-tabs" class="posttype-tabs add-menu-item-tabs">
     694                                <li <?php echo ( 'most-recent' == $current_tab ? ' class="tabs"' : '' ); ?>><a class="nav-tab-link tab-most-recent" data-type="tabs-panel-posttype-<?php echo esc_attr( $post_type_name ); ?>-most-recent" href="<?php if ( $nav_menu_selected_id ) echo esc_url( add_query_arg( $post_type_name . '-tab', 'most-recent', remove_query_arg( $removed_args ) ) ); ?>#tabs-panel-posttype-<?php echo esc_attr( $post_type_name ); ?>-most-recent"><?php _e( 'Most Recent' ); ?></a></li>
     695                                <li <?php echo ( 'all' == $current_tab ? ' class="tabs"' : '' ); ?>><a class="nav-tab-link" data-type="<?php echo esc_attr( $post_type_name ); ?>-all" href="<?php if ( $nav_menu_selected_id ) echo esc_url( add_query_arg( $post_type_name . '-tab', 'all', remove_query_arg( $removed_args ) ) . '#' . $post_type_name . '-all' ); ?> "><?php _e( 'View All' ); ?></a></li>
     696                                <li <?php echo ( 'search' == $current_tab ? ' class="tabs"' : '' ); ?>><a class="nav-tab-link" data-type="tabs-panel-posttype-<?php echo esc_attr( $post_type_name ); ?>-search" href="<?php if ( $nav_menu_selected_id ) echo esc_url( add_query_arg( $post_type_name . '-tab', 'search', remove_query_arg( $removed_args ) ) . '#tabs-panel-posttype-' .  $post_type_name . '-search' ); ?>"><?php _e( 'Search' ); ?></a></li>
     697                        </ul>
    690698
    691                 <div id="tabs-panel-posttype-<?php echo $post_type_name; ?>-most-recent" class="tabs-panel <?php
    692                         echo ( 'most-recent' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
    693                 ?>">
    694                         <ul id="<?php echo $post_type_name; ?>checklist-most-recent" class="categorychecklist form-no-clear">
    695                                 <?php
    696                                 $recent_args = array_merge( $args, array( 'orderby' => 'post_date', 'order' => 'DESC', 'posts_per_page' => 15 ) );
    697                                 $most_recent = $get_posts->query( $recent_args );
    698                                 $args['walker'] = $walker;
    699                                 echo walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $most_recent), 0, (object) $args );
    700                                 ?>
    701                         </ul>
    702                 </div><!-- /.tabs-panel -->
     699                        <div id="tabs-panel-posttype-<?php echo esc_attr( $post_type_name ); ?>-most-recent" class="tabs-panel <?php
     700                                echo ( 'most-recent' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
     701                        ?>">
     702                                <ul id="<?php echo esc_attr( $post_type_name ); ?>-checklist-most-recent" class="categorychecklist form-no-clear">
     703                                        <?php
     704                                        $recent_args = array_merge( $args, array( 'orderby' => 'post_date', 'order' => 'DESC', 'posts_per_page' => 15 ) );
     705                                        $most_recent = $get_posts->query( $recent_args );
     706                                        $args['walker'] = $walker;
     707                                        echo walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $most_recent), 0, (object) $args );
     708                                        ?>
     709                                </ul>
     710                        </div><!-- /.tabs-panel -->
    703711
    704                 <div class="tabs-panel <?php
    705                         echo ( 'search' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
    706                 ?>" id="tabs-panel-posttype-<?php echo $post_type_name; ?>-search">
    707                         <?php
    708                         if ( isset( $_REQUEST['quick-search-posttype-' . $post_type_name] ) ) {
    709                                 $searched = esc_attr( $_REQUEST['quick-search-posttype-' . $post_type_name] );
    710                                 $search_results = get_posts( array( 's' => $searched, 'post_type' => $post_type_name, 'fields' => 'all', 'order' => 'DESC', ) );
    711                         } else {
    712                                 $searched = '';
    713                                 $search_results = array();
    714                         }
    715                         ?>
    716                         <p class="quick-search-wrap">
    717                                 <input type="search" class="quick-search input-with-default-title" title="<?php esc_attr_e('Search'); ?>" value="<?php echo $searched; ?>" name="quick-search-posttype-<?php echo $post_type_name; ?>" />
    718                                 <span class="spinner"></span>
    719                                 <?php submit_button( __( 'Search' ), 'button-small quick-search-submit button-secondary hide-if-js', 'submit', false, array( 'id' => 'submit-quick-search-posttype-' . $post_type_name ) ); ?>
    720                         </p>
     712                        <div class="tabs-panel <?php
     713                                echo ( 'search' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
     714                        ?>" id="tabs-panel-posttype-<?php echo esc_attr( $post_type_name ); ?>-search">
     715                                <?php
     716                                if ( isset( $_REQUEST['quick-search-posttype-' . $post_type_name] ) ) {
     717                                        $searched = esc_attr( $_REQUEST['quick-search-posttype-' . $post_type_name] );
     718                                        $search_results = get_posts( array( 's' => $searched, 'post_type' => $post_type_name, 'fields' => 'all', 'order' => 'DESC', ) );
     719                                } else {
     720                                        $searched = '';
     721                                        $search_results = array();
     722                                }
     723                                ?>
     724                                <p class="quick-search-wrap">
     725                                        <input type="search" class="quick-search input-with-default-title" title="<?php esc_attr_e( 'Search' ); ?>" value="<?php echo esc_attr( $searched ); ?>" name="quick-search-posttype-<?php echo esc_attr( $post_type_name ); ?>" />
     726                                        <span class="spinner"></span>
     727                                        <?php submit_button( __( 'Search' ), 'button-small quick-search-submit button-secondary hide-if-js', 'submit', false, array( 'id' => 'submit-quick-search-posttype-' . $post_type_name ) ); ?>
     728                                </p>
    721729
    722                         <ul id="<?php echo $post_type_name; ?>-search-checklist" data-wp-lists="list:<?php echo $post_type_name?>" class="categorychecklist form-no-clear">
    723                         <?php if ( ! empty( $search_results ) && ! is_wp_error( $search_results ) ) : ?>
    724                                 <?php
    725                                 $args['walker'] = $walker;
    726                                 echo walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args );
    727                                 ?>
    728                         <?php elseif ( is_wp_error( $search_results ) ) : ?>
    729                                 <li><?php echo $search_results->get_error_message(); ?></li>
    730                         <?php elseif ( ! empty( $searched ) ) : ?>
    731                                 <li><?php _e('No results found.'); ?></li>
    732                         <?php endif; ?>
    733                         </ul>
    734                 </div><!-- /.tabs-panel -->
     730                                <ul id="<?php echo esc_attr( $post_type_name ); ?>-search-checklist" data-wp-lists="list:<?php echo esc_attr( $post_type_name ); ?>" class="categorychecklist form-no-clear">
     731                                <?php if ( ! empty( $search_results ) && ! is_wp_error( $search_results ) ) : ?>
     732                                        <?php
     733                                        $args['walker'] = $walker;
     734                                        echo walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args );
     735                                        ?>
     736                                <?php elseif ( is_wp_error( $search_results ) ) : ?>
     737                                        <li><?php echo $search_results->get_error_message(); ?></li>
     738                                <?php elseif ( ! empty( $searched ) ) : ?>
     739                                        <li><?php _e('No results found.'); ?></li>
     740                                <?php endif; ?>
     741                                </ul>
     742                        </div><!-- /.tabs-panel -->
    735743
    736                 <div id="<?php echo $post_type_name; ?>-all" class="tabs-panel tabs-panel-view-all <?php
    737                         echo ( 'all' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
    738                 ?>">
    739                         <?php if ( ! empty( $page_links ) ) : ?>
    740                                 <div class="add-menu-item-pagelinks">
    741                                         <?php echo $page_links; ?>
    742                                 </div>
    743                         <?php endif; ?>
    744                         <ul id="<?php echo $post_type_name; ?>checklist" data-wp-lists="list:<?php echo $post_type_name?>" class="categorychecklist form-no-clear">
    745                                 <?php
    746                                 $args['walker'] = $walker;
     744                        <div id="<?php echo esc_attr( $post_type_name ); ?>-all" class="tabs-panel tabs-panel-view-all <?php
     745                                echo ( 'all' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
     746                        ?>">
     747                                <?php if ( ! empty( $page_links ) ) : ?>
     748                                        <div class="add-menu-item-pagelinks">
     749                                                <?php echo $page_links; ?>
     750                                        </div>
     751                                <?php endif; ?>
     752                                <ul id="<?php echo esc_attr( $post_type_name ); ?>checklist" data-wp-lists="list:<?php echo esc_attr( $post_type_name ); ?>" class="categorychecklist form-no-clear">
     753                                        <?php
     754                                        $args['walker'] = $walker;
    747755
    748                                 // if we're dealing with pages, let's put a checkbox for the front page at the top of the list
    749                                 if ( 'page' == $post_type_name ) {
    750                                         $front_page = 'page' == get_option('show_on_front') ? (int) get_option( 'page_on_front' ) : 0;
    751                                         if ( ! empty( $front_page ) ) {
    752                                                 $front_page_obj = get_post( $front_page );
    753                                                 $front_page_obj->front_or_home = true;
    754                                                 array_unshift( $posts, $front_page_obj );
    755                                         } else {
    756                                                 $_nav_menu_placeholder = ( 0 > $_nav_menu_placeholder ) ? intval($_nav_menu_placeholder) - 1 : -1;
    757                                                 array_unshift( $posts, (object) array(
    758                                                         'front_or_home' => true,
    759                                                         'ID' => 0,
    760                                                         'object_id' => $_nav_menu_placeholder,
    761                                                         'post_content' => '',
    762                                                         'post_excerpt' => '',
    763                                                         'post_parent' => '',
    764                                                         'post_title' => _x('Home', 'nav menu home label'),
    765                                                         'post_type' => 'nav_menu_item',
    766                                                         'type' => 'custom',
    767                                                         'url' => home_url('/'),
    768                                                 ) );
     756                                        // if we're dealing with pages, let's put a checkbox for the front page at the top of the list
     757                                        if ( 'page' == $post_type_name ) {
     758                                                $front_page = 'page' == get_option( 'show_on_front' ) ? (int) get_option( 'page_on_front' ) : 0;
     759                                                if ( ! empty( $front_page ) ) {
     760                                                        $front_page_obj = get_post( $front_page );
     761                                                        $front_page_obj->front_or_home = true;
     762                                                        array_unshift( $posts, $front_page_obj );
     763                                                } else {
     764                                                        $_nav_menu_placeholder = ( 0 > $_nav_menu_placeholder ) ? intval($_nav_menu_placeholder) - 1 : -1;
     765                                                        array_unshift( $posts, (object) array(
     766                                                                'front_or_home' => true,
     767                                                                'ID' => 0,
     768                                                                'object_id' => $_nav_menu_placeholder,
     769                                                                'post_content' => '',
     770                                                                'post_excerpt' => '',
     771                                                                'post_parent' => '',
     772                                                                'post_title' => _x( 'Home', 'nav menu home label' ),
     773                                                                'post_type' => 'nav_menu_item',
     774                                                                'type' => 'custom',
     775                                                                'url' => home_url(),
     776                                                        ) );
     777                                                }
    769778                                        }
    770                                 }
    771779
    772                                 $posts = apply_filters( 'nav_menu_items_'.$post_type_name, $posts, $args, $post_type );
    773                                 $checkbox_items = walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $posts), 0, (object) $args );
     780                                        $posts = apply_filters( 'nav_menu_items_' . $post_type_name, $posts, $args, $post_type );
     781                                        $checkbox_items = walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $posts), 0, (object) $args );
    774782
    775                                 if ( 'all' == $current_tab && ! empty( $_REQUEST['selectall'] ) ) {
    776                                         $checkbox_items = preg_replace('/(type=(.)checkbox(\2))/', '$1 checked=$2checked$2', $checkbox_items);
     783                                        if ( 'all' == $current_tab && ! empty( $_REQUEST['selectall'] ) )
     784                                                $checkbox_items = preg_replace( '/(type=(.)checkbox(\2))/', '$1 checked=$2checked$2', $checkbox_items );
    777785
    778                                 }
     786                                        echo $checkbox_items;
     787                                        ?>
     788                                </ul>
     789                                <?php if ( ! empty( $page_links ) ) : ?>
     790                                        <div class="add-menu-item-pagelinks">
     791                                                <?php echo $page_links; ?>
     792                                        </div>
     793                                <?php endif; ?>
     794                        </div><!-- /.tabs-panel -->
    779795
    780                                 echo $checkbox_items;
    781                                 ?>
    782                         </ul>
    783                         <?php if ( ! empty( $page_links ) ) : ?>
    784                                 <div class="add-menu-item-pagelinks">
    785                                         <?php echo $page_links; ?>
    786                                 </div>
    787                         <?php endif; ?>
    788                 </div><!-- /.tabs-panel -->
     796                        <p class="button-controls">
     797                                <span class="list-controls">
     798                                        <a href="<?php echo esc_url( add_query_arg( array( $post_type_name . '-tab' => 'all', 'selectall' => 1 ), remove_query_arg( $removed_args ) ) . '#posttype-' . $post_type_name ); ?>" class="select-all"><?php _e( 'Select All' ); ?></a>
     799                                </span>
    789800
    790                 <p class="button-controls">
    791                         <span class="list-controls">
    792                                 <a href="<?php
    793                                         echo esc_url( add_query_arg(
    794                                                 array(
    795                                                         $post_type_name . '-tab' => 'all',
    796                                                         'selectall' => 1,
    797                                                 ),
    798                                                 remove_query_arg( $removed_args )
    799                                         ));
    800                                 ?>#posttype-<?php echo $post_type_name; ?>" class="select-all"><?php _e('Select All'); ?></a>
    801                         </span>
     801                                <span class="add-to-menu">
     802                                        <input type="submit"<?php disabled( $nav_menu_selected_id, 0 ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e( 'Add to Menu' ) ; ?>" name="add-post-type-menu-item" id="submit-posttype-<?php echo esc_attr( $post_type_name ); ?>" />
     803                                        <span class="spinner"></span>
     804                                </span>
     805                        </p>
    802806
    803                         <span class="add-to-menu">
    804                                 <input type="submit"<?php wp_nav_menu_disabled_check( $nav_menu_selected_id ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e( __( 'Add to Menu' ) ); ?>" name="add-post-type-menu-item" id="<?php esc_attr_e( 'submit-posttype-' . $post_type_name ); ?>" />
    805                                 <span class="spinner"></span>
    806                         </span>
    807                 </p>
    808 
    809         </div><!-- /.posttypediv -->
     807                </div><!-- /.posttypediv -->
     808        </li>
    810809        <?php
    811810}
    812811
     
    818817 * @param string $object Not used.
    819818 * @param string $taxonomy The taxonomy object.
    820819 */
    821 function wp_nav_menu_item_taxonomy_meta_box( $object, $taxonomy ) {
     820function wp_nav_menu_item_taxonomy_meta_box( $taxonomy ) {
    822821        global $nav_menu_selected_id;
    823         $taxonomy_name = $taxonomy['args']->name;
     822        $taxonomy_name = $taxonomy->name;
    824823
    825824        // paginate browsing for large numbers of objects
    826825        $per_page = 50;
     
    842841
    843842        $terms = get_terms( $taxonomy_name, $args );
    844843
    845         if ( ! $terms || is_wp_error($terms) ) {
    846                 echo '<p>' . __( 'No items.' ) . '</p>';
    847                 return;
     844        if ( is_wp_error( $terms ) ) { ?>
     845                <li class="control-section accordion-section" id="accordion-section-title_tagline">
     846                        <h3 title="" tabindex="0" class="accordion-section-title"><?php echo esc_html( $taxonomy->labels->name ); ?></h3>
     847                        <div id="posttype-<?php echo esc_attr( $taxonomy_name ); ?>" class="posttypediv accordion-section-content">
     848                                <?php _e( 'No items.' ); ?>
     849                        </div>
     850                </li>
     851        <?php return;
    848852        }
    849853
    850854        $num_pages = ceil( wp_count_terms( $taxonomy_name , array_merge( $args, array('number' => '', 'offset' => '') ) ) / $per_page );
     
    891895        );
    892896
    893897        ?>
    894         <div id="taxonomy-<?php echo $taxonomy_name; ?>" class="taxonomydiv">
    895                 <ul id="taxonomy-<?php echo $taxonomy_name; ?>-tabs" class="taxonomy-tabs add-menu-item-tabs">
    896                         <li <?php echo ( 'most-used' == $current_tab ? ' class="tabs"' : '' ); ?>><a class="nav-tab-link" href="<?php if ( $nav_menu_selected_id ) echo esc_url(add_query_arg($taxonomy_name . '-tab', 'most-used', remove_query_arg($removed_args))); ?>#tabs-panel-<?php echo $taxonomy_name; ?>-pop"><?php _e('Most Used'); ?></a></li>
    897                         <li <?php echo ( 'all' == $current_tab ? ' class="tabs"' : '' ); ?>><a class="nav-tab-link" href="<?php if ( $nav_menu_selected_id ) echo esc_url(add_query_arg($taxonomy_name . '-tab', 'all', remove_query_arg($removed_args))); ?>#tabs-panel-<?php echo $taxonomy_name; ?>-all"><?php _e('View All'); ?></a></li>
    898                         <li <?php echo ( 'search' == $current_tab ? ' class="tabs"' : '' ); ?>><a class="nav-tab-link" href="<?php if ( $nav_menu_selected_id ) echo esc_url(add_query_arg($taxonomy_name . '-tab', 'search', remove_query_arg($removed_args))); ?>#tabs-panel-search-taxonomy-<?php echo $taxonomy_name; ?>"><?php _e('Search'); ?></a></li>
    899                 </ul>
     898        <li class="control-section accordion-section" id="accordion-section-title_tagline">
     899                <h3 title="" tabindex="0" class="accordion-section-title"><?php echo esc_html( $taxonomy->labels->name ); ?></h3>
     900                <div id="taxonomy-<?php echo esc_attr( $taxonomy_name ); ?>" class="taxonomydiv accordion-section-content">
     901                        <ul id="taxonomy-<?php echo esc_attr( $taxonomy_name ); ?>-tabs" class="taxonomy-tabs add-menu-item-tabs">
     902                                <li <?php echo ( 'most-used' == $current_tab ? ' class="tabs"' : '' ); ?>><a class="nav-tab-link" data-type="tabs-panel-<?php echo esc_attr( $taxonomy_name ); ?>-pop" href="<?php if ( $nav_menu_selected_id ) echo esc_url( add_query_arg($taxonomy_name . '-tab', 'most-used', remove_query_arg( $removed_args ) ) . '#tabs-panel-' . $taxonomy_name . '-pop' ); ?>"><?php _e( 'Most Used' ); ?></a></li>
     903                                <li <?php echo ( 'all' == $current_tab ? ' class="tabs"' : '' ); ?>><a class="nav-tab-link" data-type="tabs-panel-<?php echo esc_attr( $taxonomy_name ); ?>-all" href="<?php if ( $nav_menu_selected_id ) echo esc_url( add_query_arg( $taxonomy_name . '-tab', 'all', remove_query_arg( $removed_args ) ) . '#tabs-panel-' . $taxonomy_name . '-all' ); ?>"><?php _e( 'View All' ); ?></a></li>
     904                                <li <?php echo ( 'search' == $current_tab ? ' class="tabs"' : '' ); ?>><a class="nav-tab-link" data-type="tabs-panel-search-taxonomy-<?php echo esc_attr( $taxonomy_name ); ?>" href="<?php if ( $nav_menu_selected_id ) echo esc_url( add_query_arg( $taxonomy_name . '-tab', 'search', remove_query_arg( $removed_args ) ) ); ?>#tabs-panel-search-taxonomy-<?php echo esc_attr( $taxonomy_name ); ?>"><?php _e( 'Search' ); ?></a></li>
     905                        </ul>
    900906
    901                 <div id="tabs-panel-<?php echo $taxonomy_name; ?>-pop" class="tabs-panel <?php
    902                         echo ( 'most-used' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
    903                 ?>">
    904                         <ul id="<?php echo $taxonomy_name; ?>checklist-pop" class="categorychecklist form-no-clear" >
    905                                 <?php
    906                                 $popular_terms = get_terms( $taxonomy_name, array( 'orderby' => 'count', 'order' => 'DESC', 'number' => 10, 'hierarchical' => false ) );
    907                                 $args['walker'] = $walker;
    908                                 echo walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $popular_terms), 0, (object) $args );
    909                                 ?>
    910                         </ul>
    911                 </div><!-- /.tabs-panel -->
     907                        <div id="tabs-panel-<?php echo esc_attr( $taxonomy_name ); ?>-pop" class="tabs-panel <?php
     908                                echo ( 'most-used' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
     909                        ?>">
     910                                <ul id="<?php echo esc_attr( $taxonomy_name ); ?>checklist-pop" class="categorychecklist form-no-clear" >
     911                                        <?php
     912                                        $popular_terms = get_terms( $taxonomy_name, array( 'orderby' => 'count', 'order' => 'DESC', 'number' => 10, 'hierarchical' => false ) );
     913                                        $args['walker'] = $walker;
     914                                        echo walk_nav_menu_tree( array_map( 'wp_setup_nav_menu_item', $popular_terms ), 0, (object) $args );
     915                                        ?>
     916                                </ul>
     917                        </div><!-- /.tabs-panel -->
    912918
    913                 <div id="tabs-panel-<?php echo $taxonomy_name; ?>-all" class="tabs-panel tabs-panel-view-all <?php
    914                         echo ( 'all' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
    915                 ?>">
    916                         <?php if ( ! empty( $page_links ) ) : ?>
    917                                 <div class="add-menu-item-pagelinks">
    918                                         <?php echo $page_links; ?>
    919                                 </div>
    920                         <?php endif; ?>
    921                         <ul id="<?php echo $taxonomy_name; ?>checklist" data-wp-lists="list:<?php echo $taxonomy_name?>" class="categorychecklist form-no-clear">
    922                                 <?php
    923                                 $args['walker'] = $walker;
    924                                 echo walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $terms), 0, (object) $args );
    925                                 ?>
    926                         </ul>
    927                         <?php if ( ! empty( $page_links ) ) : ?>
    928                                 <div class="add-menu-item-pagelinks">
    929                                         <?php echo $page_links; ?>
    930                                 </div>
    931                         <?php endif; ?>
    932                 </div><!-- /.tabs-panel -->
     919                        <div id="tabs-panel-<?php echo esc_attr( $taxonomy_name ); ?>-all" class="tabs-panel tabs-panel-view-all <?php
     920                                echo ( 'all' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
     921                        ?>">
     922                                <?php if ( ! empty( $page_links ) ) : ?>
     923                                        <div class="add-menu-item-pagelinks">
     924                                                <?php echo $page_links; ?>
     925                                        </div>
     926                                <?php endif; ?>
     927                                <ul id="<?php echo esc_attr( $taxonomy_name ); ?>checklist" data-wp-lists="list:<?php echo esc_attr( $taxonomy_name ); ?>" class="categorychecklist form-no-clear">
     928                                        <?php
     929                                        $args['walker'] = $walker;
     930                                        echo walk_nav_menu_tree( array_map( 'wp_setup_nav_menu_item', $terms ), 0, (object) $args );
     931                                        ?>
     932                                </ul>
     933                                <?php if ( ! empty( $page_links ) ) : ?>
     934                                        <div class="add-menu-item-pagelinks">
     935                                                <?php echo $page_links; ?>
     936                                        </div>
     937                                <?php endif; ?>
     938                        </div><!-- /.tabs-panel -->
    933939
    934                 <div class="tabs-panel <?php
    935                         echo ( 'search' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
    936                 ?>" id="tabs-panel-search-taxonomy-<?php echo $taxonomy_name; ?>">
    937                         <?php
    938                         if ( isset( $_REQUEST['quick-search-taxonomy-' . $taxonomy_name] ) ) {
    939                                 $searched = esc_attr( $_REQUEST['quick-search-taxonomy-' . $taxonomy_name] );
    940                                 $search_results = get_terms( $taxonomy_name, array( 'name__like' => $searched, 'fields' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'hierarchical' => false ) );
    941                         } else {
    942                                 $searched = '';
    943                                 $search_results = array();
    944                         }
    945                         ?>
    946                         <p class="quick-search-wrap">
    947                                 <input type="search" class="quick-search input-with-default-title" title="<?php esc_attr_e('Search'); ?>" value="<?php echo $searched; ?>" name="quick-search-taxonomy-<?php echo $taxonomy_name; ?>" />
    948                                 <span class="spinner"></span>
    949                                 <?php submit_button( __( 'Search' ), 'button-small quick-search-submit button-secondary hide-if-js', 'submit', false, array( 'id' => 'submit-quick-search-taxonomy-' . $taxonomy_name ) ); ?>
    950                         </p>
     940                        <div class="tabs-panel <?php
     941                                echo ( 'search' == $current_tab ? 'tabs-panel-active' : 'tabs-panel-inactive' );
     942                        ?>" id="tabs-panel-search-taxonomy-<?php echo esc_attr( $taxonomy_name ); ?>">
     943                                <?php
     944                                if ( isset( $_REQUEST['quick-search-taxonomy-' . $taxonomy_name] ) ) {
     945                                        $searched = esc_attr( $_REQUEST['quick-search-taxonomy-' . $taxonomy_name] );
     946                                        $search_results = get_terms( $taxonomy_name, array( 'name__like' => $searched, 'fields' => 'all', 'orderby' => 'count', 'order' => 'DESC', 'hierarchical' => false ) );
     947                                } else {
     948                                        $searched = '';
     949                                        $search_results = array();
     950                                }
     951                                ?>
     952                                <p class="quick-search-wrap">
     953                                        <input type="search" class="quick-search input-with-default-title" title="<?php esc_attr_e('Search'); ?>" value="<?php echo esc_attr( $searched ); ?>" name="quick-search-taxonomy-<?php echo esc_attr( $taxonomy_name ); ?>" />
     954                                        <span class="spinner"></span>
     955                                        <?php submit_button( __( 'Search' ), 'button-small quick-search-submit button-secondary hide-if-js', 'submit', false, array( 'id' => 'submit-quick-search-taxonomy-' . $taxonomy_name ) ); ?>
     956                                </p>
    951957
    952                         <ul id="<?php echo $taxonomy_name; ?>-search-checklist" data-wp-lists="list:<?php echo $taxonomy_name?>" class="categorychecklist form-no-clear">
    953                         <?php if ( ! empty( $search_results ) && ! is_wp_error( $search_results ) ) : ?>
    954                                 <?php
    955                                 $args['walker'] = $walker;
    956                                 echo walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args );
    957                                 ?>
    958                         <?php elseif ( is_wp_error( $search_results ) ) : ?>
    959                                 <li><?php echo $search_results->get_error_message(); ?></li>
    960                         <?php elseif ( ! empty( $searched ) ) : ?>
    961                                 <li><?php _e('No results found.'); ?></li>
    962                         <?php endif; ?>
    963                         </ul>
    964                 </div><!-- /.tabs-panel -->
     958                                <ul id="<?php echo esc_attr( $taxonomy_name ); ?>-search-checklist" data-wp-lists="list:<?php echo esc_attr( $taxonomy_name ); ?>" class="categorychecklist form-no-clear">
     959                                <?php if ( ! empty( $search_results ) && ! is_wp_error( $search_results ) ) : ?>
     960                                        <?php
     961                                        $args['walker'] = $walker;
     962                                        echo walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $search_results), 0, (object) $args );
     963                                        ?>
     964                                <?php elseif ( is_wp_error( $search_results ) ) : ?>
     965                                        <li><?php echo $search_results->get_error_message(); ?></li>
     966                                <?php elseif ( ! empty( $searched ) ) : ?>
     967                                        <li><?php _e('No results found.'); ?></li>
     968                                <?php endif; ?>
     969                                </ul>
     970                        </div><!-- /.tabs-panel -->
    965971
    966                 <p class="button-controls">
    967                         <span class="list-controls">
    968                                 <a href="<?php
    969                                         echo esc_url(add_query_arg(
    970                                                 array(
    971                                                         $taxonomy_name . '-tab' => 'all',
    972                                                         'selectall' => 1,
    973                                                 ),
    974                                                 remove_query_arg($removed_args)
    975                                         ));
    976                                 ?>#taxonomy-<?php echo $taxonomy_name; ?>" class="select-all"><?php _e('Select All'); ?></a>
    977                         </span>
    978 
    979                         <span class="add-to-menu">
    980                                 <input type="submit"<?php wp_nav_menu_disabled_check( $nav_menu_selected_id ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e( __( 'Add to Menu' ) ); ?>" name="add-taxonomy-menu-item" id="<?php esc_attr_e( 'submit-taxonomy-' . $taxonomy_name ); ?>" />
    981                                 <span class="spinner"></span>
    982                         </span>
    983                 </p>
    984 
    985         </div><!-- /.taxonomydiv -->
     972                        <p class="button-controls">
     973                                <span class="list-controls">
     974                                        <a href="<?php echo esc_url( add_query_arg( array( $taxonomy_name . '-tab' => 'all', 'selectall' => 1 ), remove_query_arg( $removed_args ) ) . '#taxonomy-' .  $taxonomy_name ); ?>" class="select-all"><?php _e( 'Select All' ); ?></a>
     975                                </span>
     976                                <span class="add-to-menu">
     977                                        <input type="submit"<?php disabled( $nav_menu_selected_id, 0 ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e( 'Add to Menu' ); ?>" name="add-taxonomy-menu-item" id="submit-taxonomy-<?php echo esc_attr( $taxonomy_name ); ?>" />
     978                                        <span class="spinner"></span>
     979                                </span>
     980                        </p>
     981                </div><!-- /.taxonomydiv -->
     982        </li>
    986983        <?php
    987984}
    988985
  • wp-admin/js/nav-menu.js

     
    4242
    4343                        this.attachUnsavedChangesListener();
    4444
    45                         if( api.menuList.length ) // If no menu, we're in the + tab.
     45                        if( api.menuList.length )
    4646                                this.initSortables();
    4747
    4848                        if( oneThemeLocationNoMenus )
     
    5151                        this.initAccessibility();
    5252
    5353                        this.initToggles();
     54
     55                        // Open first accordion option
     56                        $( '.accordion-container li' ).first().addClass( 'open' );
    5457                },
    5558
    5659                jQueryExtensions : function() {
     
    378381                },
    379382
    380383                initToggles : function() {
    381                         // init postboxes
    382                         postboxes.add_postbox_toggles('nav-menus');
    383 
    384384                        // adjust columns functions for menus UI
    385385                        columns.useCheckboxesForHidden();
    386386                        columns.checked = function(field) {
     
    786786                                        target = $(e.target);
    787787
    788788                                if ( target.hasClass('nav-tab-link') ) {
    789                                         panelId = /#(.*)$/.exec(e.target.href);
    790                                         if ( panelId && panelId[1] )
    791                                                 panelId = panelId[1]
    792                                         else
    793                                                 return false;
    794789
    795                                         wrapper = target.parents('.inside').first();
     790                                        panelId = target.data( 'type' );
    796791
     792                                        wrapper = target.parents('.accordion-section-content').first();
     793
    797794                                        // upon changing tabs, we want to uncheck all checkboxes
    798795                                        $('input', wrapper).removeAttr('checked');
    799796
     
    806803                                        // select the search bar
    807804                                        $('.quick-search', wrapper).focus();
    808805
    809                                         return false;
     806                                        e.preventDefault();
    810807                                } else if ( target.hasClass('select-all') ) {
    811808                                        selectAreaMatch = /#(.*)$/.exec(e.target.href);
    812809                                        if ( selectAreaMatch && selectAreaMatch[1] ) {
  • wp-admin/nav-menus.php

     
    2323        wp_die( __( 'Cheatin&#8217; uh?' ) );
    2424
    2525wp_enqueue_script( 'nav-menu' );
     26wp_enqueue_script( 'accordion' );
    2627
    2728if ( wp_is_mobile() )
    2829        wp_enqueue_script( 'jquery-touch-punch' );
     
    421422
    422423add_filter('admin_body_class', 'wp_nav_menu_max_depth');
    423424
    424 wp_nav_menu_setup();
     425// Register advanced menu items (columns)
     426add_filter( 'manage_nav-menus_columns', 'wp_nav_menu_manage_columns');
     427
    425428wp_initial_nav_menu_meta_boxes();
    426429
    427430if ( ! current_theme_supports( 'menus' ) && ! wp_get_nav_menus() )
     
    510513                        <input type="hidden" name="menu" id="nav-menu-meta-object-id" value="<?php echo esc_attr( $nav_menu_selected_id ); ?>" />
    511514                        <input type="hidden" name="action" value="add-menu-item" />
    512515                        <?php wp_nonce_field( 'add-menu_item', 'menu-settings-column-nonce' ); ?>
    513                         <?php do_meta_boxes( 'nav-menus', 'side', null ); ?>
     516                        <div id="side-sortables" class="accordion-container">
     517                                <ul class="outer-border">
     518                                        <?php wp_nav_menu_setup(); ?>
     519                                </ul>
     520                        </div>
    514521                </form>
    515522
    516523        </div><!-- /#menu-settings-column -->