WordPress.org

Make WordPress Core

Changeset 36507


Ignore:
Timestamp:
02/10/16 14:10:17 (22 months ago)
Author:
ericlewis
Message:

Menus: Revert larger menu support in Edit Menus screen in [36506].

JSON encoding the form as it exists on the page will not scale.

See #14134.

Location:
trunk/src/wp-admin
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/js/nav-menu.js

    r36506 r36507  
    4444            this.attachQuickSearchListeners(); 
    4545            this.attachThemeLocationsListeners(); 
    46             this.attachMenuSaveSubmitListeners(); 
    4746 
    4847            this.attachTabsPanelListeners(); 
     
    836835        }, 
    837836 
    838         attachMenuSaveSubmitListeners : function() { 
    839             /* 
    840              * When a navigation menu is saved, store a JSON representation of all form data 
    841              * 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  
    862837        attachThemeLocationsListeners : function() { 
    863838            var loc = $('#nav-menu-theme-locations'), params = {}; 
  • trunk/src/wp-admin/nav-menus.php

    r36506 r36507  
    4949// Allowed actions: add, update, delete 
    5050$action = isset( $_REQUEST['action'] ) ? $_REQUEST['action'] : 'edit'; 
    51  
    52 /* 
    53  * If a JSON blob of navigation menu data is found, expand it and inject it 
    54  * 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 } 
    6451 
    6552switch ( $action ) { 
     
    745732            <form id="update-nav-menu" method="post" enctype="multipart/form-data"> 
    746733                <div class="menu-edit <?php if ( $add_new_screen ) echo 'blank-slate'; ?>"> 
    747                     <input type="hidden" name="nav-menu-data"> 
    748734                    <?php 
    749735                    wp_nonce_field( 'closedpostboxes', 'closedpostboxesnonce', false ); 
Note: See TracChangeset for help on using the changeset viewer.