Blog: The Shop

DrupalCon Szeged Session Proposals: Aggregation, Context and Spaces, Messaging and Notifications, and Drupal Talent
Communications Strategist

Vote on the Sessions You Want to See at DrupalCon

Vote on the Sessions You Want to See at DrupalCon

We're getting excited to come over for DrupalCon Szeged in just over a month. This will be the fifth DrupalCon that Development Seed has attended, and it always amazes me how much these conferences show off just how fast this community is growing and how far Drupal has come as a platform. We've looking forward to talking about some of our latest work to add and refine functionalities to Drupal. Here's a quick summary of the sessions we've proposed to lead. If you're interested in these topics, please vote for them!

Spaces and Context Modules: Tools for Site Building: The Context and Spaces modules are two relatively new tools in Drupal's aresenal that make it easier to build complex websites. In this session, Jeff Miccolis will talk about both modules' approach and show developers how they can be used and extended. He'll also show some examples of the modules in use on community portals, sites-within-sites, and intranets. Vote here.

Messaging and Notifications Frameworks: At DrupalCon Boston, Jose Reyero introduced the beta versions of these frameworks. A lot has been done to improve them since, and in this session Jose will talk about the upgrades, specifically in how they handle subscriptions, notifications of events, and the various delivery methods for sending messages. Another focus of this session will be to discuss the shift way from email only delivery methods to multi-platform methods. Vote here.

A New Aggregator for Drupal 7: Drupal's core aggregator is getting a revamp in Drupal 7. In this session, Aron Novak and Alex Barth will talk about why this step is needed and what you can expect from the new core aggregator. Aron began this work as a Google Summer of Code project last summer and this summer has continued to finetune it. The result is a simple yet extensible and efficient architecture that should serve Drupal well. Vote here.

Attracting and Retaining Drupal Talent: At the rate Drupal's popularity is growing, we're finding that there just aren't enough developers to meet the demand. Web shops and organizations are coming up short in finding the Drupal talent they need to build and run the online tools they want. This session will look at ways to beat out the hiring competition to find and retain Drupal talent. Eric Gundersen will talk about how Development Seed has grown our team, and Kris Krug from Raincity will share his experiences and lessons learned.

You can vote on all the sessions (including BoFs) you want to see at DrupalCon Szeged here. See you in Szeged!

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:

SMS Framework 1.0 released + 1.1 Roadmap on Drupal Groups
coder, sms integrator

Drupal and SMS Integration, Ready To Go

Drupal and SMS Integration, Ready To Go

The 1.0 release of the SMS Framework is now available for download from Drupal.org. The project has come a long way since it’s initial development release last summer and is now ready for use. Numerous fixes and functionality improvements have turned the SMS Framework into a robust tool for integrating SMS and Drupal.

This release introduces a rewritten SMS user module, which allows your users to provide and confirm their mobile information. Thanks to Tylor from Raincity Studios an SMS receive module and a gateway module for Mobile Muse are included in version 1.0. Expect to see more gateway modules with receiving support in future releases.

We’re already looking ahead to work on version 1.1, which will focus on improving international support, expanding documentation, and upgrading to Drupal 6. Please review and edit the latest roadmap on the wiki and submit feature requests to the project’s issue tracker.

Roadmap for 1.1

  • Improve international support
  • Standardized phone number format
  • Drupal 6 release
  • Write more API documentation
  • Improve the SMS Blast module
  • Ability to make double opt in optional
  • More gateway modules that support receiving
  • Improve sms_receive module
  • Remove behavior mapping

I go into more details on these points here.

Geotagging With the Provincial Drilldown Widget
professional hacker

Simple Forms Increase Data Submission Rates

Simple Forms Increase Data Submission Rates

As Eric mentioned in his post last week about the Pandemic Preparedness mapping project, we spent a lot of time limiting the complexity on the data entry side of the site. We needed something clean and easy to use that still ensures that all the needed information is collected from the public health organizations using the form. We spent a good amount time tweaking the data entry forms themselves to try and streamline the data entry process. I pulled together a short screencast to show how a good data entry process can work, specifically looking at the provincial drilldown widget that allows users to easily geotag their content.

Since I'm sure other folks working with large taxonomies are also struggling to make their data entry forms simpler and more user friendly, I wanted to share more detail on how I built this. It's entirely javascript, and though it took a bit of time it works in IE 6 and 7, as well as the more reasonable browsers out there like Firefox and Safari. Aside from normal cross browser testing, we also tested it to make sure it could handle large numbers of terms. I built the initial widget with a set of test data with just a dozen or so terms, and it worked great, but once I imported the full region/country/province list into Drupal, the widget needed to be fully reworked.

In its current state, the widget is fairly tailored to the particular kind of hierarchy that this site needed, but there is some starter code in my sandbox for people that want to try something similar on their own. Please beware that it will most certainly need some modifications to work in other sites.

Word2Web and XSLT_book Module Released
Programmer

Better Integrating Drupal into Your Existing Editorial Workflow

Better Integrating Drupal into Your Existing Editorial Workflow

Serious content-producing organizations have evolved large-scale, specialized processes for their documents. Often they manage revisions and notes in Microsoft Word, then transfer content to PDF, and print with strict editorial guidelines. In contrast, traditional copy and paste web publishing interrupts the existing system. In the process of rethinking a current client’s web workflow, we took an interest in this problem and devised a new solution: two modules, word2web and xslt_book, which together combine the advantages of Word and the power of Drupal. Here is a screencast showing the two new modules.

The first challenge we encountered was the output of Word’s “Export to HTML...” function - which provides a loose approximation of valid HTML. Word’s output is fortunately valid XML, so we were able to clean proprietary tags from the markup using XSL transformations - XML stylesheets that selectively preserve certain elements and reorganize others. At this stage, we could enable word2web and, instead of copy and pasting into a field, users could upload a Word document to have clean HTML programmatically generated.

However, that was just the beginning. The client’s legacy site presented documents in a manner much like a Book in Drupal, and we initially considered migrating to that content type. However, the management of a book node is actually quite different than the management of this content - translations do not need to be managed by page, but instead revisions of the document should refer to the entire text. Thus we created the a display module for word2web: xslt_book. XSLT_Book uses XSL transformations again to present the simple HTML of word2web in a book-like format, with a nicely formatted table of contents and convenient paging navigation. In addition, xslt_book parses and reformats the footnotes preserved by word2web.

Editing Multilingual Video Captions Using a CCK Field in Drupal
coder, sms integrator

Improving the Workflow and Usability of Multilingual Video Subtitles

Improving the Workflow and Usability of Multilingual Video Subtitles

Last week I posted about adding multilingual subtitles to video content using JW FLV Media Player and Drupal. The workflow I described involves attaching a W3C Timed-Text XML file to a node using an upload form. It’s great for initial translations because you can take advantage of a desktop captioning tool, but what happens when you need to make small changes or corrections? We decided that requiring the user to download the file, edit it, and re-upload it was a major usability issue.

My solution is to parse the contents of the Timed-Text file into a CCK field so it can be manipulated directly on the node editing form. The uploaded file is parsed and the CCK field is populated right before your eyes using an AJAX callback, and the interface allows users to add additional lines of captions dynamically thanks to some logic borrowed from the Link module. Once the node is saved, the CCK field can be used with a custom views style plugin to display a fully formatted Timed-Text XML file.

You can watch what I did in this screencast: