WordPress.org

Make WordPress Core

Ticket #14297: 14297.patch

File 14297.patch, 5.7 KB (added by prettyboymp, 8 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                                }