WordPress.org

Make WordPress Core

Ticket #14297: 14297.patch

File 14297.patch, 5.7 KB (added by prettyboymp, 5 years ago)

this patch requires wp_numeric_to_associative() function from http://core.trac.wordpress.org/attachment/ticket/13937/add_meta_box.2.diff

  • wp-admin/includes/user.php

     
    542542         * @access public 
    543543         * @var int 
    544544         */ 
    545         var $users_per_page = 50; 
     545        var $users_per_page; 
    546546 
    547547        /** 
    548548         * {@internal Missing Description}} 
     
    635635        var $paging_text; 
    636636 
    637637        /** 
     638         * Base paging for pagination links 
     639         * 
     640         * @since 3.1 
     641         * @access private 
     642         * @var string 
     643         */ 
     644        var $pagination_base; 
     645 
     646        /** 
    638647         * PHP4 Constructor - Sets up the object properties. 
    639648         * 
    640649         * @since unknown 
    641650         * 
    642          * @param string $search_term Search terms string. 
    643          * @param int $page Optional. Page ID. 
    644          * @param string $role Role name. 
     651         * @param string|array $args List of arguments 
    645652         * @return WP_User_Search 
    646653         */ 
    647         function WP_User_Search ($search_term = '', $page = '', $role = '') { 
     654        function WP_User_Search ($args) { 
     655                $argc = func_num_args(); 
     656                if ( $argc > 1 ) { 
     657                        _deprecated_argument( __FUNCTION__, '3.1', __('Passing individual arguments is deprecated. Use an associative array of arguments instead.') ); 
     658                        $argv = func_get_args(); 
     659                        $args = wp_numeric_to_associative( $argv, array( 'search_term', 'page', 'role' ) ); 
     660                } 
     661 
     662                $defaults = array( 
     663                        'search_term' => '', 
     664                        'page' => '', 
     665                        'role' => '', 
     666                        'users_per_page' => 50, 
     667                        'pagination_base' => 'users.php?%_%', 
     668                ); 
     669 
     670                extract( wp_parse_args( $args, $defaults ), EXTR_SKIP ); 
     671 
    648672                $this->search_term = $search_term; 
    649673                $this->raw_page = ( '' == $page ) ? false : (int) $page; 
    650674                $this->page = (int) ( '' == $page ) ? 1 : $page; 
    651675                $this->role = $role; 
     676                $this->users_per_page = $users_per_page; 
     677                $this->pagination_base = $pagination_base; 
    652678 
    653679                $this->prepare_query(); 
    654680                $this->query(); 
     
    746772                        $this->paging_text = paginate_links( array( 
    747773                                'total' => ceil($this->total_users_for_query / $this->users_per_page), 
    748774                                'current' => $this->page, 
    749                                 'base' => 'users.php?%_%', 
     775                                'base' => $this->pagination_base, 
    750776                                'format' => 'userspage=%#%', 
    751777                                'add_args' => $args 
    752778                        ) ); 
  • wp-admin/ms-sites.php

     
    259259                                <?php } 
    260260 
    261261                                // Site users 
    262                                 $blogusers = get_users_of_blog( $id ); 
    263                                 if ( is_array( $blogusers ) ) { 
     262                                $userspage = isset($_GET['userspage']) ? $_GET['userspage'] : null; 
     263                                $wp_user_search = new WP_User_Search( array( 'page' => $userspage, 'pagination_base' => remove_query_arg('userspage') . '&%_%' ) ); 
     264                                cache_users( $wp_user_search->get_results() ); 
     265 
     266                                if( $wp_user_search->get_results() ) { 
    264267                                        echo '<div id="blogedit_blogusers" class="postbox"><h3 class="hndle"><span>' . __( 'Site Users' ) . '</span></h3><div class="inside">'; 
     268                                        if( $wp_user_search->results_are_paged() ) { 
     269                                                echo '<div class="tablenav"><div class="tablenav-pages">'; 
     270                                                $wp_user_search->page_links(); 
     271                                                echo '</div></div>'; 
     272                                        } 
    265273                                        echo '<table class="form-table">'; 
    266274                                        echo "<tr><th>" . __( 'User' ) . "</th><th>" . __( 'Role' ) . "</th><th>" . __( 'Password' ) . "</th><th>" . __( 'Remove' ) . "</th></tr>"; 
    267                                         reset( $blogusers ); 
    268                                         foreach ( (array) $blogusers as $key => $val ) { 
    269                                                 if ( isset( $val->meta_value ) && ! $val->meta_value ) 
     275                                        //reset( $blogusers ); 
     276                                        foreach ( $wp_user_search->get_results() as $userid ) { 
     277                                                $user_object = new WP_User($userid); 
     278                                                $roles = $user_object->roles; 
     279                                                $existing_role = array_shift($roles); 
     280                                                if ( is_multisite() && empty( $existing_role ) ) 
    270281                                                        continue; 
    271                                                 $t = @unserialize( $val->meta_value ); 
    272                                                 if ( is_array( $t ) ) { 
    273                                                         reset( $t ); 
    274                                                         $existing_role = key( $t ); 
    275                                                 } 
    276                                                 echo '<tr><td><a href="user-edit.php?user_id=' . $val->user_id . '">' . $val->user_login . '</a></td>'; 
    277                                                 if ( $val->user_id != $current_user->data->ID ) { 
     282 
     283                                                echo '<tr><td><a href="user-edit.php?user_id=' . $userid . '">' . $user_object->data->user_login . '</a></td>'; 
     284                                                if ( $userid != $current_user->data->ID ) { 
    278285                                                        ?> 
    279286                                                        <td> 
    280                                                                 <select name="role[<?php echo $val->user_id ?>]" id="new_role_1"><?php 
     287                                                                <select name="role[<?php echo $userid ?>]" id="new_role_1"><?php 
    281288                                                                        foreach ( $editblog_roles as $role => $role_assoc ){ 
    282289                                                                                $name = translate_user_role( $role_assoc['name'] ); 
    283290                                                                                echo '<option ' . selected( $role, $existing_role, false ) . ' value="' . esc_attr( $role ) . '">' . esc_html( $name ) . '</option>'; 
     
    286293                                                                </select> 
    287294                                                        </td> 
    288295                                                        <td> 
    289                                                                 <input type="text" name="user_password[<?php echo esc_attr( $val->user_id ) ?>]" /> 
     296                                                                <input type="text" name="user_password[<?php echo esc_attr( $userid ) ?>]" /> 
    290297                                                        </td> 
    291298                                                        <?php 
    292                                                         echo '<td><input title="' . __( 'Click to remove user' ) . '" type="checkbox" name="blogusers[' . esc_attr( $val->user_id ) . ']" /></td>'; 
     299                                                        echo '<td><input title="' . __( 'Click to remove user' ) . '" type="checkbox" name="blogusers[' . esc_attr( $userid ) . ']" /></td>'; 
    293300                                                } else { 
    294301                                                        echo "<td><strong>" . __ ( 'N/A' ) . "</strong></td><td><strong>" . __ ( 'N/A' ) . "</strong></td><td><strong>" . __( 'N/A' ) . "</strong></td>"; 
    295302                                                } 
    296303                                                echo '</tr>'; 
    297304                                        } 
    298305                                        echo "</table>"; 
     306                                        if( $wp_user_search->results_are_paged() ) { 
     307                                                echo '<div class="tablenav"><div class="tablenav-pages">'; 
     308                                                $wp_user_search->page_links(); 
     309                                                echo '</div></div>'; 
     310                                        } 
    299311                                        echo '<p class="submit" style="text-align:center;"><input type="submit" name="Submit" value="' . esc_attr__( 'Update Options' ) . '" /></p>'; 
    300312                                        echo "</div></div>"; 
    301313                                }