Using Panels to Override Existing Pages in Drupal 8

Chaos Tools Blocks module

While working with one of our project coaching (see below for details) clients recently, I was asked to show their developer how to override the default user profile display page with a custom Panels layout.

In Drupal 8, the process a bit different than in Drupal 7, but the main concepts are the same. We want to use the Page Manager module to override a particular existing system path ("user/{uid}", for example), then create a variant that uses Panels as the builder. The custom layout is created (quite easily) using the Layout Plugin module.

If you were just creating a standard landing page (and not overriding an existing system path), you'd have all you need at this point, just place blocks in the Panel and you're done. But, when you're overriding something like the user display page (or a node display page), you're probably going to want to place fields attached to the user entity in the panel as well. There's a couple of steps required to make this happen.

First, you'll need to create a new panel context for the entity whose display you're looking to override. This was something that was provided by default in Drupal 7.

Second - and this is where the non-obvious solution comes in - there's another module that must be enabled to get access to the fields. The "Chaos Tools Blocks" module (obviously, part of the Chaos Tools module provides each of the entity's fields as blocks. So, when you are adding content to the panel, all of the entity's fields are available through the "Add block" button.

As mentioned previously, we offer project coaching to clients as a way of guiding and training developers on the organization's own projects. Rather than a traditional training course where most of the curriculum is pre-determined, our project coaching clients receive customized training and best-practice guidance during the development phase of their projects on an as-needed basis. This allows the organization's developers to build sites with confidence knowing that they're getting a solid foundation while they're still in the learning phase of their Drupal journey. Contact us for more information.