Editing the .tpl files or using Panels?

I'm beginning to teach myself theming and I'm seeing a lot of stuff on different approaches. If I'm working from a design I created in Photoshop, what is the best practice for getting that layout setup in Drupal?. Is there a best practice, or set of requirements that would drive which way I chose to create it?

Drupal 8 Accessibility Features

More Semantic

There are many instances in Drupal 8 where we have been able provide more semantic HTML5 elements which assistive technology will be able to leverage. We have extended this further by adding WAI-ARIA landmarks, live regions, roles & properties.

Accessible Inline Form Errors

Drupal forms have become considerably more accessible with the addition of accessible inline form errors. It is now easier for everyone to identify what errors they might have made when filling in a web form.

WSCCI Conversion Guide - Pass 3

Named parameters in the router

The Drupal 6 and 7 menu system allowed the passing of arguments populated from the path as well as scalar values to the page callback. When converting to a controller, the named parameters of the controller method are matched to request attributes from the path or defaults.

  path: '/tracker/{account}'
      account: 'user'
    _content: '\Drupal\tracker\Controller\TrackerController::trackerPage'
    set_title: 'FALSE'
    _access_tracker_own_information: 'TRUE'

  path: '/user/{account}/track'
      account: 'user'
    _content: '\Drupal\tracker\Controller\TrackerController::trackerPage'
    set_title: 'TRUE'
    _access_tracker_user_tab: 'TRUE'

The TrackerController::trackerPage() method now can have a parameter $account, to which the system will pass the value of the {account} placeholder. Also, because we have a converter specified the system will automatically turn it from an integer into a User object. That is:

use Drupal\user\UserInterface;

TrackerController {
// ...

public function trackerPage(UserInterface $account) {
// ...


From Drupal 4.0.x to 7.x, the XML-RPC subsystem is included in Drupal core. In Drupal 8, it has been moved to the XML-RPC contributed module.

The XML-RPC subsystem gives external systems the opportunity to communicate with the site through the XML-RPC protocol. Pointing an XML-RPC client at http://sitename/xmlrpc.php allows this communication to take place. For more information, see the online handbook entry for XML-RPC API.

Tour: guided tours of the website

The Tour module is part of included in Drupal core. When enabled, the Tour module provides guided tours of the site interface via tooltips.

Tours can be used to:

  • draw users' attention to critical components of the interface, especially those elements that might not be immediately obvious,
  • guide the user through a workflow.


Tour is based on the jQuery library Joyride


  • Users must be given 'access tour' permission in order to view available tours.
  • JavaScript must be enabled in the browser

Creating tours

The Tour API documenation provides information on how to create a tour. The Tour UI module provides a UI to build tours.

General principles

  • Tours are a complement -not a substitute - for good interface design.
  • Tour texts should follow the Drupal style guide for interface text.
  • The tour should start and end in a logical place.
  • If the tour is intended to illustrate a workflow, it should stay focused on completion of a single task, and avoid tangential information.

Text - Defines simple text field types.

The Text module is included in Drupal core. When enabled, the Text module can be used to define simple text field types.


Subscribe with RSS Subscribe to RSS - Drupal 8.x