SolutionBase: Fine-tune your Drupal CMS with Organic Groups

Anyone who has tried to manage groups within a CMS site will find Drupal's Organic Groups module to be a breath of fresh air in the often-frustrating world of content management systems. Jack Wallen gives the details on installing and configuring the module.

With many CMS tools, the inability to deal with groups effectively is often frustrating. Most CMS tools allow you to assign users to groups and then those groups to certain pages. One of the drawbacks is that, in some cases, the groups do not see the standard site. Instead, they only get to see what the group to which they are assigned does. Drupal fixes this problem with one particular module: Organic Groups.

How does the Organic Groups module work?

The Organic Groups module allows users to not only belong to specific groups, but to also create their own groups. This allows for a site to grow "organically" and on the fly. For example, let's say a Web team assigned to create a new project has charged one person on the team with creating a specific feature for that site. That person could go to the Drupal site, create a group for that site feature, get other developers to join, and use Drupal to manage their work and communication. By configuring Organic Groups properly, the site administrator will not have to play a part in the creation of those groups.

Now that I've piqued your interest, let's discuss installing and configuring the Organic Groups module.


First, be sure that you have a correctly installed and configured instance of Drupal. The Views and the Views_RSS modules must also be enabled. To do this, you must log on to your Drupal site as the administrator and press the Administer link. Once within the Administer page, you'll need to go to the Modules link under Site Building. Now that you're on the Modules page, scroll to the listings for Views and Views_RSS, as shown in Figure A.

Figure A

You cannot enable Views_RSS without enabling Views.

Select the checkboxes to the left of both Views and Views_RSS, and then scroll to the bottom of the page and press the Save Configuration button. Now you are ready to install Organic Groups.

First, download the module from the Drupal Web site. Once you have the module file downloaded, move it to the Drupal module directory on your server (on my server, it needs to be placed in /var/www/html/drupal/modules).

Once the module is there, go back to your Drupal Web site; on the Administer page, select Modules under the Site Building listing. Now scroll to Organic Groups listing, as shown in Figure B. Select the Enable checkbox, scroll to the bottom of the page, and press Save Configuration. Organic Groups is now installed and ready for configuration.

Figure B

The module listing shows the requirements that you just enabled.

Configuration of Organic Groups

There are a number of different configurations to take care of within this group; these configurations take place both within and without of the module. Let's take a look at the configurations that take place outside of the module first.

I would suggest that you configure the ability to create groups first. Right after installation, you could rummage around all you want and still not find a way to create a group. You actually have to create a new content type before you will be able to create a new group. To do this, you need to navigate to the Administer page and select Content Types (under the Content heading). Within this new page, select the Add Content Type link, where there are a number of configuration options to take care of. The first three options are under the Identification label:

  • Name: This is a human-readable name for the content type. It's required.
  • Type: This must be a group. It's required.
  • Description: A brief description of the type. It's optional.

The next section is the Submission Form. This section defines the fields that will appear on the group submission form. Here, you must configure the following:

  • Title Field Label: Label for the title. It's required.
  • Body Field Label: Label for the body field. It's optional.
  • Minimum Number of Words: The minimum number of words for the body field for this submission to be considered valid. It's optional.
  • Submission Guidelines: Text to be displayed at the top of the submission form. It's optional.

The next section is related to Work Flow:

  • Default Options: These options are standard options for all Drupal content.
  • Published: This must be checked, or the new type will not be available.
  • Promoted To Front Page: If you check this, your new type will always show up on the front page. Not advisable.
  • Sticky At Top Of Lists: If checked, this will cause the new type to always appear at the top of lists (generally a list of related content such as other groups).
  • Create New Revision: If this is a newer version of a group, check this.

The next section of options applies to default comment settings:

  • Disabled: Comments not allowed.
  • Read-only: Comments can be read.
  • Read/Write: Comments can be read and written.

The final workflow section relates to the Calendar. When you create a new piece of content, in many instances it will show up in the calendar on the creation date. This can be annoying, especially if you are creating a lot of content. The three options for this are:

  • All views
  • Only in views for this type
  • Never

I would recommend the latter setting.

The next configuration section applies to images. You have the following options to configure:

  • Attach Images: Enable or disable users' ability to attach images.
  • Teaser Image Size: Image size used as teaser on front page. (Size options: Hidden, Thumbnail, Teaser, or Original.)
  • Teaser Image Weight: How to weight the image so the system knows where to place it on a page; negative numbers are given highest priority. (Range: -10 through 9.)
  • Full Node Image Size: This determines how large of an image to display when the full node (content) is displayed. (Size options: Hidden, Thumbnail, Teaser, or Original.)
  • Full Node Image Weight: Similar to Teaser Image Weight only when full content is displayed. (Range: -10 through 9.)

Finally, you can enable or disable attachments for the node.  

Once you have everything configured to meet your needs, press the Save Content Type button.

Granting users control over groups

Now you need to decide if you are going to give users the ability to create groups. If you don't, the administrator will be in charge of this duty. If you want to avoid that task, you can charge it to your users. To do this, you need to hop back over to the Administer page and select Access Control. Access Control allows you to configure what users (either anonymous or authenticated) can or cannot do.

Once on that page, scroll down to node module and choose which type of user (anonymous or authenticated) you want to allow to create groups. Figure C shows how this works.

Figure C

I would recommend against allowing anonymous users to create anything on your site.

Once you have made your selection, press Save Permissions.

Creating groups

The creation of groups is fairly straightforward. You will have to be logged in to proceed. From your Drupal site front page, select the Create Content link, and then select the Group link. From the Group creation page, you'll have to take care of the following configurations:

  • Group: The group's name.
  • Description: A brief description of the group.
  • Body: The full description of the group.
  • Input Format: The types of formatting options allowed (Filtered HTML, PHP Code, and Full HTML).
  • Attached Images: The choice of using an existing or uploaded image is made here.
  • Group Web site: You can define the page to be used as the group's Web site.
  • Subscription Requests: Open, Moderated, Invite-only, or Closed.
  • Registration Form: Enable this if you want new users to be able to submit registration for this group when signing up for the Drupal site.
  • List Groups In Directory: Allows you to list your group in the Group Directory block.
  • Theme Configuration: Select a theme to be used for the group.
  • Menu Settings: Configure a menu entry (if needed) for the group.
  • File Attachments: Add a file to the group.
  • Comment Settings: Enable or disable comments within this group.
  • Authoring Information: Set the author (owner) of the group and when was the group created.
  • Publishing Options: There are four options. These options are exactly the same as the Publishing options when creating the group type. (I highly recommend only selecting Published.)

Once you have configured the group to your liking, press Preview to see what the group will look like, or press Submit to save the group.

Enabling the Group Directory

To allow users to see what groups are available to join, enable the New Groups Block. To do this, go the Administer page and select the Blocks link under Site Building. Scroll down to the disabled listing and find the New Groups entry. Select the Configure link to the right of the group to configure a title for the block (default is New Groups), maximum number of items to show, visibility settings (can users close the block), who can see the block (anonymous or authenticated users), and which pages to show the block.

Press the Save Block button; then, from the drop-down list to the right of the New Groups listing, select where you want the block to live. Once you have selected the block location, press the Save Block button and your New Groups block will appear. Now your users can see what groups are available.

Final thoughts

For anyone who has tried to manage groups within a CMS site, Drupal's Organic Groups module will have you singing the praises of the module's developers. This module is a certain breath of fresh air in the often-frustrating world of content management systems. I have deployed the Organic Groups module in a number of situations and have had nothing but positive results and feedback.