In July of next year, PHP 5.3 will go End-of-Life. Before then, many security conscious hosts will upgrade to PHP 5.4, which, by itself, isn’t a big deal. Unfortunately, PHP 5.4 will break all Drupal 6 installations … and here’s the problem with that … I still have quite a few Drupal 6 installations.
Drupal 7 has been out since early 2011, is currently on version 7.23, and most of the external modules webmasters use have Drupal 7 versions. Matter of fact, even Drupal’s own site (drupal.org) was recently upgraded to Drupal 7. So, with the PHP 5.3 deadline a mere seven months away, it was time to start the upgrade process.
There are enough module differences between Drupal 6 and Drupal 7 that a site with any level of complexity will frustrate Drupal’s built-in “Upgrade” program. After several failed upgrades, it was time for a new plan.
The first upgrades, which were really complete rewrites, were the simple sites that just used the basic Token, Path, Analytics, jQuery, Webform, ckeditor and such. In the end, I also had to relearn Views and jCarousel, but most of these sites upgrades were just a lot of cutting, pasting and reformatting.
Another stumbling block were the website themes. While Artisteer, my theme engine of choice, offers to output both Drupal 6 and Drupal 7 code, nothing was drop-in – There were a large number of CSS edits – Another learning curve.
Next came sites with databases. While Drupal 7’s embedded CCK was similar to Drupal 6’s module CCK, virtually all the field types changed – More learning. But nothing was as challenging as sites with photo albums.
Drupal 6 offers a wonderful Image module that includes the necessary content type definition, a simple upload functionality, and predefined Views for the actual gallery. For Drupal 7, there are a host of modules with more functionality, Node Gallery and Brilliant Gallery come to mind, but both featured more features (and complexity) than I needed for simple, hierarchical photo albums. NG also required five other modules to get it to work (and five more modules to configure), while BG bypassed Views altogether and replaced it with inflexible and hard-to-theme outputs.
In the end, I ended up with Media Gallery which supports all kinds of things I don’t need (Picassa import, individual galleries), but does the rest pretty straight forward. I don’t like that it doesn’t support hierarchy, although I’ll bet when I have some time I’ll find a way using taxonomy, and that its preferred lightbox solution is the boxy colorbox. Neither of those are show-stoppers, and as least I have a solution going forward. And Media Gallery does have a nice upload function, something that Image didn’t have.
The last Drupal 7 function I’m going to have to relearn is transaction processing. Uberkart, the preferred Drupal solution, is hard enough to learn and configure, so having to go through the process a second time for those sites with transaction capability is not something I’m looking forward to.
Only eight sites remain to be upgraded to Drupal 7. And I still have seven months. Word is that Drupal 8 will be released within the next several months, but given how long it takes modules to be updated, I suspect these Drupal 7 sites should live for 3-4 years. I hope!