Subgroups for Elgg


I'm looking for information and feedback on subgroups for elgg. 

I need a subgroups module for a project I am working on. I have cast about looking for information on subgroups for elgg. I have found a variety of groups extension modules - subgroups, related groups, extended groups, etc. None fit my application need. 

In my application the primary requirements are:

1. A subgroup is a group within a group (it is "contained" by the group).

2. Its members are a subset of the containing groups membership.

Secondary requirements are:

1. Group tools (pages and  widgets) are subgroup aware (meaning they know about and can display content from subgroups as well as the containing ).

I've found a subgroup plugin (lorea I think). It allows attaching a group to a group. However, it does not have membership controls nor any work to change group tool behavior. 

I've begun coding and would love to get community feedback as I go. Thoughts?


  • Hey... great response! Thanks for commenting.

    @mark I've seen lots of mentions of subgroups but always felt the implementations I've seen fall short. I'm curious to know more about your notion of sending updates back and forth. 

    @dhrup the coding requirements don't bother me so much as resolving the ui issues. Checked out your supergroups and would love to know more...

    @cash I agree - membership is pretty straight forward. Overriding all the group tools is a bit much... not sure if all the tools really need to be subgroup aware in my application. I've elected to use the super group approach rather than using relationships.

    @steve I laughed when I read your comments... they're just the kind of ui issues we've been tossing around. I think the answers need application context and will be different from implementation to implementation.

    @dhrup - don't know what you are up to with your super groups but I'd be happy to collaborate on a project for the community.



  • @Brian
    The SuperGroups PlugIn is the brain-child of Zak.
    I am merely promoting it because Zak is part of our Elgg Team.

    Zak has got some super ideas regarding Elgg Groups/ Blogs - mentioned elsewhere under WordPress/Elgg integrations. There are some WordPress features that can be integrated with Elgg to build a super super platform for building social networking.
    We are up to our tricks -- bringing Elgg to the rarified stratospheres dominated by others until these days. We wanna change that and make Elgg the ubiqitous social networking platform.
    Send me a PM if interested in collaboration(s).

  • tweaked the pop-out menu a little ;-)
    btw -- this is running on Elgg.1.7.3 ;-)


  • I thought it might be useful to describe our application in more detail - since the context seems relevant to the discussion.

    We are building a high school social learning environment / app. We have cloned groups in a variety of ways.

    We've made groups into classes and clubs - basically autonomous mini-sites under the control of the teacher / club sponsor. These are just group clones dressed to look and feel like a class and club. In this instance the clone acts as a container for objects and members just like groups. We've created a sub-group enabler plugin that modifies group behavior so that searching for groups with no subtype does not list the sub-typed groups.

    We've cloned groups into curriculum units. These act as containers for objects (all the usual group tool suspects) but have no members. They exist and can only be created as a "sub-item" or "subgroup" for classes. They're a cross between a group tool and a group. We've subtyped the clone and over-ridden the membership functions to return membership of the containing group (or class in our case). This was necessary to provide compatibility with group tools. If you are a member of the class, you can post a discussion topic in the curriculum unit (which checks membership to determine if the "new topic" link is enabled.

    In this case, the curriculum units have files, pages, discussions, assignments, tests and quizes, etc. We've found in user tests that users tend to lose track of objects. They get that there are files, pages, etc in more than one place - but expect that views at the top level (class level) will be able to drill down and find items in the curriculum units. Curriculum units can also have curriculum units as subgroups. In fact there is no limit to the hierarchy. Think chapters each with units and units each with individual lessons. It gets overwhelming quickly.

    Thus far we have modified several of the group tools to be curriculum unit aware. When you view assignments, you get all assignments - class assignments as well as all assignments in curriculum units in the class. It helps users quite a bit. We're not sure what it any other tools we'll modify.

    I am in the process of creating a full subgroup for classes. In this case, sub groups will be used to create study groups in the class. These are groups that are created in the class context. Users can be drawn exclusively from the class membership. If you are not in the class you cannot be in the study group. Study groups will have most group functionality - open or closed, invitations and requests to join. 

    I opened this discussion because I thought this would be the right plugin to post back to the community. I think it can be designed without dependancies on out other code mods and might be of use / interest to the community at large. If so... I'd like to get it right and make it useful.

  • @Brian
    PM me your email handle
    I will setup a user id for you on BrainTrainZ.Com
    so that you can see our Groups Plugin Clone

  • High Schools elgg-based websites ? lolz..
    I've being negotiating with my daughter's high school principal to setup their elgg webbsite for free ,;-)

  • @Brian Chapin  Your requirements are quite differant from mine.  I can see why you want things more contained/constrained - for me this grip on the structure is less important as each group is in essance autonomous but connected by their common interest and need for information flow. 

    As an example... British Caving Union (offers insurance, services, best pracrtice and safty information and international liaison); people can be a member of this body (for the Journal), but most cavers get thier insurance via their local club who do the admin etc on behalf of the Union.

    There are Regional Associations, which oversee specific issues and coordiante cave rescue, cave safty (collapses, CO2 levels, flooding etc) cave info, archives etc.  Generally these Associations only members are the Clubs/groups which operate in their area.

    Local Clubs/Groups... these are varied, some will specialise in doing caving, others will focus on historical data, archives etc others will specialise in cave rescue, cave diving, cave digging etc, and people will be members of one or several of these groupings depending on their interests.

    All have a need for information from the Association and the Union, but not necessarily from the other local groups, unless they have recipricol arrangements of some kind... or are just intested, so they are "related", in which case they are interested in newsletters, bulletins etc from those other clubs/groups.

    So Brian, I hope this illustrates the comms issues I am wanting to tackle.  The issue is essentially a top down information flow of essential information with the addition of horizontal comms as well.  Any comms up the heirachy happens on an ad hoc basis via email, phone, reports etc.

  • This comment was removed by an administrator because it contained advertising.

  • can I jump in here and spell out my need. No coder here. Just an ideas person :)

    Admin created and controlled (parent) Top level groups. Subgroups (child) that can be user dreated.

    Other needs are that users must select one or more Parent group/s when registering.

    No groups can be made outside these parent groups.

    Plugins that relate to groups, such as river and calendar, to run from the parent group and site wide seperately.

    Is there a way to build a flexible group management tool. So yes go back to core and allow the user to manage it as they need. This could also include naming abilities so can change from groups to whatever it is that the user needs.

    yes plugins and flexibility are great, but these are issues for lots of users and might be better address at core level.

  • A good idea would be to allow user to define parameters of groups in XML-like document. This is doable and can be efficient, although would require rewriting a lot of code. Then, as an user, you would be able to define eg. what functionalities the groups should have.