Extending BuddyPress Groups – best methods?


Thanks for offering this support service! I’m working on a BuddyPress project where I want to have the following set-up:

GroupType 1, Normal BP Private/Public Groups

GroupType 2, Games:

Users can join/leave Games (no invitation/accepting required), a “creator/manager” can edit the Game’s data. This grouptype has distinct Game “meta-data” such as Game Release Date, Rating, Console, etc. The front-end page needs to display differently than other group pages to show it’s a Game.

GroupType 3, Developer-Groups: similar to Games – they’ll need to record their own unique “meta-data” fields and display differently than other group pages.

I’m thinking my options are the following:

Add a group “tag” that identifies the type of group it is and depending on the type, then modify actions/filters to display the correct group metadata and front-end pages differently based on the tag. I think this will require the least new code and will piggyback on the existing group features the best.

However these other GroupTypes are not strictly “groups” per se – but they do essentially have the same functionality requirements as groups already have. I would probably have to remove much of the current group functionality for each of these additional GroupTypes, but I don’t think that would be too hard?

Another option I’m thinking is to just copy/paste/adjust the Groups Component into a duplicate Games Component – I would create the 3 db tables – games, gamesmeta, and games_members and essentially find/replace groups -> games and make my modifications. I suppose I would need to do this for each GroupType. This seems like more work but perhaps would give me better control?

What do you think about how to approach this problem? And is there anything I’m missing or not thinking about? Thanks!!! – Eitan