I was sitting at home recently thinking “I wonder how life is going to change when Drupal 8 is released for production websites”. So when I arrived at the office the following morning, I was determined to investigate that question. I cut my teeth on Drupal development with version 6, and since then I’ve developed a fair number of Drupal 7 sites. The features and advancements between those versions was exciting, and the features planned for Drupal 8 just continue to fire my enthusiasm for the product. I’m well aware that Drupal 8 isn’t ready for prime time yet. But I’m sure there a large population of Drupal developers wondering, like me, what to expect when version 8 is finalized.
It didn’t take long to run into a fairly substantial hurdle. I found a page to download the Drupal 8 development release package directly, as I’ve done with previous versions. But a colleague had tried that recently and ran into a critical bootstrap error. In reading through several forum posts, the community suggests getting the code from Drupal’s GIT repository. I’m new to GIT, but the Drupal community makes heavy use of the tool, and it only makes sense to tie into the versioning and contribution features that it provides. I suspect that as Drupal evolves, we’ll all be moving away from downloading compressed archives in favor of interacting with these GIT repositories.
Once I figured out GIT well enough to clone the Drupal.org repository for version 8.x, I configured a local install of XAMPP to point at the directory where I had stored my files. I created a local database to use in the install script and proceeded through the typical setup wizard for a Drupal site. I didn’t notice many differences about the install scripts compared to Drupal 7, although it was quite exciting to see that it was installing the views modules as part of the core.
Admin Bar Improvements
Finally, I had a working Drupal 8 site at my disposal. The first thing that I noticed was updated styling/layout for the admin bar. That bar was new for the Drupal 7 core, and available as an add-on module for Drupal 6. I’ve found it to be quite indispensable for navigating the admin pages of the site. The pill shaped menu items are gone now, and they’ve been replaced with rectangular buttons with an associated icon for each. I wasn’t terribly thrilled with the extra ‘flash’ that those icons provide until I realized that they have a very real purpose when the admin bar responds to narrow screen widths. Basically, the text labels go away and you only have buttons with icons. All of the items that we were familiar with in Drupal 7 have been compressed into a single ‘Menu’ button for the Drupal 8 admin bar. Clicking this button displays another menu bar below the main one, and you now have the option of docking the menu horizontally under the main bar (default), or vertically at the left side of the page. For narrower screen widths, this secondary menu switches to the vertical layout automatically, although you still have the capability to change it back to horizontal.
BUG NOTE: There’s a mysterious pencil icon at the left side of the admin menu. Clicking it toggles the background color of the button either blue or black, but doesn’t seem to affect anything else. I’ll be interested to see what they have planned for that.
The Drupal 8 development release comes packaged with ‘Bartik 8.0’ as the default site theme and interestingly enough, ‘Seven 8.0’ as the admin theme. ‘Stark 8.0’ is also included, but disabled by default. The settings pages for these themes haven’t changed much from Drupal 7, so I don’t have much to comment on. I changed the default colors for Bartik to represent my Alma Mater, Oklahoma State University, and I moved on to more interesting things. The overall user interface has a couple notable updates though, particularly when you are logged in. The gear icons for block settings that we saw in Drupal 7 have been replaced with a Pencil icon. Several of the inline admin links in Drupal 7 have been styled as buttons in Drupal 8, and they remind me of the styling seen in the Twitter Bootstrap library. The Bartik theme now behaves responsive depending on the overall screen width.
New and Exciting Core Modules
First off, the menu item previously titled ‘Modules’ is now called ‘Extend’. Luckily, it falls in the same position relative to the other links in the admin menu, so there was no doubt about where that link was going to take me. This is by no means a comprehensive list of the new modules for Drupal 8, but these are the ones that I’m most excited about:
- CKEditor – One of my biggest complaints about Drupal 7 is that it’s not packaged by default with a good WYSIWYG. The CKEditor modules is disabled by default, but it’s in the core. There’s a requirement to enable the ‘Text Editor’ module, but that’s provided in the core as well. BONUS: You don’t need to download the CKEditor library manually anymore. It’s included as well.
- Email Field – Automatically validates the format of provided email addresses, and generates a ‘mailto:’ link when displayed.
- Entity Reference Field – This CCK field type is key to creating relationships between content types. I’ve watched it grow from ‘Node Reference’ in Drupal 6 to ‘Reference’ in Drupal 7 before being included in the core for Drupal 8. As the name implies, it’s useful for linking to much more than just nodes and users now. If you can define an entity in Drupal, this field will link to items of that type.
- Picture – I had never heard of this module prior to writing this post, but it’s presence and description caught my eye immediately. It claims to resize images to accommodate changes in HTML5 responsive designs.
- Telephone Field – Generates a ‘tel:’ link when displayed. Useful for telephony apps like Skype and corporate phone systems that include desktop clients for making calls.
- Views – It only makes sense for this to be in the core. When they added CCK to the core in Drupal 7 I was surprised that views wasn’t included as well. CCK and Views go hand-in-hand like french fries and ketchup. My thoughts on this one: It’s about dang time.