September 29th, 2010
FunnyMonkey is pleased to announce the release of VoiceBox, a community discussion and aggregation platform. Using VoiceBox, an organization can set up a site that allows people to create profiles, start discussions, upload content from mobile phones, comment on one another's posts, share content to other social media platforms, and follow incoming news feeds.
The VoiceBox installation profile simplifies the work of groups looking to create or expand their online presence. Organizations looking for a place for their stakeholders to publish, collaborate, and get more informed could use VoiceBox to support these goals.
The site was designed to support community media and other grassroots organizations, but the base functionality can be used in a variety of different contexts. VoiceBox can easily support a school newspaper, or, with some modifications, it could work as the public-facing site for organizations that want to communicate with their stakeholders and develop a community around their work. In particular, the blend of content aggregation, internal site discussions, repurposing content within issues, and sharing out to external sites via social media helps connect the smaller communities of individual organizations with larger external groups that share a common interest.
Install Profile and Features
One of the primary goals of the Knight Drupal Initiative is to reduce the barrier to entry for non-technical users. To achieve that end, we built a fully functioning install that is ready to go out of the box. This default install includes user profiles and discussion spaces; flexible content aggregation; support for images, video, and audio; and much more.
However, we also wanted to make sure that we created features that would be as granular and as reusable as possible.
We achieved that balance by creating an option in the install profile to install a Full or a Minimal version. The full install creates the default VoiceBox site, with all features in place; the full install takes about as long as a normal Drupal install. You can see where the options are presented at around 1:15 in the screencast embedded earlier in this post.
The minimal install sets up the base functionality for VoiceBox. This functionality includes input formats, WYSIWYG settings, roles, and taxonomy terms. Then, on top of this base, the set of VoiceBox features can be enabled. Within the features we have created, we split out the content types, the views that display data related to those content types, and the UI elements that present and organize the data collected by those views. Using this structure, someone could (as one example) do a minimal install, and then enable the base components of the Bio and the Posts features. Then, they could create their own UI for this data using Context, Panels, the theming layer, or any combination thereof.
By pushing as much of the install into features as possible, and by splitting our features into granular components, we were able to maintain the integrity of the full install while retaining flexibility for site builders. We look forward to refining this process with additional community feedback, and we have started talking with some of the Drupal Dojo organizers around ways of sharing and reusing features. We are also looking forward to seeing how this approach could work with Debut and what would need to change/evolve to have these features become Kit compliant.
Code and Documentation
The individual features for this site are hosted on our Features server. On this site, we also have some site documentation, and a series of tutorial screencasts. Currently, the documentation covers getting started using the site, installing the site, orientation docs and screencasts for end users, and architectural descriptions for site maintainers.
Also, when a specific feature is addressed in documentation, the links to the relevant doc pages show up alongside the feature. Each feature page also lists out its dependencies. This way, people building their site on top of a minimal install (or people who want to know more about how the pieces of VoiceBox fit together) can get a clearer sense of how the feature fit together in the site.
The virtues of Hexagon really require an additional post to explain in any type of meaningful detail, but I will highlight one of my favorite elements here: setting up tab and accordion effects for specific regions.
On the above screenshot, both the accordion dashboard and the vertical tabs are created via regions in the theme. This functionality is enabled via a plugin in Hexagon, and this plugin gets enabled via a single line in the .info file. This flexibility can be turned on or off across subthemes, and these regions can be enabled and disabled via context layouts. Once you have your architecture thought out, you can give site admins a large range of flexibility that they can access via the UI. Throw Skinr into the mix, and you have additional options.
Over the course of this project, the following team members worked on this project:
This project was funded by the Knight Foundation.
Where Can I Get It?
The VoiceBox alpha release can be downloaded from the following locations:
- A fully packaged tarball is available on code.funnymonkey.com.
- A drush make file is available from the project page.
Appendix: Modules and Themes Used
The following modules and themes are used in VoiceBox.
- Automatic Nodetitles
- Better Formats
- Chaos tool suite
- Content Construction Kit (CCK)
- Content Profile
- Image Resize Filter
- ImageCache Profiles
- Job Scheduler
- jQuery UI
- jQuery Update
- Libraries API
- MIME Router
- Simple Share
- SWF Tools
- Views Bulk Operations (VBO)
- Views Slideshow
- Views Tagadelic