Development Seed Blog
Introducing Spaces for Drupal
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:
Because the context_ui module lets you define contexts in code or in the database you can define spaces features the same way. This means the feature definitions that ship with spaces can quickly and easily be overridden by savvy site administrators. Doing this allows them to add blocks, add or use alternative views, and even define entirely new features for their groups. These new UI defined features work and behave just like coded features allowing admins to grow and adapt their sites along with their users, without doing any coding.
The Spaces module is currently under heavy development and should be considered a developers' preview. We've deployed spaces a number of times, so 'it works' but the code on Drupal.org is the bleeding edge of our work. If you are developer, please check it out. We're doing a lot of work and always love more feedback from the community. Also, check out the Spaces/Context session proposal for DrupalCon 2008 Szeged


Comments
Great work!
Wow! This is really people orientated.
That's good because I'm feeling a little 'teched-out'!
I'm the kind of person that needs to try things to understand them fully, so I look forward to a D6 version for my test area :)
Thanks for your well directed hard work.
This seems interesting. I
This seems interesting. I have been looking at Drupal for our company site and various other projects. I am evaluating also other project management / crm tools - I would like also to stick with one platform (some years ago I had extensive usage of PostNuke and considered OpenStar project - but now this is at EOL as of Zikula project). Waiting for it.
Can this help me achieve
Can this help me achieve Simple Project Management?
- Task Assignment
- Email Notifications
- Project Teams
Hey Ravi, Actually this is
Hey Ravi,
Actually this is exactly what we originally developed Spaces for. We currently use it for managing our team, all our internal projects and communicating with our clients. Each "Space" can have its own set of enabled tools, and you can assign different users to different spaces. Here's how we break down different project management needs:
Notifications can actually be fully integrated into the system -- see: http://www.developmentseed.org/blog/2008/jan/23/keeping-people-posted-no...
We actually have a distribution of our intranet internally that's being worked on and tested heavily. We're hoping to release it in the upcoming months so stay in touch.
Module integration?
And with which modules does spaces integrates with?
Or how do you provide case tracking and calendar functionality?
the knowledge base is maintained with book module? Or something else?
This seems really interesting!
Currently spaces provides a
Currently spaces provides a pair of features using core modules - the book and blog. For the calendar we use the date and calendar modules, and for the ticketing we're using the casetracker module.
As I mentioned in the post, it's pretty easy to add new features, so there are really meant as just a starting point.
-jeff
How would you compare Spaces
How would you compare Spaces to OG Panels and the new OG Blueprints module?
Some clarifications
Just some quick clarifications about the Spaces module --
Drupal 5 or 6?
Spaces currently has only a Drupal 5 branch. After our current round of projects we are planning to get Spaces and Context ported to Drupal 6. The port of context_ui to Drupal 6 has started as well -- many thanks to Pasqualle who submitted a comprehensive patch.
Where do I get it?
You can get Spaces by checking it out directly from the CVS repository: http://cvs.drupal.org/viewvc.py/drupal/contributions/modules/spaces/
Is it stable enough to use?
We are using Spaces on a handful of projects. However, we don't think it's ready for general production use. Once we've documented the ins and outs of the module, provided some starter HOWTOs and stabilized the code to a point where we feel comfortable providing responsive support, we will make a beta release. Until then, you are welcome to try it out but at your own risk ; )
Thanks. Do you have a
Thanks. Do you have a timeline for the next several steps? Will you focus them around a 5 release with doc or port to 6? Would doc and stabilization take place in the next 30 to 60 days? This would help folks to understand how to proceed with this project.
Have you looked Organic Groups Blueprints?
This looks great. Finding a
This looks great. Finding a solution to internal communication always seems to be a problem and this seems like a reasonable approach.
Very cool! The layout is
Very cool! The layout is very impressive.
I'm a bit confused. I went to Drupal.org to look at the module but I didn't see a link to download any thing. Also, can you tell me if Spaces support D5 or D6. (I'm hoping D5.)
Finally, the Drupal.org entry says that it is alpha code but you are running it in production. Can you tell me when a stable beta release will available?
awesome - looking forward to it
I found it very interesting and useful with Drupal.
Looking forward to its development - issues subscribed(any group discussions for this ??)
Hi. I'm a bit confused by
Hi. I'm a bit confused by this announcement since. Is Spaces usable? If so, is it for D5 or D6. On Drupal.org there isn't much data.
Also, since you are using it in production, is it safe to use on production or just experimentation?
I too am confused about
I too am confused about this. Why isn't there a project release? Is it in use on a production site? Is there additional project documentation?
I love Drupal/modules, but one of the big disappointments are modules that seem promising but don't deliver due to lack of information etc.
Awesome!
Thanks for the post, I can see this being extraordinarily useful. I wonder if you might do a more detailed post on 8trees at some point as well, my org is curious what others are doing with Drupal-based intranets.
We've been meaning to get
We've been meaning to get together a blog post about 8trees, but have ended up doing a lot of related work and wanted to highlight our emerging framework first. We're also always looking at how other organizations are using Drupal internally, and have deployed sites similar to 8trees a for the World Bank and the World Resources Institute. Both had similar needs for giving geographically dispersed groups of individuals online collaboration tools.
-jeff
og_panels
Hmmm. Seems like another approach to what I have been doing with OG Panels module. That allows group admins to add panels content (such as a shoutbox or even calendar) to existing group homepage and even create new pages in their group. For example, see http://groups.drupal.org/drupal-dojo
Lets get together and see how we can learn from each other.
I'd agree that this is
I'd agree that this is working in a similar space with OG Panels. I haven't looked very hard at OG Panels, but Spaces is approaching this from a different place and it makes different sorts of things possible. For example spaces manages OG's access settings on a per feature/group basis. So one group can have a public blog and private calender and another a private blog and private calendar.
I'm looking forward to DrupalCon, which should be a great time to compare notes.
-jeff
Nicely done
I had heard of this... But now I´m truly excited. Great addition to Drupal features and the functionality range for dynamic collaborations.
I look forward to experience it in action.