At Ten Ten Studios, we recently had the opportunity to develop a new Drupal site for a new acoustic instrument shop and listening room in Nashville called The Fiddle House. It was to be a fairly simple project with a calendar of events, list of available instruments, and a handful of basically static pages (about us, directions, services, etc.) so it seemed like a good one on which to try out Drupal 7.
Installation and Setup
As this was to be our first Drupal 7 project, we were initially impressed. From the setup procedures, to the new administrative theme, to the rearranged menu structure, it is definitely an improvement over Drupal 6 which we had used exclusively for the past two years. For example, gone is the need to create a settings.php file with perfect syntax, upload, set permissions to secure it -- it's all done through the setup GUI now.
There are some interesting theming changes to the key files such as page.tpl.php. Specifically, the new html.tpl.php separates much of the initial declarations and Drupal-required content into a separate file and leaves page.tpl.php for theme-specific variables. A really good idea, if you ask me. Others will take a bit of getting used to, such as the new syntax for calling the variables:
<?php print $header; ?> <?php print $left; ?>
<?php print render($page['header']); ?> <?php print render($page['left']); ?>
..and so on. In this case, the change takes advantage of D7's render function for improved performance. Most changes are similar to this and will trip up your existing Drupal 6 themes but are relatively easy to update for Drupal 7.
Another key improvement in Drupal 7 comes from the expansions to Drupal core. Several key modules have become a part of core, perhaps most importantly the Content Creation Kit. The new Fields API takes everything that worked so well from D6's CCK and improved the GUI and management. The integration works beautifully -- no longer do you have to manage the content's title and body fields in one area and everything else in another. All in all, more than 50 modules have been moved into Drupal 7 core.
Drupal 7 Sounds Pretty Good!
And it is, or at least, it will be. The problem for us arose when we needed a module that is not in core: Views. If you've built a Drupal 6 site before, odds are you've used Views -- I can't think of a project we've done that hasn't -- and it's every bit as important in Drupal 7. The problem is, it's not ready. A multitude of problems plagued our setup. With one view, we were unable to save a Published filter, meaning that there was no way to restrict the view to nodes that were marked as Published. Another time, attempting to save a view simply caused the module to dump reams of code on the screen and not save.
Not Ready for Primetime
This was a simple project, as I mentioned in the beginning of the article. We've got two other projects working at the moment which are far more complicated and there's simply no chance of building those in Drupal 7. At least until Views is fixed there is really no point in developing with Drupal 7 at all, and while we're going to keep an eye on improvements we will be doing all of our development in Drupal 6 for the foreseeable future.