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.

Installation

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.