development

With Drupal 7 around the corner, a lot of Drupal developers and users are surely looking at their lingering still-on-Drupal-5 sites and thinking, "surely I might be able to skip Drupal 6 and upgrade directly to Drupal 7?"

Most all experienced Drupal developers would say (to end-users), "not possible". This is because modules only provide upgrade paths from one major version to the next, and just about all Drupal modules received large rewrites between Drupal 5 and Drupal 6. Without help from module developers, it's not extraordinarily difficult to do a direct Drupal 5 to Drupal 7 migration, but you are going to be building out a lot more things manually.

Of all the projects I'm working on, only my personal blog was still on Drupal 5. As this is rather embarrassing, I figured at least it would be a good experience with direct migration from D5 to D7. Here are my experiences and the approach I used in this upgrade.

March 5, 2008 I'll be giving a presentation on two of the most exciting new JavaScript features in Drupal 6. You might be able to guess, on Drag and Drop and the new AHAH framework in Drupal 6. These are two features that slipped in at the last possible moment in the Drupal 6 development cycle, but I feel will be a serious player in module development in Drupal 6 contributed modules.

Drag and Drop

Drag and drop is already implemented in many places in core: the blocks page, book outlines, menu hierarchies, taxonomy terms, file uploads, and others. In the contributed modules, CCK has already implemented drag and drop for field organization and it's likely we'll see it in the final version of Views 2. I posted a screencast of the drag and drop for the blocks page a few months ago.

AHAH Framework

AHAH stands for Asynchronous HTML and HTTP. It's a close cousin of AJAX, which is the same concept of making a HTTP request in the background through javascript, then updating the page somehow with the new content from the second request. The difference between them is AHAH simply returns HTML back, then directly injects it into the page. It's a simpler and more direct method of page manipulation.