Blog: Organic Groups

Introducing Spaces for Drupal
professional hacker

Leveraging Organic Groups and Context to Extend Custom Features Within Groups

Leveraging Organic Groups and Context to Extend Custom Features Within Groups

We do a lot of work building portals and intranets that provide collaborative online spaces for professional communities. Some of these projects are completely private sites, and some are open to larger user groups. In each case we need to provide a toolset that could be configured differently for each site and frequently tweaked in particular groups. To do this we've built Spaces. It's a module that leverages Organic Groups to relate users and content to groups, and it extends context_ui to define 'features' that can be control individually in each group.  Spaces also makes assumptions about how you want groups to work and so is able to reduce the options available when creating groups and posts in groups, making the group creation and content posting processes more intuitive.

To get a sense of how this module works I have taken two screen shots from our own intranet package that we call 8trees. Here you are looking at our own team space on the 8trees install that we run for ourselves to communicate with our clients.  It provided us with a terrific way to test code and ideas on a captive and critical (but forgiving) audience. Clients never know there is anything but their own little space, but we move quickly and easily between them and have different tools (blog/book/casetrack/calander) turned on for different clients depending what stage the project is in. This is what spaces lets us do.

Included in the spaces suite is a core set of feature definitions that provide features for things like the blog and book modules. Additionally there are feature definitions for a calendar, a shout-box, and a case-tracker. When you create a group with Spaces enabled it changes the creation a bit, limiting the kind or group you can create to simply 'public' or 'private' and allows you to select what features should be available inside that group. If it's only appropriate for your group to have a blog, you can limit it to that. If your group needs a more substantial feature set, say a blog, book, and calendar, you can configure that for the group.  Spaces also lets you change labels in a group, so if a set of users doesn't want a 'blog', but needs a 'discussion' they can have it without need to to change any code or use the locale module. Here  is how the setup looks:

Creating Custom Workflows for Drupal Applications

Taking Advantage of Core Hooks and Context

Taking Advantage of Core Hooks and Context

At 3:30 pm on Wednesday March 5 I'll be presenting with Jeff Miccolis on some of the ideas that have been
circulating around the Development Seed office on how to tackle the simple but elusive concept of context in Drupal. We'll tackle the topic in classic academic style: define the scope of the problem, review the relevant literature (i.e. we'll look at the code of some seminal modules), look at an exemplary case study (Managing News), and then show how context can help you make a more usable Drupal site.