Ultimate Guide to Drupal 8: Episode 3 - Site Builder Improvements

Welcome to the third instalment of an 8-part blog series we're calling "The Ultimate Guide to Drupal 8." Whether you're a site builder, module or theme developer, or simply an end-user of a Drupal website, Drupal 8 has tons in store for you! This blog series will attempt to enumerate the major changes in Drupal 8. Successive posts will gradually get more technical, so feel free to skip to later parts (once they're published) if you're more on the geeky side.

Please note that since Drupal 8 is still under active development, some of the details below may change prior to its release. Still, since Drupal 8 is now feature-frozen, hopefully most info should remain relevant. Where applicable, Drupal 7 contrib equivalents of Drupal 8 features will be noted.

Site Builders FTW

While the authoring experience improvements and mobile improvements in Drupal 8 tend to focus mainly on end users and content authors of Drupal websites, there was a huge push to improve the site building tools in Drupal 8 as well.

Views in Core!

The Views module, the #1 used module in Drupal contrib, is now baked into Drupal 8 out of the box. Hooray! And not only is the Views module in core, most of the main administrative listings such as Content, People, and Files, in addition to various sidebar blocks, several RSS feeds, and the default front page have also been converted to Views. This makes customizations of these elements—for example to add a "Full name" search to the People listing, or thumbnails next to items in the Content listing—just a few clicks away.

Everything you know and love from Views is included, and even a few extras such as mobile-friendly administration, some subtle user experience and accessibility improvements, the ability to create responsive table listings, and the ability to turn any listing into a JSON export which can be consumed by a mobile application or other external service.

Different types of views demonstrated: page view, table view, blocks, JSON.

More Betterer Blocks

In Drupal 8, you'll notice a few new features as they relate to Blocks. First, just like with Views, several previously hard-coded site components have been converted to blocks, including breadcrumbs, site name, and slogan, with more in the works. This makes it easier to adjust page organization in the user interface.

Second, the previous limitation of only being able to place a block into one region is gone; now you can "place" blocks and re-use them in multiple places, e.g. a "Navigation" block in both the header and footer. No more need for Multiblock module!

New Blocks UI in Drupal 8 showing a filterable sidebar from which blocks can be placed.

And finally, you also can now create custom block types, just as you can create custom content types, to allow for granular control over different styling, different fields, etc. per block. This allows you to create, for example, an "Ad" block type with an "Ad code" field which can contain JavaScript snippets from a remote ad service.

A custom block type with custom field.

Improved and expanded entity and field features

Two of Drupal 7's most powerful site builder features—Entities and Fields—has been expanded upon for Drupal 8, making it easier than ever to build out data models for the structured content you want to manage inside Drupal.

More field types

In addition to the Drupal 7 field types such as Taxonomy, Image, and File, Drupal 8 adds in some powerful new fields such as Entity Reference and Date, along with commonly needed simple fields such as Phone, Email, and Link. Even the setting for whether comments are open or closed has been moved to a field, which allows for making any entity type comment-able.

Screenshots of the Entity Reference and Date fields.

Form modes

Related to entities, in addition to Drupal 7's "view modes" feature, which allows creating multiple display options for content in different contexts (for example, showing a thumbnail image on your content's "teaser" view and a full-size image on "default" view), Drupal 8 adds the notion of "form modes" to do the same for data entry forms. Here's an example of configuring the user registration form differently from the user edit form, so you can hide the more esoteric fields in order to provide a simpler user experience.

With the user registration form mode, you can hide advanced settings such as language, contact settings, and a 'Bio' field.

Take a Tour

Drupal 8's new Tour module provides site builders with contextual, step-by-step "tool tips" that provide overviews of its administrative interfaces, help to introduce new terminology, and walk through the steps involved in configuring components of the site.

Tour tip in Views UI explaining the concept of Displays.

Both less and more, module-wise

You'll find Drupal 8 light on some modules that shipped with Drupal 7, namely Blog, Dashboard, Open ID, Overlay, PHP filter, Poll, Profile, and Trigger (as well as Garland theme). You'll also find several new modules where functionality has been split out into more granular chunks, such as Menu Links / Menu UI, Block / Custom Block, Ban / History / Actions (formally baked into User/Node/System module), etc.

Heather James's Site building preview has a great run-down of the state of things module-wise, including contrib modules that are now rendered obsolete due to the functionality that ships with Drupal 8 core.

Drupal 8 modules page, along with new modules and a search box! The ability to disable modules is also gone, in favour of uninstalling instead.

The big takeaway here is that Drupal 8 core will ship with enough functionality out of the box that for the first time, site builders should be able to create fairly sophisticated sites without having to install 30+ contributed modules. Hooray! :)

Upgrade Migration Path

While there are no screen shots since the UI is not yet in core, in Drupal 8, the major version upgrade path has been replaced with a migration path, courtesy of a D8 port of the Migrate and Migrate Drupal-to-Drupal modules. Both a migration path from Drupal 6 (already in Drupal 8.x) and Drupal 7 (under active development) will be supported in Drupal 8's final release. The main difference to you as a site builder is instead of keeping your site offline for hours while a variety of scripts attempt to upgrade your production database schema in-place (Can you say "EEEEEK!"? ;)), you'll simply keep your Drupal 6/7 site running while you build out the new Drupal 8 site, and then keep running the migration path (provided by core/contrib/custom modules) until everything's moved over satisfactorily, doing a simple webroot / DNS swap at the end with next to zero downtime. Hooray!

For more on Drupal 8's improved major version upgrade process, check out Moshe's Drupal 8 Migrate blog post from December.

Whew! That's a wrap!

Join us next week, when we'll talk about all the nifty multilingual improvements coming to Drupal 8!