Skip to:
Content

BuddyPress.org

Changeset 6321


Ignore:
Timestamp:
09/08/2012 03:12:39 AM (14 years ago)
Author:
boonebgorges
Message:

Converts bp_has_groups() stack to accept parameters as an array.

Arguments passed in the old style are converted to an array automatically, for
backward compatibility.

See #3797

Location:
trunk/bp-groups
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-groups/bp-groups-classes.php

    r6282 r6321  
    306306        }
    307307
    308         function get( $type = 'newest', $per_page = null, $page = null, $user_id = 0, $search_terms = false, $include = false, $populate_extras = true, $exclude = false, $show_hidden = false ) {
    309                 global $wpdb, $bp;
     308        function get( $args = array() ) {
     309                global $wpdb, $bp;
     310
     311                // Backward compatibility with old method of passing arguments
     312                if ( ! is_array( $args ) || func_num_args() > 1 ) {
     313                        _deprecated_argument( __METHOD__, '1.7', 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__ ) );
     314
     315                        $old_args_keys = array(
     316                                0 => 'type',
     317                                1 => 'per_page',
     318                                2 => 'page',
     319                                3 => 'user_id',
     320                                4 => 'search_terms',
     321                                5 => 'include',
     322                                6 => 'populate_extras',
     323                                7 => 'exclude',
     324                                8 => 'show_hidden',
     325                        );
     326
     327                        $func_args = func_get_args();
     328                        $args      = bp_core_parse_args_array( $old_args_keys, $func_args );
     329                }
     330
     331                $defaults = array(
     332                        'type'            => 'newest',
     333                        'per_page'        => null,
     334                        'page'            => null,
     335                        'user_id'         => 0,
     336                        'search_terms'    => false,
     337                        'include'         => false,
     338                        'populate_extras' => true,
     339                        'exclude'         => false,
     340                        'show_hidden'     => false
     341                );
     342
     343                $r = wp_parse_args( $args, $defaults );
     344                extract( $r );
    310345
    311346                $sql       = array();
  • trunk/bp-groups/bp-groups-functions.php

    r6259 r6321  
    390390/*** Group Fetching, Filtering & Searching  *************************************/
    391391
     392/**
     393 * Get a collection of groups, based on the parameters passed
     394 *
     395 * @uses apply_filters_ref_array() Filter 'groups_get_groups' to modify return value
     396 * @uses BP_Groups_Group::get()
     397 * @param array $args See inline documentation for details
     398 * @return array
     399 */
    392400function groups_get_groups( $args = '' ) {
    393401
     
    404412        );
    405413
    406         $params = wp_parse_args( $args, $defaults );
    407         extract( $params, EXTR_SKIP );
    408 
    409         $groups = BP_Groups_Group::get( $type, $per_page, $page, $user_id, $search_terms, $include, $populate_extras, $exclude, $show_hidden );
    410 
    411         return apply_filters_ref_array( 'groups_get_groups', array( &$groups, &$params ) );
     414        $r = wp_parse_args( $args, $defaults );
     415
     416        $groups = BP_Groups_Group::get( array(
     417                'type'            => $r['type'],
     418                'user_id'         => $r['user_id'],
     419                'include'         => $r['include'],
     420                'exclude'         => $r['exclude'],
     421                'search_terms'    => $r['search_terms'],
     422                'show_hidden'     => $r['show_hidden'],
     423                'per_page'        => $r['per_page'],
     424                'page'            => $r['page'],
     425                'populate_extras' => $r['populate_extras']
     426        ) );
     427
     428        return apply_filters_ref_array( 'groups_get_groups', array( &$groups, &$r ) );
    412429}
    413430
  • trunk/bp-groups/bp-groups-template.php

    r6259 r6321  
    108108        var $order;
    109109
    110         function __construct( $user_id, $type, $page, $per_page, $max, $slug, $search_terms, $populate_extras, $include = false, $exclude = false, $show_hidden = false, $page_arg = 'grpage' ){
     110        function __construct( $args = array() ){
     111
     112                // Backward compatibility with old method of passing arguments
     113                if ( ! is_array( $args ) || func_num_args() > 1 ) {
     114                        _deprecated_argument( __METHOD__, '1.7', 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__ ) );
     115
     116                        $old_args_keys = array(
     117                                0  => 'user_id',
     118                                1  => 'type',
     119                                2  => 'page',
     120                                3  => 'per_page',
     121                                4  => 'max',
     122                                5  => 'slug',
     123                                6  => 'search_terms',
     124                                7  => 'populate_extras',
     125                                8  => 'include',
     126                                9  => 'exclude',
     127                                10 => 'show_hidden',
     128                                11 => 'page_arg',
     129                        );
     130
     131                        $func_args = func_get_args();
     132                        $args      = bp_core_parse_args_array( $old_args_keys, $func_args );
     133                }
     134
     135                $defaults = array(
     136                        'type'            => 'active',
     137                        'page'            => 1,
     138                        'per_page'        => 20,
     139                        'max'             => false,
     140                        'show_hidden'     => false,
     141                        'page_arg'        => 'grpage',
     142                        'user_id'         => 0,
     143                        'slug'            => false,
     144                        'include'         => false,
     145                        'exclude'         => false,
     146                        'search_terms'    => '',
     147                        'populate_extras' => true
     148                );
     149
     150                $r = wp_parse_args( $args, $defaults );
     151                extract( $r );
    111152
    112153                $this->pag_page = isset( $_REQUEST[$page_arg] ) ? intval( $_REQUEST[$page_arg] ) : $page;
     
    274315
    275316        $r = wp_parse_args( $args, $defaults );
    276         extract( $r );
    277 
    278         if ( empty( $search_terms ) ) {
     317
     318        if ( empty( $r['search_terms'] ) ) {
    279319                if ( isset( $_REQUEST['group-filter-box'] ) && !empty( $_REQUEST['group-filter-box'] ) )
    280                         $search_terms = $_REQUEST['group-filter-box'];
     320                        $r['search_terms'] = $_REQUEST['group-filter-box'];
    281321                elseif ( isset( $_REQUEST['s'] ) && !empty( $_REQUEST['s'] ) )
    282                         $search_terms = $_REQUEST['s'];
     322                        $r['search_terms'] = $_REQUEST['s'];
    283323                else
    284                         $search_terms = false;
    285         }
    286 
    287         $groups_template = new BP_Groups_Template( (int) $user_id, $type, (int) $page, (int) $per_page, (int) $max, $slug, $search_terms, (bool)$populate_extras, $include, $exclude, $show_hidden, $page_arg );
    288         return apply_filters( 'bp_has_groups', $groups_template->has_groups(), $groups_template );
     324                        $r['search_terms'] = false;
     325        }
     326
     327        $groups_template = new BP_Groups_Template( array(
     328                'type'            => $r['type'],
     329                'page'            => (int) $r['page'],
     330                'per_page'        => (int) $r['per_page'],
     331                'max'             => (int) $r['max'],
     332                'show_hidden'     => $r['show_hidden'],
     333                'page_arg'        => $r['page_arg'],
     334                'user_id'         => (int) $r['user_id'],
     335                'slug'            => $r['slug'],
     336                'search_terms'    => $r['search_terms'],
     337                'include'         => $r['include'],
     338                'exclude'         => $r['exclude'],
     339                'populate_extras' => (bool) $r['populate_extras']
     340        ) );
     341
     342        return apply_filters( 'bp_has_groups', $groups_template->has_groups(), $groups_template, $r );
    289343}
    290344
Note: See TracChangeset for help on using the changeset viewer.