Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
04/09/2015 03:31:18 PM (11 years ago)
Author:
boonebgorges
Message:

Introduce member-type-specific Members directories.

The new 'has_directory' argument for bp_register_member_type() allows
developers to specify whether a list of members matching a given type 'foo'
should be available at http://example.com/members/type/foo/. A slug can be
passed to 'has_directory' to customize the URL used for the member type's
directory.

Note that plugins registering member types must do so at the new hook
'bp_register_member_types' in order to be able to customize the 'has_directory'
value (from its default of true).

bp_has_members() automatically detects the presence of a member type in a
URL. When no member type of the form example.com/members/type/foo/ is found,
URLs of the form example.com/members/?member_type=foo will be detected.

See #6286.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/testcases/members/template.php

    r9561 r9723  
    128128        $member_ids = wp_list_pluck( $members, 'ID' );
    129129        $this->assertEquals( array( $users[1]), $member_ids );
     130
     131        $GLOBALS['members_template'] = $old_members_template;
     132    }
     133
     134    /**
     135     * @group bp_has_members
     136     * @ticket BP6286
     137     */
     138    public function test_bp_has_members_should_infer_member_type_from_get_param() {
     139        bp_register_member_type( 'foo' );
     140        bp_register_member_type( 'bar' );
     141        $users = $this->factory->user->create_many( 3 );
     142        bp_set_member_type( $users[0], 'foo' );
     143        bp_set_member_type( $users[1], 'bar' );
     144
     145        global $members_template;
     146        $old_members_template = $members_template;
     147
     148        $old_get = $_GET;
     149        $_GET['member_type'] = 'bar';
     150
     151        bp_has_members();
     152
     153        $members = is_array( $members_template->members ) ? array_values( $members_template->members ) : array();
     154        $member_ids = wp_list_pluck( $members, 'ID' );
     155        $this->assertEquals( array( $users[1] ), $member_ids );
     156
     157        $GLOBALS['members_template'] = $old_members_template;
     158    }
     159
     160    /**
     161     * @group bp_has_members
     162     * @ticket BP6286
     163     */
     164    public function test_bp_has_members_should_infer_member_type_from_get_param_comma_sep() {
     165        bp_register_member_type( 'foo' );
     166        bp_register_member_type( 'bar' );
     167        bp_register_member_type( 'baz' );
     168        $users = $this->factory->user->create_many( 4 );
     169        bp_set_member_type( $users[0], 'foo' );
     170        bp_set_member_type( $users[1], 'bar' );
     171        bp_set_member_type( $users[2], 'baz' );
     172
     173        global $members_template;
     174        $old_members_template = $members_template;
     175
     176        $old_get = $_GET;
     177        $_GET['member_type'] = 'foo,bar';
     178
     179        bp_has_members();
     180
     181        $members = is_array( $members_template->members ) ? array_values( $members_template->members ) : array();
     182        $member_ids = wp_list_pluck( $members, 'ID' );
     183        $this->assertEqualSets( array( $users[0], $users[1] ), $member_ids );
    130184
    131185        $GLOBALS['members_template'] = $old_members_template;
Note: See TracChangeset for help on using the changeset viewer.