Skip to:
Content
Pages
Categories
Search
Top
Bottom

BP Member Filter

  • Avatar of John James Jacoby
    John James Jacoby
    Keymaster

    @johnjamesjacoby

    Super preliminary “you broke it you bought it” edition… This plugin for BuddyPress will allow you to filter users by XProfile fields when viewing your members directory.

    http://johnjamesjacoby.com/files/2009/11/bp-filter.zip

    Just waiting for the WP plugin repo before this goes there.

    index.php and members-loop.php will go in…

    themes/bp-default/directories/members/

    …or in the same location in your custom theme. They will *need* to be modified to fit the xprofile fields you intend to filter users by. I’ve included some examples in index.php.

Viewing 25 replies - 1 through 25 (of 55 total)
  • Avatar of John James Jacoby
    John James Jacoby
    Keymaster

    @johnjamesjacoby

    Updated: zip file added until repo is done.

    Avatar of John James Jacoby
    John James Jacoby
    Keymaster

    @johnjamesjacoby

    Found my first bug: ajax’ed pagination borks it. Bug fixes to follow! Haha!

    Avatar of stwc
    stwc
    Participant

    @stwc

    I want to thank you for this, but I don’t even know what ‘xprofile fields’ refers to! ;-)

    Avatar of John James Jacoby
    John James Jacoby
    Keymaster

    @johnjamesjacoby

    Extended Profile – Basically the profile fields you setup for your audience

    An example would be here at buddypress.org, if you wanted to search for people who put “puppies” in their interests field. Rather than searching for puppies and possibly getting someone with the name “I Love Puppies” it will isolate your search down to the field you’re searching in.

    Clear as mud? Haha

    Avatar of Xevo
    Xevo
    Participant

    @xevo

    I believe the xprofile fields are the fields like “name”, so basically your users their account details.

    I like the fact that you can order your users like this, A to Z is kinda… lame and outdated. I’ll definately try this out later. Thanks JJJ.

    Edit: JJJ was 51 seconds faster then me. :)

    Avatar of stwc
    stwc
    Participant

    @stwc

    Sweet, gotcha. I’ll be playing with this later, if the beer doesn’t intervene. Thanks!

    Edit: Oooh, awesome, so if I have users fill out a City field, say, we could optionally sort/group the Members page (on the fly?) to show people in each city that’s been entered, for example? That will kick all kinds of butt!

    Avatar of Jeff Sayre
    Jeff Sayre
    Participant

    @jeffsayre

    jjj-

    Nice job! I’ll give this a whirl this weekend.

    Avatar of John James Jacoby
    John James Jacoby
    Keymaster

    @johnjamesjacoby

    There’s a small problem in the logic filter, so the results are sometimes not 100% accurate. It happens when searching for multiple fields, so that will get fixed after this weekend also.

    suggestion: popular keywords. similar to auto-tags based on post content, would be amazing for big sites to have the same for profile fields, so we have a cloud (or a dropdown) of popular profile field answers.

    challenging i suppose.. lol

    Avatar of John James Jacoby
    John James Jacoby
    Keymaster

    @johnjamesjacoby

    Actually not really… I planned on filtering longer list items by only populated fields. Like “Country” is a good example that may have hundreds of options, but you may only have 10 or so actually in use.

    Good suggestion though, and it will probably happen in time. :D

    i installed it… and it is the best example possible for the suggestion i made for a /bp-plugins/ directory… we can not actually install this plugin on the fly with the installer, we need to move files around. we also have to replace two files… that could be a problem if we have another product that need to overwrite these 2 files again. (adding actions into these files is needed though)

    suggestion:

    bp-profile-setup : when we setup some custom field, would be good to have a checkbox “is searchable”… so we can filter or search thru these fields only when possible. this could be good if we want to avoid some details to be trackable…

    Avatar of John James Jacoby
    John James Jacoby
    Keymaster

    @johnjamesjacoby

    @nexia, you’re exactly right and thinking in the right direction.

    What you’ll probably start to see are more and more plugins coming out that eventually sneak their way into the core, in one way or another. Something like an elaborate and advanced user/group/blog filtering system is a little too fancy and needs access to core variables and functions in too many places to only be a plugin for very long.

    This plugin is actually on the core roadmap for 1.3 (I think?) so it’s likely it will be worked into the core. Some of the smaller plugins (from me) in the coming weeks will probably be sneak peaks into the future of BP core that I think need testing and feedback.

    Avatar of Anointed
    Anointed
    Participant

    @anointed

    Is this the type of plugin that I need to display different groups of members and members activity on each of my blogs?

    Meaning, I am still trying to figure out how to give each of my blogs on wpmu their ‘own’ buddypress. (only show members/groups/activity streams of the blog being displayed –think ‘ning’ where each site has their own ‘bp’ yet all members are still part of the ning community)…

    Is that even possible with bp, and if so, is this the type of plugins I should be looking into for this type of functionality?

    thnx

    Avatar of designodyssey
    designodyssey
    Participant

    @designodyssey

    @jjj, Glad to hear it. I think BPContents needs to be in core in some fashion. It’s basically content types for BP. It’s important in making WP a more flexible CMS.

    I have all kinds of user levels/types and group types I’m thinking of and each has different permissions/capabilities, not to mention look and feel. I don’t see it explicitly in the roadmap, but given the plugin development already done, I’m voting for it – as if my vote counts. :-)

    Avatar of h4x3d
    h4x3d
    Participant

    @h4x3d

    this is awesome,

    many thanks james!

    however it does not work for checkboxes (for me),

    I think this is because of the code from the bp-filter.php

    <?php case 'checkbox' : ?><br />
    <div class="checkbox"><br />
    <span class="label"><?php _e( bp_get_the_profile_field_name(), BP_FILTER_TEXTDOMAIN ) ?></span><br />
    <?php //bp_filter_the_profile_field_options() ?><br />
    </div><br />
    <?php break; ?>

    any fixes for that?

    when I delete the // the page halts (error).

    many thanks!

    Avatar of h4x3d
    h4x3d
    Participant

    @h4x3d

    I have still not been able to get it working correctly. I am working on a non-profit project to display different members based on different custom profile values, but till now to no success ;(

    can anyone help me out or give me a pointer?

    I think this is pretty much the right plugin for the purpose.

    Avatar of h4x3d
    h4x3d
    Participant

    @h4x3d

    I think I narrowed the problem down:

    the output seems to go bust when there are more than one results.

    I can query the members for different profile fields, but as soon as there are more than one hit, the function halts (cut off in html when viewing source).

    with error reporting on it shows: (sorry for breaking the lines)

    Notice: Undefined variable: field_filter_last_users in
    /var/www/vhosts/domain.com/httpdocs/wp-content/plugins/bp-filter.php on line 150
    Notice: Undefined variable: temp_array in
    /var/www/vhosts/domain.com/httpdocs/wp-content/plugins/bp-filter.php on line 170
    Catchable fatal error: Object of class stdClass could not be converted to string in
    /var/www/vhosts/domain.com/httpdocs/wp-content/plugins/bp-filter.php on line 174

    the fatal line is:

    // Remove duplicate user_id's<br />
    $temp_array = array_unique( $temp_array );

    any clues or tipps?

    YAY!! uncommenting that line fixes it!!

    … but still… the selectbox issue remains, no select boxes for me with this release! :(

    in bp-filter.php there is a line commented out in regards to selectboxes. when “activating” it,

    it returns:

    Fatal error: Call to undefined function bp_filter_the_profile_field_options() in /var/www/vhosts/domain.com/httpdocs/wp-content/plugins/bp-filter.php on line 257

    - this function is not added yet, correctly?

    now the problem is: dropdown boxes work, but when saving profiles the data is not saved when using dropdown boxes (I have to use selectboxes there). when using selectboxes with this filter, the selectboxes are not displayed!

    anything I am missing?

    thanks

    Avatar of h4x3d
    h4x3d
    Participant

    @h4x3d

    I found it…

    line 369: // TODO: This :P

    :)

    I would happily help out or donate towards development of this part, anyone to reply?

    Avatar of h4x3d
    h4x3d
    Participant

    @h4x3d

    hello,

    I have modified the original bp-filter to show checkboxes now (the “to-do” part)

    it is really a bit quirky for now, but does its basic job.

    sometimes the output shows false results, but so far it is looking good.

    I am not a php programmer, so the modified code may be entirely buggy:

    http://pastebin.com/m18cb4dd5

    Avatar of John James Jacoby
    John James Jacoby
    Keymaster

    @johnjamesjacoby

    @h4x3d,

    As you found, there’s some parts of this plugin that are still left to do, namely checkboxes and better trapping of false results.

    This plugin is in active development, so I’ll be working on it more this week.

    Avatar of h4x3d
    h4x3d
    Participant

    @h4x3d

    great, thank you jjj

    I also noticed that the filter by alphabetical order seems not to work as members listed appear in apparently random order.

    If you need any testers, let me know.

    Avatar of katendarcy
    Kate
    Participant

    @katendarcy

    I just downloaded this, so I haven’t installed it yet. But, just wondering how hard it would be, or is it even possible, to do a search between two fields, such as an age range. (eg: Find all users between ages of 25-35). Could this work? Thanks!

    Avatar of Michael Eisenwasser
    Michael Eisenwasser
    Participant

    @eisenwasser

    Does anyone have a live site using this that we can take a look at? Please post. I’m going to try to implement it this week and I’ll share my results.

    Avatar of John James Jacoby
    John James Jacoby
    Keymaster

    @johnjamesjacoby

    @katendarcy

    This plugin doesn’t perform logic searches within fields, but it does allow you to search for criteria in any xprofile field and any combination of them (except checkboxes at the moment.)

    @michaelesenwasser, not yet that I know of.

    Avatar of spaceoddity
    spaceoddity
    Participant

    @spaceoddity

    has anyone gotten this to work with the latest version of buddypress? I downloaded it at http://wordpress.org/extend/plugins/bp-member-filter, installed it but i can’t find the right files to change (the members.php). This plugin is exactly what my site needs, and i can’t wait to use it.

Viewing 25 replies - 1 through 25 (of 55 total)

The topic ‘BP Member Filter’ is closed to new replies.