Subgroups for Organic Groups Rewrite

Events happening in the community are now at Drupal community events on www.drupal.org.
ezra-g's picture

I spoke to Moshe about this, and he said the would be interested in mentoring it. The benefit of this project would be implementing a feature request which Moshe reports hearing frequently, using a strategy that has Moshe's blessing.

The feature request:

  • Organic group homepage nodes should be able to be members of other organic group homepage nodes.

For example: United States could be a parent of California, which could be a parent of San Francisco.

  • Posts inside of parent groups should propagate to parent or child groups.

As it's currently implemented:

The 5.x version of og_subgroups implements these features by storing group relationships in the og_ancestry table. Moshe has expressed that this is an undesirable way of storing hierarchies . He recommends using either the menu system (as the book module does) or taxonomy (as the 4.7.x version og_subgroups supposedly used to do) to represent group hierarchies.

The first phase of the project would entail researching, with direction from Mohse, which of these two methods is the best for storing group propagation. The second (and probably longer) phase would entail building or rebuilding og_subgroups in order to use this propagation system.

Comments

Like it

jbrauer's picture

+1 ...

This is something that would be very useful in several areas... geographies as noted and many educational settings like terms and classes, etc.

--
Blog: Adding Understanding | Drupal Developer Search | Drupal Services: Brauer Ranch

hi, why would you do

alex_b's picture

hi,
why would you do subgroups and not let them live side by side? particularly in an example like california/san francisco - i do a lot of og work and i always try to avoid subgroups as it's a hurdle to understanding the web site.

Sometimes users wish to have

ezra-g's picture

Sometimes users wish to have content in a subgroup behave as if it had been posted to the parent group. That way, someone could subscribe to California and stay up to date on everything happening in the state, for example.

Rather than subgroups, why

bonobo's picture

Rather than subgroups, why not the subscriptions/subscriptions_og module, combined with a view showing users the activity in their groups?


FunnyMonkey
Tools for Teachers

Perhaps I've missed

ezra-g's picture

Perhaps I've missed something, but I don't understand how that would allow for hierarchies of groups.

My bad -- sorry for the lack

bonobo's picture

My bad -- sorry for the lack of clarity --

You're right -- this does nothing for hierarchies -- this does address "That way, someone could subscribe to California and stay up to date on everything happening in the state, for example." -- by having well designed notification and views, this functionality can be delivered without hierarchies.


FunnyMonkey
Tools for Teachers

I should be clear that from

moshe weitzman's picture

I should be clear that from an og perspective there would be no such thing as a subgroup. They are flat. The hierarchy that collects a bunch of group nodes into 'California' can be taxonomy or menu, as stated. Then it is Views that makes the aggregated listing for 'California' based on California's children.

We'll need some UI clarity here too. A few use cases would help I think.

We have not discussed how email notification and membership works. I guess those are out of scope.

YES, YES, YES. I think this

Tistur's picture

YES, YES, YES. I think this is needed on many sites.

Only problem I can see is, will OG be ported to 6 by the end of May?

Subgroups are bad design, in most cases

alex_b's picture

In my job, we've created more than 10 organic groups based sites over the last year. I was involved in the information architecture of a good part of them. Some had hundreds of groups, some had 10s of groups, some had tens of thousands of users, some had hundreds. We had a wide variety of use cases: groups for siloing a web site into sections, groups for giving member organizations and their campaigns a space on a common hub, topic groups for discussions etc. We even had one use case with geographical groups: regions + countries + local chapters.

I can tell you: subgroups are bad design. In most cases.

  • Signing up people to other groups that they're not immediately signing up to is not intuitive.
  • It is assuming a decision on behalf of the user .
  • It opens complex issues with notifications,
  • It makes your site more complex which will have repercussions when you want to move on to another system in 2 years (what's the current typical life time of a web site?)

I didn't want to bring this up from the get go, because I assume that there are good use cases for this feature (see my comment above). But for me this is the core problem of the proposal - sub groups seem to be at most a corner case.

So, for improving the proposal, from my point of view, it will be crucial to come up with a compelling user story why sub groups are needed and a concept of how to implement them cleanly.

While I don't want to sound

bonobo's picture

While I don't want to sound negative (in responding to this proposal) Alex is right on with this -- we have delivered 5 sites recently using OG, and subgroups sound great in theory, but, as Alex says, are difficult to make transparent and intuitive in practice.

When we have needed to create relationships between groups, we have done it as Moshe suggested: using taxonomy.

It's possible to design an architecture where subgroups make sense, but the process of explaining that architecture to a site user (let alone creating a UI where you don't need to explain the architecture, which is the real goal) is a daunting task. Morever, the rationale behind subgroups will generally change from site to site, making a generalized solution even more difficult to code.


FunnyMonkey
Tools for Teachers

"the rationale behind

ezra-g's picture

"the rationale behind subgroups will generally change from site to site, making a generalized solution even more difficult to code."

While the rational for having subgroups varies from site to site, the propagation of posts (which is the primary functionality provided by an OG Subgroups module) can only vary in three different ways, right?

Posts inside of an organic group can propagate up an ancestry tree, down the tree, or not at all. This functionality currently exists in OG_Subgroups as a configurable option that could apply to other versions of the module however hierarchies are represented in the database.

"subgroups sound great in theory, but, as Alex says, are difficult to make transparent and intuitive in practice..."

Would providing a visual representation of group hierarchy address this issue? Perhaps the module could generate a diagram with arrows explaining the direction of post propagation. Whether or not this project is accepted, I am interested in hearing about the problems that you've seen users have with understanding group hierarchies.

"It's possible to design an architecture where subgroups make sense, but the process of explaining that architecture to a site user (let alone creating a UI where you don't need to explain the architecture, which is the real goal) is a daunting task."

I'm not sure that I agree with this, given in part that subgroups are an often requested feature of OG.

My opinion is that parent\child group hierarchies are most appropriate when they're used to represent a hierarchy that is already familiar to users, whether it is one of locations, courses (parents) and individual sections (children) or another hierarchy.

"When we have needed to create relationships between groups, we have done it as Moshe suggested: using taxonomy."

Can you elaborate on those solutions?

Use cases, again :)

alex_b's picture

First the disclaimer: of course I don't know the particular scenarios you guys deal with.

Now speaking from my experience (and I certainly don't "know it all"). Practically all requests for sub groups in projects I've been involved in came from a wrong way of thinking about a solution for a real world problem.

In software, clients and engineers alike tend to try to solve communication problems with the following two step approach:

1) let's map reality to code
2) if it's doable (and you know, there is a lot that can be done)

which leads to all kinds of outrageous solutions and in not a few cases to some little maintenance night mares. That's creating little monsters.

After falling into this pit more than a couple of times myself and seeing software projects fail or eating up their own creators, I am more and more realizing that this is not what makes a tool successful.

It's stripping it down, making it simple. This is nothing new, everybody's talking about simplicity these days.

I am saying all this because Ezra wrote:

"subgroups are an often requested feature of OG."

and then I read a couple of suggestions of how to make sub groups work. Me, too, I believe that they can be made so that they work.

What I doubt is that they will ever work as smooth as a flat groups system.

In the concrete case California: a much better solution would be to offer people to subscribe to related groups based on their geographical preferences.

All that said. I haven't given up on the idea, I just think that compelling use cases are missing. (I am sorry to stretch out this conversation, I am a sucker for good communication concepts and I believe that a good software has to reflect that).

One such use case could be:

A website that allows you to turn on groups.drupal.org like sites on the fly. every g.d.o style site is an og in its own - users actually never deal with cascaded groups, but their og web site is essentially one organic group of a bigger site. In this case you (mis)use og for silo'ing your site and you use og for discussion groups in each silo. I think this particular case I am describing is a little wobbly, because very specific, but it could be a direction to go in...

RE: "Can you elaborate on

bonobo's picture

RE: "Can you elaborate on those solutions?"

In a school, when setting up groups for use within departments:

Taxonomy:

Department
-English
-Math
-Science
-History
-Performing Arts
-Fine Arts
-etc

When creating groups, the English 12 group, the English 11 group, and the Modernism group would all be tagged with the "English" term.

Calculus, Trigonometry, and Statistics would all be tagged with the "Math" term.

In this use case, taxonomy did exactly what we needed. While we could have created a top level "Math Department" group, and had all courses as sub-groups, it was less intuitive for end users.

Even in situations where you have multiple offerings of a single course (ie, 4 sections of Calculus) it was easier for users to interact with different groups (tagged with the same term) in a flat hierarchy, than with a relational context that shifted from course to course -- ie, one course has subgroups, another doesn't.

Using the course example, if you have multiple sections of the same course, you can extend the taxonomy groupings to include more specific subject areas: ie, have Calculus, Trigonometry, Statistics, etc as child terms of Math.

Having a consistent user experience across identical functionality (in this case, working in groups) helps make the site easier to use. If subgroups are used in an identical way across the entire site, then you would have that consistent user experience.

RE "Would providing a visual representation of group hierarchy address this issue?" -- Yes -- I'm having a hard time getting my head around a use case that couldn't be solved via taxonomy, well designed views, and smart email notification.

And I apologize if I'm missing something obvious here, but I do think a diagram/explanation of a specific use case would help me understand.

Cheers,

Bill


FunnyMonkey
Tools for Teachers

"Yes -- I'm having a hard

ezra-g's picture

"Yes -- I'm having a hard time getting my head around a use case that couldn't be solved via taxonomy, well designed views, and smart email notification."

Frankly, you make a good point. I'm going to hold off on on this for now.

a use case

bernadotte's picture

... if i completely got what you are talking about:

my project has to deal with about 80 local chapters in 35+ countries.
at the moment, we use a tuned up old forum system without a role system, that provides those groups with a basic group page for news and a shout box for internal chatting and communication in their mother language.

but those shoutboxes are too crappy to lead real discussions or preparing projects, so i thought about giving all groups a restricted forum, where they can discuss their matters in their mother language (on the rest of the site english is mandatory) without flooding the hole site with babylonic language mixes.
but that would be a maintenance nightmare in that system, so i thought about converting to drupal (THE community system ;) )

the second finding was, that the collaboration of chapters within one country is not really supported by the site structure, so setting up a national level as a parent group above the local chapters would be a good idea as well.
members of local chapters automatically become members of that national parent group and have access to the national forum + those items from other subgroups, users classified as important for the national level.

how else then by using subgroups can i sort members and restrict access the way i want to have it? how can taxonomy help me there?
the only solution besides those subgroups would then be to set up 80 roles and give them access to each group forum manually?. pfuhh!

indeed, the organic groups and subgroups are flat and even after a year of searching and asking, i found no way to make it treelike.

but actually, thats the way REAL communities (and organisations) look alike. we are not that much interested in playing around with galleries and youtubevideoaudioflashgarbage for everyone, but in structured and productive communication without disturbing the rest of the community.

so, where are those propagated intranet features i read about so often?
... can´t find them.

i´m still not 100% sure if i hit the point of discussion, so please forgive me if i did not.
i think there are more ppl who would need a system as i described. if you know a site using drupal with the existing tools who managed to set up sth like this, please tell me which. but i start to doubt that such sites do exist.

'specialised' subgroups

dikini's picture

For example subgroups would allow an easy workaround to special functionality or extra permissions.

I was developing a module for peer-reviewing some proposals. The details don't really matter much, apart from the fact that the fact I had to allow some people to be able to cast their vote while others not. Roles don't cut it - they are global. Making the voter group admins either - the only special thing was they had to be able to vote.

I ended up creating 'invisible' groups (ugly but worked) to side step the issue. Each of the 'invisibles' is related to a proper group. If a user is in an invisible group of a proper group they can review and vote on proposals.

This would be faaar easier if there was the concept of subgroups. I would still have to code on top of it, but that is less hackish. Having said that, hierarchies are weird and relatively hard to implement - the generic case is slow, the optimised versions have too many restrictions.

And after I bungled the use case description, I wish to burrow again in a hill somewhere

use cases

scedwar's picture

I described a number of use cases in the issue here: http://drupal.org/node/228493

In short, I'd like to see subgroups support the propogation of posts AND users. Using a simplistic example, think of football teams, you might want a private (parent) group of the football coaches, who are the group (football team groups) admins who are propogated up. The normal group members are the footballers and should not have access to the "coaches" parent group.

There are all sorts of variations on this.

FYI, I've started a thread

amitaibu's picture

FYI, I've started a thread about a rewrite here.
http://drupal.org/node/255292

Version 5.x-4.0 is now a

amitaibu's picture

Version 5.x-4.0 is now a complete rewrite of the subgroups module.

@alex_b, billfitzgerald, dikini - would be interesting hearing your opinion on the new functionality.

D6 port based on Book module?

amitaibu's picture

I was thinking that since Book module already deals with hierarchy, why not create a dependency on Book? In that case Subgroups will only need to implement user/ content propagation.

Private groups and all groups under the private groups will not appear for users without the right access to them.

What do you think?

Antony Hodgson's picture

I'm working on a political action website and I'm wondering if our needs are a suitable use case for subgroups.

We have dozens of active volunteers and staff supported by hundreds of casual volunteers. For a particular task (eg, voter outreach), we have several different sectors (students, community organizations, regional organizers, etc) - ie, candidates for subgroups (voter outreach parent group, specialized subgroups). The reason for having a parent group is that there are many issues common across all subgroups - outreach materials, messaging advice, etc - that we would like to post in one place for all to have access to.

We would like members of any subgroup to automatically be a member of the parent group - with our current flat structure, we have to register people in both the subgroup (or subgroups if they belong to more than one) and the common group. This is an administrative problem as sometimes the person doing the registration forgets to register the person in the common group.

Given the discussion in this thread, is this use case a justification for using subgroups, or should I tackle it using a taxonomy-based approach?

Another wrinkle is that the most active volunteers are sometimes discussing more strategic issues and hence want to keep their communications private. I understand that one can create group-specific roles, but I'm not entirely clear how to limit the visibility of forums or book pages to only those group members with a particular role. Any pointers would be most welcome.

Yes, subgroups can help you

amitaibu's picture

Yes, subgroups can help you in propagating the user's membership. Just now I've finished implementing it in the D6 version.
You can create a private group that will have only your active volunteers.

I looked into subgroups to

rc2020's picture

I looked into subgroups to allow groups to feature/showcase specialized nodes within their groups, and I think the concept has potential. As I have used it however, it seems to miss a few key features which I think would lock in a solid UI and powerful functionality.

The current group interface provides methods for group members to add nodes to their group, but no way to logically promote/feature certain nodes, or their created group pages. I think subgroups could provide a fix to this problem if implemented properly, which from reading here I am unsure if its possible with the way subgroups is built, but here goes.

I'll outline the problem more specifically here:

Lets say you have a group, say, "5 star restaurant," and it writes blogs on recipes. Let's say it has blogs for normal recipes, but it wants to feature blogs for "Holiday Recipes" on its OG group page. Featuring specific nodes on a group page isn't possible with OG out of the box, but with some views magic and either the flag module or the nodequeue module (with subqueues for OG enabled), you can create views that can be "featured" if the flag or the subqueue is updated/selected. This is a clever fix but it doesn't address the fundamental problem: that groups are unable to create and logically associate nodes within their groups by specific context. I'm aware of the group taxonomy module and I have it enabled, and groups can create their own taxonomy, but as far as I know views doesn't provide a solid (global) way to assign group nodes to a group (or group section) based on group-specific taxonomy. Views allows the creation ad-hoc views for a singular organic group using that groups specific taxonomy, but there's no way to filter nodes by saying: Post in current group, and (a theoretical) filter saying: Taxonomy: Taxonomy term in current group, or something along those lines (for all groups site wide). Even that filter would be inadequate, as if a group had 10 different custom taxonomies within their group it still wouldn't provide the necessary tools to split up each node into its specific taxonomy grouping. Moreover, creating ad-hoc views per group is fine if you have 3 groups, but if you have 500 groups your life is going to be miserable.

Moreover, if a group wished to create a new page dedicated to showcasing blogs involving holiday recipes, they could do that with the og_panels interface, but once they create a new page, even IF a view was made that somehow managed to capture the specific taxonomy for each group on the site and display only posts tagged with that specific taxonomy, the new group pages (through og_panels) don't appear on the front page except with tabs. Tabs might work great for webmasters and developers, but from a UI perspective they're incredibly unfriendly - especially if you're using a top navigation menu schema. Users will not find that UI friendly or simple in any capacity, nor would they consider it intuitive. If they can't navigate to the page or if it isn't prominent then the functionality is useless.

I currently know of no way to create a view that says show all "group pages" (pages created with og panels) in current group. Even if there was, there's no fields to attach on for customized display.

IMHO, these above problems could be solved by a robust subgroup interface. Here is how I envision an ideal system:

The OG Subgroup module would add a node type called "subgroup." A group can add a subgroup to their group in the exact same fashion that a group can add a blog to their group. When viewing the subgroup, they can add whatever content they would like through the same UI as on the parent group (OG content type admin module could restrict content types available to be posted into a particular subgroup) and the created content would propagate the subgroup. Options on the subgroup interface would allow the content to appear in the parent group and/or the subgroup itself based on the group administrators preference. This is all that is needed to set the stage for a really powerful engine because views and flag/nodequeue provides the rest:

A view could be created to say "Node type: subgroup, and posts in current group" to create a block on the group homepage that links to all the subgroups, and a simple cck text field with numbers ranging from -10 - 10 would add a weight feature which allowed users to determine which groups came up first and which ones were at the bottom. 10 extra minutes of work by the site webmaster would provide a flag/nodequeue method to feature a subgroup in a yet a seperate block if they wished.

With that set, viola! You have subgroups that have a fixed and clean layout (running it through panels with NID arguments), a simple and powerful way for group admins to compartmentalize information as they see fit, a logical way to feature the subgroups (and content therein, as the option could be set to propagate the subgroup only), and an ability to showcase it on the front page of the group so the tabs interface is bypassed and its clearly prominent to the user.

Thoughts?

I'm not exactly clear on

ezra-g's picture

I'm not exactly clear on your goal here.

Which version of og_subgroups did you use? the 6. version is not ready. see http://drupal.org/node/337808 for more discussion. As for a group specific nodequeue, see http://drupal.org/project/smartqueue_og .

I'm using the current 5x

rc2020's picture

I'm using the current 5x beta.

My goal is to allow group members to create subgroups within their group exactly like they add nodes to their group, and their associativity is the same, only the nodes they are adding would function like groups.

So subgroups would be a "group node" and a "standard group post." So if Group A creates a subgroup, call it subgroup A-1, they can add nodes to that subgroup exactly like they would be able to add nodes to the parent group. The nodes added to subgroup A-1 would be assigned to that subgroup just like a node is assigned to an organic group. Ideally, there would be an option to select either on the node edit/creation form or the subgroup edit/creation form whether content propagates to the parent group or not.

After trying a while to get og_subgroups working (which has been problematic as currently no user but user 1 can see the "create subgroup" link even though they have the appropriate permissions), creating a subgroup does not allow (as far as I can tell) to add nodes to that new subgroup as if it was a parent organic group. Nodes still post to the parent group.

I assumed this was how OG subgroups was designed.

If I'm mistaken and its not how it was designed, I can move this to the support queue.

And I also am (sucessfully) using smartqueue for organic groups.

How would I do this?

BayouBill's picture

Can I get some advice on how to implement this use case?

Our civic group wants to send notices to subscribers (Drupal "users") by type and location.

"Location" - A subdivision, municipality, or geographical area (e.g. highway corridor)
"Type" - councilmanic district, fire district, Legislative district, etc.

A "type" can be applied to one or more "locations". Illustration:

Subdivision A
Councilmanic District 1 (*)
Fire District 22
Legislative District 3

Subdivision B
Councilmanic District 1 (*)
Fire District 33
Legislative District 9

Subdivision C
Councilmanic District 2
Fire District 44
Legislative District 5

To make it easy on the subscribers, we want them to be able to subscribe by their Location and get notices of all new content relevant to that location. We don't want subscribers to have to figure out which "types" apply to their location - - - the system should do that for them.

To make it easy on the administrators (posters), and to be as granular as possible with the posts, we want to post by "type".

So, we would post a notice for Councilmanic District 1, and it would "flow" to Subdivision A & B, but not to subidivision C. By "flow", I mean two things: (1) a notice would be sent to everyone located in subdivisions A & B, and (2) the post (or a teaser for it) would appear on the "home page" for both subdivision A & subdivision B (each "location" would have its own home page).

(*) The above illustration implies "multiple inheritance", which current versions of og_subgroups do not support, so we need another approach. I think the answer is in some combination of og and taxonomy, but should the "locations" be taxonomy and "types" be groups, or the other way around? Would those be the right modules to use? What other modules would be useful?

Any help to keep me from going down more rabbit holes would be greatly appreciated.

Here's what we will be using..

midloman's picture

Our local chapter of a global non-profit organization has a similar need. We'll be implementing CiviCRM, which can track members using various criteria - including location, and organize them into 'groups'. Sending email to a group using CiviCRM is a simple matter. CiviCRM also has the ability to interface with OG and create new groups from OG membership. CivCRM allows to to create "custom Data" type for records. You can add fields to the subscriber record to designate location and type (and whatever else), and group by that data.

Check out CiviCRM here: http://civicrm.org/
Info on how CiviCRM can work with OG is here: http://wiki.civicrm.org/confluence/display/CRMDOC/CiviCRM+vs.+Organic+Gr...

I hope this helps!

Looking for something similar for an intranet

jaochoo's picture

We are building our new intranet on Drupal. We are a group of companies, i.e. our organizational structure consists of sub-companies, which again have sub-companies or departments, which also can have sub-departments and/or employees belonging to them. We need to have this organizational structure in our Drupal-based intranet system, both:
1) in terms of content: displaying the corporate structure as a hierarchical list of companies, sub-companies, departments; displaying employee listings per company and department;
2) in terms of access control: for every node (blog, news, photo, etc.) it should be able to define what employees, departments, companies can view/edit/delete it.

Now my problem is not how to achieve 1) or 2) separately: For 1) displaying the corporate structure in terms of content, I could create content types like "company" and "department" and link them together with node_references and user_references (or even using a taxonomy) then using Views to generate certain listings; for 2) achieving access control I could create a role for each company and department and use a module which allows to define content access per node.

However, as the corporate sructure has to be dynamic (new employees come, new departments are created, employees change to another department, etc.) I do not know how to bring these 2 pieces together avoiding redundancies. Handling them separately would mean that e.g. for a new department: an administrator 1) would have to create a new department node and defining the user_references, then 2) create a new role for that department and adding users to that role, which would create redundancies (e.g. when a user changes the department, admin will update the user_reference field to the new department, but might forget to update his role membership to the new department, i.e. he will appear in the correct department listing (the content part) but will have the wrong rights (access control part)).

I am looking for a solution (ideas, modules, etc.) which bring both parts together.

My ideas so far:
- Using Rules: When a new Department node is created, a new Role with the same name is created; when a user is added to a Department, a Rule also triggers his assignment to the corresponding Role, etc. However, it seems somewhat fragile to me.
- Using OG (+ additional modules): As far as I know OGs are node, so I could create a hierarchy of OGs to build the corporate structure, while the OG itself provide the access control. However, it seems somewhat too heavy to me.
- Taxonomies + some taxonomy-based access modules: Well, I don't know.

Modules for subgroups

juan_g's picture

jaochoo wrote:
> - Using OG (+ additional modules): As far as I know OGs are node, so I could create a hierarchy of OGs to build the corporate structure, while the OG itself provide the access control. However, it seems somewhat too heavy to me.
> - Taxonomies + some taxonomy-based access modules: Well, I don't know.

Since July, there is a new 6.x-1.x-dev version of the Subgroups for Organic groups module that eliminates the dependence on book.module. Because of this past dependence, some people were using other solutions, such as Node Hierarchy or Taxonomy Access Control.

subscribing

gmclelland's picture

subscribing

Hierarchy technique in the new version of Subgroups for OG

juan_g's picture

I was wondering what hierarchy technique (maybe taxonomy like in the D4.7 version, or a table like in D5, or node hierarchy, or the menu system, or nodereference, etc.) had been implemented in the new 6.x-1.x-dev version of the Subgroups for Organic groups module. Of course, there are different opinions on which is the best way. So, I've looked into recent code commits.

The new maintainer has said: "Right now its basically a port from D5". Indeed, in these commits, the D6 book dependency is removed, and only the og dependency remains (see og_subgroups.info). And, instead of using taxonomy, or the Node Hierarchy module, etc., there are now subgroups with their own hierarchy.

That is, og_subgroups.install includes a schema definition of a og_subgroups table with two fields: gid (integer, the ID for a group) and parent (integer, the gid of the parent group). Also, there are new functions for propagation of content and members, etc. So, this is it, and thank you very much to Bschilt, the new maintainer.

Recently, Amitaibu wrote: "Subgroups are possible in OG7, but in order to propagate content/ users OG_subgroups7 should be used (In time of writing OG_subgroups7 doesn't exist yet)."

That's great news. Does anyone know what subgroup technique is OG7 using? Maybe taxonomy, one that Moshe Weitzman (OG) seemed to prefer a couple of years ago? Will it be reasonably easy to upgrade group hierarchies from og_subgroups6 to OG7?

Subscribing - wondering about

jakew's picture

Subscribing - wondering about D7 subgroups as well. Could affect a decision I'm currently making in building OG onto a D6 site.

hkfletch's picture

I know this post is very old, but I learned some things from it, even though alot is over my head, and I thought maybe you would like to see a beginners perspective, on what decisions an enthusiastic, non programmer, beginner might struggle with while trying to figure out if, or how, they can make subgroups on their site. Please see my full post here ….

https://www.drupal.org/node/2314555

Synopsis:
In short, I am looking for a means for any user to come to my site, and create and manage a group, which is about their subgroups, which they also create and manage under their top group.

In the subgroups they will have various content types and content, and members, which the manager/creator the can manage, and also some content and content types I will manage globally.

It should be easy for them. And, it should not involve me as site master having to do much, actually preferably anything, for them to do this, on their level, other than just routine maintenance. Or at least as little as possible.

I have studied a number of possibilities from Sugroups to OG+taxonomies(I guess) (I suppose just taxonomies is possible) to CiviCRM, and others but there are issues and questions I don’t have the experience to find answers for. See the full version for these issues and questions. I don’t really have coding skills to build modules by the way. What is the right direction? I appreciate it. Thanks.

This is a side suggestion from a beginner's perspective for whoever wants to know. I would like to see comparisons tables for Drupal issues like these which might have several solutions, so beginners can make reasonable choices, with say with a Beginner to Advanced scale on top and then various methods or choices like mine listed on the left with pro and con issues and alternatives to consider in the middle. It would sure make it easier and faster for beginners to get through the learning curve, than to have to read through so many posts and guides. There are so many choice possibilities, some relevant and some not, that it seems logical to have a way to help guide people through them. Thanks.

juan_g's picture

@hkfletch: Things have improved these years, and now the Organic Groups module natively includes subgroup functionality since its Drupal 7 version.

As I explained on the issue D7 How to create a subgroup?, only one content type is needed for groups and subgroups. You can create it for plain OG, but if you already have a "Group" content type, just modify it to optionally have a parent, as follows:

Administration > Structure > Content types > Group > Edit > Organic Groups

We check "Group content", in addition to "Group", so that a new "Groups audience" field for optional parent group is automatically created.

And we create our tree of groups:

Administration > Content > + Add content

Now all groups in the tree have the same full feature set.

And this is it for Organic Groups.

SoC 2008

Group categories

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week