{{announcement.body}}
{{announcement.title}}
Refcard #333

Drupal 9 Essentials

An Introduction to Core Features

Drupal is an open-source content management system used by developers to create websites and online applications. Its numerous configuration options and extensions enable developers to dedicate more time to feature enhancements and system integrations. This Refcard introduces the core features and illustrates how a developer can use pre-defined, secure functionality to create complex data collection and delivery solutions.

Published: May. 29, 2020    |    Modified: Jul. 01, 2020
1,313
Free PDF for easy Reference

Brought to you by

Acquia
refcard cover

Written by

author avatar Cindy McCourt Consultant, IDCM Innovations
asset cover
Refcard #333

Drupal 9 Essentials

An Introduction to Core Features

Drupal is an open-source content management system used by developers to create websites and online applications. Its numerous configuration options and extensions enable developers to dedicate more time to feature enhancements and system integrations. This Refcard introduces the core features and illustrates how a developer can use pre-defined, secure functionality to create complex data collection and delivery solutions.

Published: May. 29, 2020    |    Modified: Jul. 01, 2020
1,313
Free PDF for easy Reference

Written by

author avatar Cindy McCourt Consultant, IDCM Innovations

Brought to you by

Acquia
Table of Contents

Introduction

How Drupal 9 Was Built

Content Management

Customization

Code Maintenance

Conclusion

Section 1

Introduction

Drupal is an open-source content management system used by developers to create websites and online applications.

Figure 1: Content gets uploaded to Drupal and rendered in a display



Some have described Drupal as being like LegosTM — lots of pieces that can be assembled to create whatever you want. However, like LegosTM, there are rules to how Drupal’s modular components can come together and/or be customized.

This Refcard introduces the core features that make this flexibility possible. We will illustrate how a developer can use pre-defined, secure functionality to create complex data collection and delivery solutions, leaving more time to develop custom capabilities unique to requirements.

To do that, we will explore the development of Drupal 9 and its core features.


This is a preview of the Drupal 9 Essentials Refcard. To read the entire Refcard, please download the PDF from the link above.

Section 2

How Drupal 9 Was Built

If Drupal 9 is your first opportunity to experience Drupal, there are a few things to know about its development process. Why? Because if you try to search for how things work in Drupal 9, you will see a lot on Drupal 8. And Drupal 8 how-to resources will be either spot on or close to what you need to know about Drupal 9.  

Here’s why.

Figure 2: Calendar of the Drupal Core development process


Calendar of the Drupal Core development process


Drupal 9 was built in Drupal 8. In November 2015, Drupal 8.0.0 launched. Six months later, the first step toward developing Drupal 9 was launched as minor version 8.1.0. The process continued every six months after that as Drupal 9 APIs were added to the Drupal 8 codebase. 

When Drupal 8 reached 8.9.0, it included all of the Drupal 8 and Drupal 9 APIs. Parts of Drupal 8 to be omitted in Drupal 9 were marked for removal in the process, and upon their removal, Drupal 9.0.0 was established. The six-month release process continues in Drupal 9 as the Drupal community builds Drupal 10. Let’s first focus on what core functionality is ready to use.


This is a preview of the Drupal 9 Essentials Refcard. To read the entire Refcard, please download the PDF from the link above.

Section 3

Content Management

Drupal is referred to as a content management system. Its key strength is managing structured content that can then be used in a variety of ways. The most common way is via web pages.

Figure 3: From data to Node entity records to a Drupal web page


From data to Node entity records to a Drupal web page

Figure 3 illustrates how a Drupal web page is created:

  • Data is collected via a form called a Content Type (aka Node entity type) and stored as a node in the database (see Data Collection below for more on Drupal entities). 
  • Some of the data is then displayed in the main content area on the page.
  • Other data elements collected are displayed in the sidebar along with data collected from other nodes using database queries and the Block system. 

This conceptual illustration is a simplification of one frequently used process. What makes this possible is “thinking in Drupal” versus traditional web page development, through which each page is planned and coded. How do you “think in Drupal?” Start by thinking of Drupal as a data management system in which you use and reuse data throughout the website and in multiple regions on the page.

The following sections will introduce data types, collection, and relationships, as well as how to deliver and display data that is access managed.

Data Types

Structured data is key to maximizing Drupal’s data management and reuse options. Data types are captured in the fields listed in Table 1.

Table 1: Fields and data types

Field Data Type
General
Boolean, Date, Email, Timestamp, Comments, Link
Number
Lists (float or integer) and Number (decimal, float, or integer)
Reference Content, File, Image, Taxonomy term, User, etc.
Text List (text) and Text (formatted, formatted long, formatted long with summary, plain, plain long)


Drupal also ships with Datetime Range, Telephone, and Media. The Media field manages media-related files: documents, images, audio, video, and links to embed videos. You can dedicate a field to one Media type or multiple Media types.

However, media management doesn’t stop with upload fields. The Media Library module “enhances the media list with additional features to more easily find and use existing media items.”[1] Drupal also enables accessible descriptions such as alternative text fields for images and long text fields that hold video and audio transcripts. The Responsive Image module “provides an image formatter and breakpoint mappings to output responsive images using the HTML5 picture tag.”[1]

Data Collection

Fields can only be used as part of an entity type. There are seven core, customizable entity types: Node, Block, Taxonomy term, Comment, User, Contact, and Media. Entities help you collect data, store it in the Drupal database, and use it to create pages or push data to other frameworks.


[1]   Description provided by Drupal’s Extend admin interface.


This is a preview of the Drupal 9 Essentials Refcard. To read the entire Refcard, please download the PDF from the link above.

Section 4

Customization

Customizing a Drupal site happens both on the backend and frontend. What does that mean? Figure 17 compares how Drupal’s modules and other functionality in the backend differ from the theme functionality in what is referred to as the frontend.

Understanding this difference is the first step in customizing your Drupal solution.

Figure 17: Drupal’s Backend and Frontend vs. the web page it creates


Drupal’s Backend and Frontend vs. the web page it creates


This is a preview of the Drupal 9 Essentials Refcard. To read the entire Refcard, please download the PDF from the link above.

Section 5

Code Maintenance

In order to maintain Drupal’s core code and any contributed modules installed as part of the site configuration, developers need to track and install the minor versions of Drupal 9 (9.1.0, 9.2.0, and so on) as it moves toward Drupal 10.

Custom Code Updates

With each new minor release, developers can update custom module APIs to the new APIs, readying them for the next major version of Drupal. It’s also an opportunity to update the APIs in contributed modules. If the current module owner doesn’t have the resources, you can volunteer your time and skills to help, thus preparing your site for Drupal 10.

You can learn more about volunteering — visit the module project page, review the issue queue, and suggest solutions.

Update Tools

Given the use of external dependencies in core and contributed modules, developers need to use Composer to install and update Drupal’s code. Start by reviewing “Updating Drupal” at https://www.drupal.org/docs/updating-drupal.

Note: Drupal provides an administrative interface to update contributed modules for you. Unless you know that the module has no dependencies, consider using Composer to perform updates to ensure dependencies are updated appropriately.


This is a preview of the Drupal 9 Essentials Refcard. To read the entire Refcard, please download the PDF from the link above.

Section 6

Conclusion

This Refcard was just a peek into what Drupal can do. It was designed for developers and non-developers in mind. Drupal’s numerous configuration options and extensions enable anyone to build a sophisticated website with rich media and interactions without knowing how to code. It also affords more time to developers to focus on feature enhancements and system integrations unique to requirements.

Drupal’s code and community-contributed functionality are free. One way to learn how to work within Drupal’s code is to help the community resolve issues and build new features.

Join the worldwide team: https://www.drupal.org/community

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}