Ticket #13213: non-js-add-home-link.13213.2.diff
File non-js-add-home-link.13213.2.diff, 8.0 KB (added by , 15 years ago) |
---|
-
wp-includes/nav-menu-template.php
157 157 158 158 $output .= $indent . '<li>'; 159 159 $output .= '<label class="menu-item-title">'; 160 $output .= '<input type="checkbox" class="menu-item-checkbox" name="menu-item[' . $possible_object_id . '][menu-item-object-id]" value="'. esc_attr( $item->object_id ) .'" /> '; 160 $output .= '<input type="checkbox" class="menu-item-checkbox'; 161 if ( ! empty( $item->_add_to_top ) ) { 162 $output .= ' add-to-top'; 163 } 164 $output .= '" name="menu-item[' . $possible_object_id . '][menu-item-object-id]" value="'. esc_attr( $item->object_id ) .'" /> '; 161 165 $output .= esc_html( $item->title ) .'</label>'; 162 166 163 167 // Menu item hidden fields -
wp-includes/nav-menu.php
545 545 if ( isset( $menu_item->post_type ) ) { 546 546 if ( 'nav_menu_item' == $menu_item->post_type ) { 547 547 $menu_item->db_id = (int) $menu_item->ID; 548 $menu_item->menu_item_parent = get_post_meta( $menu_item->ID, '_menu_item_menu_item_parent', true );549 $menu_item->object_id = get_post_meta( $menu_item->ID, '_menu_item_object_id', true );550 $menu_item->object = get_post_meta( $menu_item->ID, '_menu_item_object', true );551 $menu_item->type = get_post_meta( $menu_item->ID, '_menu_item_type', true );548 $menu_item->menu_item_parent = empty( $menu_item->menu_item_parent ) ? get_post_meta( $menu_item->ID, '_menu_item_menu_item_parent', true ) : $menu_item->menu_item_parent; 549 $menu_item->object_id = empty( $menu_item->object_id ) ? get_post_meta( $menu_item->ID, '_menu_item_object_id', true ) : $menu_item->object_id; 550 $menu_item->object = empty( $menu_item->object ) ? get_post_meta( $menu_item->ID, '_menu_item_object', true ) : $menu_item->object; 551 $menu_item->type = empty( $menu_item->type ) ? get_post_meta( $menu_item->ID, '_menu_item_type', true ) : $menu_item->type; 552 552 553 553 if ( 'post_type' == $menu_item->type ) { 554 554 $object = get_post_type_object( $menu_item->object ); … … 574 574 $menu_item->url = get_post_meta( $menu_item->ID, '_menu_item_url', true ); 575 575 } 576 576 577 $menu_item->target = get_post_meta( $menu_item->ID, '_menu_item_target', true );577 $menu_item->target = empty( $menu_item->target ) ? get_post_meta( $menu_item->ID, '_menu_item_target', true ) : $menu_item->target; 578 578 579 $menu_item->attr_title = apply_filters( 'nav_menu_attr_title', $menu_item->post_excerpt );580 $menu_item->description = apply_filters( 'nav_menu_description', $menu_item->post_content );579 $menu_item->attr_title = empty( $menu_item->attr_title ) ? apply_filters( 'nav_menu_attr_title', $menu_item->post_excerpt ) : $menu_item->attr_title; 580 $menu_item->description = empty( $menu_item->description ) ? apply_filters( 'nav_menu_description', $menu_item->post_content ) : $menu_item->description; 581 581 582 $menu_item->classes = (array) get_post_meta( $menu_item->ID, '_menu_item_classes', true );583 $menu_item->xfn = get_post_meta( $menu_item->ID, '_menu_item_xfn', true );582 $menu_item->classes = empty( $menu_item->classes ) ? (array) get_post_meta( $menu_item->ID, '_menu_item_classes', true ) : $menu_item->classes; 583 $menu_item->xfn = empty( $menu_item->xfn ) ? get_post_meta( $menu_item->ID, '_menu_item_xfn', true ) : $menu_item->xfn; 584 584 } else { 585 585 $menu_item->db_id = 0; 586 586 $menu_item->menu_item_parent = 0; -
wp-admin/includes/nav-menu.php
473 473 </p> 474 474 475 475 <p class="button-controls"> 476 <span class="list-controls">477 <a href="#" class="select-all add-home-link"><?php _e('Add Home Link'); ?></a>478 </span>479 476 <span class="add-to-menu"> 480 477 <img class="waiting" src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" /> 481 478 <input type="submit" class="button-secondary submit-add-to-menu" value="<?php esc_attr_e('Add to Menu'); ?>" name="add-custom-menu-item" id="submit-customlinkdiv" /> … … 495 492 * @param string $post_type The post type object. 496 493 */ 497 494 function wp_nav_menu_item_post_type_meta_box( $object, $post_type ) { 495 global $_nav_menu_placeholder; 496 498 497 $post_type_name = $post_type['args']->name; 499 498 500 499 // paginate browsing for large numbers of post objects … … 632 631 <ul id="<?php echo $post_type_name; ?>checklist" class="list:<?php echo $post_type_name?> categorychecklist form-no-clear"> 633 632 <?php 634 633 $args['walker'] = $walker; 634 635 // if we're dealing with pages, let's put a checkbox for the front page at the top of the list 636 if ( 'page' == $post_type_name ) { 637 $front_page = (int) get_option( 'page_on_front' ); 638 if ( ! empty( $front_page ) ) { 639 $front_page_obj = get_post( $front_page ); 640 $front_page_obj->_add_to_top = true; 641 array_unshift( $posts, $front_page_obj ); 642 } else { 643 $_nav_menu_placeholder = ( 0 > $_nav_menu_placeholder ) ? intval($_nav_menu_placeholder) - 1 : -1; 644 array_unshift( $posts, (object) array( 645 '_add_to_top' => true, 646 'ID' => 0, 647 'object_id' => $_nav_menu_placeholder, 648 'post_title' => _x('Home', 'nav menu home label'), 649 'post_type' => 'nav_menu_item', 650 'post_content' => '', 651 'post_excerpt' => '', 652 ) ); 653 } 654 } 655 635 656 $checkbox_items = walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $posts), 0, (object) $args ); 636 657 637 658 if ( 'all' == $current_tab && ! empty( $_REQUEST['selectall'] ) ) { 638 659 $checkbox_items = preg_replace('/(type=(.)checkbox(\2))/', '$1 checked=$2checked$2', $checkbox_items); 639 660 640 661 } 662 641 663 echo $checkbox_items; 642 664 ?> 643 665 </ul> -
wp-admin/js/nav-menu.dev.js
38 38 39 39 this.attachTabsPanelListeners(); 40 40 41 this.attachHomeLinkListener();42 43 41 this.attachUnsavedChangesListener(); 44 42 45 43 if( api.menuList.length ) // If no menu, we're in the + tab. … … 134 132 var t = $(this), 135 133 listItemDBIDMatch = re.exec( t.attr('name') ), 136 134 listItemDBID = 'undefined' == typeof listItemDBIDMatch[1] ? 0 : parseInt(listItemDBIDMatch[1], 10); 135 if ( this.className && -1 != this.className.indexOf('add-to-top') ) 136 processMethod = api.addMenuItemToTop; 137 137 menuItems[listItemDBID] = t.closest('li').getItemData( 'add-menu-item', listItemDBID ); 138 138 }); 139 139 140 // Add the items 140 141 api.addItemToMenu(menuItems, processMethod, function(){ 141 142 // Deselect the items and hide the ajax spinner … … 540 541 $(menuMarkup).hideAdvancedMenuItemFields().prependTo( api.targetList ); 541 542 }, 542 543 543 attachHomeLinkListener : function() {544 $('.add-home-link', '.customlinkdiv').click(function(e) {545 api.addLinkToMenu( navMenuL10n.homeurl, navMenuL10n.home, api.addMenuItemToTop );546 return false;547 });548 },549 550 544 attachUnsavedChangesListener : function() { 551 545 $('#menu-management input, #menu-management select, #menu-management, #menu-management textarea').change(function(){ 552 546 api.registerChange(); -
wp-admin/nav-menus.php
318 318 // Update menu items 319 319 320 320 if ( ! is_wp_error( $_menu_object ) ) { 321 $unsorted_menu_items = wp_get_nav_menu_items( $nav_menu_selected_id, array('orderby' => 'ID', 'output' => ARRAY_A, 'output_key' => 'ID' ) );321 $unsorted_menu_items = wp_get_nav_menu_items( $nav_menu_selected_id, array('orderby' => 'ID', 'output' => ARRAY_A, 'output_key' => 'ID', 'post_status' => 'draft,publish') ); 322 322 $menu_items = array(); 323 323 // Index menu items by db ID 324 324 foreach( $unsorted_menu_items as $_item )