Always use lowercase strings or menu type. Don't double save custom link menu items (remove the AJAX save). see #12566

git-svn-id: http://svn.automattic.com/wordpress/trunk@13685 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
ryan 2010-03-12 21:57:52 +00:00
parent df2588c68d
commit 08cf9f0d98
5 changed files with 10 additions and 48 deletions

View File

@ -477,26 +477,6 @@ case 'dim-comment' : // On success, die with time() instead of 1
_wp_ajax_delete_comment_response( $comment->comment_ID ); _wp_ajax_delete_comment_response( $comment->comment_ID );
die( '0' ); die( '0' );
break; break;
case 'add-menu-link':
if ( !current_user_can( 'manage_links' ) )
die('-1');
$link_url = isset($_POST['link_url']) ? $_POST['link_url'] : false;
$link_name = isset($_POST['link_name']) ? $_POST['link_name'] : false;
if ( !$link_url || !$link_name )
die('-1');
$post = array( 'post_type' => 'nav_menu_item', 'post_title' => $link_name, 'ping_status' => false, 'post_excerpt' => '', 'post_content' => '' );
$db_id = wp_insert_post( $post );
update_post_meta( $db_id, 'menu_type', 'custom' );
update_post_meta( $db_id, 'object_id', '' );
update_post_meta( $db_id, 'menu_new_window', 0 );
update_post_meta( $db_id, 'menu_link', esc_url_raw( $link_url ) );
echo $db_id;
break;
case 'add-link-category' : // On the Fly case 'add-link-category' : // On the Fly
check_ajax_referer( $action ); check_ajax_referer( $action );
if ( !current_user_can( 'manage_categories' ) ) if ( !current_user_can( 'manage_categories' ) )

View File

@ -106,25 +106,7 @@ jQuery(document).ready(function($){
if ( 'http://' == link_url || 'Menu Item' == link_name ) if ( 'http://' == link_url || 'Menu Item' == link_name )
return; return;
// Parameters to send off
params = {
action: 'add-menu-link',
link_url: link_url,
link_name: link_name,
};
// save the link
$.post( ajaxurl, params, function(response) {
if ( null == response || '-1' == response )
return false;
params.link_id = response;
// add it to the available links section
// wp_update_links_list( params );
// and update the Menu with the new link // and update the Menu with the new link
wp_add_item_to_menu( 'Custom', params.link_name, params.link_url, params.link_id, 0, '' ); wp_add_item_to_menu( 'custom', link_name, link_url, 0, 0, '' );
}, 'json');
}); });
}); });

View File

@ -1 +1 @@
jQuery(document).ready(function(a){wp_drag_and_drop();wp_update_post_data();a("#save_menu").click(function(){return wp_update_post_data()});a(".quick-search").click(function(){a(this).attr("value","")});a(".quick-search-submit").click(function(){a(this).siblings(".quick-search").search()});a("#menu-container .item-edit").click(function(){return wp_edit_menu_item(a(this).attr("value"))});a("#menu-container .item-delete").live("click",function(){return wp_remove_menu_item(a(this).attr("value"))});a("#update-menu-item").click(function(){wp_update_menu_item();tb_remove();var b=a("#edit-item-id").val();a("#menu-"+b+" dt:first").animate({backgroundColor:"#FFFF33"},{duration:"normal",complete:function(){jQuery(this).css("backgroundColor","")}})});a("#cancel-save").click(function(){return tb_remove()});a(".show-all").click(function(){a(this).offsetParent().find("#add-buttons-actions").attr("style","margin-bottom: 10px;");a(this).offsetParent().find(".list-wrap").css("display","block");a(this).siblings(".quick-search").attr("value","");a(this).offsetParent().find(".list-wrap li").css("display","block");a(this).hide();a(this).siblings(".hide-all").show()});a(".hide-all").click(function(){a(this).offsetParent().find("#add-buttons-actions").attr("style","margin-bottom: 0px;");a(this).offsetParent().find(".list-wrap").css("display","none");a(this).siblings(".quick-search").attr("value","Search");a(this).offsetParent().find(".list-wrap li").css("display","none");a(this).hide();a(this).siblings(".show-all").show()});a(".list input").click(function(){var d=jQuery(this).parent().siblings(".item-type").val();var g=jQuery(this).parent().siblings(".item-title").val();var c=jQuery(this).parent().siblings(".item-url").val();var e=jQuery(this).parent().siblings(".item-dbid").val();var b=jQuery(this).parent().siblings(".item-parent").val();var f=jQuery(this).parent().siblings(".item-description").val();return wp_update_queue(a(this),d,g,c,e,b,f)});a(".enqueue a").click(function(){return wp_add_queued_items_to_menu(this)});a("#add-custom-link .add-to-menu a").click(function(){var b=a(this).offsetParent().find("#menu-item-url").val();var c=a(this).offsetParent().find("#menu-item-name").val();wp_add_queued_items_to_menu(this);if("http://"==b||"Menu Item"==c){return}params={action:"add-menu-link",link_url:b,link_name:c,};a.post(ajaxurl,params,function(d){if(null==d||"-1"==d){return false}params.link_id=d;wp_add_item_to_menu("Custom",params.link_name,params.link_url,params.link_id,0,"")},"json")})}); jQuery(document).ready(function(a){wp_drag_and_drop();wp_update_post_data();a("#save_menu").click(function(){return wp_update_post_data()});a(".quick-search").click(function(){a(this).attr("value","")});a(".quick-search-submit").click(function(){a(this).siblings(".quick-search").search()});a("#menu-container .item-edit").click(function(){return wp_edit_menu_item(a(this).attr("value"))});a("#menu-container .item-delete").live("click",function(){return wp_remove_menu_item(a(this).attr("value"))});a("#update-menu-item").click(function(){wp_update_menu_item();tb_remove();var b=a("#edit-item-id").val();a("#menu-"+b+" dt:first").animate({backgroundColor:"#FFFF33"},{duration:"normal",complete:function(){jQuery(this).css("backgroundColor","")}})});a("#cancel-save").click(function(){return tb_remove()});a(".show-all").click(function(){a(this).offsetParent().find("#add-buttons-actions").attr("style","margin-bottom: 10px;");a(this).offsetParent().find(".list-wrap").css("display","block");a(this).siblings(".quick-search").attr("value","");a(this).offsetParent().find(".list-wrap li").css("display","block");a(this).hide();a(this).siblings(".hide-all").show()});a(".hide-all").click(function(){a(this).offsetParent().find("#add-buttons-actions").attr("style","margin-bottom: 0px;");a(this).offsetParent().find(".list-wrap").css("display","none");a(this).siblings(".quick-search").attr("value","Search");a(this).offsetParent().find(".list-wrap li").css("display","none");a(this).hide();a(this).siblings(".show-all").show()});a(".list input").click(function(){var d=jQuery(this).parent().siblings(".item-type").val();var g=jQuery(this).parent().siblings(".item-title").val();var c=jQuery(this).parent().siblings(".item-url").val();var e=jQuery(this).parent().siblings(".item-dbid").val();var b=jQuery(this).parent().siblings(".item-parent").val();var f=jQuery(this).parent().siblings(".item-description").val();return wp_update_queue(a(this),d,g,c,e,b,f)});a(".enqueue a").click(function(){return wp_add_queued_items_to_menu(this)});a("#add-custom-link .add-to-menu a").click(function(){var b=a(this).offsetParent().find("#menu-item-url").val();var c=a(this).offsetParent().find("#menu-item-name").val();wp_add_queued_items_to_menu(this);if("http://"==b||"Menu Item"==c){return}wp_add_item_to_menu("custom",c,b,0,0,"")})});

View File

@ -128,7 +128,7 @@ if ( $post_counter > 0 && $menu_selected_id > 0 && ! $updated ) {
$object_id = isset( $_POST['item-postmenu'.$k] )? $_POST['item-postmenu'.$k] : 0; $object_id = isset( $_POST['item-postmenu'.$k] )? $_POST['item-postmenu'.$k] : 0;
$parent_id = isset( $_POST['item-parent'.$k] )? $_POST['item-parent'.$k] : 0; $parent_id = isset( $_POST['item-parent'.$k] )? $_POST['item-parent'.$k] : 0;
$custom_title = isset( $_POST['item-title'.$k] )? $_POST['item-title'.$k] : ''; $custom_title = isset( $_POST['item-title'.$k] )? $_POST['item-title'.$k] : '';
$custom_linkurl = ( isset( $_POST['item-url'.$k] ) && 'custom' == $_POST['linktype'.$k] ) ? $_POST['item-url'.$k] : ''; $custom_linkurl = ( isset( $_POST['item-url'.$k] ) && 'custom' == $_POST['item-type'.$k] ) ? $_POST['item-url'.$k] : '';
$custom_description = isset( $_POST['item-description'.$k] )? $_POST['item-description'.$k] : ''; $custom_description = isset( $_POST['item-description'.$k] )? $_POST['item-description'.$k] : '';
// doesn't seem to be used by UI // doesn't seem to be used by UI

View File

@ -198,7 +198,7 @@ function wp_get_nav_menu_item( $menu_item, $context, $args = array() ) {
$item .= '<label class="item-title"><input type="checkbox" id="'. esc_attr($menu_id) .'" name="'. esc_attr( $menu_item->title ) .'" value="'. esc_attr( $menu_item->link ) .'" />'. $menu_item->title .'</label>'; $item .= '<label class="item-title"><input type="checkbox" id="'. esc_attr($menu_id) .'" name="'. esc_attr( $menu_item->title ) .'" value="'. esc_attr( $menu_item->link ) .'" />'. $menu_item->title .'</label>';
// Menu Item Settings // Menu Item Settings
$item .= '<input type="hidden" class="item-type" value="'. esc_attr( $menu_item->append ) .'" />'; $item .= '<input type="hidden" class="item-type" value="'. esc_attr( $menu_item->type ) .'" />';
$item .= '<input type="hidden" class="item-title" value="'. esc_attr( $menu_item->title ) .'" />'; $item .= '<input type="hidden" class="item-title" value="'. esc_attr( $menu_item->title ) .'" />';
$item .= '<input type="hidden" class="item-url" value="'. esc_attr( $menu_item->link ) .'" />'; $item .= '<input type="hidden" class="item-url" value="'. esc_attr( $menu_item->link ) .'" />';
$item .= '<input type="hidden" class="item-dbid" value="'. esc_attr( $menu_item->ID ) .'" />'; $item .= '<input type="hidden" class="item-dbid" value="'. esc_attr( $menu_item->ID ) .'" />';