Since its release in January of this year, we have used Drupal 7 for all of our new Drupal-based development projects. As a firm, we had thousands and thousands of hours of experience in Drupal 6. There are significant differences between Drupal 6 and 7, so working with the new platform has been a bit of an adjustment for us. Now that we’ve got our sea legs under us, we wanted to share the good and the bad of our experience with the platform so far.
I asked The Bivings Group’s resident Drupal gurus Chris Roane and Mike Lockard for their thoughts, and what follows is a collective list of what we love about Drupal 7. A list breaking down our frustrations will follow in a few days.
(1) The default administrative theme is greatly improved.
In earlier versions of Drupal, the default administrative theme was a bit homely and hard for new, non-technical users to navigate. There were a series of contributed modules for Drupal 6 you could install to improve the situation, but it was an extra step you had to take, and additional moving parts you have to deal with when updating. Drupal now has a slick and user friendly administrative theme as part of core. The administrative interface now includes Ajax goodness, an overall admin toolbar, shortcuts and generally increased loading times.
(2) Improved support for WYSWYG’s.
In Drupal 6 you could enable WYSWYG functionality by installing external modules, but they never seemed to work quite right. Drupal 7 makes the integration of WYSWYG editors more seamless. The end result is that they work better.
(3) Drupal 7 loads faster.
A long time complaint about Drupal is that it makes a lot of database calls, causing high server load that lead to speed issues when serving un-cached pages. Drupal 6 was a big improvement, but Drupal 7 features significantly less SQL queries causing sites to load faster.
(4) CCK is now part of core Drupal.
When working with Drupal 6, installing the Content Construction Kit (CCK) module was pretty much a requirement. CCK has been moved into core and rebranded as the Field API. Moving CCK into core gives developers the power to add fields to not only content types, but also to People, Taxonomy, etc.
(5) The image/file upload feature that is included in the Field API is invaluable.
Uploading files along with content in Drupal 6 was always a bit of a clunky process. Getting it to function the way you wanted was always a battle. In Drupal 7 what you can do right out of the box is much improved:
The end result is more flexibility for developers, and a better experience for administrators. All of this was possible in Drupal 6, but it was a battle to get to the functionality you wanted. The fact that these features are now integrated into the Field API will save developers a lot of headaches.
(6) There is more flexibility in what kind of content can be a custom content type.
In Drupal 6, content types were really designed to be text fields, with the Body field required for all custom content types you created. In Drupal 7, this requirement has been removed. This makes it less clunky to create non-text based custom content types for assets such as PDFs or images.
(7) Working with jQuery plugins is much easier in Drupal 7.
jQuery is probably the most popular JavaScript library, and allows for the rapid development of client side site features. Drupal 7 has made it much easier in general to use jQuery in your themes, and also ships with a jQuery 1.4.4, which is much faster and more feature rich than jQuery 1.2.6, which was the default in Drupal 6. For the front-end developers out there, this is a big improvement that will save lots of time.
(8) Drupal 7 uses PHP Data Objects (PDOs), which allows for developers to more easily write portable code.
By making this switch, Drupal 7 is no longer dependent on any specific type of database. The result is greater flexibility.
(9) There are a lot more hooks, which allow for more customizations on a deeper level.
Hooks are what allow for the modules you write for Drupal to connect to Drupal core. In Drupal 7, there are a lot more hooks and they have separated hooks that were used for multiple tasks into smaller pieces. This makes Drupal 7 truly modular, and gives developers the ability to create deeper customizations.
(10) Drupal 7 is much easier to update.
Keeping Drupal 6 current was a hassle, as to update a module you had to download it, unpack it, upload it again and then run the update. Drupal 7 features an Update manager that tells you when a module is out of date and allows you to update it right from the web interface. Much, much easier, and more like the experience in WordPress.
(11) Blocks are much easier to configure.
In Drupal 6, to create a block you have to first create a block on the page you want it to appear, and then go to the slow-loading block overview page to set where on the page you want it to appear. In Drupal 7 this is all done in one step. While it sounds trivial, this can save a lot of time on more complicated sites.
Update: You can read our post listing some negatives about Drupal 7 here.
Sign up today to have our latest posts delivered straight to your inbox.