Hands on the Drupal 7 Beta

Last week, the Drupal team released the first beta of version 7 of their venerable CMS. Drupal 7 has been a long time coming, and has benefited from a massive UI overhaul with the help of international man of mystery, Mark Boulton.

I’ll admit, I have a love–hate relationship with Drupal. I’ve used it for a few projects in the past, where I was able to have them up and running quickly, due to Drupal’s sophisticated functionality available out of the box. However, Drupal always had a steep learning curve, limited documentation, and more than a few peculiar ways of doing things. I skipped version 6 entirely, but with some of the buzz surrounding the version 7 improvements, I figured it was a good time to have a look and see what’s been going on.

On the whole, the beta feels fairly polished. While I wasn’t overly rigorous in how I used it, it seemed complete and I encountered no bugs. Of course, I’d stop short of rushing out to install it on your production sites! But you should have no problems throwing it up on your VM and having a play.

Installation

The first impression you form of a CMS will often come from its installer, and after lagging behind WordPress in this area, Drupal 7 has finally come equipped to play. The installer first gives you the choice of a Standard or Minimal install (the former will have several common modules activated and configured for you, while the latter is a bare-bones alternative). You’ll then need to fill in your database information and a few other key settings, as well as enter the details for your first user, and the installer will then go on its merry way configuring the database accordingly.

Administration

Once it’s installed, Drupal 7 will drop you on the front page of your new site. Unlike WordPress, the admin interface of Drupal is integrated into the site itself. This makes sense, as Drupal bills itself as a community CMS, rather than a more traditional publishing platform like WordPress. In previous versions of Drupal, the admin interface took the form of an extra sidebar widget; however, in Drupal 7, the admin interface is more like a layer sitting above the site itself. There’s a fixed menu bar at the top containing links to all the admin functionality; click on any item and the relevant options page will be displayed as a modal dialog on top of the site. If you’ve been using Drupal for a long time, this might seem confusing at first, but after playing with it for a bit, I found I got used to it fairly quickly. Some parts have been moved around (for instance, Content Types administration used to sit inside Content, now it’s in a new section called Structure), but overall it’s quite recognizable as good old Drupal.

The inline editing of blocks and regions in the theme is nice and slick, as you can see below:

So, overall, I’m a fan of the new UI: it’s a complete refresh that manages to retain a unique identity and showcase the strengths of the platform.

Under the Hood

Drupal 7 is not just about a flashy UI, though: there are significant changes in its codebase as well. One major change is the move to PHP 5; as of version 7, Drupal requires PHP version 5.2 as the minimum.

From a developer’s perspective, one of the most exciting additions to Drupal 7 is the new Field API. Previous versions of Drupal have relied on the CCK (Content Construction Kit) module to add new content types and fields; it was almost always the first module you’d install on any new Drupal site. The Field API aims to replace the CCK and bring this functionality to Drupal’s core. But it goes beyond that: built-in content types like nodes, users, and taxonomy terms are now also tied in with the Field API, so these, fields are fair game for developers to modify at their whim.

Unfortunately, this API, while summarily documented, isn’t clearly explained with example code anywhere; therefore, if you want to start playing with it, it’s going to take some digging around before you feel comfortable using it in your projects.

And the Kitchen Sink

Drupal 7 also comes with vastly improved file and image handling, a better API for user permissions and roles, performance improvements, and more. For a full list of what’s new, be sure to check out the changelog.

Summary

While Drupal 7 is an impressive effort from both a design and a development perspective, the lack of good documentation still makes it a daunting beast for developers to try to tame. That said, stay on the look out for tutorials on the new API features right here at SitePoint!

Have any of you Drupal users out there had a play with the beta? What are your thoughts?

Free book: Jump Start HTML5 Basics

Grab a free copy of one our latest ebooks! Packed with hints and tips on HTML5's most powerful new features.

  • NerdyAsian

    I’ve deployed it to test. Must say I absolutely loved it.D6 was quite different and better than D5; sorry you skipped it. Buy definitely looking forward to it!

  • Berdir

    Most new API’s in D7 (including defining and using fields) have example modules available here: http://api.drupal.org/api/drupal/developer–examples–examples.index.php/7

  • Chris Luckhardt

    It’s unfortunate you skipped D6. :) I waited until it was released to start working with Drupal and, while the learning curve was certainly steep, I was able to be comfortable working with it within a month. I’ve always been able to find lots of information in drupal.org’s forums that cover any holes in the documentation.
    Having said that, I’ve played around with Drupal 7 quite a bit this year and even more since the first beta. They’ve done an amazing job cleaning up the UI and working on usability. I’m looking forward to when I can building my first production site on Drupal 7.

  • Kyle Mathews

    As with most open source projects, the best documentation ends up being written into books. There are a number of Drupal 7 how-to-write modules books coming out.

  • http://www.lunadesign.org awasson

    Louis,
    It’s great to see another article about Drupal on SitePoint. As others has lamented, I’m sorry you skipped D6, after being immered in it for the past couple of years I found it was an improvement over D5 but I didn’t really notice all of the improvements until I had to service a D5 site.

    I’ve been holding off on playing with D7 beta for a while but if all goes well during the next couple of weeks I’ll have the time to give it a go. I’m looking forward to the improved UI and PHP5.2 will be a welcome condition too.

  • David

    I’m really disappointed with this overview. First of all, it bothers me that Sitepoint is so blatantly WordPress-biased. Drupal is a FAR better tool to do anything more than make a basic blog. Yes, I know, WordPress can be extended to do amazing things, but that’s just the point. Most of Drupal’s features are built in, and those that aren’t are easy to add and modify. I’ve tried both CMS’s extensively, creating sites in Drupal freelance, and being forced to use WordPress at work to create a couple sites. I can say from experience, WordPress has the larger learning curve than Drupal if you want to make anything other than a standard cookie-cutter blog.

    As for the review itself, you have someone reviewing it who SKIPPED the last major version, so they don’t know much about the product obviously. Secondly, the author acts like Drupal “finally” caught up to WordPress’s easy install process. Drupal 6 was just as easy to install, but I guess skipping that major release you wouldn’t know that :P I’ve always found WordPress’s installation process to be difficult to get everything working correctly, whereas Drupal is a very simple and fast process.

    Secondly, I don’t understand this complaint of “little or no documentation.” There is a TON of online documentation on Drupal’s site, along with a huge community where you can easily get answers, as well as sample code.

    But, I guess it doesn’t matter what amazing tools get released, most developers seem to love their rock (WordPress) even when newer, better tools like hammers (Drupal) are released, the rock always wins. Such is the sad state of affairs of web development. People will modify the hell out of WordPress to avoid learning something new and better (Sitepoint has issued numerous articles to that affect – “Rig Up WordPress to do What Drupal Can Out of the Box!” – so it’s obvious to me what tool they’ve grown used to and refuse to try. Anyway, rant over. I just really think Drupal deserves much better treatment in the community, as its a far better tool….but maybe that’s just me.

  • Everett Zufelt

    Accessibility
    As a Drupal 7 accessibility maintainer I can add that countless hours have been contributed by many in the community to ensure that Drupal 7 works well for all users and administrators, even those with disabilities.

    Field API
    I have written an article on creating a Field Formatter in Drupal 7 http://zufelt.ca/blog/how-create-custom-field-drupal-7-field-formatter . Which I hope to follow this week with articles on creating Field Widgets and Field Types.

  • Louis Simoneau

    Thanks for pointing out that example page, I hadn’t found it. It definitely shows some of the new API features in action, so that’s a plus.

    Just to clear things up: I’m not saying “the lack of good documentation makes Drupal impossible to use”, of course I know a lot of people will look at the examples and have a tinker, and that’s all they’ll need. That’s what I did when working with Drupal 5 back in the day. But I think the “oh, there’s a book” or “just look at the examples” mentality is a little old-school in the open source world. If you look at the quality of documentation in projects like WordPress (the Codex) and Ruby on Rails (http://guides.rubyonrails.org/), you can see there’s a clear value placed on making the framework accessible to beginners by considering documentation to be an equal citizen with clean code and a good UI.

    With full-stack frameworks like Rails and Django becoming easier to use, and WordPress piling on features that used to be Drupal’s exclusive province (custom content types, custom menus, etc.), I think Drupal’s in a position where it will have to fight extra-hard for mind share. And I think that by remaining as obtuse and unwelcoming as it’s always been, it’s not going to fare well in that fight. Maybe back in the day, when competition was limited, it was ok to do things this way, but I don’t think it is anymore.

    • http://www.lunadesign.org awasson

      Really? You think Drupal will have to fight for mind share with so many examples of Drupal being used for big time development… Whitehouse.gov, Warner, Yahoo, MIT, Disney, McDonalds, Ubuntu, Nokia, Digg, etc… The list goes on and there are plenty of local examples of websites in my area that are powered by Drupal I can draw upon.

      I think Drupal is a great example of “walk softly and carry a big stick”. I love nothing more than to meet a client in their boardroom so I can introduce them to my development platform of choice. I ask them if they are aware of CMS’s, WP, Joomla and Drupal. Then I give them a little bit of background and once they have an understanding of what we’re talking about I tell them about the websites that are powered by my CMS of choice, Drupal. It’s a lot of fun and more often than not, my clients are more excited about their new website knowing that it is built on the same core as the big ones I mentioned earlier.

      I’m not sure where your beef is about Drupal being obtuse and unapproachable comes from or the inference that there is a lack of documentation. I’ve had quite the opposite experience. I’ve been using Drupal since the end of version 4, early 5 and jumped right into 6 about two years ago. My experience has been quite the opposite. Books are always handy and I’ll use them for any complex technology be it JavaScript or ROR but there is a great library of Drupal information that can be accessed through your search provider of choice.

      Yes back in the D4/D5 day you had to be motivated to find information but that has changed entirely. Any search that begins with “Drupal how to xxx” will return thousands of pages. Many going to Drupal.org, Drupal Group pages, Drupal discussion and others going to personal blogs with recipes, downloads and advice on how to do a great many things wth the platform.

      I’m sorry but I think your point of reference regarding Drupal is off by several years. I really think you should have moved from D5 to D6… It would have probably given you more insight to what’s been going on in the community during the last 2 years or so.

  • http://preachers-kid.com Jerrac

    ok, that was weird. I logged in, and I went to a page that looked like a wordpress login screen, the login box shook itself and looked like it was saying I used the wrong password, then suddenly it sent me back here and I was logged in… And I just logged out and back in again, and it did the same thing. Do you have some kind of odd login script here to interface between blogs and forums?
    As for Drupal 7. I have been playing with the Alpha’s for a long time now. The documentation isn’t that great, but they’ve also only just gotten to the point where it won’t have to change every time there’s a new commit… They also have are pushing to get the documentation done right. So it will hopefully improve.
    The little bit I’ve used the WordPress docs, I found it harder to figure out than Drupal’s…
    Actually, if your main complaint is the documentation, then you should love Drupal. I have yet to use a software program that has good documentation. Nearly everything (PHP, C++, Windows, Linux, Matlab, Word, etc…) I’ve used just gives you just barely enough that you can figure it out by experimentation. Unless it’s something about as basic as ‘Hello World’. I always have to search for forum posts/books/articles/take classes etc.

  • http://www.drumnbass.be/ thechronic

    One of the greatest improvements for web developers in Drupal 7 is renderable arrays. In D6 most elements on the page were delivered to the themer as chunks of HTML that could then be pieced together to form the final page.
    For example, an ‘online users block’ module would output an unordered list containing user names linked to their profile. The list itself could be themed easily enough, but what if you want to alter the data itself, remove parts of it, or add something extra?
    In Drupal 7 the whole theming architecture has been turned upside down. Instead of HTML, the modules pass arrays containing a wealth of information to the themer. Want to add a profile picture, latest tweet or a link to the user’s latest blog post? Limit the list to 5 users in a certain page to make room? No problem, just alter the data any way you like, and Drupal will render it for you.

  • Mike Gifford

    I do think that this review does play down the types of changes that have been made in Drupal 7. The potential for tools like RDFa has for organizations looking to leverage & provide open data for instance.

    The accessibility enhancements are also huge, but will will also provide benefits to users who are using mouseless mobile devices. Changing not just the default outputs for anonymous users to be more accessible but also changing the core forms API to produce better more accessible admin interfaces as well.

    There is certainly going to be steep competition between the leading open source CMS’s. This is a good thing. We should be learning from each other & pushing each other to do better. As far as documentation for Drupal 7, there are already a number of books out there waiting to be published & quite a lot of additional documentation inline & also in freshly updated documentation pages.

    Still, like with all software, there is room for improvement.

  • reluctantly_optimistic

    Amazing. The only sniping here was about the article itself. Nothing about Microsoft, Apple, the Tea Party or Flash. Maybe there is hope for the interent.

  • CarlSite

    At the moment I am not sure whether to use Joomla or Drupal. It would be nice if there was comparison done. Develop a small website of one of two pages and compare which was easier to use. I am barely at the reading point for Joomla and I have just started following the trade rags on Drupal.
    Also, if a customer has a non-joomla or non-Drupal host site, but they have the pre-requisite LAMP tools. How hard is it to design a site on a internal test system and then move the design to the customers host. I have talked to people that use joomla and say once you understand what goes where is pretty straight forward.

    I am interested in the practical use, not the theoretical use. Theoretical use does not pay the rent.

    anyhow my $.02

    carl

    • http://www.lunadesign.org awasson

      Well I’m biased towards Drupal, it’s what I know and of course I feel it is the better platform however I’ve heard the same from people in the Joomla camp so take that with a grain of salt. Whatever makes sense to you is the platform to go with.

      I suggest you get a couple of quickstart books on Drupal and Joomla to see which one is the right fit for you and then make a decision.

      As far as site migration goes, I’m not sure what tools Joomla has for migrating sites but Drupal has a module called Backup and Migrate that makes moving the site from development to production remarkably simple. It is a module that you can download and install.
      - Once it has been activated, you backup the database to a file
      - upload the site to the production server
      - run the install script to get the site up and running
      - activate Backup and Migrate on the new site
      - upload the saved SQL file into the new site

      That pretty much covers it as long as your PHP and MySQL versions are compatible.

    • http://preachers-kid.com Jerrac

      I’ve moved sites around a few times. Generally, I just export the database, import it onto my new install, copy the files to the new location, and I’m done. ‘Course, sometimes I have to modify settings.php to set the database name, username, and password.

      An example of this would be the method used to export a site from Drupal Gardens. Oh, speaking of Drupal Gardens, that’s a great way to see if Drupal is right for you.