Skip to:
Content

BuddyPress.org

Ticket #3797: 3797.core-members-template.diff

File 3797.core-members-template.diff, 5.1 KB (added by Mamaduka, 3 years ago)
  • src/bp-members/classes/class-bp-core-members-template.php

    diff --git src/bp-members/classes/class-bp-core-members-template.php src/bp-members/classes/class-bp-core-members-template.php
    index 7512c4442..67a253d44 100644
    class BP_Core_Members_Template { 
    113113         *
    114114         * @see BP_User_Query for an in-depth description of parameters.
    115115         *
    116          * @param string       $type                Sort order.
    117          * @param int          $page_number         Page of results.
    118          * @param int          $per_page            Number of results per page.
    119          * @param int          $max                 Max number of results to return.
    120          * @param int          $user_id             Limit to friends of a user.
    121          * @param string       $search_terms        Limit to users matching search terms.
    122          * @param array        $include             Limit results by these user IDs.
    123          * @param bool         $populate_extras     Fetch optional extras.
    124          * @param array        $exclude             Exclude these IDs from results.
    125          * @param array        $meta_key            Limit to users with a meta_key.
    126          * @param array        $meta_value          Limit to users with a meta_value (with meta_key).
    127          * @param string       $page_arg            Optional. The string used as a query parameter in pagination links.
    128          *                                          Default: 'upage'.
    129          * @param array|string $member_type         Array or comma-separated string of member types to limit results to.
    130          * @param array|string $member_type__in     Array or comma-separated string of member types to limit results to.
    131          * @param array|string $member_type__not_in Array or comma-separated string of member types to exclude
    132          *                                          from results.
     116         * @param array $args {
     117         *     Array of arguments. Supports all arguments from
     118         *     BP_User_Query, as well as 'max' and
     119         *     'page_arg'. 'page_number' is used as 'page' argument.
     120         *     @type int    $page_number Page of results.
     121         *     @type string $max         Max number of results to return.
     122         *     @type string $page_arg    Optional. The string used as a query parameter in pagination links.
     123         *                               Default: 'upage'.
     124         * }
    133125         */
    134         function __construct( $type, $page_number, $per_page, $max, $user_id, $search_terms, $include, $populate_extras, $exclude, $meta_key, $meta_value, $page_arg = 'upage', $member_type = '', $member_type__in = '', $member_type__not_in = '' ) {
     126        function __construct( $args ) {
     127                // Backward compatibility with old method of passing arguments.
     128                if ( ! is_array( $args ) || func_num_args() > 1 ) {
     129                        _deprecated_argument( __METHOD__, '4.0', sprintf( __( 'Arguments passed to %1$s should be in an associative array. See the inline documentation at %2$s for more details.', 'buddypress' ), __METHOD__, __FILE__ ) );
     130
     131                        $old_args_keys = array(
     132                                0  => 'type',
     133                                1  => 'page_number',
     134                                2  => 'per_page',
     135                                3  => 'max',
     136                                4  => 'user_id',
     137                                5  => 'search_terms',
     138                                6  => 'include',
     139                                7  => 'populate_extras',
     140                                8  => 'exclude',
     141                                9  => 'meta_key',
     142                                10 => 'meta_value',
     143                                11 => 'page_arg',
     144                                12 => 'member_type',
     145                                13 => 'member_type__in',
     146                                14 => 'member_type__not_in'
     147                        );
     148
     149                        $args = bp_core_parse_args_array( $old_args_keys, func_get_args() );
     150                }
     151
     152                $defaults = array(
     153                        'type'                => 'active',
     154                        'page_number'         => 1,
     155                        'per_page'            => 20,
     156                        'max'                 => false,
     157                        'user_id'             => false,
     158                        'search_terms'        => null,
     159                        'include'             => false,
     160                        'populate_extras'     => true,
     161                        'exclude'             => false,
     162                        'meta_key'            => false,
     163                        'meta_value'          => false,
     164                        'page_arg'            => 'upage',
     165                        'member_type'         => '',
     166                        'member_type__in'     => '',
     167                        'member_type__not_in' => ''
     168                );
     169                $r = wp_parse_args( $args, $defaults );
     170                extract( $r );
    135171
    136172                $this->pag_arg  = sanitize_key( $page_arg );
    137173                $this->pag_page = bp_sanitize_pagination_arg( $this->pag_arg, $page_number );
    138174                $this->pag_num  = bp_sanitize_pagination_arg( 'num',          $per_page    );
    139175                $this->type     = $type;
    140176
    141                 if ( !empty( $_REQUEST['letter'] ) )
     177                if ( !empty( $_REQUEST['letter'] ) ) {
    142178                        $this->members = BP_Core_User::get_users_by_letter( $_REQUEST['letter'], $this->pag_num, $this->pag_page, $populate_extras, $exclude );
    143                 else
     179                } else {
    144180                        $this->members = bp_core_get_users( array( 'type' => $this->type, 'per_page' => $this->pag_num, 'page' => $this->pag_page, 'user_id' => $user_id, 'include' => $include, 'search_terms' => $search_terms, 'populate_extras' => $populate_extras, 'exclude' => $exclude, 'meta_key' => $meta_key, 'meta_value' => $meta_value, 'member_type' => $member_type, 'member_type__in' => $member_type__in, 'member_type__not_in' => $member_type__not_in ) );
     181                }
    145182
    146                 if ( !$max || $max >= (int) $this->members['total'] )
     183                if ( !$max || $max >= (int) $this->members['total'] ) {
    147184                        $this->total_member_count = (int) $this->members['total'];
    148                 else
     185                } else {
    149186                        $this->total_member_count = (int) $max;
     187                }
    150188
    151189                $this->members = $this->members['users'];
    152190