Changeset 36507
- Timestamp:
- 02/10/2016 02:10:17 PM (9 years ago)
- Location:
- trunk/src/wp-admin
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-admin/js/nav-menu.js
r36506 r36507 44 44 this.attachQuickSearchListeners(); 45 45 this.attachThemeLocationsListeners(); 46 this.attachMenuSaveSubmitListeners();47 46 48 47 this.attachTabsPanelListeners(); … … 836 835 }, 837 836 838 attachMenuSaveSubmitListeners : function() {839 /*840 * When a navigation menu is saved, store a JSON representation of all form data841 * in a single input to avoid PHP `max_input_vars` limitations. See #14134.842 */843 $('#update-nav-menu').submit(function() {844 var navMenuData = {};845 $('#update-nav-menu input').each(function(index, element) {846 var name = $(element).attr('name');847 var regex = /(.*)(?:\[(\d+)\])/;848 if ( regex.test( name ) ) {849 var matches = regex.exec(name);850 if ( ! navMenuData[matches[1]] ) {851 navMenuData[matches[1]] = [];852 }853 navMenuData[matches[1]][matches[2]] = $(element).val();854 } else {855 navMenuData[name] = $(element).val();856 }857 });858 $('[name="nav-menu-data"]').val( JSON.stringify( navMenuData ) );859 });860 },861 862 837 attachThemeLocationsListeners : function() { 863 838 var loc = $('#nav-menu-theme-locations'), params = {}; -
trunk/src/wp-admin/nav-menus.php
r36506 r36507 49 49 // Allowed actions: add, update, delete 50 50 $action = isset( $_REQUEST['action'] ) ? $_REQUEST['action'] : 'edit'; 51 52 /*53 * If a JSON blob of navigation menu data is found, expand it and inject it54 * into `$_POST` to avoid PHP `max_input_vars` limitations. See #14134.55 */56 if ( isset( $_POST['nav-menu-data'] ) ) {57 $data = json_decode( stripslashes( $_POST['nav-menu-data'] ) );58 if ( ! is_null( $data ) && $data ) {59 foreach ( $data as $post_var => $post_data ) {60 $_POST[$post_var] = $post_data;61 }62 }63 }64 51 65 52 switch ( $action ) { … … 745 732 <form id="update-nav-menu" method="post" enctype="multipart/form-data"> 746 733 <div class="menu-edit <?php if ( $add_new_screen ) echo 'blank-slate'; ?>"> 747 <input type="hidden" name="nav-menu-data">748 734 <?php 749 735 wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false );
Note: See TracChangeset
for help on using the changeset viewer.